@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.4.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@media print, screen and (min-width: 40em) {
  .reveal, .reveal.tiny, .reveal.small, .reveal.large {
    right: auto;
    left: auto;
    margin: 0 auto; } }

/*! 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=40em&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: #eee;
  font-family: "Open Sans", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  -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;
  cursor: auto; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

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

.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: 40em) {
      .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; } }
    @media screen and (min-width: 75em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media screen and (min-width: 90em) {
      .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: 40em) {
    .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: 40em) {
  .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; } }

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

@media screen and (min-width: 90em) {
  .xxlarge-1 {
    width: 8.33333%; }
  .xxlarge-push-1 {
    position: relative;
    left: 8.33333%; }
  .xxlarge-pull-1 {
    position: relative;
    left: -8.33333%; }
  .xxlarge-offset-0 {
    margin-left: 0%; }
  .xxlarge-2 {
    width: 16.66667%; }
  .xxlarge-push-2 {
    position: relative;
    left: 16.66667%; }
  .xxlarge-pull-2 {
    position: relative;
    left: -16.66667%; }
  .xxlarge-offset-1 {
    margin-left: 8.33333%; }
  .xxlarge-3 {
    width: 25%; }
  .xxlarge-push-3 {
    position: relative;
    left: 25%; }
  .xxlarge-pull-3 {
    position: relative;
    left: -25%; }
  .xxlarge-offset-2 {
    margin-left: 16.66667%; }
  .xxlarge-4 {
    width: 33.33333%; }
  .xxlarge-push-4 {
    position: relative;
    left: 33.33333%; }
  .xxlarge-pull-4 {
    position: relative;
    left: -33.33333%; }
  .xxlarge-offset-3 {
    margin-left: 25%; }
  .xxlarge-5 {
    width: 41.66667%; }
  .xxlarge-push-5 {
    position: relative;
    left: 41.66667%; }
  .xxlarge-pull-5 {
    position: relative;
    left: -41.66667%; }
  .xxlarge-offset-4 {
    margin-left: 33.33333%; }
  .xxlarge-6 {
    width: 50%; }
  .xxlarge-push-6 {
    position: relative;
    left: 50%; }
  .xxlarge-pull-6 {
    position: relative;
    left: -50%; }
  .xxlarge-offset-5 {
    margin-left: 41.66667%; }
  .xxlarge-7 {
    width: 58.33333%; }
  .xxlarge-push-7 {
    position: relative;
    left: 58.33333%; }
  .xxlarge-pull-7 {
    position: relative;
    left: -58.33333%; }
  .xxlarge-offset-6 {
    margin-left: 50%; }
  .xxlarge-8 {
    width: 66.66667%; }
  .xxlarge-push-8 {
    position: relative;
    left: 66.66667%; }
  .xxlarge-pull-8 {
    position: relative;
    left: -66.66667%; }
  .xxlarge-offset-7 {
    margin-left: 58.33333%; }
  .xxlarge-9 {
    width: 75%; }
  .xxlarge-push-9 {
    position: relative;
    left: 75%; }
  .xxlarge-pull-9 {
    position: relative;
    left: -75%; }
  .xxlarge-offset-8 {
    margin-left: 66.66667%; }
  .xxlarge-10 {
    width: 83.33333%; }
  .xxlarge-push-10 {
    position: relative;
    left: 83.33333%; }
  .xxlarge-pull-10 {
    position: relative;
    left: -83.33333%; }
  .xxlarge-offset-9 {
    margin-left: 75%; }
  .xxlarge-11 {
    width: 91.66667%; }
  .xxlarge-push-11 {
    position: relative;
    left: 91.66667%; }
  .xxlarge-pull-11 {
    position: relative;
    left: -91.66667%; }
  .xxlarge-offset-10 {
    margin-left: 83.33333%; }
  .xxlarge-12 {
    width: 100%; }
  .xxlarge-offset-11 {
    margin-left: 91.66667%; }
  .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
    float: left;
    width: 100%; }
    .xxlarge-up-1 > .column:nth-of-type(1n), .xxlarge-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-1 > .column:nth-of-type(1n+1), .xxlarge-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .xxlarge-up-1 > .column:last-child, .xxlarge-up-1 > .columns:last-child {
      float: left; }
  .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
    float: left;
    width: 50%; }
    .xxlarge-up-2 > .column:nth-of-type(1n), .xxlarge-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-2 > .column:nth-of-type(2n+1), .xxlarge-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .xxlarge-up-2 > .column:last-child, .xxlarge-up-2 > .columns:last-child {
      float: left; }
  .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .xxlarge-up-3 > .column:nth-of-type(1n), .xxlarge-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-3 > .column:nth-of-type(3n+1), .xxlarge-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .xxlarge-up-3 > .column:last-child, .xxlarge-up-3 > .columns:last-child {
      float: left; }
  .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
    float: left;
    width: 25%; }
    .xxlarge-up-4 > .column:nth-of-type(1n), .xxlarge-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-4 > .column:nth-of-type(4n+1), .xxlarge-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .xxlarge-up-4 > .column:last-child, .xxlarge-up-4 > .columns:last-child {
      float: left; }
  .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
    float: left;
    width: 20%; }
    .xxlarge-up-5 > .column:nth-of-type(1n), .xxlarge-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-5 > .column:nth-of-type(5n+1), .xxlarge-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .xxlarge-up-5 > .column:last-child, .xxlarge-up-5 > .columns:last-child {
      float: left; }
  .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .xxlarge-up-6 > .column:nth-of-type(1n), .xxlarge-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-6 > .column:nth-of-type(6n+1), .xxlarge-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .xxlarge-up-6 > .column:last-child, .xxlarge-up-6 > .columns:last-child {
      float: left; }
  .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .xxlarge-up-7 > .column:nth-of-type(1n), .xxlarge-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-7 > .column:nth-of-type(7n+1), .xxlarge-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .xxlarge-up-7 > .column:last-child, .xxlarge-up-7 > .columns:last-child {
      float: left; }
  .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .xxlarge-up-8 > .column:nth-of-type(1n), .xxlarge-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-8 > .column:nth-of-type(8n+1), .xxlarge-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .xxlarge-up-8 > .column:last-child, .xxlarge-up-8 > .columns:last-child {
      float: left; }
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .xxlarge-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .xxlarge-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .xxlarge-centered {
    margin-right: auto;
    margin-left: auto; }
    .xxlarge-centered, .xxlarge-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .xxlarge-uncentered,
  .xxlarge-push-0,
  .xxlarge-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: 40em) {
    .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, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Open Sans", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #676767; }

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

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

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

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

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

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

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 3rem; }
  h2, .h2 {
    font-size: 2rem; }
  h3, .h3 {
    font-size: 1.5rem; }
  h4, .h4 {
    font-size: 1.125rem; }
  h5, .h5 {
    font-size: 1.0625rem; }
  h6, .h6 {
    font-size: 1rem; } }

@media print, screen and (min-width: 64em) {
  h1, .h1 {
    font-size: 3.625rem; }
  h2, .h2 {
    font-size: 2.25rem; }
  h3, .h3 {
    font-size: 1.75rem; }
  h4, .h4 {
    font-size: 1.25rem; }
  h5, .h5 {
    font-size: 1.125rem; }
  h6, .h6 {
    font-size: 1rem; } }

@media screen and (min-width: 75em) {
  h1, .h1 {
    font-size: 4.375rem; }
  h2, .h2 {
    font-size: 2.5rem; }
  h3, .h3 {
    font-size: 1.875rem; }
  h4, .h4 {
    font-size: 1.25rem; }
  h5, .h5 {
    font-size: 1.125rem; }
  h6, .h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #a03f54;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #8a3648; }
  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 #676767;
  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 #676767; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #383838; }

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

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

figure {
  margin: 0; }

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

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #eee;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #000000; }

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

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

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

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

.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: 40em) {
  .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; } }

@media screen and (min-width: 75em) {
  .xlarge-text-left {
    text-align: left; }
  .xlarge-text-right {
    text-align: right; }
  .xlarge-text-center {
    text-align: center; }
  .xlarge-text-justify {
    text-align: justify; } }

@media screen and (min-width: 90em) {
  .xxlarge-text-left {
    text-align: left; }
  .xxlarge-text-right {
    text-align: right; }
  .xxlarge-text-center {
    text-align: center; }
  .xxlarge-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 #383838;
    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;
  font-family: inherit;
  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: #91288d;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #7b2278;
    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: #91288d;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #742071;
      color: #fefefe; }
  .button.secondary {
    background-color: #262262;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #1e1b4e;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #000000; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #000000; }
  .button.warning {
    background-color: #ffae00;
    color: #000000; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #000000; }
  .button.alert {
    background-color: #cc4b37;
    color: #000000; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #000000; }
  .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: #91288d;
      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: #91288d;
        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: #262262;
        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: #000000; }
    .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: #000000; }
    .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: #000000; }
  .button.hollow {
    border: 1px solid #91288d;
    color: #91288d; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #491447;
      color: #491447; }
      .button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
        border: 1px solid #91288d;
        color: #91288d; }
    .button.hollow.primary {
      border: 1px solid #91288d;
      color: #91288d; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #491447;
        color: #491447; }
        .button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
          border: 1px solid #91288d;
          color: #91288d; }
    .button.hollow.secondary {
      border: 1px solid #262262;
      color: #262262; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #131131;
        color: #131131; }
        .button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
          border: 1px solid #262262;
          color: #262262; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.hollow.success:hover.disabled, .button.hollow.success:hover[disabled], .button.hollow.success:focus.disabled, .button.hollow.success:focus[disabled] {
          border: 1px solid #3adb76;
          color: #3adb76; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.hollow.warning:hover.disabled, .button.hollow.warning:hover[disabled], .button.hollow.warning:focus.disabled, .button.hollow.warning:focus[disabled] {
          border: 1px solid #ffae00;
          color: #ffae00; }
    .button.hollow.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.hollow.alert:hover.disabled, .button.hollow.alert:hover[disabled], .button.hollow.alert:focus.disabled, .button.hollow.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
  .button.clear {
    border: 1px solid #91288d;
    color: #91288d; }
    .button.clear, .button.clear:hover, .button.clear:focus {
      background-color: transparent; }
    .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
      background-color: transparent; }
    .button.clear:hover, .button.clear:focus {
      border-color: #491447;
      color: #491447; }
      .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
        border: 1px solid #91288d;
        color: #91288d; }
    .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear:hover, .button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus, .button.clear:focus.disabled, .button.clear:focus[disabled] {
      border-color: transparent; }
    .button.clear.primary {
      border: 1px solid #91288d;
      color: #91288d; }
      .button.clear.primary:hover, .button.clear.primary:focus {
        border-color: #491447;
        color: #491447; }
        .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
          border: 1px solid #91288d;
          color: #91288d; }
      .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary:hover, .button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus, .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
        border-color: transparent; }
    .button.clear.secondary {
      border: 1px solid #262262;
      color: #262262; }
      .button.clear.secondary:hover, .button.clear.secondary:focus {
        border-color: #131131;
        color: #131131; }
        .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
          border: 1px solid #262262;
          color: #262262; }
      .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary:hover, .button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus, .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
        border-color: transparent; }
    .button.clear.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.clear.success:hover, .button.clear.success:focus {
        border-color: #157539;
        color: #157539; }
        .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
          border: 1px solid #3adb76;
          color: #3adb76; }
      .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success:hover, .button.clear.success:hover.disabled, .button.clear.success:hover[disabled], .button.clear.success:focus, .button.clear.success:focus.disabled, .button.clear.success:focus[disabled] {
        border-color: transparent; }
    .button.clear.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.clear.warning:hover, .button.clear.warning:focus {
        border-color: #805700;
        color: #805700; }
        .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
          border: 1px solid #ffae00;
          color: #ffae00; }
      .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning:hover, .button.clear.warning:hover.disabled, .button.clear.warning:hover[disabled], .button.clear.warning:focus, .button.clear.warning:focus.disabled, .button.clear.warning:focus[disabled] {
        border-color: transparent; }
    .button.clear.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.clear.alert:hover, .button.clear.alert:focus {
        border-color: #67251a;
        color: #67251a; }
        .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
          border: 1px solid #cc4b37;
          color: #cc4b37; }
      .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert:hover, .button.clear.alert:hover.disabled, .button.clear.alert:hover[disabled], .button.clear.alert:focus, .button.clear.alert:focus.disabled, .button.clear.alert:focus[disabled] {
        border-color: transparent; }
  .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: #91288d; }
  .button.dropdown.hollow.primary::after {
    border-top-color: #91288d; }
  .button.dropdown.hollow.secondary::after {
    border-top-color: #262262; }
  .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; }

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

[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 #676767;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  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 #383838;
    background-color: #fefefe;
    box-shadow: 0 0 5px #676767;
    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: #676767; }

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

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

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #eee;
  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: #000000; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

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

.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 #676767;
  background: #eee;
  color: #000000;
  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;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -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: auto;
    -webkit-align-self: stretch;
        -ms-flex-item-align: stretch;
                -ms-grid-row-align: stretch;
            align-self: stretch;
    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 #676767; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #676767;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  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%2856, 56, 56%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 #383838;
    background-color: #fefefe;
    box-shadow: 0 0 5px #676767;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #eee;
    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; }

.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: #91288d;
    color: #fefefe; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #742071;
      color: #fefefe; }
  .button-group.secondary .button {
    background-color: #262262;
    color: #fefefe; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #1e1b4e;
      color: #fefefe; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #000000; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #000000; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #000000; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #000000; }
  .button-group.alert .button {
    background-color: #cc4b37;
    color: #000000; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #a53b2a;
      color: #000000; }
  .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: 40em) {
    .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: 39.9375em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }

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

.card-divider {
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding: 1rem;
  background: #eee; }
  .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; }

.card-image {
  min-height: 1px; }

.close-button {
  position: absolute;
  color: #383838;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #000000; }
  .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 {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .menu.vertical {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .menu.expanded li {
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.simple {
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 40em) {
    .menu.medium-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.medium-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.medium-expanded li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-simple li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.large-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.large-expanded li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-simple li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media screen and (min-width: 75em) {
    .menu.xlarge-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.xlarge-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.xlarge-expanded li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.xlarge-simple li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media screen and (min-width: 90em) {
    .menu.xxlarge-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.xxlarge-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.xxlarge-expanded li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.xxlarge-simple li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-left li a {
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a {
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg {
      margin-left: 0.25rem; }
  .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-bottom li a {
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom 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 .is-active > a {
    background: transparent;
    color: #262262; }
  .menu .active > a {
    background: transparent;
    color: #262262; }
  .menu.align-left {
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .menu.align-right li {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .menu.align-right li .submenu li {
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu.align-center li .submenu li {
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: 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: #676767;
    box-shadow: 0 7px 0 #676767, 0 14px 0 #676767; }

.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: #000000;
    box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #383838;
    box-shadow: 0 7px 0 #383838, 0 14px 0 #383838; }

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

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe; }

.drilldown .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; }
  .drilldown .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }
  .drilldown .is-drilldown-submenu a {
    padding: 0.7rem 1rem; }

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0; }

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

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

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  left: auto;
  right: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #a03f54; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  right: auto;
  left: 1rem;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #a03f54 transparent transparent; }

.drilldown .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 #91288d 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;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  display: none;
  border: 0px solid #676767;
  border-radius: 0;
  background-color: transparent;
  font-size: 1rem; }
  .dropdown-pane.is-opening {
    display: block; }
  .dropdown-pane.is-open {
    visibility: visible;
    display: block; }

.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 a {
  padding: 0.7rem 1rem; }
  [data-whatinput='mouse'] .dropdown.menu a {
    outline: 0; }

.dropdown.menu .is-active > a {
  background: transparent;
  color: #91288d; }

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

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

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

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

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

@media print, screen and (min-width: 40em) {
  .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-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

@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-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

@media screen and (min-width: 75em) {
  .dropdown.menu.xlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.xlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.xlarge-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.xlarge-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .dropdown.menu.xlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

@media screen and (min-width: 90em) {
  .dropdown.menu.xxlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.xxlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.xxlarge-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.xxlarge-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0; }
  .dropdown.menu.xxlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; } }

.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;
    left: auto;
    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 #676767;
  background: #fefefe; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .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: #91288d;
  color: #fefefe; }
  .label.primary {
    background: #91288d;
    color: #fefefe; }
  .label.secondary {
    background: #262262;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #000000; }
  .label.warning {
    background: #ffae00;
    color: #000000; }
  .label.alert {
    background: #cc4b37;
    color: #000000; }

.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(0, 0, 0, 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(0, 0, 0, 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: #676767; }
    .orbit-bullets button:hover {
      background-color: #383838; }
    .orbit-bullets button.is-active {
      background-color: #383838; }

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;
      -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(0, 0, 0, 0.45);
  overflow-y: scroll; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #676767;
  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: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 75rem; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 40em) {
    .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: 39.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; }

.title-bar {
  padding: 0.5rem;
  background: #000000;
  color: #fefefe;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -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; }

.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: transparent; }
  .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: 40em) {
    .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;
        margin-right: auto; }
      .top-bar .top-bar-right {
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto;
        margin-left: 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%; } }
  @media screen and (max-width: 89.9375em) {
    .top-bar.stacked-for-xlarge {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-xlarge .top-bar-left,
      .top-bar.stacked-for-xlarge .top-bar-right {
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  .top-bar.stacked-for-xxlarge {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .top-bar.stacked-for-xxlarge .top-bar-left,
    .top-bar.stacked-for-xxlarge .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: 39.9375em) {
  .hide-for-small-only {
    display: none !important; } }

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

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

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

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

@media screen and (max-width: 39.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; } }

@media screen and (min-width: 75em) {
  .hide-for-xlarge {
    display: none !important; } }

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

@media screen and (min-width: 75em) and (max-width: 89.9375em) {
  .hide-for-xlarge-only {
    display: none !important; } }

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

@media screen and (min-width: 90em) {
  .hide-for-xxlarge {
    display: none !important; } }

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

@media screen and (min-width: 90em) {
  .hide-for-xxlarge-only {
    display: none !important; } }

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

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  border: 0; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
  -webkit-clip-path: none;
          clip-path: none; }

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

.align-right {
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

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

.align-justify {
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.align-spaced {
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around; }

.align-right.vertical.menu > li > a {
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center.vertical.menu > li > a {
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-top {
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start; }

.align-self-top {
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start; }

.align-bottom {
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end; }

.align-self-bottom {
  -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
          align-self: flex-end; }

.align-middle {
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.align-self-middle {
  -webkit-align-self: center;
      -ms-flex-item-align: center;
              -ms-grid-row-align: center;
          align-self: center; }

.align-stretch {
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.align-self-stretch {
  -webkit-align-self: stretch;
      -ms-flex-item-align: stretch;
              -ms-grid-row-align: stretch;
          align-self: stretch; }

.align-center-middle {
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-align-content: center;
      -ms-flex-line-pack: center;
          align-content: center; }

.small-order-1 {
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.small-order-2 {
  -webkit-order: 2;
      -ms-flex-order: 2;
          order: 2; }

.small-order-3 {
  -webkit-order: 3;
      -ms-flex-order: 3;
          order: 3; }

.small-order-4 {
  -webkit-order: 4;
      -ms-flex-order: 4;
          order: 4; }

.small-order-5 {
  -webkit-order: 5;
      -ms-flex-order: 5;
          order: 5; }

.small-order-6 {
  -webkit-order: 6;
      -ms-flex-order: 6;
          order: 6; }

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .medium-order-2 {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .medium-order-3 {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .medium-order-4 {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .medium-order-5 {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .medium-order-6 {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .large-order-2 {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .large-order-3 {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .large-order-4 {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .large-order-5 {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .large-order-6 {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media screen and (min-width: 75em) {
  .xlarge-order-1 {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .xlarge-order-2 {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .xlarge-order-3 {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .xlarge-order-4 {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .xlarge-order-5 {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .xlarge-order-6 {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media screen and (min-width: 90em) {
  .xxlarge-order-1 {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .xxlarge-order-2 {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .xxlarge-order-3 {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .xxlarge-order-4 {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .xxlarge-order-5 {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .xxlarge-order-6 {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

.flex-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

.flex-child-auto {
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto; }

.flex-child-grow {
  -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto; }

.flex-child-shrink {
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }

.flex-dir-row {
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row; }

.flex-dir-row-reverse {
  -webkit-flex-direction: row-reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.flex-dir-column {
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }

.flex-dir-column-reverse {
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }

@media print, screen and (min-width: 40em) {
  .medium-flex-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .medium-flex-child-auto {
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .medium-flex-child-grow {
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .medium-flex-child-shrink {
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .medium-flex-dir-row {
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .medium-flex-dir-row-reverse {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .medium-flex-dir-column {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .medium-flex-dir-column-reverse {
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .large-flex-child-auto {
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .large-flex-child-grow {
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .large-flex-child-shrink {
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .large-flex-dir-row {
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .large-flex-dir-row-reverse {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .large-flex-dir-column {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .large-flex-dir-column-reverse {
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media screen and (min-width: 75em) {
  .xlarge-flex-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .xlarge-flex-child-auto {
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .xlarge-flex-child-grow {
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .xlarge-flex-child-shrink {
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .xlarge-flex-dir-row {
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .xlarge-flex-dir-row-reverse {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .xlarge-flex-dir-column {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .xlarge-flex-dir-column-reverse {
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media screen and (min-width: 90em) {
  .xxlarge-flex-container {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .xxlarge-flex-child-auto {
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .xxlarge-flex-child-grow {
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .xxlarge-flex-child-shrink {
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .xxlarge-flex-dir-row {
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .xxlarge-flex-dir-row-reverse {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .xxlarge-flex-dir-column {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .xxlarge-flex-dir-column-reverse {
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

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

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-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; }
  .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; }

main {
  background-color: #eee; }

a h1, a h2, a h3, a h4, a h5, a h6, a p, a li {
  color: #000000; }

.section {
  padding: 2rem 0 0;
  background-color: #eee; }
  .section--default {
    background-color: #eee; }
  .section--dark {
    background-color: #eee; }
  .section--light {
    background-color: #eee; }
  .section--gallery {
    margin-bottom: 1.5rem;
    background-color: transparent;
    position: relative;
    z-index: 10; }
    .section--gallery .gallery-frame, .section--gallery .video-container {
      position: relative;
      z-index: 20; }
    .section--gallery:after {
      content: '';
      z-index: 1;
      position: absolute;
      top: 50%;
      left: 0;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      width: 100%;
      height: 80%;
      margin-top: 1.5rem; }
  .section--introduction, .section--timeline {
    padding: 0; }
  .section--timeline-start {
    padding-top: 6.25rem !important; }
  .section--promo {
    padding: 0; }
    .section--promo > .row {
      max-width: inherit; }
  .section--compressed + .section--compressed {
    padding-top: 0; }

.column:last-child:not(:first-child), .columns:last-child:not(:first-child), .columns:last-child:not(:first-child) {
  float: left; }

@media screen and (min-width: 40em) {
  .section--introduction, .section--timeline {
    padding: 0; }
  .section--gallery {
    margin-bottom: 2rem; }
    .section--gallery:after {
      margin-top: 2rem; } }

@media screen and (min-width: 64em) {
  .section {
    padding: 2.25rem 0 0; }
    .section--introduction, .section--timeline {
      padding: 0; }
    .section--gallery {
      margin-bottom: 3rem; }
      .section--gallery:after {
        margin-top: 1.5rem;
        background-color: #fefefe; } }

@media screen and (min-width: 75em) {
  .section--introduction, .section--timeline {
    padding: 0; }
  .section--gallery {
    margin-bottom: 3.5rem; }
    .section--gallery:after {
      margin-top: 1.75rem; } }

.ttu {
  text-transform: uppercase; }

.fb {
  font-weight: bold; }

.lstn {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  list-style-type: none;
  margin: 3em 0 1em;
  padding: 0;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .lstn li {
    display: inline-block;
    font-weight: bold;
    margin-right: 2em; }
  .lstn a {
    display: inline-block;
    width: 2.5em;
    height: 2.5em;
    color: #91288d;
    background: #faf9ff;
    text-align: center;
    border: solid 0.05em #91288d;
    border-radius: 50%; }
    .lstn a:hover {
      color: #faf9ff;
      background: #91288d;
      border: solid 0.05em #91288d; }
  .lstn span {
    font-size: 1em;
    line-height: 2.25em; }

.v--center {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }

.row.row--fullwidth {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0; }

.row.row--flex {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.row.row--flex-reverse {
  -webkit-flex-direction: row-reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

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

.row.row--flex-vertical-align {
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.row.row--flex-space-around {
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around; }

@media screen and (min-width: 40em) {
  .row.row--fullwidth {
    padding: 0 2rem; } }

@media screen and (min-width: 64em) {
  .row.row--fullwidth {
    padding: 0 3rem; }
  .section--padded-large {
    padding: 7rem 0; } }

@media screen and (min-width: 75em) {
  .row.row--fullwidth {
    padding: 0 3.5rem; } }

.cf:after, .cf:before {
  content: " ";
  display: table; }

.cf:after {
  clear: both; }

.element-invisible, .show-for-sr, .show-on-focus, .visuallyhidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  border: 0; }

body {
  position: relative; }

.back-to-top {
  position: absolute;
  right: 30px;
  bottom: 850px;
  font-size: 3rem; }

#site-header {
  background-color: rgba(250, 249, 255, 0.95);
  box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25); }

.z-1 {
  z-index: 1; }

.top-bar ul {
  background-color: rgba(250, 249, 255, 0.95); }

.header {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 5;
  padding: 1.5rem 0.5rem;
  z-index: 500;
  background-color: rgba(250, 249, 255, 0.95); }

.header--overlay {
  background-color: rgba(250, 250, 250, 0.75);
  min-height: 20.3125rem;
  width: 100%;
  -webkit-transform: translateY(-150%);
      -ms-transform: translateY(-150%);
          transform: translateY(-150%);
  transition: all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1; }
  .header--overlay-show {
    background-color: rgba(250, 249, 255, 0.95);
    display: block;
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0); }

.brand-navigation {
  z-index: 200; }
  .brand-navigation h1 {
    margin-bottom: 0; }

.logo img, .inverse--logo img {
  max-width: 11.125rem;
  display: block; }

.logo {
  display: block; }

.header--compressed {
  padding-top: 1rem;
  padding-bottom: 1rem; }

.drilldown {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100vh;
  width: 100%;
  padding: 6rem 1.125rem 0 1.125rem;
  -webkit-transform: translateY(-110%);
      -ms-transform: translateY(-110%);
          transform: translateY(-110%);
  transition: -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .drilldown li {
    text-align: center;
    margin: 0; }
    .drilldown li:first-child {
      border-top: solid 0.1em #91288d; }
    .drilldown li:last-child {
      border-bottom: solid 0.15em #91288d; }
    .drilldown li a {
      padding: 1rem 0;
      line-height: 1.25rem;
      background: rgba(250, 249, 255, 0.95); }
      .drilldown li a:hover {
        color: #262262; }
  .drilldown--show {
    -webkit-transform: translate(0%);
        -ms-transform: translate(0%);
            transform: translate(0%); }
  .drilldown .is-drilldown-submenu {
    padding: 6rem 1.125rem 0 1.125rem;
    background: rgba(250, 249, 255, 0.95); }
    .drilldown .is-drilldown-submenu a {
      padding: 1rem 0; }

.drilldown .is-drilldown-submenu-parent > a {
  color: #fefefe; }
  .drilldown .is-drilldown-submenu-parent > a:after {
    right: 0;
    border-left: 0.5rem solid #fefefe;
    border-bottom: 0.375rem solid transparent;
    border-top: 0.375rem solid transparent;
    margin-right: 0.9375rem; }

.menu.drilldown .js-drilldown-back > a {
  color: #fefefe;
  padding-left: 1.5rem; }
  .menu.drilldown .js-drilldown-back > a:before {
    content: "\f00d";
    position: absolute;
    font-family: 'FontAwesome';
    font-size: 1.125rem;
    left: 0;
    right: auto;
    display: block;
    border: none; }

.is-drilldown {
  min-height: auto !important; }

.main-navigation {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.menu li a {
  font-size: 1em;
  color: .menu li a primary-color;
  display: block;
  color: #91288d;
  position: relative;
  text-transform: uppercase; }
  .menu li a:hover {
    color: #262262; }

.menu li.menu-cta {
  font-size: 0.75rem; }
  .menu li.menu-cta a {
    text-transform: inherit; }
    .menu li.menu-cta a:after {
      content: '';
      position: absolute;
      width: 1rem;
      height: 1rem; }

.menu li.is-submenu-item {
  text-align: left; }
  .menu li.is-submenu-item a {
    color: #91288d; }

.dropdown.menu .is-active > a {
  color: #fefefe; }

.dropdown li {
  list-style: none; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: none;
  min-width: 18.75rem;
  border: none; }

.search--icon {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 2.125rem;
  height: 2.125rem;
  text-align: center; }
  .search--icon .fa {
    color: #91288d; }
    .search--icon .fa:hover {
      color: #262262; }
  .search--icon button {
    margin: 0 auto;
    display: block; }
    .search--icon button:hover {
      cursor: pointer; }

.search--icon-mobile {
  width: 2.5rem;
  height: 2.5rem;
  border: 0.0625rem solid #fefefe;
  margin-left: 0.5rem;
  display: none; }

.menu--btn-close {
  display: none;
  transition: display 1s; }

.mobile--menu {
  z-index: 9999;
  padding: 0.5rem; }

.menu--btn, .menu--btn-close {
  transition: display 1s;
  padding: 0.625rem;
  border: 0.125rem solid #91288d;
  width: 2.5rem;
  height: 2.5rem;
  cursor: pointer; }
  .menu--btn:hover, .menu--btn-close:hover {
    border: 0.125rem solid #262262; }
  .menu--btn .fa, .menu--btn-close .fa {
    color: #91288d; }
    .menu--btn .fa:hover, .menu--btn-close .fa:hover {
      color: #262262; }

.oh .menu--btn .fa {
  display: none; }

.empty .inverse--logo {
  visibility: visible;
  opacity: 1;
  display: block; }

.empty .logo {
  display: none !important;
  opacity: 0;
  visibility: hidden; }

.header.header--compressed {
  background-color: rgba(145, 40, 141, 0.75);
  transition: all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); }

.inverse--logo img.inverse--logo-compressed {
  max-width: 13.125rem;
  transition: all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); }

@media screen and (min-width: 40em) {
  .header {
    background: transparent; } }

@media screen and (min-width: 64em) {
  #main--menu {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }
  .top-bar ul {
    background-color: transparent; }
  .inverse--logo {
    visibility: hidden;
    opacity: 0;
    display: none; }
    .inverse--logo-show {
      visibility: visible;
      opacity: 1;
      display: block;
      z-index: 10; }
  .menu li a {
    padding: 0.5rem 0;
    border: solid 0.125rem transparent;
    color: #91288d; }
    .menu li a:hover {
      color: #262262;
      border-bottom-color: #262262; }
  .menu li.is-active a {
    border-bottom-color: #262262; }
  .menu li.menu-cta {
    font-size: 0.75rem;
    margin-right: 0; }
    .menu li.menu-cta a {
      font-weight: 700;
      padding: 0 1.25rem;
      line-height: 1.875rem;
      margin-right: 0.25rem;
      border: solid 0.125rem #fefefe;
      text-transform: uppercase; }
      .menu li.menu-cta a:hover, .menu li.menu-cta a:focus, .menu li.menu-cta a:active {
        background: #fefefe;
        color: #91288d; }
  .dropdown.menu > li {
    margin: 0 1.5rem; }
  .dropdown.menu a {
    padding: 0.5rem 0;
    font-size: 0.875rem; }
  .dropdown.menu ul.is-dropdown-submenu {
    padding-top: 1.75rem; }
  .dropdown.menu li.is-submenu-item a {
    margin-left: 0;
    border-color: transparent;
    color: #91288d;
    font-weight: 400;
    font-size: 0.875rem; }
    .dropdown.menu li.is-submenu-item a:hover {
      text-decoration: underline; }
  .dropdown.menu li.is-dropdown-submenu-parent > a {
    margin-right: 1.125rem; }
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    left: 0;
    right: auto; } }

@media screen and (min-width: 75em) {
  .dropdown.menu > li {
    margin: 0 2rem; }
  .dropdown.menu a {
    font-size: 0.9375rem; }
  .menu li.menu-cta {
    margin-right: 0; } }

@media screen and (min-width: 90em) {
  .dropdown.menu > li {
    margin: 0 1.5rem; } }

@media screen and (max-width: 39.9375em) {
  .no-js .top-bar {
    display: none; } }

@media print, screen and (min-width: 40em) {
  .no-js .title-bar {
    display: none; } }

.btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  text-align: center;
  font-weight: bold;
  text-transform: uppercase;
  color: white;
  transition: 0.3s ease-in-out;
  border-radius: 0.1875rem; }
  .btn:hover {
    border-radius: 0 1em 0; }
  .btn--primary {
    background-color: transparent;
    border: 0.125rem solid #faf9ff;
    color: #faf9ff; }
    .btn--primary:hover {
      color: #faf9ff;
      background-color: transparent; }
  .btn--secondary {
    background-color: transparent;
    border: 0.125rem solid #91288d;
    color: #91288d;
    text-decoration: none; }
    .btn--secondary:hover {
      color: #91288d;
      background-color: transparent; }
  .btn--tertiary {
    background-color: transparent;
    border: 0.125rem solid #91288d;
    color: #91288d;
    padding: 0.75rem 0.75rem; }
    .btn--tertiary:hover {
      color: #91288d;
      background-color: transparent; }

@media screen and (min-width: 64em) {
  .btn {
    padding: 0.5rem 2rem; }
    .btn--tertiary {
      padding: 0.5625rem 2.375rem; } }

input[type='text'],
input[type='password'],
input[type='date'],
input[type='datetime'],
input[type='datetime-local'],
input[type='month'],
input[type='week'],
input[type='email'],
input[type='number'],
input[type='search'],
input[type='tel'],
input[type='time'],
input[type='url'],
input[type='color'],
input[type='tel'],
select,
textarea {
  margin-bottom: 1rem;
  border: 0;
  height: 2.9375rem;
  padding: 0 1rem;
  border: 0.0625rem solid #eee;
  background-color: #eee;
  box-shadow: none; }
  input[type='text']:focus,
  input[type='password']:focus,
  input[type='date']:focus,
  input[type='datetime']:focus,
  input[type='datetime-local']:focus,
  input[type='month']:focus,
  input[type='week']:focus,
  input[type='email']:focus,
  input[type='number']:focus,
  input[type='search']:focus,
  input[type='tel']:focus,
  input[type='time']:focus,
  input[type='url']:focus,
  input[type='color']:focus,
  input[type='tel']:focus,
  select:focus,
  textarea:focus {
    border-color: #91288d;
    background-color: #fefefe;
    box-shadow: none;
    transition: border 0.5s, border-color 0.25s ease-in-out; }

select {
  padding-right: 2rem; }

textarea {
  border: 0;
  padding: 0.5rem 1rem;
  margin-top: 0.5rem; }

select {
  padding: 0.5rem 1.25rem;
  background-position: right center; }

input[type="submit"] {
  border: 0;
  min-width: 12.3125rem;
  font-weight: bold; }

input[type="text"] {
  height: auto;
  padding: 0.625rem 1.75rem; }

input[type="checkbox"],
input[type="radio"] {
  font-size: 1rem;
  margin-bottom: 0; }
  label input[type="checkbox"], label
  input[type="radio"] {
    margin-top: 0.5rem; }

form input[type="submit"], form button:not(.search-toggle) {
  height: auto; }

form input[type="submit"].wpcf7-submit {
  max-width: 12.3125rem; }

#mce-success-response, #mce-error-response {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  padding: 2rem;
  width: 90%;
  z-index: 10;
  box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25); }

#mce-success-response {
  background-color: #fefefe; }

#mce-error-response {
  background-color: #fefefe;
  color: red; }

@media screen and (min-width: 64em) {
  label, p.likelabel {
    font-size: 1.125rem;
    margin-bottom: 0.5rem; }
    label.small-label, p.likelabel.small-label {
      font-size: 1rem;
      margin-bottom: 0.25rem; }
  input[type="text"],
  input[type="password"],
  input[type="date"],
  input[type="datetime"],
  input[type="datetime-local"],
  input[type="month"],
  input[type="week"],
  input[type="email"],
  input[type="number"],
  input[type="search"],
  input[type="tel"],
  input[type="time"],
  input[type="url"],
  input[type="color"],
  input[type="file"],
  select {
    font-size: 1.125rem;
    height: 3.125rem; }
    label input[type="text"], label
    input[type="password"], label
    input[type="date"], label
    input[type="datetime"], label
    input[type="datetime-local"], label
    input[type="month"], label
    input[type="week"], label
    input[type="email"], label
    input[type="number"], label
    input[type="search"], label
    input[type="tel"], label
    input[type="time"], label
    input[type="url"], label
    input[type="color"], label
    input[type="file"], label
    select {
      margin-top: 0.5rem; }
  textarea {
    font-size: 1.125rem; }
    label textarea {
      margin-top: 0.5rem; }
  input[type="checkbox"],
  input[type="radio"] {
    font-size: 1.125rem; }
    input[type="checkbox"] label.inline-label,
    input[type="radio"] label.inline-label {
      margin-bottom: 0.5rem; }
  #mce-success-response, #mce-error-response {
    width: 40%;
    padding: 3rem; } }

/*
$alert-color: #f04124;
$success-color: #43AC6A;
$warning-color: #f08a24;
$info-color: #a0d3e8;

*/
.alert.callout {
  color: #cc4b37;
  border-color: #cc4b37; }
  .alert.callout .fa {
    margin-right: 0.5rem; }

.error span.form-error {
  display: block; }

.error input[type="text"],
.error input[type="password"],
.error input[type="date"],
.error input[type="datetime"],
.error input[type="datetime-local"],
.error input[type="month"],
.error input[type="week"],
.error input[type="email"],
.error input[type="number"],
.error input[type="search"],
.error input[type="tel"],
.error input[type="time"],
.error input[type="url"],
.error input[type="color"],
.error input[type="file"],
.error select {
  color: #cc4b37;
  border-color: #cc4b37; }

.error label {
  color: #cc4b37; }

.checkbox-group {
  margin: 0;
  padding: 0;
  list-style: none;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.checkbox-group li {
  margin: 0 24px; }

.signup-block form.subscribe-form input[type="checkbox"] {
  height: auto; }

.custom-checkbox {
  position: relative;
  line-height: 16px;
  display: block;
  cursor: pointer; }

.custom-checkbox input {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  cursor: pointer; }

.custom-checkbox span {
  position: relative;
  padding-left: 24px;
  display: block;
  margin-bottom: 3px;
  font-size: 16px;
  margin-top: 3px; }

.custom-checkbox span:before {
  content: '';
  display: inline-block;
  height: 20px;
  width: 20px;
  border: 1px solid #91288d;
  position: absolute;
  top: -3px;
  left: 0; }

.custom-checkbox span:after {
  content: '✔';
  font-size: 16px;
  position: absolute;
  top: -1px;
  left: 3px; }

.custom-checkbox input + span:after {
  opacity: 0;
  visibility: hidden; }

.custom-checkbox input:checked + span:after {
  opacity: 1;
  visibility: visible; }

.signup-btn {
  max-width: 250px;
  margin: 0 auto; }

.input-group-subscription {
  margin: 1rem 0; }

@media screen and (min-width: 40em) {
  [data-abide] .error small.error {
    font-size: 0.875rem; } }

#contact-form {
  width: 90%;
  margin: 0 auto;
  max-width: 46.875rem; }
  #contact-form label {
    color: #91288d;
    font-size: calc(14px + (14 - 14) * ( (100vw - 320px) / (1400 - 320) ));
    font-weight: bold; }
  #contact-form input {
    background-color: #fefefe; }
  #contact-form textarea {
    background-color: #fefefe; }
  #contact-form input[type="submit"] {
    display: inline-block;
    padding: 0.5rem 1rem;
    text-align: center;
    font-weight: bold;
    text-transform: uppercase;
    transition: 0.3s ease-in-out;
    border-radius: 0.1875rem;
    background-color: transparent;
    border: 0.125rem solid #91288d;
    color: #91288d;
    text-decoration: none;
    margin-bottom: 1rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 15.625rem; }
    #contact-form input[type="submit"]:hover {
      border-radius: 0 1em 0;
      color: #91288d;
      background-color: transparent;
      cursor: pointer; }
  #contact-form div.wpcf7-response-output {
    clear: both; }
  #contact-form div.wpcf7-validation-errors {
    border: 0.0625rem solid #cc4b37; }
  #contact-form div.wpcf7-mail-sent-ok {
    border: 0.0625rem solid #91288d;
    font-weight: bold;
    color: #91288d; }
  #contact-form span.wpcf7-not-valid-tip {
    background-color: #c71515;
    color: #fefefe;
    padding-left: 0.5rem; }

blockquote {
  max-width: 62.5rem;
  margin: 0 auto;
  padding-left: 1.5rem;
  text-align: center;
  border: none;
  color: #000000;
  margin-bottom: 1.5rem; }
  blockquote h3 {
    font-size: 1em;
    font-weight: 400;
    position: relative;
    padding-top: 2.1rem;
    padding-bottom: 1.07143rem; }
    blockquote h3:before {
      content: '“';
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      height: 0.6875rem;
      display: block;
      z-index: 2;
      font-size: 3.875rem;
      font-weight: 700;
      line-height: 1;
      color: #262262; }
    blockquote h3:after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 10.4375rem;
      height: 0.5rem;
      display: block;
      z-index: 2;
      background-image: linear-gradient(90deg, #91288d 0%, #262262 100%);
      border-radius: 0 1em 0; }
    blockquote h3.colour--blue:before {
      background-color: #009cb8; }
    blockquote h3.colour--dark-blue:before {
      background-color: #009cb8; }
    blockquote h3.colour--orange:before {
      background-color: #ea5b0c; }
    blockquote h3.colour--green:before {
      background-color: #9bbd1e; }
  blockquote p {
    font-weight: 700;
    margin-top: 0.5rem; }

@media screen and (min-width: 40em) {
  blockquote {
    margin-bottom: 2rem; }
    blockquote h3 {
      padding-top: 2.8rem;
      padding-bottom: 1.42857rem; }
      blockquote h3:before {
        font-size: 5.8125rem; } }

@media screen and (min-width: 64em) {
  blockquote {
    margin-bottom: 3rem; }
    blockquote h3 {
      padding-top: 4.2rem;
      padding-bottom: 2.14286rem; }
      blockquote h3:before {
        font-size: 7.75rem; } }

@media screen and (min-width: 75em) {
  blockquote {
    margin-bottom: 3.5rem; }
    blockquote h3 {
      padding-top: 4.9rem;
      padding-bottom: 2.5rem; }
      blockquote h3:before {
        font-size: 7.75rem; } }

.hero {
  position: relative;
  padding: 0;
  z-index: 100; }
  .hero .row {
    max-width: inherit; }
  .hero--full {
    height: 100vh; }
  .hero--partial {
    height: 50vh; }
  .hero--background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    display: block; }
  .hero--content-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: 4;
    width: 90%;
    min-height: 60vh; }
  .hero--content {
    position: relative;
    margin-top: 3.125rem; }
    .hero--content h1 {
      color: #fefefe;
      font-weight: 700;
      position: relative;
      margin: 0 auto;
      padding: 0.15em 0; }
    .hero--content h2 {
      color: #fefefe;
      font-weight: 700;
      position: relative;
      margin: 0 auto;
      padding: 0.15em 0; }
    .hero--content p {
      text-align: left;
      color: #fefefe;
      font-size: 1.35em; }
    .hero--content .btn--primary {
      margin-top: 2em; }
  .hero--image:before {
    position: absolute;
    z-index: 2;
    content: '';
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.25);
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 1%, rgba(0, 0, 0, 0.2) 26%, rgba(0, 0, 0, 0.2) 64%, rgba(0, 0, 0, 0.2) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fafafa', endColorstr='#d1d1d1', GradientType=0 ); }
  .hero--empty {
    height: 6.25rem;
    background-color: transparent;
    z-index: 200;
    position: relative; }

.colour--green .hero--empty {
  background-color: #9bbd1e; }

.colour--dark-blue .hero--empty {
  background-color: #5f737d; }

.colour--blue .hero--empty {
  background-color: #009cb8; }

.colour--orange .hero--empty {
  background-color: #ea5b0c; }

@media screen and (min-width: 64em) {
  .hero--content {
    text-align: left;
    margin-top: 1.875rem;
    position: absolute;
    top: 50%;
    left: 0;
    -webkit-transform: translate(0, -50%);
        -ms-transform: translate(0, -50%);
            transform: translate(0, -50%); }
    .hero--content h1 {
      padding: 0.15em 0;
      margin: 0 auto;
      line-height: 1;
      display: inline-block; }
  .hero--full .hero--content {
    max-width: 32.5rem; }
  .hero--empty {
    height: 4.6875rem; } }

@media screen and (min-width: 75em) {
  .hero--content {
    max-width: 100%; }
  .hero--full .hero--content {
    max-width: 45rem; } }

.hero--partial {
  height: 50vh; }
  .hero--partial::before {
    content: " ";
    display: block;
    width: 100%;
    height: 50vh;
    background-image: linear-gradient(90deg, rgba(145, 40, 141, 0.4) 0%, rgba(38, 34, 98, 0.5) 100%);
    position: relative;
    z-index: 2; }

.carousel {
  position: relative; }
  .carousel:not(.slick-initialized) .slide:not(:first-child) {
    display: none; }

.product-gallery, .gallery-carousel {
  width: 90%;
  margin: 1.75rem auto; }
  .product-gallery .slide.slick-slide, .gallery-carousel .slide.slick-slide {
    position: relative; }
  .product-gallery .gallery-caption, .gallery-carousel .gallery-caption {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    line-height: 1.6;
    text-align: center; }
    .product-gallery .gallery-caption p, .gallery-carousel .gallery-caption p {
      margin: 0;
      font-size: 0.875rem; }
  .product-gallery .image-slide, .gallery-carousel .image-slide {
    padding: 0;
    width: 100%; }
  .product-gallery img, .gallery-carousel img {
    height: auto;
    margin: auto; }
  .product-gallery .product-gallery.product-gallery-nav, .gallery-carousel .product-gallery.product-gallery-nav {
    margin: 0 1.875rem; }
    .product-gallery .product-gallery.product-gallery-nav img, .gallery-carousel .product-gallery.product-gallery-nav img {
      border: solid 0.3125rem #fefefe; }
    .product-gallery .product-gallery.product-gallery-nav .slick-slide, .gallery-carousel .product-gallery.product-gallery-nav .slick-slide {
      cursor: pointer; }
      .product-gallery .product-gallery.product-gallery-nav .slick-slide:focus, .gallery-carousel .product-gallery.product-gallery-nav .slick-slide:focus {
        outline: none; }
    .product-gallery .product-gallery.product-gallery-nav .slick-current img, .gallery-carousel .product-gallery.product-gallery-nav .slick-current img {
      border-color: #91288d; }
  .product-gallery .product-gallery.default-carousel .slick-dots, .gallery-carousel .product-gallery.default-carousel .slick-dots {
    bottom: 5%; }
  .product-gallery .slick-dots, .gallery-carousel .slick-dots {
    position: absolute; }
    .product-gallery .slick-dots li, .gallery-carousel .slick-dots li {
      display: inline-block;
      margin-right: 1rem;
      position: relative; }
      .product-gallery .slick-dots li:last-child, .gallery-carousel .slick-dots li:last-child {
        margin-right: 0; }
      .product-gallery .slick-dots li button, .gallery-carousel .slick-dots li button {
        text-indent: -6249.9375rem;
        padding: 0;
        width: 0.875rem;
        height: 0.875rem;
        border: solid 0.125rem #fefefe; }
      .product-gallery .slick-dots li:hover button, .product-gallery .slick-dots li:focus button, .product-gallery .slick-dots li:active button, .product-gallery .slick-dots li.slick-active button, .gallery-carousel .slick-dots li:hover button, .gallery-carousel .slick-dots li:focus button, .gallery-carousel .slick-dots li:active button, .gallery-carousel .slick-dots li.slick-active button {
        background-color: #fefefe; }
  .product-gallery .default-carousel .slick-dots, .gallery-carousel .default-carousel .slick-dots {
    display: none; }
  .product-gallery .slick-arrow, .gallery-carousel .slick-arrow {
    position: absolute;
    border-radius: 100%;
    width: 1.875rem;
    height: 1.875rem;
    padding: 0;
    border: 0;
    text-align: center;
    color: #91288d;
    cursor: pointer;
    z-index: 1;
    top: 50%;
    bottom: auto;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
        transform: translateY(-50%); }
    .product-gallery .slick-arrow.fa, .gallery-carousel .slick-arrow.fa {
      font-size: 1.875rem; }
    .product-gallery .slick-arrow.fa-angle-left, .gallery-carousel .slick-arrow.fa-angle-left {
      left: -1.875rem;
      padding-right: 0; }
    .product-gallery .slick-arrow.fa-angle-right, .gallery-carousel .slick-arrow.fa-angle-right {
      right: -1.875rem;
      padding-left: 0; }
  .product-gallery i[aria-disabled="true"], .gallery-carousel i[aria-disabled="true"] {
    color: #91288d;
    display: inline-block;
    /* For IE11/ MS Edge bug */
    pointer-events: none;
    text-decoration: none; }
  @media screen and (min-width: 40em) {
    .product-gallery .default-carousel .slick-dots, .gallery-carousel .default-carousel .slick-dots {
      bottom: 1.25rem;
      right: 1.5rem;
      text-align: right; }
      .product-gallery .default-carousel .slick-dots li, .gallery-carousel .default-carousel .slick-dots li {
        margin-right: 0.625rem; }
    .product-gallery .product-gallery, .product-gallery .gallery-carousel, .gallery-carousel .product-gallery, .gallery-carousel .gallery-carousel {
      width: 90%;
      margin: 1.75rem auto; }
      .product-gallery .product-gallery .gallery-caption, .product-gallery .gallery-carousel .gallery-caption, .gallery-carousel .product-gallery .gallery-caption, .gallery-carousel .gallery-carousel .gallery-caption {
        position: relative;
        z-index: 100;
        color: #91288d;
        padding: 1rem 1.5rem;
        text-align: center;
        font-size: 0.875rem; }
        .product-gallery .product-gallery .gallery-caption p, .product-gallery .gallery-carousel .gallery-caption p, .gallery-carousel .product-gallery .gallery-caption p, .gallery-carousel .gallery-carousel .gallery-caption p {
          margin: 0;
          font-size: 0.875rem; } }
  @media screen and (min-width: 64em) {
    .product-gallery .slick-dots, .gallery-carousel .slick-dots {
      right: 1.5rem; }
    .product-gallery .product-gallery, .product-gallery .gallery-carousel, .gallery-carousel .product-gallery, .gallery-carousel .gallery-carousel {
      width: 100%;
      margin: 1.75rem auto; } }
  @media screen and (min-width: 75em) {
    .product-gallery .slick-dots, .gallery-carousel .slick-dots {
      right: 1.75rem; }
    .product-gallery .product-gallery, .product-gallery .gallery-carousel, .gallery-carousel .product-gallery, .gallery-carousel .gallery-carousel {
      width: 100%;
      margin: 1.75rem auto; } }

.hero-carousel {
  position: relative; }
  .hero-carousel .hero--content {
    z-index: 20; }
  .hero-carousel .hero--cover {
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center; }
  .hero-carousel .carousel--background {
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    display: block;
    position: relative; }
    .hero-carousel .carousel--background img {
      position: absolute;
      left: 0;
      top: 0;
      object-fit: cover;
      width: 100%;
      height: 100%; }
  .hero-carousel .slick-dots {
    bottom: 2.5rem;
    right: 1.5rem;
    text-align: right; }

@media screen and (min-width: 40em) {
  .hero-carousel .slick-dots {
    right: 2rem; } }

@media screen and (min-width: 64em) {
  .hero-carousel .slick-dots {
    right: 3rem; } }

@media screen and (min-width: 75em) {
  .hero-carousel .slick-dots {
    right: 3.5rem; } }

.widget--landscape {
  overflow: hidden;
  position: relative;
  margin-bottom: 1.5rem;
  padding: 0 0.9375rem 1.5rem;
  text-align: center; }
  .widget--landscape .columns {
    padding: 0; }
  .widget--landscape .widget--content-grey {
    background-color: #eee; }
  .widget--landscape a h3, .widget--landscape a h4, .widget--landscape a h5, .widget--landscape a h6, .widget--landscape a li, .widget--landscape a p {
    color: #91288d;
    text-decoration: none; }
  .widget--landscape a p {
    color: #302f35; }
  .widget--landscape h3 {
    color: #91288d;
    font-weight: 400;
    letter-spacing: -1px;
    line-height: 1.15em; }
  .widget--landscape h4, .widget--landscape h5, .widget--landscape h6 {
    font-weight: 400; }
  .widget--landscape ul, .widget--landscape p {
    max-width: 50rem;
    margin-right: auto;
    margin-left: auto; }
  .widget--landscape ul {
    max-width: 60%;
    margin-bottom: 1.5rem; }
    .widget--landscape ul li {
      text-align: left;
      margin-bottom: 0.5rem;
      font-weight: 700;
      color: #91288d; }
  .widget--landscape .widget--title {
    color: #262262;
    position: relative;
    line-height: 1.1;
    text-transform: none;
    margin-bottom: 1.5rem; }
  .widget--landscape .widget--date {
    font-size: 1.0625rem;
    margin-top: -1.5rem; }
  .widget--landscape .btn {
    margin-top: 0.75rem; }
  .widget--landscape .widget--image {
    position: relative;
    overflow: hidden; }
    .widget--landscape .widget--image img {
      width: 100%; }
  .widget--landscape .widget--body {
    position: relative;
    background-color: #faf9ff; }
    .widget--landscape .widget--body:before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 10.4375rem;
      height: 0.5rem;
      display: block;
      z-index: 2;
      background-image: linear-gradient(90deg, #91288d 0%, #262262 100%);
      border-radius: 0 1em 0; }
    .widget--landscape .widget--body.colour--blue:before {
      background-color: #009cb8; }
    .widget--landscape .widget--body.colour--dark-blue:before {
      background-color: #009cb8; }
    .widget--landscape .widget--body.colour--orange:before {
      background-color: #ea5b0c; }
    .widget--landscape .widget--body.colour--green:before {
      background-color: #9bbd1e; }
    .widget--landscape .widget--body-inner {
      padding: 1.5rem 0.75rem;
      box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
      border-radius: 0.1875rem; }
      .widget--landscape .widget--body-inner p a, .widget--landscape .widget--body-inner li a {
        text-decoration: underline; }
        .widget--landscape .widget--body-inner p a:hover, .widget--landscape .widget--body-inner li a:hover {
          text-decoration: none; }

@media screen and (min-width: 40em) {
  .widget--landscape .widget--title {
    margin-bottom: 2rem; }
  .widget--landscape .widget--date {
    font-size: 1.0625rem;
    margin-top: -2rem; }
  .widget--landscape .btn {
    margin-top: 1rem; }
  .widget--landscape .widget--body-inner {
    padding: 2rem 1rem;
    border-bottom: 0.25em solid #91288d; } }

@media screen and (min-width: 64em) {
  .widget--landscape .widget--title {
    margin-bottom: 3rem; }
  .widget--landscape .widget--date {
    font-size: 1.125rem;
    margin-top: -3rem; }
  .widget--landscape .btn {
    margin-top: 1.5rem; }
  .widget--landscape .widget--body {
    margin-top: 1.375rem; }
    .widget--landscape .widget--body-inner {
      padding: 3rem 1.5rem; } }

@media screen and (min-width: 75em) {
  .widget--landscape .widget--title {
    margin-bottom: 3.5rem; }
  .widget--landscape .widget--date {
    margin-top: -3.5rem; }
  .widget--landscape .btn {
    margin-top: 1.75rem; }
  .widget--landscape .widget--body {
    margin-top: 2.75rem; }
    .widget--landscape .widget--body-inner {
      padding: 3.5rem 1.75rem; } }

.widget--landscape-expandable {
  overflow: hidden;
  position: relative;
  margin-bottom: 1.5rem;
  padding: 0 0.9375rem 1.5rem; }
  .widget--landscape-expandable .columns {
    padding: 0; }
  .widget--landscape-expandable .widget--content {
    background-color: #fefefe;
    overflow: hidden;
    text-align: center; }
  .widget--landscape-expandable h2, .widget--landscape-expandable h3 {
    color: #91288d;
    font-weight: 600;
    text-align: center; }
  .widget--landscape-expandable ul, .widget--landscape-expandable p {
    max-width: 50rem;
    margin-right: auto;
    margin-left: auto; }
  .widget--landscape-expandable ul {
    max-width: 60%; }
    .widget--landscape-expandable ul li {
      text-align: left;
      margin-bottom: 0.5rem; }
  .widget--landscape-expandable .widget--title {
    position: relative;
    margin-bottom: 1.5rem; }
  .widget--landscape-expandable .widget--image {
    position: relative;
    overflow: hidden; }
  .widget--landscape-expandable .widget--body-inner {
    padding: 1.5rem 0.75rem; }

.widget--inner-body-expandable {
  position: relative;
  height: 25rem;
  overflow: hidden;
  transition: height 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); }
  .widget--inner-body-expandable.expanded {
    height: auto; }

.widget--landscape-expandable-button {
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 10rem;
  text-align: center;
  padding: 1.5rem 0.5rem;
  z-index: 1;
  background-image: linear-gradient(to top, #fefefe 50%, rgba(254, 254, 254, 0.5) 100%); }
  .widget--landscape-expandable-button span {
    display: block; }
    .widget--landscape-expandable-button span:after {
      content: '';
      position: absolute;
      right: 0.5rem;
      top: 50%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      width: 0;
      height: 0;
      display: block;
      border-left: 0.375rem solid transparent;
      border-right: 0.375rem solid transparent;
      transition: width 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); }
    .widget--landscape-expandable-button span.more:after {
      border-top: 0.375rem solid #91288d; }
    .widget--landscape-expandable-button span.less:after {
      border-bottom: 0.375rem solid #91288d; }
  .widget--landscape-expandable-button:hover span {
    color: #262262; }
    .widget--landscape-expandable-button:hover span.more:after {
      border-top-color: #262262; }
    .widget--landscape-expandable-button:hover span.less:after {
      border-bottom-color: #262262; }
  .widget--landscape-expandable-button .less {
    display: none; }
  .widget--landscape-expandable-button.active {
    background-image: none; }
    .widget--landscape-expandable-button.active .less {
      display: inline-block; }
    .widget--landscape-expandable-button.active .more {
      display: none; }

@media screen and (min-width: 40em) {
  .widget--landscape-expandable {
    margin-bottom: 2rem; }
    .widget--landscape-expandable h2 {
      margin-bottom: 2rem; }
    .widget--landscape-expandable .widget--body-inner {
      padding: 2rem 1rem; } }

@media screen and (min-width: 64em) {
  .widget--landscape-expandable {
    margin-bottom: 3rem; }
    .widget--landscape-expandable h2 {
      margin-bottom: 3rem; }
    .widget--landscape-expandable .widget--body-inner {
      padding: 3rem 1.5rem; } }

@media screen and (min-width: 75em) {
  .widget--landscape-expandable {
    margin-bottom: 3.5rem; }
    .widget--landscape-expandable h2 {
      margin-bottom: 3.5rem; }
    .widget--landscape-expandable .widget--body-inner {
      padding: 3.5rem 1.75rem; } }

.widget--landscape-promo {
  overflow: hidden;
  position: relative;
  padding: 1.5rem;
  background-size: cover; }
  .widget--landscape-promo .widget--content {
    max-width: 75rem;
    margin-right: auto;
    margin-left: auto; }
  .widget--landscape-promo .widget--body {
    position: relative;
    text-align: center;
    background-color: #faf9ff;
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem; }
    .widget--landscape-promo .widget--body-inner {
      padding: 2rem 1rem; }
    .widget--landscape-promo .widget--body:before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 10.4375rem;
      height: 0.5rem;
      display: block;
      z-index: 2;
      background-image: linear-gradient(90deg, #91288d 0%, #262262 100%);
      border-radius: 0 1em 0; }
    .widget--landscape-promo .widget--body.colour--blue:before {
      background-color: #009cb8; }
    .widget--landscape-promo .widget--body.colour--dark-blue:before {
      background-color: #5f737d; }
    .widget--landscape-promo .widget--body.colour--orange:before {
      background-color: #ea5b0c; }
    .widget--landscape-promo .widget--body.colour--green:before {
      background-color: #9bbd1e; }
  .widget--landscape-promo .widget--title {
    color: #262262;
    position: relative;
    line-height: 1.1;
    margin-bottom: 1.5rem; }
  .widget--landscape-promo h3 {
    font-size: 1.35em;
    color: #91288d;
    font-weight: 600;
    margin: 1.25em 0 0; }
  .widget--landscape-promo p {
    padding: 1em 0;
    margin: 0; }
  .widget--landscape-promo .btn {
    margin-top: 0.75rem; }

@media screen and (min-width: 40em) {
  .widget--landscape-promo {
    padding: 2rem; }
    .widget--landscape-promo h2 {
      margin-bottom: 2rem; }
    .widget--landscape-promo .btn {
      margin-top: 1rem; }
    .widget--landscape-promo .widget--body-inner {
      padding: 2rem 1rem; } }

@media screen and (min-width: 64em) {
  .widget--landscape-promo {
    padding: 3rem; }
    .widget--landscape-promo h2 {
      margin-bottom: 3rem; }
    .widget--landscape-promo .btn {
      margin-top: 1.5rem; }
    .widget--landscape-promo .widget--body-inner {
      padding: 3rem 1.5rem; } }

@media screen and (min-width: 75em) {
  .widget--landscape-promo {
    padding: 3.5rem; }
    .widget--landscape-promo h2 {
      margin-bottom: 3.5rem; }
    .widget--landscape-promo .btn {
      margin-top: 1.75rem; }
    .widget--landscape-promo .widget--body-inner {
      padding: 3.5rem 1.75rem; } }

.row--introduction-post {
  margin-bottom: -8em; }

.widget--landscape-intro {
  position: relative;
  margin-bottom: 1.5rem;
  padding: 0 0.9375rem 1.5rem;
  text-align: center;
  z-index: 120;
  bottom: 4em; }
  .widget--landscape-intro .columns {
    padding: 0;
    float: none; }
  .widget--landscape-intro .widget--content {
    background-color: #faf9ff;
    position: relative;
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem; }
  .widget--landscape-intro h1, .widget--landscape-intro h2 {
    color: #91288d;
    font-weight: 300;
    font-size: 1.5rem; }
  .widget--landscape-intro ul, .widget--landscape-intro p {
    color: #302f35;
    margin-right: auto;
    margin-left: auto; }
  .widget--landscape-intro ul {
    margin-bottom: 1.5rem; }
    .widget--landscape-intro ul li {
      text-align: left;
      margin-bottom: 0.5rem;
      font-weight: 700;
      color: #91288d; }
  .widget--landscape-intro .widget--title {
    position: relative;
    margin-bottom: 1.5rem; }
  .widget--landscape-intro .btn {
    margin-top: 0.75rem; }
  .widget--landscape-intro .widget--body {
    position: relative;
    z-index: 10; }
    .widget--landscape-intro .widget--body-inner {
      padding: 1.5rem 1.5rem; }
      .widget--landscape-intro .widget--body-inner p a, .widget--landscape-intro .widget--body-inner li a {
        text-decoration: underline; }
        .widget--landscape-intro .widget--body-inner p a:hover, .widget--landscape-intro .widget--body-inner li a:hover {
          text-decoration: none; }

@media screen and (min-width: 40em) {
  .widget--landscape-intro {
    margin-bottom: 2rem; }
    .widget--landscape-intro h1, .widget--landscape-intro h2 {
      font-size: 2rem; }
    .widget--landscape-intro h3 {
      margin-bottom: 2rem; }
    .widget--landscape-intro .btn {
      margin-top: 1rem; }
    .widget--landscape-intro .widget--body-inner {
      padding: 2rem 2rem; } }

@media screen and (min-width: 64em) {
  .widget--landscape-intro {
    margin-bottom: 3rem; }
    .widget--landscape-intro h1, .widget--landscape-intro h2 {
      font-size: 2.25rem; }
    .widget--landscape-intro h3 {
      margin-bottom: 3rem; }
    .widget--landscape-intro li, .widget--landscape-intro p {
      font-size: 1rem; }
    .widget--landscape-intro .btn {
      margin-top: 1.5rem; }
    .widget--landscape-intro .widget--content:before {
      top: -2.125rem; }
    .widget--landscape-intro .widget--content:after {
      top: -4.25rem;
      width: 8.5625rem;
      height: 8.5625rem; }
    .widget--landscape-intro .widget--body-inner {
      padding: 3rem 3rem; } }

@media screen and (min-width: 75em) {
  .widget--landscape-intro {
    margin-bottom: 3.5rem; }
    .widget--landscape-intro h1, .widget--landscape-intro h2 {
      font-size: 2.5rem; }
    .widget--landscape-intro h3 {
      margin-bottom: 3.5rem; }
    .widget--landscape-intro .btn {
      margin-top: 1.75rem; }
    .widget--landscape-intro .widget--body-inner {
      padding: 3.5rem 3.5rem; } }

.widget--portrait {
  padding-bottom: 1.5rem;
  position: relative;
  margin-bottom: 1.5rem; }
  .widget--portrait .widget--content {
    text-align: center; }
  .widget--portrait .widget--title {
    position: relative;
    line-height: 1.1;
    text-transform: none;
    margin-bottom: 1.5rem; }
  .widget--portrait h3 {
    color: #262262;
    font-weight: 400;
    letter-spacing: -1px;
    margin-bottom: 0.1em; }
  .widget--portrait h4 {
    font-size: 1em; }
  .widget--portrait h4, .widget--portrait h5, .widget--portrait h6 {
    font-weight: 400; }
  .widget--portrait hr {
    height: 0.0625rem;
    border: none;
    background-color: #b0aeba;
    display: block;
    margin: 1.5rem -0.75rem; }
  .widget--portrait .btn {
    margin-top: 0.75rem; }
  .widget--portrait .widget--image {
    background-color: #cdcdcd;
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem;
    overflow: hidden; }
    .widget--portrait .widget--image img {
      width: 100%; }
  .widget--portrait .widget--body {
    position: relative;
    background-color: #faf9ff;
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem; }
    .widget--portrait .widget--body-inner {
      padding: 3rem 1.5rem;
      border-bottom: 0.25em solid #91288d;
      overflow: hidden; }
      .widget--portrait .widget--body-inner p a, .widget--portrait .widget--body-inner li a {
        text-decoration: underline; }
        .widget--portrait .widget--body-inner p a:hover, .widget--portrait .widget--body-inner li a:hover {
          text-decoration: none; }
    .widget--portrait .widget--body:before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 10.4375rem;
      height: 0.5rem;
      display: block;
      z-index: 2;
      background-image: linear-gradient(90deg, #91288d 0%, #262262 100%);
      border-radius: 0 1em 0; }
    .widget--portrait .widget--body a.widget--profile-email:after {
      background-color: #91288d; }
    .widget--portrait .widget--body.colour--blue:before {
      background-color: #009cb8; }
    .widget--portrait .widget--body.colour--blue hr, .widget--portrait .widget--body.colour--blue a.widget--profile-email:after {
      background-color: #009cb8; }
    .widget--portrait .widget--body.colour--dark-blue:before {
      background-color: #5f737d; }
    .widget--portrait .widget--body.colour--dark-blue hr, .widget--portrait .widget--body.colour--dark-blue a.widget--profile-email:after {
      background-color: #5f737d; }
    .widget--portrait .widget--body.colour--orange:before {
      background-color: #ea5b0c; }
    .widget--portrait .widget--body.colour--orange hr, .widget--portrait .widget--body.colour--orange a.widget--profile-email:after {
      background-color: #ea5b0c; }
    .widget--portrait .widget--body.colour--green:before {
      background-color: #9bbd1e; }
    .widget--portrait .widget--body.colour--green hr, .widget--portrait .widget--body.colour--green a.widget--profile-email:after {
      background-color: #9bbd1e; }
    .widget--portrait .widget--body-inner {
      padding: 1.5rem 0.75rem; }
  .widget--portrait .widget--image {
    position: relative;
    overflow: hidden; }

.widget--body-inner .button {
  margin: 0 auto; }

@media screen and (min-width: 40em) {
  .widget--portrait {
    margin-bottom: 2rem; }
    .widget--portrait h3 {
      margin-bottom: 0.1em; }
    .widget--portrait hr {
      margin: 1.5rem -1rem; }
    .widget--portrait .btn {
      margin-top: 1rem; }
    .widget--portrait .widget--body-inner {
      padding: 2rem 1rem; }
    .widget--portrait-white .widget--body-inner {
      padding-top: 0; } }

@media screen and (min-width: 64em) {
  .widget--portrait {
    margin-bottom: 3rem; }
    .widget--portrait h3 {
      margin-bottom: 0.1em; }
    .widget--portrait hr {
      margin: 1.5rem -1.5rem; }
    .widget--portrait .btn {
      margin-top: 1.5rem; }
    .widget--portrait .widget--body-inner {
      padding: 3rem 1.5rem 3rem; }
    .widget--portrait-white .widget--body-inner {
      padding-top: 0; }
  .large-6 .widget--portrait .widget--body {
    margin-left: 2rem;
    margin-right: 2rem; } }

@media screen and (min-width: 75em) {
  .widget--portrait {
    margin-bottom: 3.5rem; }
    .widget--portrait h3 {
      margin-bottom: 0.1em; }
    .widget--portrait hr {
      margin: 1.5rem -1.75rem; }
    .widget--portrait .btn {
      margin-top: 1.75rem; }
    .widget--portrait .widget--body-inner {
      padding: 3.5rem 1.75rem 3.5rem; }
    .widget--portrait-white .widget--body-inner {
      padding-top: 0; }
  .large-6 .widget--portrait .widget--body {
    margin-left: 2.33333rem;
    margin-right: 2.33333rem; } }

.widget-content {
  background-color: #faf9ff;
  position: relative;
  box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
  border-radius: 0.1875rem;
  padding: 2rem; }
  .widget-content h1, .widget-content h2 {
    color: #91288d;
    font-weight: 400; }
  .widget-content h3 {
    margin-bottom: 0.5rem; }
  .widget-content p, .widget-content li {
    color: #302f35; }

@media screen and (min-width: 64em) {
  .widget-content {
    padding: 4rem; } }

.widget--col-fluid {
  width: 100%; }

.widget--fluid-image {
  width: 100%; }
  .widget--fluid-image img {
    width: 100%; }

.widget--fluid-body {
  padding: 1% 2%; }

.widget--fluid_content {
  position: relative; }

@media screen and (min-width: 40em) {
  .widget--fluid-image {
    width: 25%; }
  .widget--fluid-body {
    width: 75%; } }

.widget--profile {
  background-color: #faf9ff;
  margin-bottom: 2rem;
  border-bottom: 0.25em solid #91288d; }
  .widget--profile .widget--body {
    padding: 1em 1em 2em;
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem;
    overflow: hidden; }
  .widget--profile .widget--profile-name {
    color: #262262;
    font-weight: 600; }
  .widget--profile .widget--profile-title {
    font-size: 1.1em;
    color: #262262;
    text-transform: none;
    font-weight: 600; }
  .widget--profile .widget--profile-company {
    font-size: 0.85em;
    color: #302f35;
    font-weight: 600; }
  .widget--profile .widget--profile-image {
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem;
    overflow: hidden; }
  .widget--profile .widget--profile-social {
    margin: 0;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .widget--profile .widget--profile-social li {
      display: inline-block;
      font-size: 1em;
      line-height: 0.5em;
      font-weight: 700;
      position: relative;
      margin-right: 1em; }
    .widget--profile .widget--profile-social .social--icon {
      display: inline-block;
      width: 1em;
      height: 1em;
      color: #91288d;
      border: solid 0.09em #91288d;
      border-radius: 50%;
      padding: 1em; }
      .widget--profile .widget--profile-social .social--icon:hover {
        color: #faf9ff;
        background-color: #91288d; }
  .widget--profile hr {
    width: 100%;
    height: 0.04063rem;
    display: block;
    margin: 2rem auto; }

/*
.widget--portrait {
  margin-bottom: rem-calc(32);

  .widget-image {
    margin-bottom: rem-calc(8);
    position: relative;

    img {
      width: 100%;
    }
  }
  // hr { Moved to _widget-portrait.scss
  //     width: 100%;
  //     height: rem-calc(1);
  //     background-color: $primary-color;
  //     display: block;
  //     margin: rem-calc(32) auto;
  // }
  .widget--profile-name {
    color: $primary-color;
    position: relative;
    line-height: 1.1;
    text-transform: uppercase;
    margin-bottom: rem-calc(6);
  }

  h4.widget--profile-title {
    font-size: rem-calc(18); // Fixed across all sizes
    margin-bottom: rem-calc(6);
  }

  h4.widget--profile-company {
    font-size: rem-calc(18); // Fixed across all sizes
    text-transform: uppercase;
    font-weight: 700;
  }

  .widget--body {
    background-color: $white;
    padding: rem-calc(32) rem-calc(40);
  }

  p {
    margin-bottom: rem-calc(28);

    &.widget--profile-phone {
      color: $primary-color;
      font-weight: 700;
      line-height: 1.4;
      margin-bottom: rem-calc(6);
    }
  }

  .widget--profile-content a {
    text-decoration: underline;

    &:hover {
      text-decoration: none;
    }
  }

  a.widget--profile-email {
    color: $primary-color;
    font-weight: 700;
    line-height: 1.4;
    position: relative;
    display: inline-block;

    &:after {
      content: '';
      margin-top: rem-calc(4);
      width: 100%;
      height: rem-calc(4);
      display: block;
      z-index: 2;
      transition: all 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
    }

    &:active,
    &:focus,
    &:hover {
      &:after {
        margin-top: rem-calc(1);
        margin-bottom: rem-calc(3);
      }
    }
  }

  .widget--profile-social {
    display: flex;
    justify-content: flex-end;

    li {
      border: rem-calc(1) solid $primary-color;
      border-radius: 50%;
      width: rem-calc(30);
      height: rem-calc(30);
      margin-left: rem-calc(8);
      position: relative;
      padding: rem-calc(24);
    }

    .fa {
      &.fa-linkedin,
      &.fa-twitter {
        color: $primary-color;
      }
    }
  }
}
*/
.widget--listing {
  overflow: hidden;
  position: relative;
  padding: 0 0.9375rem 1.5rem; }
  .widget--listing .columns {
    padding: 0; }
  .widget--listing h3 {
    font-weight: 700; }
  .widget--listing ul, .widget--listing p {
    max-width: 50rem;
    margin-right: auto;
    margin-left: auto; }
  .widget--listing ul {
    max-width: 60%; }
    .widget--listing ul li {
      text-align: left;
      margin-bottom: 0.5rem;
      font-weight: 700;
      color: #91288d; }
  .widget--listing-body {
    position: relative; }
    .widget--listing-body-inner {
      padding: 1.5rem 0.75rem; }
    .widget--listing-body-title {
      position: relative;
      color: #91288d; }
    .widget--listing-body-date {
      font-size: 1.15em;
      font-weight: 600;
      color: #262262;
      margin-top: -0.5rem; }
    .widget--listing-body-location {
      font-size: 0.9em;
      font-weight: 600;
      color: #262262;
      margin-top: -0.5rem;
      margin-bottom: 1.2em; }
    .widget--listing-body-summary p, .widget--listing-body-summary li {
      font-size: 0.875rem;
      margin-bottom: 1.2em; }
    .widget--listing-body .btn {
      margin: 0 auto; }
  .widget--listing-map {
    position: relative;
    overflow: hidden;
    background-color: #eee;
    /* fixes potential theme css conflict */ }
    .widget--listing-map .acf-map {
      width: 100%;
      height: 31.25rem;
      border: none; }
    .widget--listing-map .acf-map img {
      max-width: inherit !important; }

@media screen and (min-width: 40em) {
  .widget--listing-body-inner {
    padding: 2rem 1rem; } }

@media screen and (min-width: 64em) {
  .widget--listing-body-inner {
    padding: 3rem 1.5rem; } }

@media screen and (min-width: 75em) {
  .widget--listing-body-inner {
    padding: 3.5rem 1.75rem; } }

.widget--option {
  position: relative;
  overflow: hidden; }
  .widget--option.reveal {
    padding: 0;
    border: none;
    background-color: #91288d; }
  .widget--option-container {
    background: #91288d;
    padding: 1.5rem;
    text-align: center; }
    .widget--option-container h2, .widget--option-container h3, .widget--option-container p, .widget--option-container li {
      color: #fefefe; }
    .widget--option-container h2 {
      font-weight: 600; }
    .widget--option-container h3 {
      font-weight: 700; }
    .widget--option-container p.support-copy {
      font-size: 0.875rem;
      margin: 0 auto 1.5rem; }
    .widget--option-container li {
      text-align: left; }
    .widget--option-container .close-button {
      color: #fefefe;
      font-size: 1.5rem;
      right: 0.75rem;
      top: 0.75rem; }
      .widget--option-container .close-button:hover {
        cursor: pointer; }
  .widget--option-list li {
    margin-bottom: 0.1875rem; }
    .widget--option-list li span {
      display: block;
      font-weight: 400;
      font-size: 60%; }
    .widget--option-list li p {
      margin-bottom: 0; }
  .widget--option-list a {
    display: block;
    position: relative;
    background: #742071;
    padding: 0.75rem 1.5rem;
    padding-right: 3.75rem; }
    .widget--option-list a:after {
      color: #fefefe;
      position: absolute;
      right: 0;
      top: 50%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      font-family: 'FontAwesome';
      font-size: 2.5rem;
      content: '\f054';
      width: 2.5rem;
      height: 2.5rem;
      line-height: 2.5rem; }
    .widget--option-list a:hover {
      background: #91288d; }
  .widget--option span.status {
    display: none; }
  .widget--option-summary {
    text-align: left;
    position: relative;
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem; }
    .widget--option-summary-inner {
      background: #91288d;
      padding: 1.5rem;
      position: relative; }
    .widget--option-summary h3.section-title, .widget--option-summary p {
      color: #fefefe;
      padding-right: 3.75rem; }
    .widget--option-summary a.membtype_open {
      font-size: 0.875rem;
      color: #91288d;
      text-decoration: underline; }
      .widget--option-summary a.membtype_open:hover, .widget--option-summary a.membtype_open:focus, .widget--option-summary a.membtype_open:active {
        text-decoration: none; }
    .widget--option-summary span.w-status {
      width: 2.5rem;
      height: 2.5rem;
      line-height: 2.5rem;
      border-radius: 100%;
      display: block;
      background: #91288d;
      position: absolute;
      right: 1.5rem;
      top: 50%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      text-align: center;
      color: #91288d; }
      .widget--option-summary span.w-status i {
        position: absolute;
        top: 50%;
        display: block;
        font-size: 1.5rem;
        margin-left: 0.5rem;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

@media screen and (min-width: 40em) {
  .widget--option-container p.support-copy {
    font-size: 1rem;
    margin: 0 auto 2rem; }
  .widget--option-summary-inner {
    padding: 2rem; }
  .widget--option-summary h3.section-title {
    padding-right: 0; }
  .widget--option-summary p {
    padding-right: 5rem; }
  .widget--option-summary span.w-status {
    width: 3.4375rem;
    height: 3.4375rem;
    line-height: 3.4375rem;
    right: 2rem; }
    .widget--option-summary span.w-status i {
      font-size: 2rem;
      margin-left: 0.6875rem; } }

@media screen and (min-width: 64em) {
  .widget--option-list a:after {
    right: 0.75rem;
    font-size: 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    line-height: 2.5rem; }
  .widget--option-summary-inner {
    padding: 3rem; }
  .widget--option-summary p {
    padding-right: 6.25rem; }
  .widget--option-summary span.w-status {
    width: 4.375rem;
    height: 4.375rem;
    line-height: 4.375rem;
    right: 3rem; }
    .widget--option-summary span.w-status i {
      font-size: 2.5rem;
      margin-left: 0.9375rem; } }

@media screen and (min-width: 75em) {
  .widget--option-summary-inner {
    padding: 3.5rem; }
  .widget--option-summary span.w-status {
    right: 3.5rem; } }

.section-heading-wrapper {
  text-align: center;
  padding: 1.5rem 0.5rem 0;
  margin-bottom: -1.5rem; }
  .section-heading-wrapper--light {
    background-color: #e6e6e6; }
  .section-heading-wrapper.section--padded {
    padding-bottom: 1.5rem; }
  .section-heading-wrapper .section-heading {
    color: #91288d;
    font-weight: 300;
    text-align: center;
    position: relative;
    margin-bottom: 0.75rem;
    padding-top: 1.25rem;
    font-size: 1.5rem; }
    .section-heading-wrapper .section-heading:before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 4.75rem;
      height: 0.5rem;
      display: block;
      z-index: 2;
      background-image: linear-gradient(90deg, #91288d 0%, #262262 100%);
      border-radius: 0 1em 0; }
    .section-heading-wrapper .section-heading.colour--blue:before {
      background-color: #009cb8; }
    .section-heading-wrapper .section-heading.colour--dark-blue:before {
      background-color: #009cb8; }
    .section-heading-wrapper .section-heading.colour--orange:before {
      background-color: #ea5b0c; }
    .section-heading-wrapper .section-heading.colour--green:before {
      background-color: #9bbd1e; }

@media screen and (min-width: 40em) {
  .section-heading-wrapper {
    padding: 2rem 0 0;
    margin-bottom: -2rem; }
    .section-heading-wrapper.section--padded {
      padding-bottom: 2rem; }
    .section-heading-wrapper h2 {
      margin-bottom: 2rem; }
    .section-heading-wrapper .section-heading {
      font-size: 2rem; } }

@media screen and (min-width: 64em) {
  .section-heading-wrapper {
    padding: 3rem 0 0; }
    .section-heading-wrapper.section--padded {
      padding-bottom: 3rem; }
    .section-heading-wrapper h2 {
      margin-bottom: 3rem; }
    .section-heading-wrapper .section-heading {
      font-size: 2.25rem; } }

@media screen and (min-width: 75em) {
  .section-heading-wrapper {
    padding: 3.5rem 0 0; }
    .section-heading-wrapper.section--padded {
      padding-bottom: 3.5rem; }
    .section-heading-wrapper h2 {
      margin-bottom: 3.5rem; }
    .section-heading-wrapper .section-heading {
      font-size: 2.5rem; } }

.homepage-posts {
  margin-top: 30px; }

.post-container {
  margin: 0 auto;
  max-width: 62.5rem;
  position: relative;
  padding: 4rem 1rem;
  background-color: #faf9ff;
  box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25); }

.post-body .pg__item h2 {
  color: #91288d;
  position: relative;
  line-height: 1.1;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: -1px;
  font-size: 1.25rem;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 0.0625rem solid #5f737d; }

.post-body .pg__item h3 {
  color: #91288d;
  font-size: 1.1em; }

.post-body .pg__item h4, .post-body .pg__item h5, .post-body .pg__item h6 {
  color: #91288d;
  font-weight: 400; }

.post-body .pg__item ul, .post-body .pg__item p {
  color: #302f35;
  margin-right: auto;
  margin-left: auto; }

.post-body .pg__item ul {
  max-width: 60%;
  margin-bottom: 1.5rem; }
  .post-body .pg__item ul li {
    text-align: left;
    margin-bottom: 0.5rem;
    font-weight: 700;
    color: #91288d; }

.post-body hr {
  clear: both;
  border: 0;
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  height: 0;
  width: 100%;
  display: table; }

.post-body .responsive-embed {
  margin: auto;
  max-width: 56.25rem;
  padding-bottom: 60%; }

.post-body blockquote {
  padding: 2rem;
  margin-bottom: 0; }
  .post-body blockquote p {
    margin-bottom: 0; }

.post-body ul li {
  font-weight: bold;
  color: #000000; }

.pg h2, h3, h4 {
  color: #91288d;
  margin-bottom: 1em;
  font-weight: 300; }

.pg .row.row--fullwidth {
  padding-left: 0;
  padding-right: 0; }

.pg__item {
  width: 100%; }

.pg__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  width: 100%;
  padding-left: 0;
  padding-right: 0; }
  .pg__row:not(:first-child) {
    margin: 1rem 0; }

.pg .img-container {
  margin: 0 auto;
  display: table; }

.pg .wp-caption-text {
  display: table-caption;
  caption-side: bottom;
  margin-top: 0;
  color: #000000;
  padding: 1.1875rem 0.5rem 0;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  font-weight: 700;
  color: #383838; }
  .pg .wp-caption-text:before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translate(-50%);
        -ms-transform: translate(-50%);
            transform: translate(-50%);
    width: 10.4375rem;
    height: 0.5rem;
    display: block;
    z-index: 2;
    background-image: linear-gradient(90deg, #91288d 0%, #262262 100%);
    border-radius: 0 1em 0; }

.widget--written-date,
.widget--posted-date,
.widget--author-title,
.widget--opportunity-employer,
.widget--opportunity-date,
.widget--event-start-date,
.widget--event-location {
  margin-bottom: 0;
  color: #676767;
  font-size: 0.875rem; }

.post-meta-container {
  margin-bottom: 1rem;
  text-align: center; }
  .post-meta-container p {
    color: #676767;
    font-size: 0.875rem; }

.post--tags {
  margin: 2rem auto 0;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 0.8125rem;
  text-transform: uppercase;
  margin: 1.5rem auto; }
  .post--tags a {
    display: inline-block;
    padding: 0.125rem 0;
    margin-right: 0.5rem;
    border-bottom: 0.125rem solid #5f737d;
    color: #91288d;
    font-weight: 700;
    letter-spacing: -1px;
    margin-bottom: 0.5rem; }
    .post--tags a:hover {
      padding-bottom: 0; }

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .pg .img-container, .pg .wp-caption-text {
    display: block; } }

@media screen and (min-width: 40.625em) {
  .post-body img:first-of-type {
    margin-top: 0.5625rem; }
  .post-body .wp-caption:first-child {
    margin-top: 0.5625rem; }
  .post-body .wp-caption img {
    margin-top: 0;
    max-width: none; }
  .post-body .post-featured-image {
    min-width: 50%;
    margin-top: 0; }
    .post-body .post-featured-image img {
      margin-right: 0; }
  .pg .row.row--fullwidth {
    padding-left: 0;
    padding-right: 0; }
  .pg .img-container img {
    max-width: 100%; }
  .pg__item:not(.fullwidth) {
    width: 50%; }
  .pg__row:not(:first-child) {
    margin: 3rem 0; }
  .pg__row:not(.reverse) .pg__text:not(.fullwidth) {
    padding-left: 1rem; }
  .pg__row:not(.reverse) .pg__img {
    padding-right: 1rem; }
  .pg__row:not(.reverse) .img-container {
    margin-left: 0; }
  .pg__row.reverse {
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    .pg__row.reverse .pg__text:not(.fullwidth) {
      padding-right: 1rem; }
    .pg__row.reverse .pg__img {
      padding-left: 1rem; }
    .pg__row.reverse .img-container {
      margin-left: auto;
      margin-right: 0; } }

@media screen and (min-width: 40em) {
  .post-body .pg__item h2 {
    color: #91288d;
    font-size: 1.5rem;
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem; }
  .post-body .pg__item h3 {
    color: #91288d;
    font-size: 1.1em; }
  .pg .row.row--fullwidth {
    padding-left: 0;
    padding-right: 0; }
  .post-meta {
    padding-top: 1rem; } }

@media screen and (min-width: 64em) {
  .post-meta {
    padding-top: 1.5rem; }
  .post-published {
    float: left; }
  .post--tags {
    margin-top: 0;
    float: right;
    display: block;
    -webkit-justify-content: inherit;
        -ms-flex-pack: inherit;
            justify-content: inherit;
    -webkit-flex-wrap: inherit;
        -ms-flex-wrap: inherit;
            flex-wrap: inherit; }
  .post-body {
    padding-left: 3.75rem;
    padding-right: 3.75rem; }
    .post-body .pg__item h2 {
      color: #91288d;
      font-size: 1.75rem; }
    .post-body .pg__item h3 {
      color: #91288d;
      font-size: 1.1em; }
    .post-body .pg .row.row--fullwidth {
      padding-left: 0;
      padding-right: 0; }
    .post-body .post-featured-image img {
      max-height: none; } }

.post-meta-container {
  margin-bottom: 2rem; }

@media screen and (min-width: 75em) {
  .post-meta {
    padding-top: 1.75rem; }
  .post-body .pg__item h2 {
    color: #91288d;
    font-size: 1.75rem; }
  .post-body .pg__item h3 {
    color: #91288d;
    font-size: 1.1em; }
  .post-body ul:not([class]), .post-body ol:not([class]), .post-body .btn-wrapper, .post-body hr {
    margin-bottom: 2rem; }
  .pg .row.row--fullwidth {
    padding-left: 0;
    padding-right: 0; } }

.video-container {
  margin-bottom: 5rem; }

.youtube {
  background-color: #000;
  position: relative;
  padding-top: 56.25%;
  overflow: hidden;
  cursor: pointer; }
  .youtube img {
    width: 100%;
    top: -16.84%;
    left: 0;
    opacity: 0.7; }
  .youtube .play-button {
    width: 90px;
    height: 60px;
    background-color: #333;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
    z-index: 1;
    opacity: 0.8;
    border-radius: 6px; }
    .youtube .play-button:before {
      content: "";
      border-style: solid;
      border-width: 15px 0 15px 26.0px;
      border-color: transparent transparent transparent #fff; }
  .youtube img, .youtube .play-button {
    cursor: pointer; }
  .youtube img,
  .youtube iframe,
  .youtube .play-button,
  .youtube .play-button:before {
    position: absolute; }
  .youtube .play-button,
  .youtube .play-button:before {
    top: 50%;
    left: 50%;
    -webkit-transform: translate3d(-50%, -50%, 0);
            transform: translate3d(-50%, -50%, 0); }
  .youtube iframe {
    height: 100%;
    width: 100%;
    top: 0;
    left: 0; }

.signup-block {
  width: 100%;
  padding: 1.5rem 0.75rem;
  position: relative;
  background: #fefefe;
  border-top: solid 0.1875rem #91288d;
  text-align: center; }
  .signup-block:focus {
    outline: #91288d auto 5px; }
  .signup-block .form-title {
    padding-bottom: 0.25rem;
    display: inline-block;
    margin: 0 auto;
    color: #91288d;
    margin-bottom: 1.5rem; }
  .signup-block .columns {
    margin-bottom: 1rem; }
  .signup-block form.subscribe-form input, .signup-block form.subscribe-form button {
    margin-top: 0; }
  .signup-block form.subscribe-form input {
    height: 2.8125rem;
    font-size: 1rem;
    margin-bottom: 0;
    background: #eee;
    border: solid 0.05em #bbbbbb;
    border-radius: 0.25em; }
  .signup-block form.subscribe-form button {
    display: inline-block;
    width: 100%;
    height: 2.8125rem;
    background: transparent;
    color: #91288d;
    border: 0.125rem solid #91288d;
    padding: 0;
    margin-bottom: 0;
    cursor: pointer; }
    .signup-block form.subscribe-form button i {
      font-size: 1.125rem;
      color: #fefefe;
      margin-top: 0.25rem;
      margin-left: 0.1875rem; }
  .signup-block form.subscribe-form .form-actions {
    text-align: center;
    margin-top: 1.5rem; }
  .signup-block .fa-close {
    font-size: 1.5rem;
    position: absolute;
    top: 0.625rem;
    right: 0.625rem;
    cursor: pointer; }
  .signup-block .field-shift {
    left: -9999px;
    position: absolute; }

@media screen and (min-width: 40em) {
  .signup-block {
    padding: 2rem 1rem; }
    .signup-block .form-title {
      margin-bottom: 1rem; }
    .signup-block .form-actions {
      margin-top: 1rem; } }

@media screen and (min-width: 64em) {
  .signup-block {
    padding: 3rem 1.5rem; }
    .signup-block .form-title {
      margin-bottom: 1.5rem; }
    .signup-block .form-actions {
      margin-top: 1.5rem; } }

@media screen and (min-width: 75em) {
  .signup-block {
    padding: 3.5rem 1.75rem; }
    .signup-block .form-title {
      margin-bottom: 1.75rem; }
    .signup-block .form-actions {
      margin-top: 1.75rem; } }

.primary--footer {
  color: #b0aeba;
  background: #262262;
  overflow: hidden; }
  .primary--footer li {
    font-size: 0.75rem;
    font-weight: 700; }
  .primary--footer .footer--menus {
    border-top: solid 0.125rem #dad7e5;
    padding: 1.5rem 0; }
    .primary--footer .footer--menus ul, .primary--footer .footer--menus p {
      margin-bottom: 0; }
  .primary--footer .footer--copyright {
    text-align: center;
    margin-top: 1.5rem; }
    .primary--footer .footer--copyright p {
      font-size: 0.75rem;
      font-weight: 300;
      padding: 0 0.5rem; }
  .primary--footer .footer--tertiary {
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .primary--footer .footer--tertiary li {
      display: block;
      position: relative;
      padding: 0.5rem 0;
      text-align: center; }
      .primary--footer .footer--tertiary li a {
        color: #b0aeba; }
      .primary--footer .footer--tertiary li:last-child {
        padding-right: 0; }
  .primary--footer .sub-nav {
    margin: 0; }

.footer--menus-sitemap {
  text-align: center;
  margin-bottom: 2rem; }
  .footer--menus-sitemap li {
    margin-bottom: 1rem; }

@media screen and (min-width: 64em) {
  .primary--footer .footer--copyright {
    text-align: left;
    margin-top: 0; }
  .primary--footer .footer--tertiary li {
    padding: 0 0.5rem; }
  .primary--footer .footer--tertiary .sub-nav {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .footer--tertiary li:not(:last-child):after {
    content: '|';
    display: inline-block;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
        transform: translateY(-50%);
    right: -0.1875rem;
    color: #b0aeba; }
  .footer--copyright p {
    padding: 0; } }

@media screen and (min-width: 75em) {
  .primary--footer .footer--tertiary li {
    padding: 0 0.75rem; } }

@media screen and (min-width: 75em) {
  .primary--footer .footer--tertiary li {
    padding: 0 1.5rem; } }

.secondary--footer {
  color: #fefefe;
  background: #262262;
  position: relative;
  padding-top: 48px;
  box-shadow: 0 -0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25); }
  .secondary--footer .row--fullwidth {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem; }
  .secondary--footer .footer--info {
    text-align: center; }
  .secondary--footer .footer--info-name {
    color: #b0aeba;
    font-weight: 700; }
  .secondary--footer p {
    margin-bottom: 0.5rem;
    color: #b0aeba; }
    .secondary--footer p a {
      color: #b0aeba; }
  .secondary--footer .footer--social {
    margin: 1.5rem 0; }
  .secondary--footer .footer--social-menu {
    padding: 0; }
  .secondary--footer .footer--social-list {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .secondary--footer .footer--social-list li {
      display: inline-block;
      padding: 1rem; }
      .secondary--footer .footer--social-list li a {
        display: block;
        width: 2.625rem;
        height: 2.625rem;
        border-radius: 100%;
        background: transparent;
        text-align: center;
        margin: 0 auto;
        border: 0.09em solid #b0aeba; }
        .secondary--footer .footer--social-list li a i {
          font-size: 1.125rem;
          margin-top: 0.75rem;
          color: #b0aeba; }
          .secondary--footer .footer--social-list li a i.fa-google-plus {
            margin-top: 0.8125rem; }
        .secondary--footer .footer--social-list li a:hover {
          background: #b0aeba; }
          .secondary--footer .footer--social-list li a:hover i {
            color: #262262; }
  .secondary--footer .footer--partner-list {
    text-align: center; }
    .secondary--footer .footer--partner-list img {
      width: 7.5rem;
      height: 3.6875rem; }

@media screen and (min-width: 40em) {
  .secondary--footer .row--fullwidth {
    padding-top: 2rem;
    padding-bottom: 2rem; } }

@media screen and (min-width: 64em) {
  .secondary--footer .row--fullwidth {
    padding-top: 3rem;
    padding-bottom: 3rem; } }

@media screen and (min-width: 75em) {
  .secondary--footer .row--fullwidth {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem; } }

@media screen and (min-width: 64em) {
  .secondary--footer .footer--info-contact {
    display: inline-block; }
    .secondary--footer .footer--info-contact:not(:last-child) {
      margin-right: 0.5rem; }
    .secondary--footer .footer--info-contact strong {
      margin-right: 0.5rem; }
  .secondary--footer .footer--social-menu {
    float: right; }
  .secondary--footer .footer--social-list {
    float: left; }
    .secondary--footer .footer--social-list li {
      padding: 0.75rem; }
  .secondary--footer .footer--partner-list {
    margin-left: 1rem; }
  .secondary--footer .footer--info {
    text-align: left; } }

@media screen and (min-width: 75em) {
  .secondary--footer .footer--social-list li {
    padding: 1rem; } }

@media screen and (min-width: 90em) {
  .footer--partner-list {
    float: right;
    margin-left: 2rem; } }

.search--overlay {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(38, 34, 98, 0.95);
  -webkit-transform: translateY(150%);
      -ms-transform: translateY(150%);
          transform: translateY(150%);
  transition: -webkit-transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  z-index: 1000;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }
  .search--overlay form {
    text-align: center;
    width: 80%; }
    .search--overlay form input {
      max-width: 43.75rem; }
    .search--overlay form input[type="text"] {
      background-color: transparent;
      border-bottom: 0.0625rem solid #fefefe;
      padding: 2rem;
      border-top: 0;
      border-left: 0;
      border-right: 0;
      box-shadow: none;
      color: #faf9ff;
      margin: 0 auto 2rem;
      height: auto; }
      .search--overlay form input[type="text"]::-webkit-input-placeholder {
        color: #b0aeba; }
      .search--overlay form input[type="text"]:-ms-input-placeholder {
        color: #b0aeba; }
      .search--overlay form input[type="text"]::placeholder {
        color: #b0aeba; }
    .search--overlay form input[type="submit"] {
      height: auto;
      cursor: pointer;
      color: #b0aeba; }
      .search--overlay form input[type="submit"]:hover {
        color: #faf9ff; }
  .search--overlay .close--button {
    position: absolute;
    top: 5%;
    right: 5%;
    color: #b0aeba;
    font-size: 1.5rem; }
    .search--overlay .close--button:hover {
      cursor: pointer;
      color: #faf9ff; }
  .search--overlay-show {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0); }

.search--no-results {
  max-width: 37.5rem;
  margin: 0 auto; }

@media screen and (min-width: 64em) {
  .search--overlay form {
    width: 50%; } }

@media screen and (min-width: 75em) {
  .search--overlay form {
    width: 40%; } }

.share-container {
  position: absolute;
  z-index: 100; }

.share li {
  display: block;
  width: 4.125rem;
  height: 4.125rem;
  background-size: 100% 100%;
  position: relative; }
  .share li a {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 2.625rem;
    height: 2.625rem;
    margin: 0.75rem;
    border-radius: 100%;
    background: #fefefe;
    text-align: center; }
    .share li a span {
      font-size: 1.125rem;
      margin-top: 0.75rem;
      color: #91288d; }
    .share li a:hover span {
      color: #262262; }

.stacked-list {
  position: absolute;
  width: 4.125rem; }
  .stacked-list li {
    display: block;
    width: 4.125rem;
    height: 4.125rem;
    background-size: 100% 100%;
    position: relative;
    margin-bottom: 0.25rem; }
    .stacked-list li a {
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 2.625rem;
      height: 2.625rem;
      margin: 0.75rem;
      border-radius: 100%;
      background: #fefefe;
      text-align: center; }
      .stacked-list li a span {
        font-size: 1.125rem;
        margin-top: 0.75rem;
        color: #91288d; }
      .stacked-list li a:hover span {
        color: #262262; }

.share--mobile {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 1rem 0; }
  .share--mobile li {
    margin-right: 0.5rem; }

@media screen and (min-width: 64em) {
  .share--mobile {
    -webkit-justify-content: left;
        -ms-flex-pack: left;
            justify-content: left;
    width: 100%;
    margin: -1rem 0 3rem; } }

@media screen and (min-width: 75em) {
  .share-container {
    right: 0; } }

@media screen and (min-width: 90em) {
  .share-container {
    right: -6.625rem; } }

.widget--timeline {
  overflow: hidden;
  position: relative;
  margin: -6.25rem auto 1.5rem;
  padding: 1.25rem 0 12.5rem;
  text-align: center;
  max-width: 53.75rem;
  z-index: 20; }
  .widget--timeline:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    width: 0.625rem;
    height: 12.5rem;
    display: block;
    z-index: 1;
    background-image: linear-gradient(0deg, #91288d 0%, #262262 100%); }
  .widget--timeline a h3, .widget--timeline a h4, .widget--timeline a h5, .widget--timeline a h6, .widget--timeline a li, .widget--timeline a p {
    color: #91288d;
    text-decoration: none; }
  .widget--timeline a p {
    color: #302f35; }
  .widget--timeline h2 {
    color: #91288d;
    font-size: 2rem;
    font-weight: 400;
    letter-spacing: -1px;
    line-height: 1.15em; }
  .widget--timeline button {
    cursor: pointer; }
  .widget--timeline h2.widget--title {
    color: #91288d;
    position: relative;
    line-height: 1.1;
    text-transform: none;
    margin-bottom: 1.5rem; }
  .widget--timeline .widget--date {
    padding: 1rem;
    margin-bottom: 1.5rem;
    background: #e2e2e2;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    .widget--timeline .widget--date h3 {
      font-size: 1.0625rem;
      font-weight: 600;
      line-height: 1.1;
      margin-bottom: 0;
      color: #262262; }
    .widget--timeline .widget--date .widget-date__icon {
      display: inline-block;
      margin-right: 0.5em;
      width: 1.2em;
      vertical-align: middle; }
      .widget--timeline .widget--date .widget-date__icon svg {
        max-width: 100%; }
      .widget--timeline .widget--date .widget-date__icon path {
        fill: #262262; }
  .widget--timeline .widget--body {
    position: relative;
    z-index: 20;
    padding-top: 1.25rem;
    background-color: #faf9ff;
    box-shadow: 0 0.05em 0.5em 0.05em rgba(0, 0, 0, 0.25);
    border-radius: 0.1875rem; }
    .widget--timeline .widget--body:before {
      content: '';
      position: absolute;
      top: -1.25rem;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 2.5rem;
      height: 2.5rem;
      display: block;
      z-index: 2;
      border-radius: 50%;
      background-image: linear-gradient(0deg, #91288d 0%, #262262 100%); }
    .widget--timeline .widget--body:after {
      content: '';
      position: absolute;
      top: -0.625rem;
      left: 50%;
      -webkit-transform: translate(-50%);
          -ms-transform: translate(-50%);
              transform: translate(-50%);
      width: 1.25rem;
      height: 1.25rem;
      display: block;
      z-index: 10;
      border-radius: 50%;
      background: #fff; }
    .widget--timeline .widget--body-inner {
      padding: 1.5rem 0.75rem; }
      .widget--timeline .widget--body-inner p a, .widget--timeline .widget--body-inner li a {
        text-decoration: underline; }
        .widget--timeline .widget--body-inner p a:hover, .widget--timeline .widget--body-inner li a:hover {
          text-decoration: none; }

.timeline--modal {
  background-color: transparent;
  position: relative;
  overflow-y: visible;
  padding: 0;
  border: none; }
  .timeline--modal .widget--timeline {
    overflow: hidden;
    position: relative;
    margin: 0;
    padding: 1.25rem 0 0;
    max-width: inherit;
    z-index: 20; }
    .timeline--modal .widget--timeline:after {
      display: none; }
  .timeline--modal .close-button {
    width: 2.25rem;
    height: 2.25rem;
    display: block;
    z-index: 2;
    font-weight: 700;
    border-radius: 50%;
    color: #91288d;
    border: solid 1px #91288d; }

@media screen and (min-width: 40em) {
  .widget--timeline h2.widget--title {
    margin-bottom: 1rem; }
  .widget--timeline .widget--date {
    margin-right: -2rem;
    margin-left: -2rem; }
    .widget--timeline .widget--date h3 {
      font-size: 1.0625rem; }
  .widget--timeline .btn {
    margin-top: 1rem; }
  .widget--timeline .widget--body {
    border-bottom: 0.25em solid #91288d; }
    .widget--timeline .widget--body-inner {
      padding: 2rem 1rem; } }

@media screen and (min-width: 64em) {
  .widget--timeline h2.widget--title {
    margin-bottom: 1.5rem; }
  .widget--timeline .widget--date {
    margin-right: -3rem;
    margin-left: -3rem; }
    .widget--timeline .widget--date h3 {
      font-size: 1.125rem; }
  .widget--timeline .btn {
    margin-top: 1.5rem; }
  .widget--timeline .widget--body {
    margin-top: 1.375rem; }
    .widget--timeline .widget--body-inner {
      padding: 3rem 1.5rem; } }

@media screen and (min-width: 75em) {
  .widget--timeline h2.widget--title {
    margin-bottom: 1.75rem; }
  .widget--timeline .widget--date {
    margin-right: -3.5rem;
    margin-left: -3.5rem; }
  .widget--timeline .btn {
    margin-top: 1.75rem; }
  .widget--timeline .widget--body {
    margin-top: 2.75rem; }
    .widget--timeline .widget--body-inner {
      padding: 3.5rem 1.75rem; } }

#menu-site-map {
  list-style-type: none; }
  #menu-site-map > li {
    margin-bottom: 0.5rem;
    padding: 1rem 1.5rem;
    background-color: #eee; }
    #menu-site-map > li ul {
      margin-top: 1rem; }

#menu-site-map ul {
  list-style-type: none; }
  #menu-site-map ul li {
    padding: 1rem 1.5rem;
    background-color: #fefefe; }

#menu-site-map #sub-menu li {
  margin-bottom: 0.5rem; }
  #menu-site-map #sub-menu li:first-child {
    padding-top: 0; }

.cc-window {
  text-align: left;
  padding: 0.5rem; }
  .cc-window .cc-compliance {
    padding-left: 0.5rem;
    line-height: 1; }
  .cc-window .cc-header {
    width: 100%;
    display: block; }
  .cc-window .cc-message {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.5;
    display: block; }
  .cc-window .cc-link, .cc-window .cc-btn {
    display: block;
    margin-top: 0.5rem;
    width: 100%; }
  .cc-window .cc-btn {
    padding: 0.5rem;
    text-indent: -6249999.9375rem;
    width: 0.9375rem;
    height: 0.9375rem;
    background-image: url(../img/icons/close-button.svg);
    background-color: red;
    margin-left: 0;
    margin-right: 0;
    display: block;
    position: absolute;
    top: 2%;
    right: 2%;
    padding: 0.8em;
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: center; }
  .cc-window .cc-dismiss {
    cursor: pointer;
    padding: 0.8em; }
  .cc-window .cc-link {
    opacity: .7;
    font-size: 0.875rem; }
    .cc-window .cc-link:hover, .cc-window .cc-link:focus, .cc-window .cc-link:active {
      opacity: 1; }
  .cc-window .cc-message, .cc-window .cc-compliance {
    display: inline-block;
    vertical-align: middle; }

.cc-bottom {
  position: fixed;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  left: 50%;
  -webkit-transform: translate3d(-50%, 0, 0);
          transform: translate3d(-50%, 0, 0);
  bottom: 0;
  width: 100%;
  padding: 2rem;
  background-color: rgba(60, 60, 60, 0.9);
  z-index: 1000;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }

.cc-window {
  opacity: 1;
  transition: opacity 1s ease; }

.cc-window.cc-invisible {
  opacity: 0; }

/* only animate ifhas class 'cc-animate' */
.cc-animate.cc-revoke {
  transition: -webkit-transform 1s ease;
  transition: transform 1s ease;
  transition: transform 1s ease, -webkit-transform 1s ease; }

.cc-animate.cc-revoke.cc-top {
  -webkit-transform: translateY(-2em);
      -ms-transform: translateY(-2em);
          transform: translateY(-2em); }

.cc-animate.cc-revoke.cc-bottom {
  -webkit-transform: translateY(2em);
      -ms-transform: translateY(2em);
          transform: translateY(2em); }

.cc-animate.cc-revoke.cc-active.cc-top {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.cc-animate.cc-revoke.cc-active.cc-bottom {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.cc-revoke:hover {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

@media screen and (min-width: 64em) {
  .cc-bottom {
    right: 0%;
    max-width: 50%;
    left: auto;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }
  .cc-window .cc-button {
    right: 5%;
    top: 5%; } }

@media screen and (min-width: 64em) {
  .homepage .widget--landscape-intro .widget--content:before {
    -webkit-animation: bounce 2s infinite;
    animation: bounce 2s infinite;
    content: '';
    position: absolute;
    top: -0.0625rem;
    left: 50%;
    -webkit-transform: translate(-50%);
        -ms-transform: translate(-50%);
            transform: translate(-50%);
    width: 0;
    height: 0;
    display: block;
    border-left: 0.5rem solid transparent;
    border-right: 0.5rem solid transparent;
    border-top: 0.75rem solid #fefefe;
    z-index: 2; } }

@-webkit-keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translate(-50%, -30px);
            transform: translate(-50%, -30px); }
  40% {
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0); }
  60% {
    -webkit-transform: translate(-50%, -15px);
            transform: translate(-50%, -15px); } }

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    -webkit-transform: translate(-50%, -30px);
            transform: translate(-50%, -30px); }
  40% {
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0); }
  60% {
    -webkit-transform: translate(-50%, -15px);
            transform: translate(-50%, -15px); } }

.loader-container {
  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;
  position: fixed;
  height: 100vh;
  width: 100vw;
  background: white; }

@keyframes loader-eclipse {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  50% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-webkit-keyframes loader-eclipse {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  50% {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

.loader-eclipse {
  position: relative; }

.loader-eclipse {
  position: absolute;
  -webkit-animation: loader-eclipse 1s linear infinite;
  animation: loader-eclipse 1s linear infinite;
  width: 80px;
  height: 80px;
  top: 20px;
  left: 20px;
  border-radius: 50%;
  box-shadow: 0 4px 0 0 #00A19B;
  -webkit-transform-origin: 40px 41px;
  -ms-transform-origin: 40px 41px;
      transform-origin: 40px 41px; }

.loader-eclipse {
  width: 120px !important;
  height: 120px !important;
  -webkit-transform: translate(-100px, -100px) scale(1) translate(100px, 100px);
  -ms-transform: translate(-100px, -100px) scale(1) translate(100px, 100px);
      transform: translate(-100px, -100px) scale(1) translate(100px, 100px); }

.fadeOut {
  -webkit-animation: fadeOut 1000ms forwards;
          animation: fadeOut 1000ms forwards; }

@-webkit-keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }

@keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }

#advanced-search__form {
  padding-top: 1em;
  padding-bottom: 1em;
  text-align: center;
  background: #fff; }
  #advanced-search__form label {
    text-align: left; }
  #advanced-search__form button {
    display: inline-block;
    min-width: 10em;
    height: 2.8125rem;
    background: transparent;
    color: #91288d;
    border: 0.125rem solid #91288d;
    padding: 0;
    margin-bottom: 0;
    cursor: pointer; }
    #advanced-search__form button i {
      font-size: 1.125rem;
      color: #fefefe;
      margin-top: 0.25rem;
      margin-left: 0.1875rem; }

.advanced-search__categories {
  margin-bottom: 1em; }

.sas-filter__remove {
  display: inline-block;
  margin-right: 1em; }

#sas-pagination {
  margin-bottom: 1em; }
  #sas-pagination ul {
    margin: 0;
    list-style: none; }
  #sas-pagination li {
    display: inline-block; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192ZXJ0aWNhbC1yaHl0aG0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19zaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zbGlkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX2hpbmdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fYW5pbWF0aW9uLnNjc3MiLCJfc2xpY2stbGVnYWN5LnNjc3MiLCJfdXRpbGl0aWVzLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19yb3VuZGVkLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiY29tcG9uZW50cy9fY29udGFjdC1mb3JtLnNjc3MiLCJjb21wb25lbnRzL19ibG9ja3F1b3RlLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLXByaW1hcnkuc2NzcyIsImNvbXBvbmVudHMvX2hlcm8tc2Vjb25kYXJ5LnNjc3MiLCJjb21wb25lbnRzL19nYWxsZXJ5LWNhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLWNhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL193aWRnZXQtbGFuZHNjYXBlLnNjc3MiLCJjb21wb25lbnRzL193aWRnZXQtbGFuZHNjYXBlLWV4cGFuZGFibGUuc2NzcyIsImNvbXBvbmVudHMvX3dpZGdldC1sYW5kc2NhcGUtcHJvbW8uc2NzcyIsImNvbXBvbmVudHMvX3dpZGdldC1sYW5kc2NhcGUtaW50cm9kdWN0aW9uLnNjc3MiLCJjb21wb25lbnRzL193aWRnZXQtcG9ydHJhaXQuc2NzcyIsImNvbXBvbmVudHMvX3dpZGdldC1jb250ZW50LnNjc3MiLCJjb21wb25lbnRzL193aWRnZXQtZmx1aWQuc2NzcyIsImNvbXBvbmVudHMvX3dpZGdldC1wcm9maWxlLnNjc3MiLCJjb21wb25lbnRzL193aWRnZXQtbGlzdGluZy5zY3NzIiwiY29tcG9uZW50cy9fd2lkZ2V0LW9wdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fc2VjdGlvbi10aXRsZS5zY3NzIiwiY29tcG9uZW50cy9fcG9zdC5zY3NzIiwiY29tcG9uZW50cy9fdmlkZW8uc2NzcyIsImNvbXBvbmVudHMvX2Zvcm1zLXNpZ251cC5zY3NzIiwiY29tcG9uZW50cy9fZm9vdGVyLXByaW1hcnkuc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci1zZWNvbmRhcnkuc2NzcyIsImNvbXBvbmVudHMvX3NlYXJjaC5zY3NzIiwiY29tcG9uZW50cy9fc2hhcmUuc2NzcyIsImNvbXBvbmVudHMvX3RpbWVsaW5lLnNjc3MiLCJjb21wb25lbnRzL19zaXRlLW1hcC5zY3NzIiwiY29tcG9uZW50cy9fY29va2llLnNjc3MiLCJjb21wb25lbnRzL19oZXJvLWFycm93LnNjc3MiLCJjb21wb25lbnRzL19sb2FkZXIuc2NzcyIsIl9hZHZhbmNlZC1zZWFyY2guc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7O0dBS0c7QUM4Skc7RUN2SEo7SUFDRSxZQUFXO0lBQ1gsV0FBVTtJQUNWLGVBQWMsRUFDZixFQUFBOztBQ0hELGlFQUFpRTtBQUcvRDtvRkFDZ0Y7QUFFaEY7Ozs7O09BS0c7QUFFSDtFQUNFLHdCQzFDdUI7RUQwQ1MsT0FBTztFQVFyQyxrQkFBaUI7RUFBRSxPQUFPO0VBRTVCLDJCQUEwQjtFQUFFLE9BQU87RUFDbkMsK0JBQThCO0VBQUUsT0FBTyxF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QkFBa0I7RUFDbEIsZ0JBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsaUJBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSix1QkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixXQ2VxRCxFTDJFaEQ7O0FBSUM7RU03RkosbUJBQWtCO0VBQ2xCLFVBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsV0FIbUQsRU5xRzlDOztBQU1IO0VNOUVKLHVCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLGlCQ2VxRCxFTDJFaEQ7O0FBSUM7RU03RkosbUJBQWtCO0VBQ2xCLGdCQUhtRCxFTmlHOUM7O0FBRUQ7RU1qR0osbUJBQWtCO0VBQ2xCLGlCQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosaUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosaUJDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsZ0JBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsaUJBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSix1QkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixXQ2VxRCxFTDJFaEQ7O0FBSUM7RU03RkosbUJBQWtCO0VBQ2xCLFVBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsV0FIbUQsRU5xRzlDOztBQU1IO0VNOUVKLHVCRGJxRCxFTDZGaEQ7O0FBcEJEO0VJeEZKLGlCQ2VxRCxFTDJFaEQ7O0FBSUM7RU03RkosbUJBQWtCO0VBQ2xCLGdCQUhtRCxFTmlHOUM7O0FBRUQ7RU1qR0osbUJBQWtCO0VBQ2xCLGlCQUhtRCxFTnFHOUM7O0FBTUg7RU05RUosaUJEYnFELEVMNkZoRDs7QUFwQkQ7RUl4RkosaUJDZXFELEVMMkVoRDs7QUFJQztFTTdGSixtQkFBa0I7RUFDbEIsZ0JBSG1ELEVOaUc5Qzs7QUFFRDtFTWpHSixtQkFBa0I7RUFDbEIsaUJBSG1ELEVOcUc5Qzs7QUFNSDtFTTlFSix1QkRicUQsRUw2RmhEOztBQXBCRDtFSXhGSixZQ2VxRCxFTDJFaEQ7O0FBZ0JEO0VNOUVKLHVCRGJxRCxFTDZGaEQ7O0FBS0Q7RU96R0YsWVZrR3VEO0VVakd2RCxZQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZVmtFcUQsRVVqRXREOztBUHdFQztFT3pHRixZVmtHdUQ7RVVqR3ZELFdBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlWa0VxRCxFVWpFdEQ7O0FQd0VDO0VPekdGLFlWa0d1RDtFVWpHdkQsaUJBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlWa0VxRCxFVWpFdEQ7O0FQd0VDO0VPekdGLFlWa0d1RDtFVWpHdkQsV0FBdUIsRUFpQ3hCO0VQdUVHO0lPakZBLFlBQVcsRUFDWjtFUGdGQztJTzdFQSxZQUFXLEVBQ1o7RVA0RUM7SU96RUEsWVZrRXFELEVVakV0RDs7QVB3RUM7RU96R0YsWVZrR3VEO0VVakd2RCxXQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZVmtFcUQsRVVqRXREOztBUHdFQztFT3pHRixZVmtHdUQ7RVVqR3ZELGlCQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZVmtFcUQsRVVqRXREOztBUHdFQztFT3pHRixZVmtHdUQ7RVVqR3ZELGlCQUF1QixFQWlDeEI7RVB1RUc7SU9qRkEsWUFBVyxFQUNaO0VQZ0ZDO0lPN0VBLFlBQVcsRUFDWjtFUDRFQztJT3pFQSxZVmtFcUQsRVVqRXREOztBUHdFQztFT3pHRixZVmtHdUQ7RVVqR3ZELGFBQXVCLEVBaUN4QjtFUHVFRztJT2pGQSxZQUFXLEVBQ1o7RVBnRkM7SU83RUEsWUFBVyxFQUNaO0VQNEVDO0lPekVBLFlWa0VxRCxFVWpFdEQ7O0FQOEVEO0VHL0dBLGlCRHVFUztFQ3RFVCxnQkRzRVMsRUZ5Q3VDOztBQURoRDtFQUlJLGdCQUFlO0VBQ2YsZUFBYyxFQUNmOztBQUdIO0VBQ0UsZ0JBQWU7RUFDZixlQUFjLEVBQ2Y7O0FBRUQ7RUc3SEEsd0JBRnFDO0VBR3JDLHVCQUhxQyxFSGdJb0I7O0FBSXpEO0VNaklBLG1CQUFrQjtFQUNsQixrQkFBaUIsRU5rSWhCO0VNdklEO0lBQ0UsWUFBVztJQUNYLFlBQVcsRUFDWjs7QU51SUQ7OztFTTVIRixpQkFBZ0I7RUFDaEIsWVRzRnlEO0VTckZ6RCxnQkFBZTtFQUNmLGVBQWMsRU42SFg7O0FSRUM7RVE3REE7SUl4RkosZ0JDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixlQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGdCRGhCZ0MsRUxnRzNCO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosc0JEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixZQ2VxRCxFTDJFaEQ7RUFnQkQ7SU05RUosdUJEYnFELEVMNkZoRDtFQUtEO0lPekdGLFlWa0d1RDtJVWpHdkQsWUFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELGFBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVA4RUQ7SUcvR0EsaUJEdUVTO0lDdEVULGdCRHNFUyxFRnlDdUM7RUFEaEQ7SUFJSSxnQkFBZTtJQUNmLGVBQWMsRUFDZjtFQUdIO0lBQ0UsZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFFRDtJRzdIQSx5QkFGcUM7SUFHckMsd0JBSHFDLEVIZ0lvQjtFQUl6RDtJTWpJQSxtQkFBa0I7SUFDbEIsa0JBQWlCLEVOa0loQjtJTXZJRDtNQUNFLFlBQVc7TUFDWCxZQUFXLEVBQ1o7RU51SUQ7OztJTTVIRixpQkFBZ0I7SUFDaEIsWVRzRnlEO0lTckZ6RCxnQkFBZTtJQUNmLGVBQWMsRU42SFgsRUFBQTs7QVJFQztFUTdEQTtJSXhGSixnQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosZ0JEaEJnQyxFTGdHM0I7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixzQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFdDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsV0FIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGlCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFdDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsV0FIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGlCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFdDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixVQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsV0FIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGlCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLFlDZXFELEVMMkVoRDtFQWdCRDtJTTlFSix1QkRicUQsRUw2RmhEO0VBS0Q7SU96R0YsWVZrR3VEO0lVakd2RCxZQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsYUFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUDhFRDtJRy9HQSxpQkR1RVM7SUN0RVQsZ0JEc0VTLEVGeUN1QztFQURoRDtJQUlJLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBR0g7SUFDRSxnQkFBZTtJQUNmLGVBQWMsRUFDZjtFQUVEO0lHN0hBLHlCQUZxQztJQUdyQyx3QkFIcUMsRUhnSW9CO0VBSXpEO0lNaklBLG1CQUFrQjtJQUNsQixrQkFBaUIsRU5rSWhCO0lNdklEO01BQ0UsWUFBVztNQUNYLFlBQVcsRUFDWjtFTnVJRDs7O0lNNUhGLGlCQUFnQjtJQUNoQixZVHNGeUQ7SVNyRnpELGdCQUFlO0lBQ2YsZUFBYyxFTjZIWCxFQUFBOztBUk9DO0VRbEVBO0lJeEZKLGdCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixnQkRoQmdDLEVMZ0czQjtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHNCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosV0NlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLFVBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixXQUhtRCxFTnFHOUM7RUFNSDtJTTlFSix1QkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosaUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixpQkNlcUQsRUwyRWhEO0VBSUM7SU03RkosbUJBQWtCO0lBQ2xCLGdCQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsaUJBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosWUNlcUQsRUwyRWhEO0VBZ0JEO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFLRDtJT3pHRixZVmtHdUQ7SVVqR3ZELFlBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsV0FBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELGlCQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxhQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQOEVEO0lHL0dBLGlCRHVFUztJQ3RFVCxnQkRzRVMsRUZ5Q3VDO0VBRGhEO0lBSUksZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFHSDtJQUNFLGdCQUFlO0lBQ2YsZUFBYyxFQUNmO0VBRUQ7SUc3SEEseUJBRnFDO0lBR3JDLHdCQUhxQyxFSGdJb0I7RUFJekQ7SU1qSUEsbUJBQWtCO0lBQ2xCLGtCQUFpQixFTmtJaEI7SU12SUQ7TUFDRSxZQUFXO01BQ1gsWUFBVyxFQUNaO0VOdUlEOzs7SU01SEYsaUJBQWdCO0lBQ2hCLFlUc0Z5RDtJU3JGekQsZ0JBQWU7SUFDZixlQUFjLEVONkhYLEVBQUE7O0FST0M7RVFsRUE7SUl4RkosZ0JDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixlQUhtRCxFTmlHOUM7RUFFRDtJTWpHSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOcUc5QztFQU1IO0lNOUVKLGdCRGhCZ0MsRUxnRzNCO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosc0JEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixXQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsVUFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLFdBSG1ELEVOcUc5QztFQU1IO0lNOUVKLHVCRGJxRCxFTDZGaEQ7RUFwQkQ7SUl4RkosaUJDZXFELEVMMkVoRDtFQUlDO0lNN0ZKLG1CQUFrQjtJQUNsQixnQkFIbUQsRU5pRzlDO0VBRUQ7SU1qR0osbUJBQWtCO0lBQ2xCLGlCQUhtRCxFTnFHOUM7RUFNSDtJTTlFSixpQkRicUQsRUw2RmhEO0VBcEJEO0lJeEZKLGlCQ2VxRCxFTDJFaEQ7RUFJQztJTTdGSixtQkFBa0I7SUFDbEIsZ0JBSG1ELEVOaUc5QztFQUVEO0lNakdKLG1CQUFrQjtJQUNsQixpQkFIbUQsRU5xRzlDO0VBTUg7SU05RUosdUJEYnFELEVMNkZoRDtFQXBCRDtJSXhGSixZQ2VxRCxFTDJFaEQ7RUFnQkQ7SU05RUosdUJEYnFELEVMNkZoRDtFQUtEO0lPekdGLFlWa0d1RDtJVWpHdkQsWUFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELFdBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxXQUF1QixFQWlDeEI7SVB1RUc7TU9qRkEsWUFBVyxFQUNaO0lQZ0ZDO01PN0VBLFlBQVcsRUFDWjtJUDRFQztNT3pFQSxZVmtFcUQsRVVqRXREO0VQd0VDO0lPekdGLFlWa0d1RDtJVWpHdkQsaUJBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVB3RUM7SU96R0YsWVZrR3VEO0lVakd2RCxpQkFBdUIsRUFpQ3hCO0lQdUVHO01PakZBLFlBQVcsRUFDWjtJUGdGQztNTzdFQSxZQUFXLEVBQ1o7SVA0RUM7TU96RUEsWVZrRXFELEVVakV0RDtFUHdFQztJT3pHRixZVmtHdUQ7SVVqR3ZELGFBQXVCLEVBaUN4QjtJUHVFRztNT2pGQSxZQUFXLEVBQ1o7SVBnRkM7TU83RUEsWUFBVyxFQUNaO0lQNEVDO01PekVBLFlWa0VxRCxFVWpFdEQ7RVA4RUQ7SUcvR0EsaUJEdUVTO0lDdEVULGdCRHNFUyxFRnlDdUM7RUFEaEQ7SUFJSSxnQkFBZTtJQUNmLGVBQWMsRUFDZjtFQUdIO0lBQ0UsZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7RUFFRDtJRzdIQSx5QkFGcUM7SUFHckMsd0JBSHFDLEVIZ0lvQjtFQUl6RDtJTWpJQSxtQkFBa0I7SUFDbEIsa0JBQWlCLEVOa0loQjtJTXZJRDtNQUNFLFlBQVc7TUFDWCxZQUFXLEVBQ1o7RU51SUQ7OztJTTVIRixpQkFBZ0I7SUFDaEIsWVRzRnlEO0lTckZ6RCxnQkFBZTtJQUNmLGVBQWMsRU42SFgsRUFBQTs7QUFJSDtFRzFGRSx1QkRhcUQsRUYrRXREO0VHMUZDO0lBQ0UsaUJBQWdCLEVBQ2pCO0VYb0ZDO0lRRUo7TUcxRkUsd0JEYXFELEVGK0V0RDtNRzFGQztRQUNFLGlCQUFnQixFQUNqQixFQUFBOztBS2dMSDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRSxVQUFTO0VBQ1QsV0FBVSxFQUNYOztBQUdEO0VBQ0Usb0JWakYwQjtFVW1GMUIsbUJBQWtCO0VBQ2xCLGlCVnJGc0I7RVVzRnRCLG1DVnBGeUMsRVVxRjFDOztBQUdEOztFQUVFLG1CQUFrQjtFQUNsQixxQkFBb0IsRUFDckI7O0FBR0Q7O0VBRUUsa0JWekxxQjtFVTBMckIscUJBQW9CLEVBQ3JCOztBZGdEQztFYzVDQSxlVjNHaUI7RVU0R2pCLHFCQUFvQixFQUNyQjs7QUFHRDs7Ozs7O0VBTUUscUNWaE5zQztFVWlOdEMsbUJWL0pzQjtFVWdLdEIsb0JWN015QjtFVThNekIsZVYvSmtCO0VVZ0tsQixtQ1YzSHNDLEVVaUl2QztFQWhCRDs7Ozs7O0lBYUksZUFBYztJQUNkLGVWOU5lLEVVK05oQjs7QUFRRztFQUlJLGdCTnZQNkM7RU1tUTdDLGlCVjVMVztFVW9NWCxjQUFhO0VBT2Isc0JWMU1pQixFVTRNcEI7O0FBakNEO0VBSUksa0JOdlA2QztFTW1RN0MsaUJWNUxXO0VVb01YLGNBQWE7RUFPYixzQlYxTWlCLEVVNE1wQjs7QUFqQ0Q7RUFJSSxtQk52UDZDO0VNbVE3QyxpQlY1TFc7RVVvTVgsY0FBYTtFQU9iLHNCVjFNaUIsRVU0TXBCOztBQWpDRDtFQUlJLG9CTnZQNkM7RU1tUTdDLGlCVjVMVztFVW9NWCxjQUFhO0VBT2Isc0JWMU1pQixFVTRNcEI7O0FBakNEO0VBSUkscUJOdlA2QztFTW1RN0MsaUJWNUxXO0VVb01YLGNBQWE7RUFPYixzQlYxTWlCLEVVNE1wQjs7QUFqQ0Q7RUFJSSxnQk52UDZDO0VNbVE3QyxpQlY1TFc7RVVvTVgsY0FBYTtFQU9iLHNCVjFNaUIsRVU0TXBCOztBaEJ6TUg7RWdCd0tFO0lBSUksZ0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxnQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLGtCTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksb0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxxQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLGdCTnZQNkMsRU1vUmhELEVBQUE7O0FoQnpNSDtFZ0J3S0U7SUFJSSxvQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLG1CTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksbUJOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxtQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLG9CTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksZ0JOdlA2QyxFTW9SaEQsRUFBQTs7QWhCcE1IO0VnQm1LRTtJQUlJLG9CTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksa0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxvQk52UDZDLEVNb1JoRDtFQWpDRDtJQUlJLG1CTnZQNkMsRU1vUmhEO0VBakNEO0lBSUksb0JOdlA2QyxFTW9SaEQ7RUFqQ0Q7SUFJSSxnQk52UDZDLEVNb1JoRCxFQUFBOztBZG5HTDtFYzBHQSxxQkFBb0I7RUFDcEIsZVYzUlM7RVU0UlQsc0JWcEt5QjtFVXNLekIsZ0JBQWUsRUFhaEI7RUFsQkQ7SUFTSSxlVjNLMkQsRVUrSzVEO0VBYkg7SUFnQkksVUFBUyxFQUNWOztBZHZLRDtFYzRLQSxZQUFXO0VBRVgsaUJObFRxRDtFTW1UckQsVUFBUztFQUNULHFCVnZMeUI7RVV5THpCLGNBQWE7RUFDYixnQkFBZTtFQUNmLGlDVjVTaUI7RVU2U2pCLGVBQWMsRUFDZjs7QUFHRDs7O0VBR0Usb0JWak4wQjtFVWtOMUIsNkJWaE15QjtFVWlNekIsaUJWcE5zQixFVXFOdkI7O0FBR0Q7RUFDRSxtQkFBa0IsRUFDbkI7O0FBR0Q7RUFDRSxxQlYxTXNCO0VVMk10QixzQlY3TWtCLEVVOE1uQjs7QUFHRDtFQUNFLHFCVmhOc0IsRVVpTnZCOztBQUdEO0VBRUkscUJWck4yQjtFVXNOM0IsaUJBQWdCLEVBQ2pCOztBQUlIO0VBQ0Usb0JWM055QixFVWlPMUI7RUFQRDtJQUlJLHNCVjVOOEI7SVU2TjlCLGtCVjNVbUIsRVU0VXBCOztBQUlIO0VBQ0UsaUJWMVAwQjtFVTJQMUIsdUNOMVdxRDtFTTJXckQsK0JWL1ZpQixFVXFXbEI7RUFURDtJQU1JLGlCVmhRb0I7SVVpUXBCLGVWbFdhLEVVbVdkOztBQUlIO0VBQ0UsZUFBYztFQUNkLHFCTnRYcUQ7RU11WHJELGVWMVdlLEVVK1doQjtFQVJEO0lBTUksY1Y5TzZCLEVBQUE7O0FVbVBqQztFQUNFLGtDVmxYVztFVW1YWCxhQUFZO0VBQ1osc0JBQXFCLEVBQ3RCOztBZDdRQztFY2lSQSxVQUFTLEVBQ1Y7O0FBR0Q7RUFDRSxzQ041WXFEO0VNOFlyRCwwQlZsWWlCO0VVbVlqQix1QlZwWWE7RVVzWWIsNkRWNVVtRTtFVTZVbkUsb0JWM1h5QjtFVTRYekIsZVZyWVcsRVVzWVo7O0FBR0Q7RUFDRSxVQUFTO0VBQ1QsNEJOcFpTO0VNc1pULHVCVmhaYTtFVWtaYiw2RFZ4Vm1FO0VVeVZuRSxlVmhaVyxFVXFaWjs7QUM1Y0Q7RUFDRSxtQlhvTXlCO0VXbk16QixzQlhvTTRCO0VXbE01QixvQlg0RHlCO0VXM0R6QixpQlg2THNCO0VXNUx0QixlWGdEZSxFVy9DaEI7O0FBR0Q7RUFDRSxnQlhxTHFDO0VXcExyQyxpQlhxTGlCLEVXcExsQjs7QUFHRDtFQUNFLGtCWHNMbUI7RVdyTG5CLGVBQWMsRUFLZjtFQUhDO0lBQ0Usa0JBQWlCLEVBQ2xCOztBQUdIO0VBR0ksZUFBZ0M7RUFDaEMsaUJBQWdCLEVBQ2pCOztBQy9ESztFQUNFLGlCQVJlLEVBU2hCOztBQUZEO0VBQ0Usa0JBUnNCLEVBU3ZCOztBQUZEO0VBQ0UsbUJBUjhCLEVBUy9COztBQUZEO0VBQ0Usb0JBUnVDLEVBU3hDOztBbEJtSkw7RWtCMUpJO0lBQ0UsaUJBSGUsRUFJaEI7RUFGRDtJQUNFLGtCQUhzQixFQUl2QjtFQUZEO0lBQ0UsbUJBSDhCLEVBSS9CO0VBRkQ7SUFDRSxvQkFIdUMsRUFJeEMsRUFBQTs7QWxCd0pMO0VrQjFKSTtJQUNFLGlCQUhlLEVBSWhCO0VBRkQ7SUFDRSxrQkFIc0IsRUFJdkI7RUFGRDtJQUNFLG1CQUg4QixFQUkvQjtFQUZEO0lBQ0Usb0JBSHVDLEVBSXhDLEVBQUE7O0FsQjZKTDtFa0IvSkk7SUFDRSxpQkFIZSxFQUloQjtFQUZEO0lBQ0Usa0JBSHNCLEVBSXZCO0VBRkQ7SUFDRSxtQkFIOEIsRUFJL0I7RUFGRDtJQUNFLG9CQUh1QyxFQUl4QyxFQUFBOztBbEI2Skw7RWtCL0pJO0lBQ0UsaUJBSGUsRUFJaEI7RUFGRDtJQUNFLGtCQUhzQixFQUl2QjtFQUZEO0lBQ0UsbUJBSDhCLEVBSS9CO0VBRkQ7SUFDRSxvQkFIdUMsRUFJeEMsRUFBQTs7QUNFVDtFQUFrQix5QkFBd0IsRUFBSTs7QUFFOUM7RUFDRTtJQUVJLG1DQUFrQztJQUdwQyw0QkFBMkI7SUFFM0Isd0JBQXVCO0lBQ3ZCLDZCQUE0QixFQUM3QjtFQVpIO0lBY29CLDBCQUF5QixFQUFJO0VBQy9DO0lBQWtCLHlCQUF3QixFQUFJO0VBRTlDO0lBQXVCLDBCQUF5QixFQUFJO0VBQ3BEO0lBQXVCLHVDQUFzQyxFQUFJO0VBQ2pFO0lBQXVCLG9DQUFtQyxFQUFJO0VBQzlEO0lBQW9CLDhCQUE2QixFQUFJO0VBQ3JEO0lBQW9CLCtCQUE4QixFQUFJO0VBQ3REO0lBQW9CLCtCQUE4QixFQUFJO0VBR3REOztJQUNZLDJCQUEwQixFQUFHO0VBRXZDO0lBQWdCLDZCQUE0QixFQUFJO0VBSWxEOzs7SUFFcUIsWUFBVyxFQUFJO0VBR3BDO0lBQW9CLDhCQUE2QixFQUFJO0VBR3JEOztJQUVFLDBCYjhDYTtJYTdDYix5QkFBd0IsRUFDekI7RUFHRDtJQUFRLDRCQUEyQixFQUFJO0VBRXZDOztJQUNNLHlCQUF3QixFQUFJO0VqQmdWbEM7SWlCOVVNLDJCQUEwQixFQUFJO0VBRXBDO0lBQVEsY0FBYSxFQUFBO0VBRXJCOzs7SUFHRSxXQUFVO0lBQ1YsVUFBUyxFQUNWO0VBR0Q7O0lBQ0ssd0JBQXVCLEVBQUk7RUFHaEM7SUFDRSx3QkFBdUIsRUFDeEIsRUFBQTs7QUNrTEg7RUFoTEEsc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUN0QixtQmR5T2tDO0VjeE9sQyxxQmRzTzBCO0VjNU54QixvQmQ2TnVCO0VjMU56Qix5QkFBd0I7RUFDeEIsOEJBQTZCO0VBQzdCLGlCZFVlO0VjVGYsa0VkME91RTtFY3hPdkUsa0JkaU9lO0VjaE9mLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIsZ0JBQWU7RUFxQ2YsMEJkMUUwQjtFYzJFMUIsZWQ1Q2EsRWNrUlo7RXRCNHFERDtJUzMxREUsV0FBVSxFQUNYO0VhdEREO0lBQ0UsMEJkNkt1RTtJYzVLdkUsZWRoRFcsRWNpRFo7RUE2R0Q7SUFNTSxrQmQ4RE0sRWM3RFA7RUFQTDtJQU1NLG1CZCtEUSxFYzlEVDtFQVBMO0lBTU0sbUJkaUVRLEVjaEVUO0VBUEw7SUFqSkUsZUFBYztJQUNkLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGVBQWMsRUF3SnlCO0VBVnpDO0lBbkhBLDBCZDFFMEI7SWMyRTFCLGVkNUNhLEVjK0tOO0lBaklQO01BQ0UsMEJBUG9GO01BUXBGLGVkaERXLEVjaURaO0VBNkdEO0lBbkhBLDBCZHpFMEI7SWMwRTFCLGVkNUNhLEVjK0tOO0lBaklQO01BQ0UsMEJBUG9GO01BUXBGLGVkaERXLEVjaURaO0VBNkdEO0lBbkhBLDBCZHhFZ0I7SWN5RWhCLGVkN0NhLEVjZ0xOO0lBaklQO01BQ0UsMEJBUG9GO01BUXBGLGVkakRXLEVja0RaO0VBNkdEO0lBbkhBLDBCZHZFZ0I7SWN3RWhCLGVkN0NhLEVjZ0xOO0lBaklQO01BQ0UsMEJBUG9GO01BUXBGLGVkakRXLEVja0RaO0VBNkdEO0lBbkhBLDBCZHRFYztJY3VFZCxlZDdDYSxFY2dMTjtJQWpJUDtNQUNFLDBCQVBvRjtNQVFwRixlZGpEVyxFY2tEWjtFQTZHRDtJQTFEQSxjZG9JNEI7SWNuSTVCLG9CQUFtQixFQWlHaEI7SUEvRkg7TUFDRSwwQmR2SXdCO01jd0l4QixlZHpHVyxFYzBHWjtJQW9ERDtNQTFEQSxjZG9JNEI7TWNuSTVCLG9CQUFtQixFQStGWjtNQTdGUDtRQUNFLDBCZHZJd0I7UWN3SXhCLGVkekdXLEVjMEdaO0lBb0REO01BMURBLGNkb0k0QjtNY25JNUIsb0JBQW1CLEVBK0ZaO01BN0ZQO1FBQ0UsMEJkdEl3QjtRY3VJeEIsZWR6R1csRWMwR1o7SUFvREQ7TUExREEsY2RvSTRCO01jbkk1QixvQkFBbUIsRUErRlo7TUE3RlA7UUFDRSwwQmRySWM7UWNzSWQsZWQxR1csRWMyR1o7SUFvREQ7TUExREEsY2RvSTRCO01jbkk1QixvQkFBbUIsRUErRlo7TUE3RlA7UUFDRSwwQmRwSWM7UWNxSWQsZWQxR1csRWMyR1o7SUFvREQ7TUExREEsY2RvSTRCO01jbkk1QixvQkFBbUIsRUErRlo7TUE3RlA7UUFDRSwwQmRuSVk7UWNvSVosZWQxR1csRWMyR1o7RUFvREQ7SUFuRkEsMEJkMUcwQjtJYzJHMUIsZWQzRzBCLEVja1ByQjtJQTdKTDtNQUVFLDhCQUE2QixFQUM5QjtJQUlDO01BRUUsOEJBQTZCLEVBQzlCO0lBY0g7TUFDRSxzQkFONkQ7TUFPN0QsZUFQNkQsRUFhOUQ7TUFMQztRQUVFLDBCZGxIc0I7UWNtSHRCLGVkbkhzQixFY29IdkI7SUF5RUg7TUFuRkEsMEJkMUcwQjtNYzJHMUIsZWQzRzBCLEVjZ1BqQjtNQW5JVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJkbEhzQjtVY21IdEIsZWRuSHNCLEVjb0h2QjtJQXlFSDtNQW5GQSwwQmR6RzBCO01jMEcxQixlZDFHMEIsRWMrT2pCO01BbklUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmRqSHNCO1Vja0h0QixlZGxIc0IsRWNtSHZCO0lBeUVIO01BbkZBLDBCZHhHZ0I7TWN5R2hCLGVkekdnQixFYzhPUDtNQW5JVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJkaEhZO1VjaUhaLGVkakhZLEVja0hiO0lBeUVIO01BbkZBLDBCZHZHZ0I7TWN3R2hCLGVkeEdnQixFYzZPUDtNQW5JVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJkL0dZO1VjZ0haLGVkaEhZLEVjaUhiO0lBeUVIO01BbkZBLDBCZHRHYztNY3VHZCxlZHZHYyxFYzRPTDtNQW5JVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJkOUdVO1VjK0dWLGVkL0dVLEVjZ0hYO0VBeUVIO0lBbkZBLDBCZDFHMEI7SWMyRzFCLGVkM0cwQixFYytRckI7SUExTEw7TUFFRSw4QkFBNkIsRUFDOUI7SUFJQztNQUVFLDhCQUE2QixFQUM5QjtJQWNIO01BQ0Usc0JBTjZEO01BTzdELGVBUDZELEVBYTlEO01BTEM7UUFFRSwwQmRsSHNCO1FjbUh0QixlZG5Ic0IsRWNvSHZCO0lBeUVIO01BZ0VVLDBCQUF5QixFQUMxQjtJQWpFVDtNQW5GQSwwQmQxRzBCO01jMkcxQixlZDNHMEIsRWM2UWpCO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmRsSHNCO1VjbUh0QixlZG5Ic0IsRWNvSHZCO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtJQTlFYjtNQW5GQSwwQmR6RzBCO01jMEcxQixlZDFHMEIsRWM0UWpCO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmRqSHNCO1Vja0h0QixlZGxIc0IsRWNtSHZCO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtJQTlFYjtNQW5GQSwwQmR4R2dCO01jeUdoQixlZHpHZ0IsRWMyUVA7TUFoS1Q7UUFDRSxzQkFONkQ7UUFPN0QsZUFQNkQsRUFhOUQ7UUFMQztVQUVFLDBCZGhIWTtVY2lIWixlZGpIWSxFY2tIYjtNQXlFSDtRQTZFYywwQkFBeUIsRUFDMUI7SUE5RWI7TUFuRkEsMEJkdkdnQjtNY3dHaEIsZWR4R2dCLEVjMFFQO01BaEtUO1FBQ0Usc0JBTjZEO1FBTzdELGVBUDZELEVBYTlEO1FBTEM7VUFFRSwwQmQvR1k7VWNnSFosZWRoSFksRWNpSGI7TUF5RUg7UUE2RWMsMEJBQXlCLEVBQzFCO0lBOUViO01BbkZBLDBCZHRHYztNY3VHZCxlZHZHYyxFY3lRTDtNQWhLVDtRQUNFLHNCQU42RDtRQU83RCxlQVA2RCxFQWE5RDtRQUxDO1VBRUUsMEJkOUdVO1VjK0dWLGVkL0dVLEVjZ0hYO01BeUVIO1FBNkVjLDBCQUF5QixFQUMxQjtFQXRIYjtJYm5MQSxlQUFjO0lBQ2QsU0FBUTtJQUNSLFVBQVM7SUFFVCxvQmEyS1k7SWJ6S1osWUFBVztJQUdULHVCQUFzQjtJQUN0Qix3QkFBdUI7SUFDdkIsOENBQXFEO0lhMEtyRCxtQkFBa0I7SUFDbEIsV0FBVTtJQUVWLHNCQUFxQjtJQUNyQixhQUFPO0lBQ1AsaUJkMkZ1QixFYzFGeEI7RUFnQ0Q7SUFpR1EsMEJkOVJrQixFYytSbkI7RUFsR1A7SUF1R1ksMEJkcFNjLEVjcVNmO0VBeEdYO0lBdUdZLDBCZG5TYyxFY29TZjtFQXhHWDtJQXVHWSwwQmRsU0ksRWNtU0w7RUF4R1g7SUF1R1ksMEJkalNJLEVja1NMO0VBeEdYO0lBdUdZLDBCZGhTRSxFY2lTSDtFQXhHWDtJQWdISSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWdDLEVBQ2pDOztBQUVIO0VBR0ksc0JBQXFCLEVBQ3RCOztBdEIyNURMOztFdUJsc0VFLGVBQWM7RUFDZCx1QkFBc0I7RUFDdEIsWUFBVztFQUNYLGtCQUxzSjtFQU10SixpQlhIdUQ7RVdJdkQsZ0Jma1krQjtFZWhZL0IsMEJmTW1CO0VlTG5CLGlCZmtCZTtFZWpCZiwwQmZPYTtFZU5iLCtDZkthO0VlSGIscUJma1h5QjtFZWpYekIsZ0JYWnVEO0VXYXZELG9CZlUyQjtFZVQzQixpQmZKcUI7RWVLckIsZWZEYTtFZUlYLDREZndYOEQ7RWVuVzlELHlCQUFnQjtLQUFoQixzQkFBZ0I7VUFBaEIsaUJBQWdCLEVBQ2pCO0V2QjRxRUQ7O0l1QjdyRUUsY0FBYTtJQUNiLDBCZlhlO0llWWYsMEJmVlc7SWVXWCw0QmZkaUI7SWVpQmYsNERmNlc0RCxFZTNXL0Q7O0FuQnFkQztFbUJ4Y0EsZ0JBQWUsRUFLaEI7RUFORDtJQUlJLGFBQVksRUFDYjs7QUFHSDs7RUFJSSxlZjNDZSxFZTRDaEI7O0FBTEg7O0VBSUksZWYzQ2UsRWU0Q2hCOztBQUxIOztFQUlJLGVmM0NlLEVlNENoQjs7QUFMSDs7O0VBVUksdUJmbERXO0VlbURYLG9CZjJVNkIsRWUxVTlCOztBdkI0cUVMOztFdUJ0cUVJLHlCQUFnQjtLQUFoQixzQkFBZ0I7VUFBaEIsaUJBQWdCO0VBQ2hCLGlCZjdDYSxFZThDZDs7QUFHRDtFQUNFLHVCQUFzQixFQUN2Qjs7QXZCdXFFSDs7O0V3Qi96RUksaUJaNEVxRCxFWTNFdEQ7O0F4Qm0wRUg7O0V3Qjl6RUksc0JBQXFCO0VBQ3JCLHlCQUF3QjtFQUV4QixvQkFBa0Q7RUFDbEQsbUJaa0VxRDtFWWpFckQsaUJBQWdCLEVBS2pCO0V4QjJ6RUQ7O0l3Qjd6RUksZ0JBQWUsRUFDaEI7O0FBSUg7O0VBRUUscUJBQW1ELEVBQ3BEOztBeEI2ekVIO0V3Qnp6RUksWUFBVyxFQUNaOztBQ0dEO0VBakJBLGVBQWM7RUFDZCxVQUFTO0VBRVQsb0JiNER1RDtFYTNEdkQsb0JqQmtGMkI7RWlCakYzQixpQmpCaWIwQjtFaUJoYjFCLGVqQnVFYSxFaUJ0RFo7RUFORDtJQUxBLGlCYm1EdUQ7SWFsRHZELHFCQUE4RCxFQVMzRDs7QUMxQkg7RUFHRSxvQkFGdUM7RUFHdkMscUJkK0RxRDtFYzlEckQsbUJsQjZhd0I7RWtCNWF4QixlbEIyRVcsRWtCMUVaOztBQ0ZEO0VBQ0Usc0JBQWlDO0VBQWpDLHFCQUFpQztFQUFqQyxjQUFpQztFQUNqQyxZQUFXO0VBQ1gsb0JmMkRxRDtFZXhEbkQsNkJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixxQkFBb0IsRUFZdkI7RUFsQkQ7SUFVSSx1Qm5CNkVXLEVtQjVFWjtFQVhIO0lBZU0sdUJBQWlILEVBQ2xIOztBQUlMOzs7O0VBQ0UsVUFBUztFQUNULG9CQUFtQixFQU1wQjs7QUFFRDtFQUVFLGdCbkJpWnVCO0VtQmhadkIsMEJuQnlDaUI7RW1CeENqQixpQm5CdUNhO0VtQnJDYixlbkJ3Q1c7RW1CdkNYLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFHakIsc0JBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYix1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztFQUNkLDRCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CLEVBZ0J0QjtFQTdCRDtJQXNCTSxnQkFBaUMsRUFDbEM7RUF2Qkw7SUEwQk0sZUFBZ0MsRUFDakM7O0FBSUw7RUFFRSxpQkFBZ0I7RUFHZCxzQkFBYTtNQUFiLGtCQUFhO1VBQWIsY0FBYTtFQUNiLGFBQVk7RUFDWixhQUFZLEVBS2Y7O0FBRUQ7RUFFRSxlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUdoQixzQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLHVCQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjLEVBd0JqQjtFQWhDRDs7OztJQXNCTSxhQUFZO0lBQ1osNEJBQW1CO1FBQW5CLDZCQUFtQjtnQkFBbkIsNEJBQW1CO1lBQW5CLG9CQUFtQjtJQUtyQixlQUFjO0lBQ2Qsa0JBQWlCO0lBQ2pCLGdCZjNDbUQsRWU0Q3BEOztBdkJvYUQ7RXdCamdCQSxVQUFTO0VBQ1QsV0FBVTtFQUNWLFVBQVMsRUFDVjs7QXhCMmdCQztFd0J4Z0JBLGdCQUFlO0VBQ2Ysc0JBQWtDLEVBQ25DOztBQUVEO0VBeEJBLG1CaEJvRVc7RWdCbkVYLGlCaEI4RHVEO0VnQjdEdkQsMEJwQnlFbUIsRW9CakRsQjtFQXRCRDtJQUVFLFVBQVM7SUFDVCx3QmhCd0RxRDtJZ0J2RHJELHFCaEJ1RHFELEVnQnREdEQ7O0FyQjZKRDtFc0J4S0Esa0JBRnNKO0VBR3RKLGlCakJnRXVEO0VpQi9EdkQsZ0JyQnFjK0I7RXFCbmMvQix5QkFBZ0I7S0FBaEIsc0JBQWdCO1VBQWhCLGlCQUFnQjtFQUNoQiwwQnJCd0VtQjtFcUJ2RW5CLGlCckJvRmU7RXFCbkZmLDBCckJ5RWE7RXFCdkViLHFCckJxYnlCO0VxQnBiekIsZ0JqQnVEdUQ7RWlCdER2RCxvQnJCNkUyQjtFcUI1RTNCLGlCckIrRHFCO0VxQjlEckIsZXJCa0VhO0VDZ0RiLHNPQUF5TjtFb0I5R3ZOLCtCQUE4QjtFQUM5Qix3Q0FBMEQ7RUFDMUQsNkJBQTRCO0VBQzVCLHlCQUF3QjtFQUV4QixzQkFBdUQ7RUFJdkQsNERyQmliOEQsRXFCOVkvRDtFcEJvRUQ7SUZ1Q0E7TUVwQ0ksd1dBQXVXLEVvQnZFMVcsRUFBQTtFQS9CRDtJQUNFLGNBQWE7SUFDYiwwQnJCOENlO0lxQjdDZiwwQnJCK0NXO0lxQjlDWCw0QnJCMkNpQjtJcUJ4Q2YsNERyQnNhNEQsRXFCcGEvRDtFQUdEO0lBQ0UsdUJyQmlDYTtJcUJoQ2Isb0JyQjhaK0IsRXFCN1poQztFQUdEO0lBQ0UsY0FBYSxFQUNkO0VBRUQ7SUFDRSxhQUFZO0lBQ1osdUJBQXNCLEVBQ3ZCOztBQ2xDRDtFQUNFLHNCdEIrQlk7RXNCOUJaLDBCQUErRCxFQUloRTtFQUhDO0lBQ0UsZXRCNEJVLEVzQjNCWDtFQUZEO0lBQ0UsZXRCNEJVLEVzQjNCWDtFQUZEO0lBQ0UsZXRCNEJVLEVzQjNCWDs7QUF5QkQ7RUFDRSxldEJDVSxFc0JBWDs7QUFJSDtFQXpCQSxjQUFhO0VBQ2Isb0JBQWdDO0VBQ2hDLG9CbEIrQnVEO0VrQjdCdkQsbUJsQjZCdUQ7RWtCNUJ2RCxrQnRCb0R1QjtFc0JuRHZCLGV0QmVjLEVzQlViO0VBTkQ7SUFJSSxlQUFjLEVBQ2Y7O0FDOEdIO0VBL0pBLG9CdkJtVHVCO0V1QmhUckIsc0JBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwwQkFBaUI7TUFBakIsc0JBQWlCO1VBQWpCLGtCQUFpQjtFQUNqQiw2QkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLHFCQUFvQixFQWtOckI7RXRCbEZEO0lBRUUsZUFBYztJQUNkLGFBQVk7SUFHVixzQkFBYTtRQUFiLDJCQUFhO1lBQWIsY0FBYTtJQUNiLGlCQUFRO1FBQVIsa0JBQVE7WUFBUixTQUFRLEVBRVg7RUFFRDtJQUNFLFlBQVcsRUFDWjtFc0J2SUQ7SUFDRSxVQUFTO0lBQ1Qsa0J2QnVTcUI7SXVCdFNyQixtQnZCc1NxQjtJdUJyU3JCLGtCdkJ3UmE7SXVCclJYLHVCQUFjO1FBQWQsbUJBQWM7WUFBZCxlQUFjLEVBcUJqQjtJQWxCQztNQUNFLGdCQUFpQyxFQUNsQztFQXdJSDtJQU1NLGtCdkJnSU0sRXVCL0hQO0VBUEw7SUFNTSxtQnZCaUlRLEV1QmhJVDtFQVBMO0lBTU0sbUJ2Qm1JUSxFdUJsSVQ7RUEzR0w7SUFFSSxzQkFBYTtRQUFiLGtCQUFhO1lBQWIsY0FBYSxFQXVCaEI7RUEyRUQ7SVRqREEsMEJkMUUwQjtJYzJFMUIsZWQ1Q2EsRXVCOEdOO0lUaEVQO01BQ0UsMEJBUG9GO01BUXBGLGVkaERXLEVjaURaO0VTMkNEO0lUakRBLDBCZHpFMEI7SWMwRTFCLGVkNUNhLEV1QjhHTjtJVGhFUDtNQUNFLDBCQVBvRjtNQVFwRixlZGhEVyxFY2lEWjtFUzJDRDtJVGpEQSwwQmR4RWdCO0ljeUVoQixlZDdDYSxFdUIrR047SVRoRVA7TUFDRSwwQkFQb0Y7TUFRcEYsZWRqRFcsRWNrRFo7RVMyQ0Q7SVRqREEsMEJkdkVnQjtJY3dFaEIsZWQ3Q2EsRXVCK0dOO0lUaEVQO01BQ0UsMEJBUG9GO01BUXBGLGVkakRXLEVja0RaO0VTMkNEO0lUakRBLDBCZHRFYztJY3VFZCxlZDdDYSxFdUIrR047SVRoRVA7TUFDRSwwQkFQb0Y7TUFRcEYsZWRqRFcsRWNrRFo7RVMyQ0Q7SUFsRUUsd0JBQWU7UUFBZixvQkFBZTtZQUFmLGdCQUFlLEVBa0dkO0lBL0ZIO01BRUksdUJBQWM7VUFBZCxtQkFBYztjQUFkLGVBQWMsRUEwQmpCO01BcEJDO1FBQ0UsaUJBQWdCLEVBQ2pCO0U3QnFCQztJNkJLSjtNQUVJLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhO01BS2YsaUJBQWdCLEVBZ0JqQixFQUFBO0U3QjVCRztJNkJLSjtNQUVJLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhO01BS2YsaUJBQWdCLEVBZ0JqQixFQUFBO0U3QnZCRztJNkIyQko7TUFnRE0sZUFBYyxFQU9qQjtNQXZESDtRQW1EUSxlQUFjO1FBQ2QsZ0JBQWlDLEVBQ2xDLEVBQUE7O0FDeklQO0VBdkRFLHNCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsK0JBQXNCO01BQXRCLDJCQUFzQjtVQUF0Qix1QkFBc0I7RUFDdEIscUJBQVk7TUFBWixxQkFBWTtVQUFaLGFBQVk7RUFHZCxvQnhCK0NrQjtFd0I3Q2xCLHVCeEJvQ2U7RXdCbkNmLGlCeEJpRGU7RXdCL0NmLG9CeEJxQ2E7RXdCcENiLGlCeEI4U2dCO0V3QjVTaEIsaUJBQWdCO0VBQ2hCLGV4QmdDYSxFd0JXWjtFQXpDRDtJQUNFLGlCQUFnQixFQUNqQjs7QUF5Q0Q7RUFoQ0UsdUJBQWM7TUFBZCxtQkFBYztVQUFkLGVBQWM7RUFDZCxzQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUdmLGN4QnNCbUI7RXdCckJuQixpQnhCV2UsRXdCa0JkO0VBM0JEO0lBQ0UsaUJBQWdCLEVBQ2pCOztBQTJCRDtFQW5CRSx1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztFQUdoQixjeEJNbUIsRXdCWWxCO0VBaEJEO0lBQ0UsaUJBQWdCLEVBQ2pCOztBQWtCRDtFQUNFLGdCQUFlLEVBQ2hCOztBQ2hDRDtFQVhBLG1CQUFrQjtFQUNsQixlekJnQmlCO0V5QmZqQixnQkFBZSxFQWNkO0VqQ2tnRkQ7SVM1NUVFLFdBQVUsRUFDWDtFd0JuSEQ7SUFFRSxlekJZVyxFeUJYWjtFQUlEO0lBdkJBLGV6Qm1UYztJeUJsVGQsWXpCc1RhO0l5QnJUYixpQnpCeVRZO0l5QnhUWixlekIyVHdCLEV5QnBTd0I7RUFIaEQ7SUF2QkEsWXpCb1RZO0l5Qm5UWixZekJ1VGM7SXlCdFRkLGV6QjBUVztJeUJ6VFgsZXpCMlR3QixFeUJuUzZCOztBQ3FRckQ7RUEvU0EsV0FBVTtFQUNWLFVBQVM7RUFDVCxpQkFBZ0I7RUFDaEIsbUJBQWtCO0VBR2hCLHNCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2Isd0JBQWU7TUFBZixvQkFBZTtVQUFmLGdCQUFlLEVBNFpoQjtFbENncUVEO0lTbDdFRSxXQUFVLEVBQ1g7RXlCcElEOztJQUVFLGVBQWM7SUFDZCxzQkFBcUI7SUFDckIsZUFBYztJQUNkLHFCMUJzQzZCLEUwQnJDOUI7RUFHRDs7OztJQUlFLGlCQUFnQixFQUNqQjtFQUVEO0lBQ0Usc0JBQXFCLEVBQ3RCO0VBK1FEO0lBcExJLHdCQUFlO1FBQWYsb0JBQWU7WUFBZixnQkFBZTtJQUNmLDRCQUFtQjtRQUFuQix3QkFBbUI7WUFBbkIsb0JBQW1CLEVBeUxwQjtFQU5IO0lBektJLDBCQUFpQjtRQUFqQixzQkFBaUI7WUFBakIsa0JBQWlCO0lBQ2pCLCtCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCLEVBbUx2QjtFQXBSRDtJQUNFLHNCQUFhO1FBQWIsa0JBQWE7WUFBYixjQUFhLEVBQ2Q7RUF1UUg7SUF0SkUsNEJBQW1CO1FBQW5CLHVCQUFtQjtZQUFuQixvQkFBbUIsRUEyS2xCO0lBeEtIO01BQ0Usa0IxQnlTcUIsRTBCeFN0QjtJQUVEO01BQ0UsV0FBVSxFQUNYO0VoQ3hERztJZ0NxTUo7TUFwTEksd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlO01BQ2YsNEJBQW1CO1VBQW5CLHdCQUFtQjtjQUFuQixvQkFBbUIsRUE4TWxCO0lBM0JMO01BektJLDBCQUFpQjtVQUFqQixzQkFBaUI7Y0FBakIsa0JBQWlCO01BQ2pCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCLEVBdU1yQjtJQXhTSDtNQUNFLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhLEVBQ2Q7SUFGRDtNQUNFLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhLEVBQ2QsRUFBQTtFaENrRUM7SWdDcU1KO01BcExJLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZTtNQUNmLDRCQUFtQjtVQUFuQix3QkFBbUI7Y0FBbkIsb0JBQW1CLEVBOE1sQjtJQTNCTDtNQXpLSSwwQkFBaUI7VUFBakIsc0JBQWlCO2NBQWpCLGtCQUFpQjtNQUNqQiwrQkFBc0I7VUFBdEIsMkJBQXNCO2NBQXRCLHVCQUFzQixFQXVNckI7SUF4U0g7TUFDRSxzQkFBYTtVQUFiLGtCQUFhO2NBQWIsY0FBYSxFQUNkO0lBRkQ7TUFDRSxzQkFBYTtVQUFiLGtCQUFhO2NBQWIsY0FBYSxFQUNkLEVBQUE7RWhDdUVDO0lnQ2dNSjtNQXBMSSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWU7TUFDZiw0QkFBbUI7VUFBbkIsd0JBQW1CO2NBQW5CLG9CQUFtQixFQThNbEI7SUEzQkw7TUF6S0ksMEJBQWlCO1VBQWpCLHNCQUFpQjtjQUFqQixrQkFBaUI7TUFDakIsK0JBQXNCO1VBQXRCLDJCQUFzQjtjQUF0Qix1QkFBc0IsRUF1TXJCO0lBeFNIO01BQ0Usc0JBQWE7VUFBYixrQkFBYTtjQUFiLGNBQWEsRUFDZDtJQUZEO01BQ0Usc0JBQWE7VUFBYixrQkFBYTtjQUFiLGNBQWEsRUFDZCxFQUFBO0VoQ3VFQztJZ0NnTUo7TUFwTEksd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlO01BQ2YsNEJBQW1CO1VBQW5CLHdCQUFtQjtjQUFuQixvQkFBbUIsRUE4TWxCO0lBM0JMO01BektJLDBCQUFpQjtVQUFqQixzQkFBaUI7Y0FBakIsa0JBQWlCO01BQ2pCLCtCQUFzQjtVQUF0QiwyQkFBc0I7Y0FBdEIsdUJBQXNCLEVBdU1yQjtJQXhTSDtNQUNFLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhLEVBQ2Q7SUFGRDtNQUNFLHNCQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhLEVBQ2QsRUFBQTtFQXVRSDtJQTlIRSxnQkFBaUM7SUFDakMsa0IxQnhINEIsRTBCa1MzQjtFQWxLRDtJQUNFLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhLEVBQ2Q7RUFGRDtJQUNFLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhLEVBQ2Q7RUFrQkQ7SUFFSSw4QkFBcUI7UUFBckIsMEJBQXFCO1lBQXJCLHNCQUFxQixFQVl4QjtJQVRDOzs7TUFHRSxzQjFCbVBtQixFMEI5T3BCO0VBSUg7SUFFSSw4QkFBcUI7UUFBckIsMEJBQXFCO1lBQXJCLHNCQUFxQixFQVl4QjtJQVRDOzs7TUFHRSxxQjFCa09tQixFMEI3TnBCO0VBSUg7SUFFSSxpQ0FBd0I7UUFBeEIsNkJBQXdCO1lBQXhCLHlCQUF3QixFQW1CM0I7SUFiQzs7O01BUUksNEJBQW1CO1VBQW5CLDZCQUFtQjtrQkFBbkIsNEJBQW1CO2NBQW5CLG9CQUFtQjtNQUNuQix1QjFCd01pQjtNMEJ2TWpCLG1CQUFrQixFQUVyQjtFQUlIO0lBRUksaUNBQXdCO1FBQXhCLDZCQUF3QjtZQUF4Qix5QkFBd0IsRUFtQjNCO0lBYkM7OztNQVFJLDRCQUFtQjtVQUFuQiw2QkFBbUI7a0JBQW5CLDRCQUFtQjtjQUFuQixvQkFBbUI7TUFDbkIsdUIxQmdMaUI7TTBCL0tqQixtQkFBa0IsRUFFckI7RUFtQkw7SUFMQSx3QjFCOEp1QztJMEI3SnZDLGUxQjNSMEIsRTBCb1h2QjtFQXJGSDtJQUxBLHdCMUI4SnVDO0kwQjdKdkMsZTFCM1IwQixFMEIwWHJCO0VBM0ZMO0lBdFBJLG9DQUEyQjtRQUEzQixxQkFBMkI7WUFBM0IsNEJBQTJCLEVBdVY1QjtFQS9VQztJQUNFLHNCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2Isa0NBQXlCO1FBQXpCLG1CQUF5QjtZQUF6QiwwQkFBeUIsRUFLMUI7SUFIQztNQUNFLG9DQUEyQjtVQUEzQixxQkFBMkI7Y0FBM0IsNEJBQTJCLEVBQzVCO0VBR0g7SUFDRSxlQUFjO0lBQ2Qsa0IzQlpvRCxFMkJpQnJEO0lBSEM7TUFDRSxrQjNCZmtELEUyQmdCbkQ7RUErTlA7SUFsSUUsbUIxQm5INEI7STBCb0g1QixlQUFnQyxFQTBPN0I7RUFyVEQ7SUFDRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLGdDQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCLEVBS3hCO0lBSEM7TUFDRSxvQ0FBMkI7VUFBM0IscUJBQTJCO2NBQTNCLDRCQUEyQixFQUM1QjtFQXNNUDtJQWJBLHFCMUJ6TytCO0kwQjJPL0Isa0JBQWlCO0lBQ2pCLGVBQWM7SUFDZCxlQUFjLEVBNEhYOztBQUlEO0VBR00sZ0NBQXVCO01BQXZCLHNCQUF1QjtVQUF2Qix3QkFBdUIsRUFJMUI7RUExVUQ7SUFDRSxzQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLGdDQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCLEVBS3hCO0lBSEM7TUFDRSxvQ0FBMkI7VUFBM0IscUJBQTJCO2NBQTNCLDRCQUEyQixFQUM1Qjs7QUF5VVA7RUFDRSxjQUFhLEVBQ2Q7O0FDNWVEO0UxQndHQSxtQkFBa0I7RUFDbEIsc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUN0QixZQXpCWTtFQTBCWixhQXpCYTtFQTBCYixnQkFBZSxFMEIzR2Q7RTFCOEdEO0lBQ0UsbUJBQWtCO0lBQ2xCLE9BQU07SUFDTixRQUFPO0lBRVAsZUFBYztJQUNkLFlBQVc7SUFDWCxZQW5DVTtJQXFDVixvQkRuQlc7SUNvQlgsOENEcEJXO0lDc0JYLFlBQVcsRUFDWjtFQVVDO0lBQ0Usb0JEckNlO0lDc0NmLDhDRHRDZSxFQ3VDaEI7O0EwQnRJSDtFMUJvR0EsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQix1QkFBc0I7RUFDdEIsWUF6Qlk7RUEwQlosYUF6QmE7RUEwQmIsZ0JBQWUsRTBCdkdkO0UxQjBHRDtJQUNFLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sUUFBTztJQUVQLGVBQWM7SUFDZCxZQUFXO0lBQ1gsWUFuQ1U7SUFxQ1Ysb0JEcEJXO0lDcUJYLDhDRHJCVztJQ3VCWCxZQUFXLEVBQ1o7RUFVQztJQUNFLG9CRHBDYTtJQ3FDYiw4Q0RyQ2EsRUNzQ2Q7O0EyQm5FSDtFQUNFLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFTakI7RUFYRDtJQUtJLGVBQWMsRUFDZjtFQU5IO0lBU0ksd0JBQXVCLEVBQ3hCOztBQUlIO0VBRUkscUI1QjBCMkI7RTRCekIzQixvQjVCY1MsRTRCYlY7O0FBSkg7RUFRSSxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFdBQXFCO0VBQ3JCLFlBQVc7RUFFWCxZQUFXO0VBQ1gsb0I1QkdTO0U0QkZULDJDNUJ3U3VDO0U0QnhTdkMsbUM1QndTdUM7RTRCeFN2QyxtRTVCd1N1QyxFNEJ4UnhDO0VBL0JIO0lBa0JNLFdBQVU7SUFDVixlQUFjO0lBQ2QscUNBQXFFO1FBQXJFLGlDQUFxRTtZQUFyRSw2QkFBcUUsRUFDdEU7RUFyQkw7SUF3Qk0sb0NBQXFFO1FBQXJFLGdDQUFxRTtZQUFyRSw0QkFBcUUsRUFDdEU7RUF6Qkw7SUE2Qk0scUI1QkR5QixFNEJFMUI7O0FBOUJMO0VGb0pFLGdCQUFpQztFQUNqQyxlMUJxS3VCLEU0QnZSdEI7O0FBbkNIO0VBc0NJLGlCQUFnQixFQUNqQjs7QUFoRkg7RUFDRSxtQkFBa0IsRUFRbkI7RUFQQztJQUNFLG1CQUFrQjtJQUNsQixTQUFRO0lBQ1IsaUJBQXNDO0lBQ3RDLFlBQXNCO0kzQlQxQixlQUFjO0lBQ2QsU0FBUTtJQUNSLFVBQVM7SUFFVCxrQkR1V3dCO0lDcld4QixZQUFXO0lBYVQsc0JBQXFCO0lBQ3JCLHlCQUF3QjtJQUN4QiwwRERTd0IsRTRCbkJ2Qjs7QUFHSDtFQUNFLFdBQVU7RUFDVixZQUFXO0UzQmhCYixlQUFjO0VBQ2QsU0FBUTtFQUNSLFVBQVM7RUFFVCxrQkQ2WDJCO0VDM1gzQixZQUFXO0VBYVQsc0JBQXFCO0VBQ3JCLHlCQUF3QjtFQUN4QiwwREQwQlMsRTRCN0JWOztBQUVEO0VBQ0UsWUFBVztFQUNYLFdBQVU7RTNCdEJaLGVBQWM7RUFDZCxTQUFRO0VBQ1IsVUFBUztFQUVULGtCRDZYMkI7RUMzWDNCLFlBQVc7RUFrQlQscUJBQW9CO0VBQ3BCLDBCQUF5QjtFQUN6QiwwREFBaUUsRTJCRmxFOztBQW9CRDtFM0I1Q0EsZUFBYztFQUNkLFNBQVE7RUFDUixVQUFTO0VBRVQsa0JEdVd3QjtFQ3JXeEIsWUFBVztFQWtCVCxxQkFBb0I7RUFDcEIsMEJBQXlCO0VBQ3pCLDBEQUFpRTtFMkJnRTdELHFCQUE0QztFQUM1QyxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLHNCQUF1QztFQUV2QyxxQkFBNEMsRUFDN0M7O0FDckVMO0VBM0JBLG1CQUFrQjtFQUNsQixZQUFXO0VBRVgsYTdCaVhvQjtFNkJoWHBCLGM3QjRXcUI7RTZCMVdyQixtQkFBa0I7RUFDbEIsY0FBYTtFQUNiLDBCN0JrRG1CO0U2QmpEbkIsaUI3QjhEZTtFNkI3RGYsOEI3QnVXK0I7RTZCclcvQixnQjdCdVd1QixFNkJ0VnRCO0VBYkQ7SUFDRSxlQUFjLEVBQ2Y7RUFFRDtJQUNFLG9CQUFtQjtJQUNuQixlQUFjLEVBQ2Y7O0FBU0M7RUFDRSxhN0JzVk8sRTZCclZSOztBQUZEO0VBQ0UsYTdCdVZRLEU2QnRWVDs7QUFGRDtFQUNFLGE3QndWUSxFNkJ2VlQ7O0FDUUM7RUFDRSxVQUFTO0VBQ1QsU0FBUTtFQUNSLFdBQVUsRUFDWDs7QUFJRDtFQUNFLFVBQVM7RUFDVCxZQUFXO0VBQ1gsUUFBTyxFQUNSOztBQWlETDtFQUtJLHFCOUJwQzJCLEU4QnFDNUI7RXRDdXlGSDtJU3B2RkUsV0FBVSxFQUNYOztBNkIxREQ7RUFVSSx3QjlCMFI0QztFOEJ6UjVDLGU5QnBGc0IsRThCcUZ2Qjs7QUFFRDtFQUNFLGNBQWEsRUFDZDs7QUFoQkg7RUp5RkUsZ0JBQWlDO0VBQ2pDLGUxQnNNMEIsRThCNVF6Qjs7QUFsREM7RUFDRSxPQUFNLEVBQ1A7O0FBR0M7RUFDRSxZQUFXO0VBQ1gsV0FBVTtFQUNWLE9BQU0sRUFDUDs7QUFJRDtFQUNFLFlBQVc7RUFDWCxXQUFVLEVBQ1g7O0FwQ2dDSDtFb0MvRUE7SUFDRSxVQUFTO0lBQ1QsU0FBUTtJQUNSLFdBQVUsRUFDWDtFQUlEO0lBQ0UsVUFBUztJQUNULFlBQVc7SUFDWCxRQUFPLEVBQ1I7RUFtQkQ7SUFDRSxPQUFNLEVBQ1A7RUFHQztJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsT0FBTSxFQUNQO0VBSUQ7SUFDRSxZQUFXO0lBQ1gsV0FBVSxFQUNYLEVBQUE7O0FwQ2dDSDtFb0MvRUE7SUFDRSxVQUFTO0lBQ1QsU0FBUTtJQUNSLFdBQVUsRUFDWDtFQUlEO0lBQ0UsVUFBUztJQUNULFlBQVc7SUFDWCxRQUFPLEVBQ1I7RUFtQkQ7SUFDRSxPQUFNLEVBQ1A7RUFHQztJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsT0FBTSxFQUNQO0VBSUQ7SUFDRSxZQUFXO0lBQ1gsV0FBVSxFQUNYLEVBQUE7O0FwQ3FDSDtFb0NwRkE7SUFDRSxVQUFTO0lBQ1QsU0FBUTtJQUNSLFdBQVUsRUFDWDtFQUlEO0lBQ0UsVUFBUztJQUNULFlBQVc7SUFDWCxRQUFPLEVBQ1I7RUFtQkQ7SUFDRSxPQUFNLEVBQ1A7RUFHQztJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsT0FBTSxFQUNQO0VBSUQ7SUFDRSxZQUFXO0lBQ1gsV0FBVSxFQUNYLEVBQUE7O0FwQ3FDSDtFb0NwRkE7SUFDRSxVQUFTO0lBQ1QsU0FBUTtJQUNSLFdBQVUsRUFDWDtFQUlEO0lBQ0UsVUFBUztJQUNULFlBQVc7SUFDWCxRQUFPLEVBQ1I7RUFtQkQ7SUFDRSxPQUFNLEVBQ1A7RUFHQztJQUNFLFlBQVc7SUFDWCxXQUFVO0lBQ1YsT0FBTSxFQUNQO0VBSUQ7SUFDRSxZQUFXO0lBQ1gsV0FBVSxFQUNYLEVBQUE7O0FBY1A7RUEwQ00sVUFBUztFQUNULFNBQVE7RUFDUixXQUFVLEVBQ1g7O0FBSUw7RUFDRSxhQUFZLEVBS2I7RUFORDtJQUlJLGFBQVksRUFDYjs7QUFHSDtFQUNFLG1CQUFrQixFQThCbkI7RUEvQkQ7SUFJSSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLFdBQXFCO0lBQ3JCLFdBQXFCO0lBQ3JCLGlCQUF5QyxFQUMxQztFQVRIO0lBYUksVUFBUztJQUtQLFdBQVUsRUFFYjtFQXBCSDtJQXVCSSxZQUFXO0lBQ1gsV0FBVSxFQUNYO0VBekJIO0lBNEJJLFlBQVc7SUFDWCxXQUFVLEVBQ1g7O0FBR0g7RUFDRSxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFdBQXFCO0VBQ3JCLFdBQVU7RUFFVixjQUFhO0VBQ2IsaUI5QjJMMEI7RThCekwxQiwwQjlCaEppQjtFOEJpSmpCLG9COUI5SVcsRThCeUtaO0VBekJDO0lBQ0UscUI5QnRJMkIsRThCdUk1QjtFQWRIO0lBd0JNLGlCOUJnTGlCLEU4Qi9LbEI7RUF6Qkw7SUE2QkksWUFBVyxFQUNaO0VBOUJIO0lBbUNJLGVBQWMsRUFDZjs7QUNoT0g7O0VBbkJBLG1CQUFrQjtFQUNsQixVQUFTO0VBQ1Qsb0IzQjBEdUQ7RTJCekR2RCxvQkN1Q3NCO0VEdEN0QixpQkFBZ0IsRUEwQmY7RUF4QkQ7Ozs7Ozs7O0lBSUUsbUJBQWtCO0lBQ2xCLE9BQU07SUFDTixRQUFrQjtJQUNsQixZQUFXO0lBQ1gsYUFBWSxFQUNiO0VBSUQ7O0lBUU0sdUJDZWdCLEVEZGpCOztBRU5MO0VBWkEsc0JBQXFCO0VBQ3JCLDJCakN3YytCO0VpQ3RjL0IsaUJqQ3dFZTtFaUN0RWYsa0JqQ21jc0I7RWlDbGN0QixlQUFjO0VBQ2Qsb0JBQW1CO0VBQ25CLGdCQUFlO0VBT2Isb0JqQ21Cd0I7RWlDbEJ4QixlakNpRFcsRWlDekNaO0VBWkQ7SUFRTSxvQmpDY29CO0lpQ2JwQixlakM0Q08sRWlDM0NSO0VBVkw7SUFRTSxvQmpDZW9CO0lpQ2RwQixlakM0Q08sRWlDM0NSO0VBVkw7SUFRTSxvQmpDZ0JVO0lpQ2ZWLGVqQzJDTyxFaUMxQ1I7RUFWTDtJQVFNLG9CakNpQlU7SWlDaEJWLGVqQzJDTyxFaUMxQ1I7RUFWTDtJQVFNLG9CakNrQlE7SWlDakJSLGVqQzJDTyxFaUMxQ1I7O0FDOEZMO0VBcEdBLG1CQUFrQixFQXNHakI7O0FBRUQ7RUFuR0EsbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLGlCQUFnQixFQWlHZjs7QUFFRDtFQTlGQSxZQUFXLEVBZ0dWO0VBN0ZDO0lBQ0UsT0FBTTtJQUNOLFFBQU8sRUFDUjs7QUE0Rkg7RUF2RkEsVUFBUyxFQXlGUjs7QUFFRDtFQXRGQSxZQUFXO0VBQ1gsZ0JBQWU7RUFDZixVQUFTLEVBc0ZSOztBQUVEO0VBbkZBLG1CQUFrQjtFQUNsQixVQUFTO0VBQ1QsWUFBVztFQUNYLGlCQUFnQjtFQUNoQixjbENvZDBCO0VrQ2xkMUIscUNsQ0thO0VrQ0piLGVsQ0thLEVrQ3lFWjs7QUFFRDtFakN5REEsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixvQ0FBMkI7TUFBM0IsZ0NBQTJCO1VBQTNCLDRCQUEyQjtFaUNwSTNCLFlsQzZjdUI7RWtDNWN2QixjbEMyYzBCO0VrQzFjMUIsZWxDSmEsRWtDNkVaO0UxQ3cvRkQ7SVNsK0ZFLFdBQVUsRUFDWDtFaUM5RkQ7SUFHRSxxQ2xDVlcsRWtDV1o7O0FBcUVEO0VBaEVBLFFBQWtCLEVBbUVqQjs7QUFFRDtFQWhFQSxXQUFxQjtFQUNyQixTQUFtQixFQWtFbEI7O0FBRUQ7RUE5REEsbUJBQWtCO0VBQ2xCLG1CbEM2YThCO0VrQzVhOUIsc0JsQzZhaUM7RWtDNWFqQyxtQkFBa0IsRUE2RGpCO0UxQzIvRkQ7SVNuL0ZFLFdBQVUsRUFDWDtFaUNwRUQ7SUFDRSxjbENzYTBCO0lrQ3JhMUIsZWxDcWEwQjtJa0NwYTFCLGVsQ3Fhd0I7SWtDbmF4QixtQkFBa0I7SUFDbEIsMEJsQ3pDaUIsRWtDa0RsQjtJQVBDO01BQ0UsMEJsQzNDYSxFa0M0Q2Q7SUFFRDtNQUNFLDBCbEMvQ2EsRWtDZ0RkOztBdkNyQkg7RUFDRSxpQkFBZ0IsRUFDakI7O0FBR0Q7O0VBRUUsaUJBQWdCO0VBQ2hCLGlCQUFnQjtFQUNoQixnQkFBZTtFQUNmLDBCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCLEVBQ2xCOztBQUdEO0VBdkZBLGdCQUFlO0VBQ2YsT0FBTTtFQUNOLFNBQVE7RUFDUixVQUFTO0VBQ1QsUUFBTztFQUNQLGNLMHNCa0I7RUx4c0JsQixjQUFhO0VBQ2Isc0NLdUNhO0VMdENiLG1CQUFrQixFQWdGakI7O0FBR0Q7RUE3RUEsY0tnc0JrQjtFTDlyQmxCLG9DQUEyQjtVQUEzQiw0QkFBMkI7RUFFM0IsY0FBYTtFQUNiLGNLa0NtQjtFTGhDbkIsMEJLdUJtQjtFTHRCbkIsaUJLbUNlO0VMbENmLDBCS3dCYTtFTCtDWCxtQkFBa0I7RUFDbEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQixrQkFBaUI7RUFDakIsaUJBQWdCLEVBd0JqQjtFSDBqR0Q7SVNsaUdFLFdBQVUsRUFDWDtFUHhDRztJQ2hCSjtNQWpFRSxjQUFhLEVBZ0dkLEVBQUE7RUE1RkQ7SUFDRSxhQUFZLEVBQ2I7RUFHRDtJQUNFLGlCQUFnQixFQUNqQjtFRHNFRztJQ2hCSjtNQTFDRSxhS3dwQmdCO01MdnBCaEIsaUJTbEJxRCxFVDBGdEQsRUFBQTtFQS9CRDtJQVdJLFdBQVUsRUFDWDtFRElDO0lDaEJKO01BMUNFLFdBeUR5QztNQXhEekMsaUJTbEJxRCxFVDBFUCxFQUFBO0VEQzVDO0lDaEJKO01BMUNFLFdBMER5QztNQXpEekMsaUJTbEJxRCxFVDJFUCxFQUFBO0VEQTVDO0lDaEJKO01BMUNFLFdBMkR5QztNQTFEekMsaUJTbEJxRCxFVDRFUCxFQUFBO0VBakJoRDtJQW5DQSxPQUFNO0lBQ04sUUFBTztJQUVQLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGFBQVk7SUFDWixjQUFhO0lBQ2Isa0JBQWlCO0lBQ2pCLGVBQWM7SUFFZCxVQUFTO0lBQ1QsaUJBQWdCLEVBOENiO0VEREM7SUNyQko7TUFuQ0EsT0FBTTtNQUNOLFFBQU87TUFFUCxZQUFXO01BQ1gsZ0JBQWU7TUFDZixhQUFZO01BQ1osY0FBYTtNQUNiLGtCQUFpQjtNQUNqQixlQUFjO01BRWQsVUFBUztNQUNULGlCQUFnQixFQXVEZixFQUFBO0VBL0JEO0lBNkJJLGdCQUFlLEVBQ2hCOztBd0M1SUg7RUFDRSxnQm5DdXpCcUI7RW1DdHpCckIsb0JuQytEVztFbUM5RFgsZW5DK0RXO0VtQzVEVCxzQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLG9DQUEyQjtNQUEzQixxQkFBMkI7VUFBM0IsNEJBQTJCO0VBQzNCLDRCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CLEVBVXRCO0VBbEJEO0lBZUkscUJuQzZ5QnlCO0ltQzV5QnpCLHNCbkM0eUJ5QixFbUMzeUIxQjs7QUFJRDs7RUFFRSxzQkFBYTtNQUFiLGtCQUFhO1VBQWIsY0FBYSxFQUNkOztBQUVEO0VBQ0Usa0JBQWlCLEVBQ2xCOztBQWFIO0VBQ0Usc0JBQXFCO0VBQ3JCLHVCQUFzQjtFQUN0QixrQm5DNndCNEIsRW1DNXdCN0I7O0FDdUNEO0VBdEZFLHNCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsMEJBQWlCO01BQWpCLHNCQUFpQjtVQUFqQixrQkFBaUI7RUFDakIsdUNBQThCO01BQTlCLHVCQUE4QjtVQUE5QiwrQkFBOEI7RUFDOUIsNEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUI7RUFNckIsZ0JwQ3kwQnFCO0VvQ3Z5Qm5CLHdCQUFlO01BQWYsb0JBQWU7VUFBZixnQkFBZSxFQStEaEI7RUEvRkQ7O0lBRUUsOEJwQ3MwQjJCLEVvQ3IwQjVCO0VBVUQ7SUFDRSxpQnBDNnpCc0I7SW9DNXpCdEIsbUJBQW9DLEVBQ3JDO0VBR0Q7SUFDRSxZQUFXO0lBQ1gsZ0JBQWlDLEVBQ2xDO0VBRUQ7SUFDRSxZQUFXLEVBQ1o7RUFTQzs7SUFFRSx1QkFBYztRQUFkLG1CQUFjO1lBQWQsZUFBYztJQUNkLGdCQUFlLEVBQ2hCO0UxQzhFQztJMEMxQ0o7TUF0QkUsMEJBQWlCO1VBQWpCLHNCQUFpQjtjQUFqQixrQkFBaUIsRUEwQ2xCO01BeENDO1FBQ0UsdUJBQWM7WUFBZCxtQkFBYztnQkFBZCxlQUFjO1FBQ2QsbUJBQWtCLEVBQ25CO01BRUQ7UUFDRSx1QkFBYztZQUFkLG1CQUFjO2dCQUFkLGVBQWM7UUFDZCxrQkFBaUIsRUFDbEIsRUFBQTtFMUMyREM7STBDL0NKO01BM0NFLHdCQUFlO1VBQWYsb0JBQWU7Y0FBZixnQkFBZSxFQTREVjtNQXpETDs7UUFFRSx1QkFBYztZQUFkLG1CQUFjO2dCQUFkLGVBQWM7UUFDZCxnQkFBZSxFQUNoQixFQUFBO0UxQ21GQztJMEMvQ0o7TUEzQ0Usd0JBQWU7VUFBZixvQkFBZTtjQUFmLGdCQUFlLEVBNERWO01BekRMOztRQUVFLHVCQUFjO1lBQWQsbUJBQWM7Z0JBQWQsZUFBYztRQUNkLGdCQUFlLEVBQ2hCLEVBQUE7RTFDbUZDO0kwQy9DSjtNQTNDRSx3QkFBZTtVQUFmLG9CQUFlO2NBQWYsZ0JBQWUsRUE0RFY7TUF6REw7O1FBRUUsdUJBQWM7WUFBZCxtQkFBYztnQkFBZCxlQUFjO1FBQ2QsZ0JBQWUsRUFDaEIsRUFBQTtFQW9DSDtJQTNDRSx3QkFBZTtRQUFmLG9CQUFlO1lBQWYsZ0JBQWUsRUE0RFY7SUF6REw7O01BRUUsdUJBQWM7VUFBZCxtQkFBYztjQUFkLGVBQWM7TUFDZCxnQkFBZSxFQUNoQjs7QUE0REQ7RUFDRSx1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztFQUNkLDZCcENxdUJxQyxFb0NwdUJ0Qzs7QUFFRDs7RUFFRSx1QkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYyxFQUNmOztBQzVGSDtFQUNFLHlCQUF3QixFQUN6Qjs7QUFFRDtFQUNFLG1CQUFrQixFQUNuQjs7QTNDcUdHO0UyQ3ZGRjtJQTFCQSx5QkFBd0IsRUE0QnZCLEVBQUE7O0FBL0NEO0VBaURBO0lBaERFLHlCQUF3QixFQWtEekIsRUFBQTs7QTNDNEVDO0UyQzNGQTtJQXpCRix5QkFBd0IsRUEyQnJCLEVBQUE7O0EzQzhGRDtFMkM1RkE7SUFqRUYseUJBQXdCLEVBbUVyQixFQUFBOztBM0MwRkQ7RTJDdkZGO0lBMUJBLHlCQUF3QixFQTRCdkIsRUFBQTs7QUEvQ0Q7RUFpREE7SUFoREUseUJBQXdCLEVBa0R6QixFQUFBOztBM0M0RUM7RTJDM0ZBO0lBekJGLHlCQUF3QixFQTJCckIsRUFBQTs7QTNDOEZEO0UyQzVGQTtJQWpFRix5QkFBd0IsRUFtRXJCLEVBQUE7O0EzQzBGRDtFMkN2RkY7SUExQkEseUJBQXdCLEVBNEJ2QixFQUFBOztBQS9DRDtFQWlEQTtJQWhERSx5QkFBd0IsRUFrRHpCLEVBQUE7O0EzQ2lGQztFMkNoR0E7SUF6QkYseUJBQXdCLEVBMkJyQixFQUFBOztBM0M4RkQ7RTJDNUZBO0lBakVGLHlCQUF3QixFQW1FckIsRUFBQTs7QTNDMEZEO0UyQ3ZGRjtJQTFCQSx5QkFBd0IsRUE0QnZCLEVBQUE7O0FBL0NEO0VBaURBO0lBaERFLHlCQUF3QixFQWtEekIsRUFBQTs7QTNDaUZDO0UyQ2hHQTtJQXpCRix5QkFBd0IsRUEyQnJCLEVBQUE7O0EzQzhGRDtFMkM1RkE7SUFqRUYseUJBQXdCLEVBbUVyQixFQUFBOztBM0MwRkQ7RTJDdkZGO0lBMUJBLHlCQUF3QixFQTRCdkIsRUFBQTs7QUF0REQ7RUF3REE7SUF2REUseUJBQXdCLEVBeUR6QixFQUFBOztBQUtIOztFcENzSEEsOEJBQTZCO0VBQzdCLFdBQVU7RUFDVixZQUFXO0VBQ1gsV0FBVTtFQUNWLGlCQUFnQjtFQUNoQix1QkFBbUI7RUFDbkIsb0JBQW1CO0VBQ25CLDhCQUFxQjtVQUFyQixzQkFBcUI7RUFDckIsVUFBUyxFb0MzSFI7O0FBR0Q7RXBDNkhBLDRCQUEyQjtFQUMzQixZQUFXO0VBQ1gsYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixXQUFVO0VBQ1Ysb0JBQW1CO0VBQ25CLHdCQUFlO1VBQWYsZ0JBQWUsRW9DL0haOztBQUlIOztFQUVFLDBCQUF5QixFQVMxQjtFM0NtREc7STJDOURKOztNQUtJLDBCQUF5QixFQU01QixFQUFBO0UzQ21ERztJMkM5REo7O01BU0kseUJBQXdCLEVBRTNCLEVBQUE7O0FBRUQ7O0VBRUUseUJBQXdCLEVBU3pCO0UzQ3NDRztJMkNqREo7O01BS0kseUJBQXdCLEVBTTNCLEVBQUE7RTNDc0NHO0kyQ2pESjs7TUFTSSwwQkFBeUIsRUFFNUIsRUFBQTs7QUN6SEQ7RUFDRSx1QkFBc0IsRUFDdkI7O0FBRUQ7RUFDRSx3QkFBdUIsRUFDeEI7O0FBRUQ7RUFDRSxlQUFjO0VBQ2QsbUJBQWtCO0VBQ2xCLGtCQUFpQixFQUNsQjs7QXJDb0pEO0VBRUUsZUFBYztFQUNkLGFBQVk7RUFHVixzQkFBYTtNQUFiLDJCQUFhO1VBQWIsY0FBYTtFQUNiLGlCQUFRO01BQVIsa0JBQVE7VUFBUixTQUFRLEVBRVg7O0FBRUQ7RUFDRSxZQUFXLEVBQ1o7O0FzQzVHQztFQ3hCRixrQ0FoRGlCO01BZ0RqQixtQkFoRGlCO1VBZ0RqQiwwQkFoRGlCLEVEMEVkOztBQUZEO0VDeEJGLGdDQS9DZ0I7TUErQ2hCLHNCQS9DZ0I7VUErQ2hCLHdCQS9DZ0IsRUR5RWI7O0FBRkQ7RUN4QkYsdUNBOUN3QjtNQThDeEIsdUJBOUN3QjtVQThDeEIsK0JBOUN3QixFRHdFckI7O0FBRkQ7RUN4QkYsc0NBN0NzQjtNQTZDdEIsMEJBN0NzQjtVQTZDdEIsOEJBN0NzQixFRHVFbkI7O0FBS0Q7RUMvQkYsa0NBaERpQjtNQWdEakIsbUJBaERpQjtVQWdEakIsMEJBaERpQixFRGtGWjs7QUFISDtFQy9CRixnQ0EvQ2dCO01BK0NoQixzQkEvQ2dCO1VBK0NoQix3QkEvQ2dCLEVEaUZYOztBQU1IO0VDdkNGLGdDQTFDaUI7TUEwQ2pCLHNCQTFDaUI7VUEwQ2pCLHdCQTFDaUIsRURtRmQ7O0FBRUQ7RUMzQkYsK0JBMURpQjtNQTBEakIsMkJBMURpQjtVQTBEakIsdUJBMURpQixFRHVGZDs7QUFORDtFQ3ZDRiw4QkF6Q2tCO01BeUNsQixvQkF6Q2tCO1VBeUNsQixzQkF6Q2tCLEVEa0ZmOztBQUVEO0VDM0JGLDZCQXpEa0I7TUF5RGxCLHlCQXpEa0I7VUF5RGxCLHFCQXpEa0IsRURzRmY7O0FBTkQ7RUN2Q0YsNEJBeENnQjtNQXdDaEIsdUJBeENnQjtVQXdDaEIsb0JBeENnQixFRGlGYjs7QUFFRDtFQzNCRiwyQkF4RGdCO01Bd0RoQiw0QkF4RGdCO2NBd0RoQiwyQkF4RGdCO1VBd0RoQixtQkF4RGdCLEVEcUZiOztBQU5EO0VDdkNGLDZCQXZDa0I7TUF1Q2xCLHdCQXZDa0I7VUF1Q2xCLHFCQXZDa0IsRURnRmY7O0FBRUQ7RUMzQkYsNEJBdkRrQjtNQXVEbEIsNkJBdkRrQjtjQXVEbEIsNEJBdkRrQjtVQXVEbEIsb0JBdkRrQixFRG9GZjs7QUFJSDtFQ2xEQSxnQ0EvQ2dCO01BK0NoQixzQkEvQ2dCO1VBK0NoQix3QkEvQ2dCO0VBZ0RoQiw0QkF4Q2dCO01Bd0NoQix1QkF4Q2dCO1VBd0NoQixvQkF4Q2dCO0VEMkZkLDhCQUFxQjtNQUFyQiwyQkFBcUI7VUFBckIsc0JBQXFCLEVBQ3RCOztBQUtHO0VDbkNKLGlCRGtDZ0I7TUNsQ2hCLGtCRGtDZ0I7VUNsQ2hCLFNEa0NnQixFQUdYOztBQUZEO0VDbkNKLGlCRGtDZ0I7TUNsQ2hCLGtCRGtDZ0I7VUNsQ2hCLFNEa0NnQixFQUdYOztBQUZEO0VDbkNKLGlCRGtDZ0I7TUNsQ2hCLGtCRGtDZ0I7VUNsQ2hCLFNEa0NnQixFQUdYOztBQUZEO0VDbkNKLGlCRGtDZ0I7TUNsQ2hCLGtCRGtDZ0I7VUNsQ2hCLFNEa0NnQixFQUdYOztBQUZEO0VDbkNKLGlCRGtDZ0I7TUNsQ2hCLGtCRGtDZ0I7VUNsQ2hCLFNEa0NnQixFQUdYOztBQUZEO0VDbkNKLGlCRGtDZ0I7TUNsQ2hCLGtCRGtDZ0I7VUNsQ2hCLFNEa0NnQixFQUdYOztBN0NxREQ7RTZDdkRBO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdYO0VBRkQ7SUNuQ0osaUJEa0NnQjtRQ2xDaEIsa0JEa0NnQjtZQ2xDaEIsU0RrQ2dCLEVBR1g7RUFGRDtJQ25DSixpQkRrQ2dCO1FDbENoQixrQkRrQ2dCO1lDbENoQixTRGtDZ0IsRUFHWDtFQUZEO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdYO0VBRkQ7SUNuQ0osaUJEa0NnQjtRQ2xDaEIsa0JEa0NnQjtZQ2xDaEIsU0RrQ2dCLEVBR1g7RUFGRDtJQ25DSixpQkRrQ2dCO1FDbENoQixrQkRrQ2dCO1lDbENoQixTRGtDZ0IsRUFHWCxFQUFBOztBN0NxREQ7RTZDdkRBO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdYO0VBRkQ7SUNuQ0osaUJEa0NnQjtRQ2xDaEIsa0JEa0NnQjtZQ2xDaEIsU0RrQ2dCLEVBR1g7RUFGRDtJQ25DSixpQkRrQ2dCO1FDbENoQixrQkRrQ2dCO1lDbENoQixTRGtDZ0IsRUFHWDtFQUZEO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdYO0VBRkQ7SUNuQ0osaUJEa0NnQjtRQ2xDaEIsa0JEa0NnQjtZQ2xDaEIsU0RrQ2dCLEVBR1g7RUFGRDtJQ25DSixpQkRrQ2dCO1FDbENoQixrQkRrQ2dCO1lDbENoQixTRGtDZ0IsRUFHWCxFQUFBOztBN0MwREQ7RTZDNURBO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdYO0VBRkQ7SUNuQ0osaUJEa0NnQjtRQ2xDaEIsa0JEa0NnQjtZQ2xDaEIsU0RrQ2dCLEVBR1g7RUFGRDtJQ25DSixpQkRrQ2dCO1FDbENoQixrQkRrQ2dCO1lDbENoQixTRGtDZ0IsRUFHWDtFQUZEO0lDbkNKLGlCRGtDZ0I7UUNsQ2hCLGtCRGtDZ0I7WUNsQ2hCLFNEa0NnQixFQUdYO0VBRkQ7SUNuQ0osaUJE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QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLGlDQUZ5QjtNQUV6Qiw2QkFGeUI7VUFFekIseUJBRnlCO0VDdkJ2QixnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUd6QyxvQ0FBMkI7VUFBM0IsNEJBQTJCLEVKUjFCOztBQVVEO0VHb0JBLHFDQUZ5QjtNQUV6QixpQ0FGeUI7VUFFekIsNkJBRnlCLEVIaEJ4Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLGlDQUZ5QjtNQUV6Qiw2QkFGeUI7VUFFekIseUJBRnlCO0VDdkJ2QixnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUd6QyxvQ0FBMkI7VUFBM0IsNEJBQTJCLEVKUjFCOztBQVVEO0VHb0JBLHFDQUZ5QjtNQUV6QixpQ0FGeUI7VUFFekIsNkJBRnlCLEVIaEJ4Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLFdGaENrQztFSUFsQyw2QkFBNEIsRUxFM0I7O0FBVUQ7RUdvQkEsV0ZoQ3FDLEVEY3BDOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsV0YvQmtDO0VJRGxDLDZCQUE0QixFTEUzQjs7QUFVRDtFR29CQSxXRi9CcUMsRURhcEM7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VIcUNuQyw4QkY1Qm1EO01FNEJuRCwwQkY1Qm1EO1VFNEJuRCxzQkY1Qm1EO0VNR2pELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VIb0NyQyxnQ0YzQnFEO01FMkJyRCw0QkYzQnFEO1VFMkJyRCx3QkYzQnFEO0VNRW5ELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixzREduQ2lDO1VIbUNqQyw4Q0duQ2lDO0VIbUNqQyxpQ0YxQnNEO01FMEJ0RCw2QkYxQnNEO1VFMEJ0RCx5QkYxQnNEO0VNQ3BELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixzREdsQytCO1VIa0MvQiw4Q0dsQytCO0VIa0MvQiwrQkZ6Qm9EO01FeUJwRCwyQkZ6Qm9EO1VFeUJwRCx1QkZ6Qm9EO0VNQWxELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCLEVQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkIsRVBKNUI7O0FBZEQ7RUNsQkYsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYix1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VIcUNuQyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBMkIsRVBONUI7O0FBVUQ7RUdvQkEsb0RHVjRDO1VIVTVDLDRDR1Y0QztFQ0oxQyxXQUEyQixFUEo1Qjs7QUFkRDtFQ2xCRiwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHVER3BDcUM7VUhvQ3JDLCtDR3BDcUM7RUhvQ3JDLGlDR0NlO01IRGYsNkJHQ2U7VUhEZix5QkdDZTtFQzFCYixnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQixFUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCLEVQSjVCOztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5Qyw4QkZ0Qm1EO01Fc0JuRCwwQkZ0Qm1EO1VFc0JuRCxzQkZ0Qm1EO0VNSGpELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHVER3JDbUM7VUhxQ25DLCtDR3JDbUM7RUN1QmpDLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxnQ0ZyQnFEO01FcUJyRCw0QkZyQnFEO1VFcUJyRCx3QkZyQnFEO0VNSm5ELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHVER3BDcUM7VUhvQ3JDLCtDR3BDcUM7RUNzQm5DLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxpQ0ZwQnNEO01Fb0J0RCw2QkZwQnNEO1VFb0J0RCx5QkZwQnNEO0VNTHBELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHNER25DaUM7VUhtQ2pDLDhDR25DaUM7RUNxQi9CLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QywrQkZuQm9EO01FbUJwRCwyQkZuQm9EO1VFbUJwRCx1QkZuQm9EO0VNTmxELGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCLEVQTi9COztBQVVEO0VHb0JBLHNER2xDK0I7VUhrQy9CLDhDR2xDK0I7RUNvQjdCLFdBQThCLEVQSi9COztBQWREO0VDbEJGLDJCQ2tCYztFRGpC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RUFDbkI7RUFSSjtJQVVPLG9CdEVsRnlDLEVzRW1GNUM7RUEzRVI7SUE2RVcsaUJ0RXJGeUM7SXNFc0Z6QyxrQnRFdEZ5QztJc0V1RnpDLHVCdEV2RnlDO0lzRXdGekMsWXRFeEZ5QyxFc0U4RjVDO0lBdEZSO01BbUZlLGdCdEUzRnFDO01zRTRGckMsdUJ0RTVGcUMsRXNFNkZ4QyxFQUFBOztBaEZiWDtFZ0ZySEQ7SUFxSmUsZUFBc0I7SUFDdEIsa0J0RWpIcUM7SXNFa0hyQyxjdEVsSHFDO0lzRW1IckMsZXRFbkhxQztJc0VvSHJDLG9CdEVwSHFDLEVzRXFIeEM7RUF2R1Q7SUE4R1EsY3RFNUh5QyxFc0U2SDVDO0VBckRKO0lBdURPLHVCdEUvSHlDLEVzRWdJNUM7RUF4SFI7SUEwSFcsZ0J0RWxJeUM7SXNFbUl6QyxpQnRFbkl5QztJc0VvSXpDLHNCdEVwSXlDO0lzRXFJekMsWXRFckl5QyxFc0UySTVDO0lBbklSO01BZ0llLGtCdEV4SXFDO01zRXlJckMsdUJ0RXpJcUMsRXNFMEl4QyxFQUFBOztBaEYxRFg7RWdGbEVFO0lBeUlRLGdCdEV2SnlDLEVzRXdKNUM7RUFoSlI7SUFrSlcsY3RFMUp5QyxFc0UySjVDLEVBQUE7O0FDblBiO0VBQ0MsbUJBQWtCO0VBQ2xCLHlCQUFvQztFQUNwQyx1QnZFcUZ3RCxFdUUxQ3hEO0VBekNBO0lBQ08sMEI1RTRCWSxFNEUzQmY7RUFQTDtJQVNRLHVCdkUrRWlELEV1RTlFcEQ7RUFWTDtJQVlRLGUzRTREb0I7STJFM0RwQixpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBQ2xCLG1CQUFrQjtJQUNsQix1QkFBZ0M7SUFDaEMscUJ2RXVFaUQ7SXVFdEVqRCxrQnZFc0VpRCxFdUUzQ3BEO0lBN0NMO01BcUJZLFlBQVc7TUFDWCxtQkFBa0I7TUFDbEIsT0FBTTtNQUNOLFVBQVM7TUFDVCxtQ0FBMEI7VUFBMUIsK0JBQTBCO2NBQTFCLDJCQUEwQjtNQUMxQixldkU4RDZDO011RTdEN0MsZXZFNkQ2QztNdUU1RDdDLGVBQWM7TUFDZCxXQUFVO01BQ1YsbUVBQXNGO01sQnNCaEcs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QkFBZSxFQWlCaEI7SUFwQ0w7TUE0QlEsb0JwRnlEZ0Q7TW9GeERoRCxleEZ1RU07TXdGdEVOLG9CcEZ1RGdEO01vRnREaEQsdUJwRnNEZ0QsRW9GckRqRDs7QUFRTjtFQUNDLG1CQUFrQixFQUVsQjs7QUFJRjtFQUNDLHNCQUFxQjtFQUNyQixrQkFBaUIsRUFDakI7O0FBSUQ7RUFDQyxtQkFBa0IsRUFVbEI7RUFYRDtJQUlFLFVBQVM7SUFDVCxpQkFBZ0IsRUFDaEI7RUFORjtJQVNFLHNCQUFxQixFQUNyQiIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCwgLnJldmVhbC50aW55LCAucmV2ZWFsLnNtYWxsLCAucmV2ZWFsLmxhcmdlIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cblxuLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cbi8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5maWdjYXB0aW9uLFxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovIH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cbiAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi8gfVxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovIH1cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5zZWxlY3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5yb3cge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5yb3c6OmJlZm9yZSwgLnJvdzo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5yb3c6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucm93LmNvbGxhcHNlID4gLmNvbHVtbiwgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIC5yb3cgLnJvdy5jb2xsYXBzZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAucm93LmV4cGFuZGVkIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgICAucm93LmV4cGFuZGVkIC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnJvdzpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgLnJvdy5ndXR0ZXItc21hbGwgPiAuY29sdW1uLCAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIC5yb3cuZ3V0dGVyLW1lZGl1bSA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLW1lZGl1bSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cblxuLmNvbHVtbiwgLmNvbHVtbnMge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5jb2x1bW5zOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuY29sdW1uLmVuZDpsYXN0LWNoaWxkOmxhc3QtY2hpbGQsIC5lbmQuY29sdW1uczpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5jb2x1bW4ucm93LnJvdywgLnJvdy5yb3cuY29sdW1ucyB7XG4gIGZsb2F0OiBub25lOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc21hbGwtMiB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0xNi42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC0zIHtcbiAgd2lkdGg6IDI1JTsgfVxuXG4uc21hbGwtcHVzaC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAyNSU7IH1cblxuLnNtYWxsLXB1bGwtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTI1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC00IHtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTMzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5zbWFsbC01IHtcbiAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTQxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC02IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uc21hbGwtcHVzaC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7IH1cblxuLnNtYWxsLXB1bGwtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTUwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC03IHtcbiAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtNyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTU4LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTY2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC05IHtcbiAgd2lkdGg6IDc1JTsgfVxuXG4uc21hbGwtcHVzaC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA3NSU7IH1cblxuLnNtYWxsLXB1bGwtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTc1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTgzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xMSB7XG4gIHdpZHRoOiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTkxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtMTIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtdXAtMSA+IC5jb2x1bW4sIC5zbWFsbC11cC0xID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA1MCU7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTMgPiAuY29sdW1uLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0zID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTQgPiAuY29sdW1uLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyNSU7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAyMCU7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTYgPiAuY29sdW1uLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC02ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTcgPiAuY29sdW1uLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSg3bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMi41JTsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtY29sbGFwc2UgLnJvdyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmV4cGFuZGVkLnJvdyAuc21hbGwtY29sbGFwc2Uucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuXG4uc21hbGwtY2VudGVyZWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5zbWFsbC1jZW50ZXJlZCwgLnNtYWxsLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5zbWFsbC11bmNlbnRlcmVkLFxuLnNtYWxsLXB1c2gtMCxcbi5zbWFsbC1wdWxsLTAge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC0xID4gLmNvbHVtbiwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTIuNSU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg4bisxKSwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS1jb2xsYXBzZSAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmV4cGFuZGVkLnJvdyAubWVkaXVtLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH1cbiAgLm1lZGl1bS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLm1lZGl1bS1jZW50ZXJlZCwgLm1lZGl1bS1jZW50ZXJlZDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1lZGl1bS11bmNlbnRlcmVkLFxuICAubWVkaXVtLXB1c2gtMCxcbiAgLm1lZGl1bS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC0yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0zMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5sYXJnZS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1bGwtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5sYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5sYXJnZS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5sYXJnZS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC04My4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVzaC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLXVwLTEgPiAuY29sdW1uLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAubGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC5sYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubGFyZ2UtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLmxhcmdlLXVwLTIgPiAuY29sdW1uczpudGgtb2YtdHlwZSgybisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY29sdW1uLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLmxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5sYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC5sYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAubGFyZ2UtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLmxhcmdlLXVwLTUgPiAuY29sdW1uczpudGgtb2YtdHlwZSg1bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY29sdW1uLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLmxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5sYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC5sYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubGFyZ2UtdXAtOCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDhuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmxhcmdlLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5sYXJnZS1jb2xsYXBzZS5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAubGFyZ2UtY2VudGVyZWQge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIC5sYXJnZS1jZW50ZXJlZCwgLmxhcmdlLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubGFyZ2UtdW5jZW50ZXJlZCxcbiAgLmxhcmdlLXB1c2gtMCxcbiAgLmxhcmdlLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC54bGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLnhsYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC54bGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAueGxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAueGxhcmdlLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC54bGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAueGxhcmdlLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAueGxhcmdlLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAueGxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnhsYXJnZS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnhsYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLnhsYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC54bGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC54bGFyZ2UtcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAueGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAueGxhcmdlLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAueGxhcmdlLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAueGxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLnhsYXJnZS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnhsYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLnhsYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC54bGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC54bGFyZ2UtcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAueGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC54bGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAueGxhcmdlLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAueGxhcmdlLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAueGxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC54bGFyZ2UtcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAueGxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLnhsYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAueGxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLnhsYXJnZS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAueGxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAueGxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAueGxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAueGxhcmdlLXVwLTEgPiAuY29sdW1uLCAueGxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAueGxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLnhsYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC0yID4gLmNvbHVtbiwgLnhsYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAueGxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLnhsYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC0zID4gLmNvbHVtbiwgLnhsYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAueGxhcmdlLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLnhsYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC00ID4gLmNvbHVtbiwgLnhsYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAueGxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLnhsYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC01ID4gLmNvbHVtbiwgLnhsYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAueGxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLnhsYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC02ID4gLmNvbHVtbiwgLnhsYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAueGxhcmdlLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLnhsYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC03ID4gLmNvbHVtbiwgLnhsYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAueGxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnhsYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnhsYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLnhsYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueGxhcmdlLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnhsYXJnZS11cC04ID4gLmNvbHVtbiwgLnhsYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueGxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueGxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAueGxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54bGFyZ2UtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnhsYXJnZS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLnhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAueGxhcmdlLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC54bGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAueGxhcmdlLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAueGxhcmdlLWNlbnRlcmVkLCAueGxhcmdlLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAueGxhcmdlLXVuY2VudGVyZWQsXG4gIC54bGFyZ2UtcHVzaC0wLFxuICAueGxhcmdlLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC54eGxhcmdlLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAueHhsYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAueHhsYXJnZS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAueHhsYXJnZS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLnh4bGFyZ2UtcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAueHhsYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAueHhsYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC54eGxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAueHhsYXJnZS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLnh4bGFyZ2UtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAueHhsYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC54eGxhcmdlLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC54eGxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC54eGxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAueHhsYXJnZS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLnh4bGFyZ2UtcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAueHhsYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAueHhsYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC54eGxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC54eGxhcmdlLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAueHhsYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54eGxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueHhsYXJnZS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC54eGxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54eGxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAueHhsYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueHhsYXJnZS11cC0yID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueHhsYXJnZS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueHhsYXJnZS11cC0zID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueHhsYXJnZS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uLCAueHhsYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAueHhsYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueHhsYXJnZS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC54eGxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC54eGxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAueHhsYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAueHhsYXJnZS11cC01ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAueHhsYXJnZS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAueHhsYXJnZS11cC02ID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gICAgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueHhsYXJnZS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uLCAueHhsYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAueHhsYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAueHhsYXJnZS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnh4bGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLnh4bGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAueHhsYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLnh4bGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC54eGxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC54eGxhcmdlLXVwLTggPiAuY29sdW1uOmxhc3QtY2hpbGQsIC54eGxhcmdlLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC54eGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLnh4bGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLnh4bGFyZ2UtY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLnh4bGFyZ2UtY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnh4bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC54eGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG4gIC54eGxhcmdlLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAueHhsYXJnZS1jZW50ZXJlZCwgLnh4bGFyZ2UtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC54eGxhcmdlLXVuY2VudGVyZWQsXG4gIC54eGxhcmdlLXB1c2gtMCxcbiAgLnh4bGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5jb2x1bW4tYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5jb2x1bW4tYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgICAgIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLCAuaDEsXG5oMiwgLmgyLFxuaDMsIC5oMyxcbmg0LCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIGgxIHNtYWxsLCAuaDEgc21hbGwsXG4gIGgyIHNtYWxsLCAuaDIgc21hbGwsXG4gIGgzIHNtYWxsLCAuaDMgc21hbGwsXG4gIGg0IHNtYWxsLCAuaDQgc21hbGwsXG4gIGg1IHNtYWxsLCAuaDUgc21hbGwsXG4gIGg2IHNtYWxsLCAuaDYgc21hbGwge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGNvbG9yOiAjNjc2NzY3OyB9XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICBoMywgLmgzIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTsgfVxuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG4gIGg1LCAuaDUge1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtOyB9XG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMy42MjVyZW07IH1cbiAgaDIsIC5oMiB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtOyB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogNC4zNzVyZW07IH1cbiAgaDIsIC5oMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgaDMsIC5oMyB7XG4gICAgZm9udC1zaXplOiAxLjg3NXJlbTsgfVxuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuICBoNiwgLmg2IHtcbiAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjYTAzZjU0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzhhMzY0ODsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM2NzY3Njc7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzY3Njc2NzsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICMzODM4Mzg7IH1cblxuY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgY29sb3I6ICMzODM4Mzg7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbmFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAwMDAwO1xuICBjdXJzb3I6IGhlbHA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2NzY3Njc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzAwMDAwMDsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICMzODM4Mzg7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG51bC5uby1idWxsZXQsIG9sLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnhsYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAueGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnhsYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC54eGxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAueHhsYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAueHhsYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC54eGxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM4MzgzODtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkxMjg4ZDtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdiMjI3ODtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnRpbnkge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24uc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLmxhcmdlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi5leHBhbmRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5idXR0b24ucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkxMjg4ZDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3NDIwNzE7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjI2MjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUxYjRlO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIyYmI1YjtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24ud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5idXR0b24ud2FybmluZzpob3ZlciwgLmJ1dHRvbi53YXJuaW5nOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzhiMDA7XG4gICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5hbGVydDpob3ZlciwgLmJ1dHRvbi5hbGVydDpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTUzYjJhO1xuICAgICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzkxMjg4ZDtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzkxMjg4ZDtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MjI2MjtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3Mge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZyB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5idXR0b24uZGlzYWJsZWQuYWxlcnQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuYWxlcnQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzkxMjg4ZDtcbiAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgIC5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLmhvbGxvd1tkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5ob2xsb3dbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzQ5MTQ0NztcbiAgICAgIGNvbG9yOiAjNDkxNDQ3OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdzpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3c6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzkxMjg4ZDtcbiAgICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5MTI4OGQ7XG4gICAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQ5MTQ0NztcbiAgICAgICAgY29sb3I6ICM0OTE0NDc7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTEyODhkO1xuICAgICAgICAgIGNvbG9yOiAjOTEyODhkOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyNjIyNjI7XG4gICAgICBjb2xvcjogIzI2MjI2MjsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxMzExMzE7XG4gICAgICAgIGNvbG9yOiAjMTMxMTMxOyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMjYyMjYyO1xuICAgICAgICAgIGNvbG9yOiAjMjYyMjYyOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2VzcyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmcge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmYWUwMDtcbiAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1NzAwO1xuICAgICAgICBjb2xvcjogIzgwNTcwMDsgfVxuICAgICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5hbGVydCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICAgICAgY29sb3I6ICM2NzI1MWE7IH1cbiAgICAgICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgICAgICBjb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmNsZWFyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTEyODhkO1xuICAgIGNvbG9yOiAjOTEyODhkOyB9XG4gICAgLmJ1dHRvbi5jbGVhciwgLmJ1dHRvbi5jbGVhcjpob3ZlciwgLmJ1dHRvbi5jbGVhcjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5jbGVhcltkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzQ5MTQ0NztcbiAgICAgIGNvbG9yOiAjNDkxNDQ3OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcjpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTEyODhkO1xuICAgICAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgIC5idXR0b24uY2xlYXIsIC5idXR0b24uY2xlYXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyOmhvdmVyLCAuYnV0dG9uLmNsZWFyOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhcjpmb2N1cywgLmJ1dHRvbi5jbGVhcjpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhcjpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIucHJpbWFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTEyODhkO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgICAgIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDkxNDQ3O1xuICAgICAgICBjb2xvcjogIzQ5MTQ0NzsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzkxMjg4ZDtcbiAgICAgICAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5wcmltYXJ5LCAuYnV0dG9uLmNsZWFyLnByaW1hcnkuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIucHJpbWFyeVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnByaW1hcnk6Zm9jdXMsIC5idXR0b24uY2xlYXIucHJpbWFyeTpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5wcmltYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMjYyMjYyO1xuICAgICAgY29sb3I6ICMyNjIyNjI7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzEzMTEzMTtcbiAgICAgICAgY29sb3I6ICMxMzExMzE7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzI2MjI2MjtcbiAgICAgICAgICBjb2xvcjogIzI2MjI2MjsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnksIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5LmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnNlY29uZGFyeTpmb2N1cywgLmJ1dHRvbi5jbGVhci5zZWNvbmRhcnk6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc2Vjb25kYXJ5OmZvY3VzW2Rpc2FibGVkXSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3Mge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICAgICAgY29sb3I6ICMxNTc1Mzk7IH1cbiAgICAgICAgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXJbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuc3VjY2VzcywgLmJ1dHRvbi5jbGVhci5zdWNjZXNzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3NbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5zdWNjZXNzOmZvY3VzLCAuYnV0dG9uLmNsZWFyLnN1Y2Nlc3M6Zm9jdXMuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuc3VjY2Vzczpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gICAgICAgIC5idXR0b24uY2xlYXIud2FybmluZzpob3Zlci5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgICAgIGNvbG9yOiAjZmZhZTAwOyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLndhcm5pbmcsIC5idXR0b24uY2xlYXIud2FybmluZy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci53YXJuaW5nW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6aG92ZXIuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIud2FybmluZzpob3ZlcltkaXNhYmxlZF0sIC5idXR0b24uY2xlYXIud2FybmluZzpmb2N1cywgLmJ1dHRvbi5jbGVhci53YXJuaW5nOmZvY3VzLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLndhcm5pbmc6Zm9jdXNbZGlzYWJsZWRdIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5idXR0b24uY2xlYXIuYWxlcnQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjNGIzNztcbiAgICAgIGNvbG9yOiAjY2M0YjM3OyB9XG4gICAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjcyNTFhO1xuICAgICAgICBjb2xvcjogIzY3MjUxYTsgfVxuICAgICAgICAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYzRiMzc7XG4gICAgICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uY2xlYXIuYWxlcnQsIC5idXR0b24uY2xlYXIuYWxlcnQuZGlzYWJsZWQsIC5idXR0b24uY2xlYXIuYWxlcnRbZGlzYWJsZWRdLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyLmRpc2FibGVkLCAuYnV0dG9uLmNsZWFyLmFsZXJ0OmhvdmVyW2Rpc2FibGVkXSwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cywgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1cy5kaXNhYmxlZCwgLmJ1dHRvbi5jbGVhci5hbGVydDpmb2N1c1tkaXNhYmxlZF0ge1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idXR0b24uZHJvcGRvd246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjRlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3c6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjOTEyODhkOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnByaW1hcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjOTEyODhkOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnNlY29uZGFyeTo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNjIyNjI7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuc3VjY2Vzczo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMzYWRiNzY7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cud2FybmluZzo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmFlMDA7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bi5ob2xsb3cuYWxlcnQ6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjY2M0YjM3OyB9XG4gIC5idXR0b24uYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgIHRvcDogLTAuMWVtO1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbmEuYnV0dG9uOmhvdmVyLCBhLmJ1dHRvbjpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzY3Njc2NztcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM4MzgzODtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggIzY3Njc2NztcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjNjc2NzY3OyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNTYyNXJlbSAwOyB9XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzAwMDAwMDsgfVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2NzY3Njc7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzY3Njc2NzsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07IH1cblxuc2VsZWN0IHtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzY3Njc2NztcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogcmdiJTI4NTYsIDU2LCA1NiUyOSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAtMXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM4MzgzODtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggIzY3Njc2NztcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWVjZWE7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2NjNGIzNzsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNjYzRiMzc7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuYnV0dG9uLWdyb3VwOjpiZWZvcmUsIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLnNtYWxsIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmxhcmdlIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b24ge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MTI4OGQ7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc0MjA3MTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjIyNjI7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZTFiNGU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjNGIzNztcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhcmQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2FyZC1kaXZpZGVyIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6ICNlZWU7IH1cbiAgLmNhcmQtZGl2aWRlciA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLXNlY3Rpb24ge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgcGFkZGluZzogMXJlbTsgfVxuICAuY2FyZC1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtaW1hZ2Uge1xuICBtaW4taGVpZ2h0OiAxcHg7IH1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICMzODM4Mzg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmNsb3NlLWJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuY2xvc2UtYnV0dG9uOmhvdmVyLCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2xvc2UtYnV0dG9uLnNtYWxsIHtcbiAgICByaWdodDogMC42NnJlbTtcbiAgICB0b3A6IDAuMzNlbTtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5jbG9zZS1idXR0b24sIC5jbG9zZS1idXR0b24ubWVkaXVtIHtcbiAgICByaWdodDogMXJlbTtcbiAgICB0b3A6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuXG4ubWVudSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51IGxpIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5tZW51IGEsXG4gIC5tZW51IC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAubWVudSBpbnB1dCxcbiAgLm1lbnUgc2VsZWN0LFxuICAubWVudSBhLFxuICAubWVudSBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1lbnUgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWVudSwgLm1lbnUuaG9yaXpvbnRhbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lbnUudmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lbnUuZXhwYW5kZWQgbGkge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLm1lbnUuc2ltcGxlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLm1lbnUuc2ltcGxlIGxpICsgbGkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAubWVudS5zaW1wbGUgYSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5tZWRpdW0tZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1zaW1wbGUgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51LmxhcmdlLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5tZW51LnhsYXJnZS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS54bGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLm1lbnUueGxhcmdlLWV4cGFuZGVkIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgICAubWVudS54bGFyZ2Utc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLm1lbnUueHhsYXJnZS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS54eGxhcmdlLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51Lnh4bGFyZ2UtZXhwYW5kZWQgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lnh4bGFyZ2Utc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICAubWVudS5uZXN0ZWQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudS5pY29ucyBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51Lmljb24tdG9wIGEsIC5tZW51Lmljb24tcmlnaHQgYSwgLm1lbnUuaWNvbi1ib3R0b20gYSwgLm1lbnUuaWNvbi1sZWZ0IGEge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07IH1cbiAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07IH1cbiAgLm1lbnUuaWNvbi10b3AgbGkgYSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgc3ZnIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51Lmljb24tYm90dG9tIGxpIGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgaSxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMyNjIyNjI7IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMjYyMjYyOyB9XG4gIC5tZW51LmFsaWduLWxlZnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudS5hbGlnbi1yaWdodCBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLm1lbnUuYWxpZ24tcmlnaHQgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5tZW51LmFsaWduLXJpZ2h0LnZlcnRpY2FsIGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0IC5uZXN0ZWQge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubWVudS5hbGlnbi1jZW50ZXIgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAubWVudS5hbGlnbi1jZW50ZXIgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51IC5tZW51LXRleHQge1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAubWVudS1jZW50ZXJlZCA+IC5tZW51IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSAuc3VibWVudSBsaSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZW51LWljb246OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNmZWZlZmUsIDAgMTRweCAwICNmZWZlZmU7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbjpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM2NzY3Njc7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjNjc2NzY3LCAwIDE0cHggMCAjNjc2NzY3OyB9XG5cbi5tZW51LWljb24uZGFyayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjMDAwMDAwLCAwIDE0cHggMCAjMDAwMDAwO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzODM4Mzg7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjMzgzODM4LCAwIDE0cHggMCAjMzgzODM4OyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmRyaWxsZG93biBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWFjdGl2ZSB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJpbGxkb3duIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcmlsbGRvd24gLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICByaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM5MTI4OGQ7IH1cblxuLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxcmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYTAzZjU0OyB9XG5cbi5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNhMDNmNTQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjOTEyODhkIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwOyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogMHB4IHNvbGlkICM2NzY3Njc7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDFyZW07IH1cbiAgLmRyb3Bkb3duLXBhbmUuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmRyb3Bkb3duLXBhbmUuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZHJvcGRvd24tcGFuZS50aW55IHtcbiAgd2lkdGg6IDEwMHB4OyB9XG5cbi5kcm9wZG93bi1wYW5lLnNtYWxsIHtcbiAgd2lkdGg6IDIwMHB4OyB9XG5cbi5kcm9wZG93bi1wYW5lLmxhcmdlIHtcbiAgd2lkdGg6IDQwMHB4OyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwOyB9XG5cbi5kcm9wZG93bi5tZW51IGEge1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmRyb3Bkb3duLm1lbnUgYSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uZHJvcGRvd24ubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzkxMjg4ZDsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51IC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiAxMDAlO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNjc2NzY3O1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yZXNwb25zaXZlLWVtYmVkLFxuLmZsZXgtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUsXG4gIC5yZXNwb25zaXZlLWVtYmVkIG9iamVjdCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgZW1iZWQsXG4gIC5yZXNwb25zaXZlLWVtYmVkIHZpZGVvLFxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkLndpZGVzY3JlZW4sXG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQ6ICM5MTI4OGQ7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjOTEyODhkO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICMyNjIyNjI7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmxhYmVsLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5vcmJpdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4ub3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ub3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTsgfVxuICAub3JiaXQtc2xpZGUubm8tbW90aW9udWkuaXMtYWN0aXZlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ub3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4ub3JiaXQtcHJldmlvdXMsIC5vcmJpdC1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1wcmV2aW91cywgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1uZXh0IHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1wcmV2aW91czpob3ZlciwgLm9yYml0LW5leHQ6aG92ZXIsIC5vcmJpdC1wcmV2aW91czphY3RpdmUsIC5vcmJpdC1uZXh0OmFjdGl2ZSwgLm9yYml0LXByZXZpb3VzOmZvY3VzLCAub3JiaXQtbmV4dDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG5cbi5vcmJpdC1wcmV2aW91cyB7XG4gIGxlZnQ6IDA7IH1cblxuLm9yYml0LW5leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LWJ1bGxldHMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LWJ1bGxldHMgYnV0dG9uIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIG1hcmdpbjogMC4xcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjc2NzY3OyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzODM4Mzg7IH1cblxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuaHRtbC5pcy1yZXZlYWwtb3Blbixcbmh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuXG4ucmV2ZWFsIHtcbiAgei1pbmRleDogMTAwNjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNjc2NzY3O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5yZXZlYWwge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH0gfVxuICAucmV2ZWFsIC5jb2x1bW4sIC5yZXZlYWwgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICAucmV2ZWFsLmNvbGxhcHNlIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnNtYWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLmxhcmdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgLnJldmVhbC5mdWxsIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxuICAucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi50aXRsZS1iYXIge1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLnRpdGxlLWJhciAubWVudS1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07IH1cblxuLnRpdGxlLWJhci1sZWZ0LFxuLnRpdGxlLWJhci1yaWdodCB7XG4gIGZsZXg6IDEgMSAwcHg7IH1cblxuLnRpdGxlLWJhci1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50aXRsZS1iYXItdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi50b3AtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnRvcC1iYXIsXG4gIC50b3AtYmFyIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLWxlZnQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gICAgICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXhsYXJnZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXhsYXJnZSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3IteGxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC50b3AtYmFyLnN0YWNrZWQtZm9yLXh4bGFyZ2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXh4bGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci14eGxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbjogMC41cmVtIDFyZW0gMC41cmVtIDA7IH1cblxuLnRvcC1iYXItbGVmdCxcbi50b3AtYmFyLXJpZ2h0IHtcbiAgZmxleDogMCAwIGF1dG87IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuaGlkZS1mb3IteGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLXhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkgYW5kIChtYXgtd2lkdGg6IDg5LjkzNzVlbSkge1xuICAuaGlkZS1mb3IteGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuc2hvdy1mb3IteGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLmhpZGUtZm9yLXh4bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5LjkzNzVlbSkge1xuICAuc2hvdy1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLXh4bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwOyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7IH1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4uZmxvYXQtY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmNsZWFyZml4OjpiZWZvcmUsIC5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLmFsaWduLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLWp1c3RpZnkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLmFsaWduLXNwYWNlZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5hbGlnbi1yaWdodC52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tY2VudGVyLnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLXNlbGYtdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tYm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1zZWxmLWJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1taWRkbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5hbGlnbi1zZWxmLW1pZGRsZSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uc21hbGwtb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7IH1cblxuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMzsgfVxuXG4uc21hbGwtb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7IH1cblxuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWVkaXVtLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5sYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC54bGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLnhsYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAueGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC54bGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLnhsYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnh4bGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnh4bGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLnh4bGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLnh4bGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLnh4bGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLnh4bGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5mbGV4LWNoaWxkLWF1dG8ge1xuICBmbGV4OiAxIDEgYXV0bzsgfVxuXG4uZmxleC1jaGlsZC1ncm93IHtcbiAgZmxleDogMSAwIGF1dG87IH1cblxuLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgZmxleDogMCAxIGF1dG87IH1cblxuLmZsZXgtZGlyLXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLmZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi5mbGV4LWRpci1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAueGxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLnhsYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC54bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC54eGxhcmdlLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLnh4bGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAueHhsYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLnh4bGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLnh4bGFyZ2UtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi5mYWRlLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZS03OyB9XG5cbkBrZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpOyB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTsgfSB9XG5cbi5zcGluLWN3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc3Bpbi1jY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9IH1cblxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGUtN2RlZzsgfVxuXG5Aa2V5ZnJhbWVzIHdpZ2dsZS03ZGVnIHtcbiAgNDAlLCA1MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbiAgMzUlLCA0NSUsIDU1JSwgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7IH1cbiAgMCUsIDMwJSwgNzAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zaGFrZSxcbi5zcGluLWN3LFxuLnNwaW4tY2N3LFxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7IH1cblxuLmluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuLnNsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICBhbmltYXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnNsaWNrLWxpc3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnNsaWNrLWxpc3QuZHJhZ2dpbmcge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7IH1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zbGljay10cmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stdHJhY2s6YmVmb3JlLCAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stdHJhY2sge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpY2stc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAuc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbm1haW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XG5cbmEgaDEsIGEgaDIsIGEgaDMsIGEgaDQsIGEgaDUsIGEgaDYsIGEgcCwgYSBsaSB7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5zZWN0aW9uIHtcbiAgcGFkZGluZzogMnJlbSAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cbiAgLnNlY3Rpb24tLWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cbiAgLnNlY3Rpb24tLWRhcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cbiAgLnNlY3Rpb24tLWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XG4gIC5zZWN0aW9uLS1nYWxsZXJ5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gICAgLnNlY3Rpb24tLWdhbGxlcnkgLmdhbGxlcnktZnJhbWUsIC5zZWN0aW9uLS1nYWxsZXJ5IC52aWRlby1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjA7IH1cbiAgICAuc2VjdGlvbi0tZ2FsbGVyeTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogODAlO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5zZWN0aW9uLS1pbnRyb2R1Y3Rpb24sIC5zZWN0aW9uLS10aW1lbGluZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuc2VjdGlvbi0tdGltZWxpbmUtc3RhcnQge1xuICAgIHBhZGRpbmctdG9wOiA2LjI1cmVtICFpbXBvcnRhbnQ7IH1cbiAgLnNlY3Rpb24tLXByb21vIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnNlY3Rpb24tLXByb21vID4gLnJvdyB7XG4gICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7IH1cbiAgLnNlY3Rpb24tLWNvbXByZXNzZWQgKyAuc2VjdGlvbi0tY29tcHJlc3NlZCB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNvbHVtbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuY29sdW1uczpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLCAuY29sdW1uczpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2VjdGlvbi0taW50cm9kdWN0aW9uLCAuc2VjdGlvbi0tdGltZWxpbmUge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnNlY3Rpb24tLWdhbGxlcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuc2VjdGlvbi0tZ2FsbGVyeTphZnRlciB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMi4yNXJlbSAwIDA7IH1cbiAgICAuc2VjdGlvbi0taW50cm9kdWN0aW9uLCAuc2VjdGlvbi0tdGltZWxpbmUge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5zZWN0aW9uLS1nYWxsZXJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICAgIC5zZWN0aW9uLS1nYWxsZXJ5OmFmdGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2VjdGlvbi0taW50cm9kdWN0aW9uLCAuc2VjdGlvbi0tdGltZWxpbmUge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnNlY3Rpb24tLWdhbGxlcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDMuNXJlbTsgfVxuICAgIC5zZWN0aW9uLS1nYWxsZXJ5OmFmdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNzVyZW07IH0gfVxuXG4udHR1IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uZmIge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4ubHN0biB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAzZW0gMCAxZW07XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5sc3RuIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyZW07IH1cbiAgLmxzdG4gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyLjVlbTtcbiAgICBoZWlnaHQ6IDIuNWVtO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGJhY2tncm91bmQ6ICNmYWY5ZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogc29saWQgMC4wNWVtICM5MTI4OGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgLmxzdG4gYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZhZjlmZjtcbiAgICAgIGJhY2tncm91bmQ6ICM5MTI4OGQ7XG4gICAgICBib3JkZXI6IHNvbGlkIDAuMDVlbSAjOTEyODhkOyB9XG4gIC5sc3RuIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjI1ZW07IH1cblxuLnYtLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cblxuLnJvdy5yb3ctLWZ1bGx3aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4ucm93LnJvdy0tZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLnJvdy5yb3ctLWZsZXgtcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4ucm93LnJvdy0tZmxleC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ucm93LnJvdy0tZmxleC12ZXJ0aWNhbC1hbGlnbiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLnJvdy5yb3ctLWZsZXgtc3BhY2UtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LnJvdy0tZnVsbHdpZHRoIHtcbiAgICBwYWRkaW5nOiAwIDJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgIHBhZGRpbmc6IDAgM3JlbTsgfVxuICAuc2VjdGlvbi0tcGFkZGVkLWxhcmdlIHtcbiAgICBwYWRkaW5nOiA3cmVtIDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgIHBhZGRpbmc6IDAgMy41cmVtOyB9IH1cblxuLmNmOmFmdGVyLCAuY2Y6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5jZjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5lbGVtZW50LWludmlzaWJsZSwgLnNob3ctZm9yLXNyLCAuc2hvdy1vbi1mb2N1cywgLnZpc3VhbGx5aGlkZGVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7IH1cblxuYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYmFjay10by10b3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAzMHB4O1xuICBib3R0b206IDg1MHB4O1xuICBmb250LXNpemU6IDNyZW07IH1cblxuI3NpdGUtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsIDI0OSwgMjU1LCAwLjk1KTtcbiAgYm94LXNoYWRvdzogMCAwLjA1ZW0gMC41ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnotMSB7XG4gIHotaW5kZXg6IDE7IH1cblxuLnRvcC1iYXIgdWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMjQ5LCAyNTUsIDAuOTUpOyB9XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG4gIHBhZGRpbmc6IDEuNXJlbSAwLjVyZW07XG4gIHotaW5kZXg6IDUwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsIDI0OSwgMjU1LCAwLjk1KTsgfVxuXG4uaGVhZGVyLS1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjc1KTtcbiAgbWluLWhlaWdodDogMjAuMzEyNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTUwJSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogLTE7IH1cbiAgLmhlYWRlci0tb3ZlcmxheS1zaG93IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMjQ5LCAyNTUsIDAuOTUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uYnJhbmQtbmF2aWdhdGlvbiB7XG4gIHotaW5kZXg6IDIwMDsgfVxuICAuYnJhbmQtbmF2aWdhdGlvbiBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ubG9nbyBpbWcsIC5pbnZlcnNlLS1sb2dvIGltZyB7XG4gIG1heC13aWR0aDogMTEuMTI1cmVtO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5oZWFkZXItLWNvbXByZXNzZWQge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cblxuLmRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnJlbSAxLjEyNXJlbSAwIDEuMTI1cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cbiAgLmRyaWxsZG93biBsaSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5kcmlsbGRvd24gbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgMC4xZW0gIzkxMjg4ZDsgfVxuICAgIC5kcmlsbGRvd24gbGk6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAwLjE1ZW0gIzkxMjg4ZDsgfVxuICAgIC5kcmlsbGRvd24gbGkgYSB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNDksIDI1NSwgMC45NSk7IH1cbiAgICAgIC5kcmlsbGRvd24gbGkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMjYyMjYyOyB9XG4gIC5kcmlsbGRvd24tLXNob3cge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcGFkZGluZzogNnJlbSAxLjEyNXJlbSAwIDEuMTI1cmVtO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNDksIDI1NSwgMC45NSk7IH1cbiAgICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSBhIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDAuNXJlbSBzb2xpZCAjZmVmZWZlO1xuICAgIGJvcmRlci1ib3R0b206IDAuMzc1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDAuMzc1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtOyB9XG5cbi5tZW51LmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtOyB9XG4gIC5tZW51LmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMGRcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogbm9uZTsgfVxuXG4uaXMtZHJpbGxkb3duIHtcbiAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbi5tYWluLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5tZW51IGxpIGEge1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6IC5tZW51IGxpIGEgcHJpbWFyeS1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjOTEyODhkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLm1lbnUgbGkgYTpob3ZlciB7XG4gICAgY29sb3I6ICMyNjIyNjI7IH1cblxuLm1lbnUgbGkubWVudS1jdGEge1xuICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLm1lbnUgbGkubWVudS1jdGEgYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cbiAgICAubWVudSBsaS5tZW51LWN0YSBhOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBoZWlnaHQ6IDFyZW07IH1cblxuLm1lbnUgbGkuaXMtc3VibWVudS1pdGVtIHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVudSBsaS5pcy1zdWJtZW51LWl0ZW0gYSB7XG4gICAgY29sb3I6ICM5MTI4OGQ7IH1cblxuLmRyb3Bkb3duLm1lbnUgLmlzLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4uZHJvcGRvd24gbGkge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1pbi13aWR0aDogMTguNzVyZW07XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uc2VhcmNoLS1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDIuMTI1cmVtO1xuICBoZWlnaHQ6IDIuMTI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnNlYXJjaC0taWNvbiAuZmEge1xuICAgIGNvbG9yOiAjOTEyODhkOyB9XG4gICAgLnNlYXJjaC0taWNvbiAuZmE6aG92ZXIge1xuICAgICAgY29sb3I6ICMyNjIyNjI7IH1cbiAgLnNlYXJjaC0taWNvbiBidXR0b24ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnNlYXJjaC0taWNvbiBidXR0b246aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5zZWFyY2gtLWljb24tbW9iaWxlIHtcbiAgd2lkdGg6IDIuNXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICNmZWZlZmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUtLWJ0bi1jbG9zZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRyYW5zaXRpb246IGRpc3BsYXkgMXM7IH1cblxuLm1vYmlsZS0tbWVudSB7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHBhZGRpbmc6IDAuNXJlbTsgfVxuXG4ubWVudS0tYnRuLCAubWVudS0tYnRuLWNsb3NlIHtcbiAgdHJhbnNpdGlvbjogZGlzcGxheSAxcztcbiAgcGFkZGluZzogMC42MjVyZW07XG4gIGJvcmRlcjogMC4xMjVyZW0gc29saWQgIzkxMjg4ZDtcbiAgd2lkdGg6IDIuNXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS0tYnRuOmhvdmVyLCAubWVudS0tYnRuLWNsb3NlOmhvdmVyIHtcbiAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICMyNjIyNjI7IH1cbiAgLm1lbnUtLWJ0biAuZmEsIC5tZW51LS1idG4tY2xvc2UgLmZhIHtcbiAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgIC5tZW51LS1idG4gLmZhOmhvdmVyLCAubWVudS0tYnRuLWNsb3NlIC5mYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzI2MjI2MjsgfVxuXG4ub2ggLm1lbnUtLWJ0biAuZmEge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5lbXB0eSAuaW52ZXJzZS0tbG9nbyB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5lbXB0eSAubG9nbyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5oZWFkZXIuaGVhZGVyLS1jb21wcmVzc2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNDUsIDQwLCAxNDEsIDAuNzUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuXG4uaW52ZXJzZS0tbG9nbyBpbWcuaW52ZXJzZS0tbG9nby1jb21wcmVzc2VkIHtcbiAgbWF4LXdpZHRoOiAxMy4xMjVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICNtYWluLS1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gIC50b3AtYmFyIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuaW52ZXJzZS0tbG9nbyB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5pbnZlcnNlLS1sb2dvLXNob3cge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHotaW5kZXg6IDEwOyB9XG4gIC5tZW51IGxpIGEge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIGJvcmRlcjogc29saWQgMC4xMjVyZW0gdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgICAubWVudSBsaSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMjYyMjYyO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzI2MjI2MjsgfVxuICAubWVudSBsaS5pcy1hY3RpdmUgYSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzI2MjI2MjsgfVxuICAubWVudSBsaS5tZW51LWN0YSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5tZW51IGxpLm1lbnUtY3RhIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHBhZGRpbmc6IDAgMS4yNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgIGJvcmRlcjogc29saWQgMC4xMjVyZW0gI2ZlZmVmZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgIC5tZW51IGxpLm1lbnUtY3RhIGE6aG92ZXIsIC5tZW51IGxpLm1lbnUtY3RhIGE6Zm9jdXMsIC5tZW51IGxpLm1lbnUtY3RhIGE6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUgPiBsaSB7XG4gICAgbWFyZ2luOiAwIDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51IHVsLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBhZGRpbmctdG9wOiAxLjc1cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51IGxpLmlzLXN1Ym1lbnUtaXRlbSBhIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICAgIC5kcm9wZG93bi5tZW51IGxpLmlzLXN1Ym1lbnUtaXRlbSBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5kcm9wZG93bi5tZW51IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjEyNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuZHJvcGRvd24ubWVudSA+IGxpIHtcbiAgICBtYXJnaW46IDAgMnJlbTsgfVxuICAuZHJvcGRvd24ubWVudSBhIHtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfVxuICAubWVudSBsaS5tZW51LWN0YSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuZHJvcGRvd24ubWVudSA+IGxpIHtcbiAgICBtYXJnaW46IDAgMS41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5uby1qcyAudG9wLWJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5uby1qcyAudGl0bGUtYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLWluLW91dDtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtOyB9XG4gIC5idG46aG92ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMWVtIDA7IH1cbiAgLmJ0bi0tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjZmFmOWZmO1xuICAgIGNvbG9yOiAjZmFmOWZmOyB9XG4gICAgLmJ0bi0tcHJpbWFyeTpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZhZjlmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idG4tLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjOTEyODhkO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5idG4tLXNlY29uZGFyeTpob3ZlciB7XG4gICAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idG4tLXRlcnRpYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICM5MTI4OGQ7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgcGFkZGluZzogMC43NXJlbSAwLjc1cmVtOyB9XG4gICAgLmJ0bi0tdGVydGlhcnk6aG92ZXIge1xuICAgICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5idG4ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtOyB9XG4gICAgLmJ0bi0tdGVydGlhcnkge1xuICAgICAgcGFkZGluZzogMC41NjI1cmVtIDIuMzc1cmVtOyB9IH1cblxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbmlucHV0W3R5cGU9J2RhdGUnXSxcbmlucHV0W3R5cGU9J2RhdGV0aW1lJ10sXG5pbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxuaW5wdXRbdHlwZT0nbW9udGgnXSxcbmlucHV0W3R5cGU9J3dlZWsnXSxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSdudW1iZXInXSxcbmlucHV0W3R5cGU9J3NlYXJjaCddLFxuaW5wdXRbdHlwZT0ndGVsJ10sXG5pbnB1dFt0eXBlPSd0aW1lJ10sXG5pbnB1dFt0eXBlPSd1cmwnXSxcbmlucHV0W3R5cGU9J2NvbG9yJ10sXG5pbnB1dFt0eXBlPSd0ZWwnXSxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDIuOTM3NXJlbTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjZWVlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBib3gtc2hhZG93OiBub25lOyB9XG4gIGlucHV0W3R5cGU9J3RleHQnXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT0nZGF0ZSddOmZvY3VzLFxuICBpbnB1dFt0eXBlPSdkYXRldGltZSddOmZvY3VzLFxuICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLFxuICBpbnB1dFt0eXBlPSdtb250aCddOmZvY3VzLFxuICBpbnB1dFt0eXBlPSd3ZWVrJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J2VtYWlsJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J251bWJlciddOmZvY3VzLFxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT0ndGVsJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J3RpbWUnXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT0ndXJsJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIGlucHV0W3R5cGU9J3RlbCddOmZvY3VzLFxuICBzZWxlY3Q6Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM5MTI4OGQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxuc2VsZWN0IHtcbiAgcGFkZGluZy1yaWdodDogMnJlbTsgfVxuXG50ZXh0YXJlYSB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuXG5zZWxlY3Qge1xuICBwYWRkaW5nOiAwLjVyZW0gMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyOyB9XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBib3JkZXI6IDA7XG4gIG1pbi13aWR0aDogMTIuMzEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuNzVyZW07IH1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIGxhYmVsIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgbGFiZWxcbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cblxuZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdLCBmb3JtIGJ1dHRvbjpub3QoLnNlYXJjaC10b2dnbGUpIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS53cGNmNy1zdWJtaXQge1xuICBtYXgtd2lkdGg6IDEyLjMxMjVyZW07IH1cblxuI21jZS1zdWNjZXNzLXJlc3BvbnNlLCAjbWNlLWVycm9yLXJlc3BvbnNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgcGFkZGluZzogMnJlbTtcbiAgd2lkdGg6IDkwJTtcbiAgei1pbmRleDogMTA7XG4gIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG5cbiNtY2Utc3VjY2Vzcy1yZXNwb25zZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuI21jZS1lcnJvci1yZXNwb25zZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGNvbG9yOiByZWQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICBsYWJlbCwgcC5saWtlbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgbGFiZWwuc21hbGwtbGFiZWwsIHAubGlrZWxhYmVsLnNtYWxsLWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4gIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4gIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuICBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgaGVpZ2h0OiAzLjEyNXJlbTsgfVxuICAgIGxhYmVsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBsYWJlbFxuICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgbGFiZWxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSwgbGFiZWxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sIGxhYmVsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLCBsYWJlbFxuICAgIGlucHV0W3R5cGU9XCJtb250aFwiXSwgbGFiZWxcbiAgICBpbnB1dFt0eXBlPVwid2Vla1wiXSwgbGFiZWxcbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGxhYmVsXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgbGFiZWxcbiAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBsYWJlbFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sIGxhYmVsXG4gICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sIGxhYmVsXG4gICAgaW5wdXRbdHlwZT1cInVybFwiXSwgbGFiZWxcbiAgICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sIGxhYmVsXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0sIGxhYmVsXG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuICAgIGxhYmVsIHRleHRhcmVhIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBsYWJlbC5pbmxpbmUtbGFiZWwsXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIGxhYmVsLmlubGluZS1sYWJlbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgI21jZS1zdWNjZXNzLXJlc3BvbnNlLCAjbWNlLWVycm9yLXJlc3BvbnNlIHtcbiAgICB3aWR0aDogNDAlO1xuICAgIHBhZGRpbmc6IDNyZW07IH0gfVxuXG4vKlxuJGFsZXJ0LWNvbG9yOiAjZjA0MTI0O1xuJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkE7XG4kd2FybmluZy1jb2xvcjogI2YwOGEyNDtcbiRpbmZvLWNvbG9yOiAjYTBkM2U4O1xuXG4qL1xuLmFsZXJ0LmNhbGxvdXQge1xuICBjb2xvcjogI2NjNGIzNztcbiAgYm9yZGVyLWNvbG9yOiAjY2M0YjM3OyB9XG4gIC5hbGVydC5jYWxsb3V0IC5mYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLmVycm9yIHNwYW4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5lcnJvciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5lcnJvciBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4uZXJyb3IgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4uZXJyb3IgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLmVycm9yIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi5lcnJvciBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4uZXJyb3IgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4uZXJyb3IgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmVycm9yIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4uZXJyb3IgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi5lcnJvciBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLmVycm9yIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLmVycm9yIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4uZXJyb3IgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLmVycm9yIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLmVycm9yIHNlbGVjdCB7XG4gIGNvbG9yOiAjY2M0YjM3O1xuICBib3JkZXItY29sb3I6ICNjYzRiMzc7IH1cblxuLmVycm9yIGxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmNoZWNrYm94LWdyb3VwIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5jaGVja2JveC1ncm91cCBsaSB7XG4gIG1hcmdpbjogMCAyNHB4OyB9XG5cbi5zaWdudXAtYmxvY2sgZm9ybS5zdWJzY3JpYmUtZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmN1c3RvbS1jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmN1c3RvbS1jaGVja2JveCBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmN1c3RvbS1jaGVja2JveCBzcGFuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLXRvcDogM3B4OyB9XG5cbi5jdXN0b20tY2hlY2tib3ggc3BhbjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTEyODhkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTNweDtcbiAgbGVmdDogMDsgfVxuXG4uY3VzdG9tLWNoZWNrYm94IHNwYW46YWZ0ZXIge1xuICBjb250ZW50OiAn4pyUJztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTFweDtcbiAgbGVmdDogM3B4OyB9XG5cbi5jdXN0b20tY2hlY2tib3ggaW5wdXQgKyBzcGFuOmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5jdXN0b20tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5zaWdudXAtYnRuIHtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmlucHV0LWdyb3VwLXN1YnNjcmlwdGlvbiB7XG4gIG1hcmdpbjogMXJlbSAwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgW2RhdGEtYWJpZGVdIC5lcnJvciBzbWFsbC5lcnJvciB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfSB9XG5cbiNjb250YWN0LWZvcm0ge1xuICB3aWR0aDogOTAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiA0Ni44NzVyZW07IH1cbiAgI2NvbnRhY3QtZm9ybSBsYWJlbCB7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgZm9udC1zaXplOiBjYWxjKDE0cHggKyAoMTQgLSAxNCkgKiAoICgxMDB2dyAtIDMyMHB4KSAvICgxNDAwIC0gMzIwKSApKTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAjY29udGFjdC1mb3JtIGlucHV0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG4gICNjb250YWN0LWZvcm0gdGV4dGFyZWEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgI2NvbnRhY3QtZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLWluLW91dDtcbiAgICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjOTEyODhkO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDE1LjYyNXJlbTsgfVxuICAgICNjb250YWN0LWZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDFlbSAwO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAjY29udGFjdC1mb3JtIGRpdi53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gICNjb250YWN0LWZvcm0gZGl2LndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcbiAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjY2M0YjM3OyB9XG4gICNjb250YWN0LWZvcm0gZGl2LndwY2Y3LW1haWwtc2VudC1vayB7XG4gICAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgIzkxMjg4ZDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAjY29udGFjdC1mb3JtIHNwYW4ud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M3MTUxNTtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWF4LXdpZHRoOiA2Mi41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIGJsb2NrcXVvdGUgaDMge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiAyLjFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuMDcxNDNyZW07IH1cbiAgICBibG9ja3F1b3RlIGgzOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCcJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgaGVpZ2h0OiAwLjY4NzVyZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBmb250LXNpemU6IDMuODc1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgY29sb3I6ICMyNjIyNjI7IH1cbiAgICBibG9ja3F1b3RlIGgzOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICB3aWR0aDogMTAuNDM3NXJlbTtcbiAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjOTEyODhkIDAlLCAjMjYyMjYyIDEwMCUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAxZW0gMDsgfVxuICAgIGJsb2NrcXVvdGUgaDMuY29sb3VyLS1ibHVlOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Y2I4OyB9XG4gICAgYmxvY2txdW90ZSBoMy5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWNiODsgfVxuICAgIGJsb2NrcXVvdGUgaDMuY29sb3VyLS1vcmFuZ2U6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYTViMGM7IH1cbiAgICBibG9ja3F1b3RlIGgzLmNvbG91ci0tZ3JlZW46YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YmJkMWU7IH1cbiAgYmxvY2txdW90ZSBwIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICBibG9ja3F1b3RlIGgzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyLjhyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS40Mjg1N3JlbTsgfVxuICAgICAgYmxvY2txdW90ZSBoMzpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDUuODEyNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTsgfVxuICAgIGJsb2NrcXVvdGUgaDMge1xuICAgICAgcGFkZGluZy10b3A6IDQuMnJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyLjE0Mjg2cmVtOyB9XG4gICAgICBibG9ja3F1b3RlIGgzOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNy43NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOyB9XG4gICAgYmxvY2txdW90ZSBoMyB7XG4gICAgICBwYWRkaW5nLXRvcDogNC45cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTsgfVxuICAgICAgYmxvY2txdW90ZSBoMzpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDcuNzVyZW07IH0gfVxuXG4uaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMTAwOyB9XG4gIC5oZXJvIC5yb3cge1xuICAgIG1heC13aWR0aDogaW5oZXJpdDsgfVxuICAuaGVyby0tZnVsbCB7XG4gICAgaGVpZ2h0OiAxMDB2aDsgfVxuICAuaGVyby0tcGFydGlhbCB7XG4gICAgaGVpZ2h0OiA1MHZoOyB9XG4gIC5oZXJvLS1iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmhlcm8tLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB6LWluZGV4OiA0O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWluLWhlaWdodDogNjB2aDsgfVxuICAuaGVyby0tY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtOyB9XG4gICAgLmhlcm8tLWNvbnRlbnQgaDEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAwLjE1ZW0gMDsgfVxuICAgIC5oZXJvLS1jb250ZW50IGgyIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcGFkZGluZzogMC4xNWVtIDA7IH1cbiAgICAuaGVyby0tY29udGVudCBwIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNWVtOyB9XG4gICAgLmhlcm8tLWNvbnRlbnQgLmJ0bi0tcHJpbWFyeSB7XG4gICAgICBtYXJnaW4tdG9wOiAyZW07IH1cbiAgLmhlcm8tLWltYWdlOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjMpIDElLCByZ2JhKDAsIDAsIDAsIDAuMikgMjYlLCByZ2JhKDAsIDAsIDAsIDAuMikgNjQlLCByZ2JhKDAsIDAsIDAsIDAuMikgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmYWZhZmEnLCBlbmRDb2xvcnN0cj0nI2QxZDFkMScsIEdyYWRpZW50VHlwZT0wICk7IH1cbiAgLmhlcm8tLWVtcHR5IHtcbiAgICBoZWlnaHQ6IDYuMjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMjAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uY29sb3VyLS1ncmVlbiAuaGVyby0tZW1wdHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWJiZDFlOyB9XG5cbi5jb2xvdXItLWRhcmstYmx1ZSAuaGVyby0tZW1wdHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWY3MzdkOyB9XG5cbi5jb2xvdXItLWJsdWUgLmhlcm8tLWVtcHR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWNiODsgfVxuXG4uY29sb3VyLS1vcmFuZ2UgLmhlcm8tLWVtcHR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhNWIwYzsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oZXJvLS1jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDEuODc1cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOyB9XG4gICAgLmhlcm8tLWNvbnRlbnQgaDEge1xuICAgICAgcGFkZGluZzogMC4xNWVtIDA7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5oZXJvLS1mdWxsIC5oZXJvLS1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDMyLjVyZW07IH1cbiAgLmhlcm8tLWVtcHR5IHtcbiAgICBoZWlnaHQ6IDQuNjg3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmhlcm8tLWNvbnRlbnQge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuaGVyby0tZnVsbCAuaGVyby0tY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiA0NXJlbTsgfSB9XG5cbi5oZXJvLS1wYXJ0aWFsIHtcbiAgaGVpZ2h0OiA1MHZoOyB9XG4gIC5oZXJvLS1wYXJ0aWFsOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTB2aDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTQ1LCA0MCwgMTQxLCAwLjQpIDAlLCByZ2JhKDM4LCAzNCwgOTgsIDAuNSkgMTAwJSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cblxuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jYXJvdXNlbDpub3QoLnNsaWNrLWluaXRpYWxpemVkKSAuc2xpZGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb2R1Y3QtZ2FsbGVyeSwgLmdhbGxlcnktY2Fyb3VzZWwge1xuICB3aWR0aDogOTAlO1xuICBtYXJnaW46IDEuNzVyZW0gYXV0bzsgfVxuICAucHJvZHVjdC1nYWxsZXJ5IC5zbGlkZS5zbGljay1zbGlkZSwgLmdhbGxlcnktY2Fyb3VzZWwgLnNsaWRlLnNsaWNrLXNsaWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb2R1Y3QtZ2FsbGVyeSAuZ2FsbGVyeS1jYXB0aW9uLCAuZ2FsbGVyeS1jYXJvdXNlbCAuZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnByb2R1Y3QtZ2FsbGVyeSAuZ2FsbGVyeS1jYXB0aW9uIHAsIC5nYWxsZXJ5LWNhcm91c2VsIC5nYWxsZXJ5LWNhcHRpb24gcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gIC5wcm9kdWN0LWdhbGxlcnkgLmltYWdlLXNsaWRlLCAuZ2FsbGVyeS1jYXJvdXNlbCAuaW1hZ2Utc2xpZGUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnByb2R1Y3QtZ2FsbGVyeSBpbWcsIC5nYWxsZXJ5LWNhcm91c2VsIGltZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAucHJvZHVjdC1nYWxsZXJ5IC5wcm9kdWN0LWdhbGxlcnkucHJvZHVjdC1nYWxsZXJ5LW5hdiwgLmdhbGxlcnktY2Fyb3VzZWwgLnByb2R1Y3QtZ2FsbGVyeS5wcm9kdWN0LWdhbGxlcnktbmF2IHtcbiAgICBtYXJnaW46IDAgMS44NzVyZW07IH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5IC5wcm9kdWN0LWdhbGxlcnkucHJvZHVjdC1nYWxsZXJ5LW5hdiBpbWcsIC5nYWxsZXJ5LWNhcm91c2VsIC5wcm9kdWN0LWdhbGxlcnkucHJvZHVjdC1nYWxsZXJ5LW5hdiBpbWcge1xuICAgICAgYm9yZGVyOiBzb2xpZCAwLjMxMjVyZW0gI2ZlZmVmZTsgfVxuICAgIC5wcm9kdWN0LWdhbGxlcnkgLnByb2R1Y3QtZ2FsbGVyeS5wcm9kdWN0LWdhbGxlcnktbmF2IC5zbGljay1zbGlkZSwgLmdhbGxlcnktY2Fyb3VzZWwgLnByb2R1Y3QtZ2FsbGVyeS5wcm9kdWN0LWdhbGxlcnktbmF2IC5zbGljay1zbGlkZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5wcm9kdWN0LWdhbGxlcnkgLnByb2R1Y3QtZ2FsbGVyeS5wcm9kdWN0LWdhbGxlcnktbmF2IC5zbGljay1zbGlkZTpmb2N1cywgLmdhbGxlcnktY2Fyb3VzZWwgLnByb2R1Y3QtZ2FsbGVyeS5wcm9kdWN0LWdhbGxlcnktbmF2IC5zbGljay1zbGlkZTpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5IC5wcm9kdWN0LWdhbGxlcnkucHJvZHVjdC1nYWxsZXJ5LW5hdiAuc2xpY2stY3VycmVudCBpbWcsIC5nYWxsZXJ5LWNhcm91c2VsIC5wcm9kdWN0LWdhbGxlcnkucHJvZHVjdC1nYWxsZXJ5LW5hdiAuc2xpY2stY3VycmVudCBpbWcge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjOTEyODhkOyB9XG4gIC5wcm9kdWN0LWdhbGxlcnkgLnByb2R1Y3QtZ2FsbGVyeS5kZWZhdWx0LWNhcm91c2VsIC5zbGljay1kb3RzLCAuZ2FsbGVyeS1jYXJvdXNlbCAucHJvZHVjdC1nYWxsZXJ5LmRlZmF1bHQtY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgIGJvdHRvbTogNSU7IH1cbiAgLnByb2R1Y3QtZ2FsbGVyeSAuc2xpY2stZG90cywgLmdhbGxlcnktY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5wcm9kdWN0LWdhbGxlcnkgLnNsaWNrLWRvdHMgbGksIC5nYWxsZXJ5LWNhcm91c2VsIC5zbGljay1kb3RzIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLnByb2R1Y3QtZ2FsbGVyeSAuc2xpY2stZG90cyBsaTpsYXN0LWNoaWxkLCAuZ2FsbGVyeS1jYXJvdXNlbCAuc2xpY2stZG90cyBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAucHJvZHVjdC1nYWxsZXJ5IC5zbGljay1kb3RzIGxpIGJ1dHRvbiwgLmdhbGxlcnktY2Fyb3VzZWwgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC02MjQ5LjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAwLjg3NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjg3NXJlbTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAwLjEyNXJlbSAjZmVmZWZlOyB9XG4gICAgICAucHJvZHVjdC1nYWxsZXJ5IC5zbGljay1kb3RzIGxpOmhvdmVyIGJ1dHRvbiwgLnByb2R1Y3QtZ2FsbGVyeSAuc2xpY2stZG90cyBsaTpmb2N1cyBidXR0b24sIC5wcm9kdWN0LWdhbGxlcnkgLnNsaWNrLWRvdHMgbGk6YWN0aXZlIGJ1dHRvbiwgLnByb2R1Y3QtZ2FsbGVyeSAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uLCAuZ2FsbGVyeS1jYXJvdXNlbCAuc2xpY2stZG90cyBsaTpob3ZlciBidXR0b24sIC5nYWxsZXJ5LWNhcm91c2VsIC5zbGljay1kb3RzIGxpOmZvY3VzIGJ1dHRvbiwgLmdhbGxlcnktY2Fyb3VzZWwgLnNsaWNrLWRvdHMgbGk6YWN0aXZlIGJ1dHRvbiwgLmdhbGxlcnktY2Fyb3VzZWwgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgLnByb2R1Y3QtZ2FsbGVyeSAuZGVmYXVsdC1jYXJvdXNlbCAuc2xpY2stZG90cywgLmdhbGxlcnktY2Fyb3VzZWwgLmRlZmF1bHQtY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByb2R1Y3QtZ2FsbGVyeSAuc2xpY2stYXJyb3csIC5nYWxsZXJ5LWNhcm91c2VsIC5zbGljay1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDEuODc1cmVtO1xuICAgIGhlaWdodDogMS44NzVyZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5IC5zbGljay1hcnJvdy5mYSwgLmdhbGxlcnktY2Fyb3VzZWwgLnNsaWNrLWFycm93LmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5IC5zbGljay1hcnJvdy5mYS1hbmdsZS1sZWZ0LCAuZ2FsbGVyeS1jYXJvdXNlbCAuc2xpY2stYXJyb3cuZmEtYW5nbGUtbGVmdCB7XG4gICAgICBsZWZ0OiAtMS44NzVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLnByb2R1Y3QtZ2FsbGVyeSAuc2xpY2stYXJyb3cuZmEtYW5nbGUtcmlnaHQsIC5nYWxsZXJ5LWNhcm91c2VsIC5zbGljay1hcnJvdy5mYS1hbmdsZS1yaWdodCB7XG4gICAgICByaWdodDogLTEuODc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5wcm9kdWN0LWdhbGxlcnkgaVthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSwgLmdhbGxlcnktY2Fyb3VzZWwgaVthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIEZvciBJRTExLyBNUyBFZGdlIGJ1ZyAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnByb2R1Y3QtZ2FsbGVyeSAuZGVmYXVsdC1jYXJvdXNlbCAuc2xpY2stZG90cywgLmdhbGxlcnktY2Fyb3VzZWwgLmRlZmF1bHQtY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgICAgYm90dG9tOiAxLjI1cmVtO1xuICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICAucHJvZHVjdC1nYWxsZXJ5IC5kZWZhdWx0LWNhcm91c2VsIC5zbGljay1kb3RzIGxpLCAuZ2FsbGVyeS1jYXJvdXNlbCAuZGVmYXVsdC1jYXJvdXNlbCAuc2xpY2stZG90cyBsaSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07IH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5IC5wcm9kdWN0LWdhbGxlcnksIC5wcm9kdWN0LWdhbGxlcnkgLmdhbGxlcnktY2Fyb3VzZWwsIC5nYWxsZXJ5LWNhcm91c2VsIC5wcm9kdWN0LWdhbGxlcnksIC5nYWxsZXJ5LWNhcm91c2VsIC5nYWxsZXJ5LWNhcm91c2VsIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXJnaW46IDEuNzVyZW0gYXV0bzsgfVxuICAgICAgLnByb2R1Y3QtZ2FsbGVyeSAucHJvZHVjdC1nYWxsZXJ5IC5nYWxsZXJ5LWNhcHRpb24sIC5wcm9kdWN0LWdhbGxlcnkgLmdhbGxlcnktY2Fyb3VzZWwgLmdhbGxlcnktY2FwdGlvbiwgLmdhbGxlcnktY2Fyb3VzZWwgLnByb2R1Y3QtZ2FsbGVyeSAuZ2FsbGVyeS1jYXB0aW9uLCAuZ2FsbGVyeS1jYXJvdXNlbCAuZ2FsbGVyeS1jYXJvdXNlbCAuZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIGNvbG9yOiAjOTEyODhkO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gICAgICAgIC5wcm9kdWN0LWdhbGxlcnkgLnByb2R1Y3QtZ2FsbGVyeSAuZ2FsbGVyeS1jYXB0aW9uIHAsIC5wcm9kdWN0LWdhbGxlcnkgLmdhbGxlcnktY2Fyb3VzZWwgLmdhbGxlcnktY2FwdGlvbiBwLCAuZ2FsbGVyeS1jYXJvdXNlbCAucHJvZHVjdC1nYWxsZXJ5IC5nYWxsZXJ5LWNhcHRpb24gcCwgLmdhbGxlcnktY2Fyb3VzZWwgLmdhbGxlcnktY2Fyb3VzZWwgLmdhbGxlcnktY2FwdGlvbiBwIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHJvZHVjdC1nYWxsZXJ5IC5zbGljay1kb3RzLCAuZ2FsbGVyeS1jYXJvdXNlbCAuc2xpY2stZG90cyB7XG4gICAgICByaWdodDogMS41cmVtOyB9XG4gICAgLnByb2R1Y3QtZ2FsbGVyeSAucHJvZHVjdC1nYWxsZXJ5LCAucHJvZHVjdC1nYWxsZXJ5IC5nYWxsZXJ5LWNhcm91c2VsLCAuZ2FsbGVyeS1jYXJvdXNlbCAucHJvZHVjdC1nYWxsZXJ5LCAuZ2FsbGVyeS1jYXJvdXNlbCAuZ2FsbGVyeS1jYXJvdXNlbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMS43NXJlbSBhdXRvOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC5wcm9kdWN0LWdhbGxlcnkgLnNsaWNrLWRvdHMsIC5nYWxsZXJ5LWNhcm91c2VsIC5zbGljay1kb3RzIHtcbiAgICAgIHJpZ2h0OiAxLjc1cmVtOyB9XG4gICAgLnByb2R1Y3QtZ2FsbGVyeSAucHJvZHVjdC1nYWxsZXJ5LCAucHJvZHVjdC1nYWxsZXJ5IC5nYWxsZXJ5LWNhcm91c2VsLCAuZ2FsbGVyeS1jYXJvdXNlbCAucHJvZHVjdC1nYWxsZXJ5LCAuZ2FsbGVyeS1jYXJvdXNlbCAuZ2FsbGVyeS1jYXJvdXNlbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMS43NXJlbSBhdXRvOyB9IH1cblxuLmhlcm8tY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmhlcm8tY2Fyb3VzZWwgLmhlcm8tLWNvbnRlbnQge1xuICAgIHotaW5kZXg6IDIwOyB9XG4gIC5oZXJvLWNhcm91c2VsIC5oZXJvLS1jb3ZlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyB9XG4gIC5oZXJvLWNhcm91c2VsIC5jYXJvdXNlbC0tYmFja2dyb3VuZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5oZXJvLWNhcm91c2VsIC5jYXJvdXNlbC0tYmFja2dyb3VuZCBpbWcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmhlcm8tY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgIGJvdHRvbTogMi41cmVtO1xuICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGVyby1jYXJvdXNlbCAuc2xpY2stZG90cyB7XG4gICAgcmlnaHQ6IDJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oZXJvLWNhcm91c2VsIC5zbGljay1kb3RzIHtcbiAgICByaWdodDogM3JlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmhlcm8tY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgIHJpZ2h0OiAzLjVyZW07IH0gfVxuXG4ud2lkZ2V0LS1sYW5kc2NhcGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZzogMCAwLjkzNzVyZW0gMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1jb250ZW50LWdyZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIGEgaDMsIC53aWRnZXQtLWxhbmRzY2FwZSBhIGg0LCAud2lkZ2V0LS1sYW5kc2NhcGUgYSBoNSwgLndpZGdldC0tbGFuZHNjYXBlIGEgaDYsIC53aWRnZXQtLWxhbmRzY2FwZSBhIGxpLCAud2lkZ2V0LS1sYW5kc2NhcGUgYSBwIHtcbiAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIGEgcCB7XG4gICAgY29sb3I6ICMzMDJmMzU7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIGgzIHtcbiAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1ZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIGg0LCAud2lkZ2V0LS1sYW5kc2NhcGUgaDUsIC53aWRnZXQtLWxhbmRzY2FwZSBoNiB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUgdWwsIC53aWRnZXQtLWxhbmRzY2FwZSBwIHtcbiAgICBtYXgtd2lkdGg6IDUwcmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUgdWwge1xuICAgIG1heC13aWR0aDogNjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZSB1bCBsaSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiAjOTEyODhkOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS10aXRsZSB7XG4gICAgY29sb3I6ICMyNjIyNjI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1kYXRlIHtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMS41cmVtOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0taW1hZ2UgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjlmZjsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1ib2R5OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgd2lkdGg6IDEwLjQzNzVyZW07XG4gICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzkxMjg4ZCAwJSwgIzI2MjI2MiAxMDAlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMWVtIDA7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tYm9keS5jb2xvdXItLWJsdWU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDljYjg7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tYm9keS5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWNiODsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1ib2R5LmNvbG91ci0tb3JhbmdlOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWE1YjBjOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLWJvZHkuY29sb3VyLS1ncmVlbjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzliYmQxZTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwLjc1cmVtO1xuICAgICAgYm94LXNoYWRvdzogMCAwLjA1ZW0gMC41ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07IH1cbiAgICAgIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1ib2R5LWlubmVyIHAgYSwgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLWJvZHktaW5uZXIgbGkgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAgIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1ib2R5LWlubmVyIHAgYTpob3ZlciwgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLWJvZHktaW5uZXIgbGkgYTpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZSAud2lkZ2V0LS1kYXRlIHtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMnJlbTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUgLmJ0biB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci1ib3R0b206IDAuMjVlbSBzb2xpZCAjOTEyODhkOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLWRhdGUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbWFyZ2luLXRvcDogLTNyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIC5idG4ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tYm9keSB7XG4gICAgbWFyZ2luLXRvcDogMS4zNzVyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAzcmVtIDEuNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLWRhdGUge1xuICAgIG1hcmdpbi10b3A6IC0zLjVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIC5idG4ge1xuICAgIG1hcmdpbi10b3A6IDEuNzVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlIC53aWRnZXQtLWJvZHkge1xuICAgIG1hcmdpbi10b3A6IDIuNzVyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUgLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAzLjVyZW0gMS43NXJlbTsgfSB9XG5cbi53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHBhZGRpbmc6IDAgMC45Mzc1cmVtIDEuNXJlbTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSAuY29sdW1ucyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSAud2lkZ2V0LS1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIGgyLCAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSBoMyB7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUgdWwsIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIHAge1xuICAgIG1heC13aWR0aDogNTByZW07XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIHVsIHtcbiAgICBtYXgtd2lkdGg6IDYwJTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIHVsIGxpIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUgLndpZGdldC0tdGl0bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUgLndpZGdldC0taW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIC53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwLjc1cmVtOyB9XG5cbi53aWRnZXQtLWlubmVyLWJvZHktZXhwYW5kYWJsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyNXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7IH1cbiAgLndpZGdldC0taW5uZXItYm9keS1leHBhbmRhYmxlLmV4cGFuZGVkIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogMTByZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtIDAuNXJlbTtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgI2ZlZmVmZSA1MCUsIHJnYmEoMjU0LCAyNTQsIDI1NCwgMC41KSAxMDAlKTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZS1idXR0b24gc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZS1idXR0b24gc3BhbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItbGVmdDogMC4zNzVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDAuMzc1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlLWJ1dHRvbiBzcGFuLm1vcmU6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcDogMC4zNzVyZW0gc29saWQgIzkxMjg4ZDsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlLWJ1dHRvbiBzcGFuLmxlc3M6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC4zNzVyZW0gc29saWQgIzkxMjg4ZDsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZS1idXR0b246aG92ZXIgc3BhbiB7XG4gICAgY29sb3I6ICMyNjIyNjI7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZS1idXR0b246aG92ZXIgc3Bhbi5tb3JlOmFmdGVyIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICMyNjIyNjI7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZS1idXR0b246aG92ZXIgc3Bhbi5sZXNzOmFmdGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMyNjIyNjI7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUtYnV0dG9uIC5sZXNzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlLWJ1dHRvbi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZS1idXR0b24uYWN0aXZlIC5sZXNzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlLWJ1dHRvbi5hY3RpdmUgLm1vcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUgaDIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIC53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgICAgcGFkZGluZzogMnJlbSAxcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUgaDIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUgLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAzLjVyZW0gMS43NXJlbTsgfSB9XG5cbi53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyAud2lkZ2V0LS1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gLndpZGdldC0tYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmOWZmO1xuICAgIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyAud2lkZ2V0LS1ib2R5OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgd2lkdGg6IDEwLjQzNzVyZW07XG4gICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzkxMjg4ZCAwJSwgIzI2MjI2MiAxMDAlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMWVtIDA7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gLndpZGdldC0tYm9keS5jb2xvdXItLWJsdWU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDljYjg7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gLndpZGdldC0tYm9keS5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmNzM3ZDsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyAud2lkZ2V0LS1ib2R5LmNvbG91ci0tb3JhbmdlOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWE1YjBjOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLXByb21vIC53aWRnZXQtLWJvZHkuY29sb3VyLS1ncmVlbjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzliYmQxZTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gLndpZGdldC0tdGl0bGUge1xuICAgIGNvbG9yOiAjMjYyMjYyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gaDMge1xuICAgIGZvbnQtc2l6ZTogMS4zNWVtO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luOiAxLjI1ZW0gMCAwOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyBwIHtcbiAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLXByb21vIC5idG4ge1xuICAgIG1hcmdpbi10b3A6IDAuNzVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8ge1xuICAgIHBhZGRpbmc6IDJyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gaDIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyAuYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAycmVtIDFyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyB7XG4gICAgcGFkZGluZzogM3JlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyBoMiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLXByb21vIC5idG4ge1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLXByb21vIC53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgICAgcGFkZGluZzogM3JlbSAxLjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyB7XG4gICAgcGFkZGluZzogMy41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLXByb21vIGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMuNXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyAuYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNzVyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8gLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAzLjVyZW0gMS43NXJlbTsgfSB9XG5cbi5yb3ctLWludHJvZHVjdGlvbi1wb3N0IHtcbiAgbWFyZ2luLWJvdHRvbTogLThlbTsgfVxuXG4ud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZzogMCAwLjkzNzVyZW0gMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDEyMDtcbiAgYm90dG9tOiA0ZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZsb2F0OiBub25lOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmOWZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2hhZG93OiAwIDAuMDVlbSAwLjVlbSAwLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIGgxLCAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gaDIge1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAxLjVyZW07IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIHVsLCAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gcCB7XG4gICAgY29sb3I6ICMzMDJmMzU7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIHVsIGxpIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIC53aWRnZXQtLXRpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOyB9XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtOyB9XG4gICAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gLndpZGdldC0tYm9keS1pbm5lciBwIGEsIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1ib2R5LWlubmVyIGxpIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gLndpZGdldC0tYm9keS1pbm5lciBwIGE6aG92ZXIsIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1ib2R5LWlubmVyIGxpIGE6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyBoMSwgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIC5idG4ge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMnJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIGgxLCAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gaDIge1xuICAgICAgZm9udC1zaXplOiAyLjI1cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gbGksIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAuYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1jb250ZW50OmJlZm9yZSB7XG4gICAgICB0b3A6IC0yLjEyNXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1jb250ZW50OmFmdGVyIHtcbiAgICAgIHRvcDogLTQuMjVyZW07XG4gICAgICB3aWR0aDogOC41NjI1cmVtO1xuICAgICAgaGVpZ2h0OiA4LjU2MjVyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAzcmVtIDNyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIGgxLCAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gaDIge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8gaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOyB9XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIC5idG4ge1xuICAgICAgbWFyZ2luLXRvcDogMS43NXJlbTsgfVxuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDMuNXJlbSAzLjVyZW07IH0gfVxuXG4ud2lkZ2V0LS1wb3J0cmFpdCB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWNvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS10aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC53aWRnZXQtLXBvcnRyYWl0IGgzIHtcbiAgICBjb2xvcjogIzI2MjI2MjtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDAuMWVtOyB9XG4gIC53aWRnZXQtLXBvcnRyYWl0IGg0IHtcbiAgICBmb250LXNpemU6IDFlbTsgfVxuICAud2lkZ2V0LS1wb3J0cmFpdCBoNCwgLndpZGdldC0tcG9ydHJhaXQgaDUsIC53aWRnZXQtLXBvcnRyYWl0IGg2IHtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC53aWRnZXQtLXBvcnRyYWl0IGhyIHtcbiAgICBoZWlnaHQ6IDAuMDYyNXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2IwYWViYTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEuNXJlbSAtMC43NXJlbTsgfVxuICAud2lkZ2V0LS1wb3J0cmFpdCAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtOyB9XG4gIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RjZGNkO1xuICAgIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgLndpZGdldC0taW1hZ2UgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmOWZmO1xuICAgIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgICAgcGFkZGluZzogM3JlbSAxLjVyZW07XG4gICAgICBib3JkZXItYm90dG9tOiAwLjI1ZW0gc29saWQgIzkxMjg4ZDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHktaW5uZXIgcCBhLCAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LWlubmVyIGxpIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LWlubmVyIHAgYTpob3ZlciwgLndpZGdldC0tcG9ydHJhaXQgLndpZGdldC0tYm9keS1pbm5lciBsaSBhOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgd2lkdGg6IDEwLjQzNzVyZW07XG4gICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzkxMjg4ZCAwJSwgIzI2MjI2MiAxMDAlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMWVtIDA7IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5IGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5MTI4OGQ7IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LmNvbG91ci0tYmx1ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWNiODsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkuY29sb3VyLS1ibHVlIGhyLCAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LmNvbG91ci0tYmx1ZSBhLndpZGdldC0tcHJvZmlsZS1lbWFpbDphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Y2I4OyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgLndpZGdldC0tYm9keS5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmNzM3ZDsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkuY29sb3VyLS1kYXJrLWJsdWUgaHIsIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkuY29sb3VyLS1kYXJrLWJsdWUgYS53aWRnZXQtLXByb2ZpbGUtZW1haWw6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVmNzM3ZDsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkuY29sb3VyLS1vcmFuZ2U6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYTViMGM7IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LmNvbG91ci0tb3JhbmdlIGhyLCAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LmNvbG91ci0tb3JhbmdlIGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYTViMGM7IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LmNvbG91ci0tZ3JlZW46YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YmJkMWU7IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LmNvbG91ci0tZ3JlZW4gaHIsIC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkuY29sb3VyLS1ncmVlbiBhLndpZGdldC0tcHJvZmlsZS1lbWFpbDphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWJiZDFlOyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gMC43NXJlbTsgfVxuICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLndpZGdldC0tYm9keS1pbm5lciAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud2lkZ2V0LS1wb3J0cmFpdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0IGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMWVtOyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgaHIge1xuICAgICAgbWFyZ2luOiAxLjVyZW0gLTFyZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAuYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMXJlbTsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0LXdoaXRlIC53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53aWRnZXQtLXBvcnRyYWl0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4xZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCBociB7XG4gICAgICBtYXJnaW46IDEuNXJlbSAtMS41cmVtOyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgLmJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtIDNyZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdC13aGl0ZSAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5sYXJnZS02IC53aWRnZXQtLXBvcnRyYWl0IC53aWRnZXQtLWJvZHkge1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMnJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLndpZGdldC0tcG9ydHJhaXQge1xuICAgIG1hcmdpbi1ib3R0b206IDMuNXJlbTsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0IGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMWVtOyB9XG4gICAgLndpZGdldC0tcG9ydHJhaXQgaHIge1xuICAgICAgbWFyZ2luOiAxLjVyZW0gLTEuNzVyZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAuYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNzVyZW07IH1cbiAgICAud2lkZ2V0LS1wb3J0cmFpdCAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDMuNXJlbSAxLjc1cmVtIDMuNXJlbTsgfVxuICAgIC53aWRnZXQtLXBvcnRyYWl0LXdoaXRlIC53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmxhcmdlLTYgLndpZGdldC0tcG9ydHJhaXQgLndpZGdldC0tYm9keSB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuMzMzMzNyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjMzMzMzcmVtOyB9IH1cblxuLndpZGdldC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjlmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDAuMDVlbSAwLjVlbSAwLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICBwYWRkaW5nOiAycmVtOyB9XG4gIC53aWRnZXQtY29udGVudCBoMSwgLndpZGdldC1jb250ZW50IGgyIHtcbiAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC53aWRnZXQtY29udGVudCBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gIC53aWRnZXQtY29udGVudCBwLCAud2lkZ2V0LWNvbnRlbnQgbGkge1xuICAgIGNvbG9yOiAjMzAyZjM1OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLndpZGdldC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA0cmVtOyB9IH1cblxuLndpZGdldC0tY29sLWZsdWlkIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLndpZGdldC0tZmx1aWQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTsgfVxuICAud2lkZ2V0LS1mbHVpZC1pbWFnZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi53aWRnZXQtLWZsdWlkLWJvZHkge1xuICBwYWRkaW5nOiAxJSAyJTsgfVxuXG4ud2lkZ2V0LS1mbHVpZF9jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLndpZGdldC0tZmx1aWQtaW1hZ2Uge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLndpZGdldC0tZmx1aWQtYm9keSB7XG4gICAgd2lkdGg6IDc1JTsgfSB9XG5cbi53aWRnZXQtLXByb2ZpbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmOWZmO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBib3JkZXItYm90dG9tOiAwLjI1ZW0gc29saWQgIzkxMjg4ZDsgfVxuICAud2lkZ2V0LS1wcm9maWxlIC53aWRnZXQtLWJvZHkge1xuICAgIHBhZGRpbmc6IDFlbSAxZW0gMmVtO1xuICAgIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC53aWRnZXQtLXByb2ZpbGUgLndpZGdldC0tcHJvZmlsZS1uYW1lIHtcbiAgICBjb2xvcjogIzI2MjI2MjtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC53aWRnZXQtLXByb2ZpbGUgLndpZGdldC0tcHJvZmlsZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICBjb2xvcjogIzI2MjI2MjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC53aWRnZXQtLXByb2ZpbGUgLndpZGdldC0tcHJvZmlsZS1jb21wYW55IHtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBjb2xvcjogIzMwMmYzNTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC53aWRnZXQtLXByb2ZpbGUgLndpZGdldC0tcHJvZmlsZS1pbWFnZSB7XG4gICAgYm94LXNoYWRvdzogMCAwLjA1ZW0gMC41ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLndpZGdldC0tcHJvZmlsZSAud2lkZ2V0LS1wcm9maWxlLXNvY2lhbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICAud2lkZ2V0LS1wcm9maWxlIC53aWRnZXQtLXByb2ZpbGUtc29jaWFsIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuNWVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMWVtOyB9XG4gICAgLndpZGdldC0tcHJvZmlsZSAud2lkZ2V0LS1wcm9maWxlLXNvY2lhbCAuc29jaWFsLS1pY29uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAxZW07XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIGNvbG9yOiAjOTEyODhkO1xuICAgICAgYm9yZGVyOiBzb2xpZCAwLjA5ZW0gIzkxMjg4ZDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHBhZGRpbmc6IDFlbTsgfVxuICAgICAgLndpZGdldC0tcHJvZmlsZSAud2lkZ2V0LS1wcm9maWxlLXNvY2lhbCAuc29jaWFsLS1pY29uOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmYWY5ZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5MTI4OGQ7IH1cbiAgLndpZGdldC0tcHJvZmlsZSBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwLjA0MDYzcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvOyB9XG5cbi8qXG4ud2lkZ2V0LS1wb3J0cmFpdCB7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMyKTtcblxuICAud2lkZ2V0LWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC8vIGhyIHsgTW92ZWQgdG8gX3dpZGdldC1wb3J0cmFpdC5zY3NzXG4gIC8vICAgICB3aWR0aDogMTAwJTtcbiAgLy8gICAgIGhlaWdodDogcmVtLWNhbGMoMSk7XG4gIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuICAvLyAgICAgbWFyZ2luOiByZW0tY2FsYygzMikgYXV0bztcbiAgLy8gfVxuICAud2lkZ2V0LS1wcm9maWxlLW5hbWUge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYpO1xuICB9XG5cbiAgaDQud2lkZ2V0LS1wcm9maWxlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTsgLy8gRml4ZWQgYWNyb3NzIGFsbCBzaXplc1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYpO1xuICB9XG5cbiAgaDQud2lkZ2V0LS1wcm9maWxlLWNvbXBhbnkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpOyAvLyBGaXhlZCBhY3Jvc3MgYWxsIHNpemVzXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG5cbiAgLndpZGdldC0tYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMyKSByZW0tY2FsYyg0MCk7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyOCk7XG5cbiAgICAmLndpZGdldC0tcHJvZmlsZS1waG9uZSB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYpO1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQtLXByb2ZpbGUtY29udGVudCBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LS1wcm9maWxlLXNvY2lhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgbGkge1xuICAgICAgYm9yZGVyOiByZW0tY2FsYygxKSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHdpZHRoOiByZW0tY2FsYygzMCk7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDMwKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI0KTtcbiAgICB9XG5cbiAgICAuZmEge1xuICAgICAgJi5mYS1saW5rZWRpbixcbiAgICAgICYuZmEtdHdpdHRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiovXG4ud2lkZ2V0LS1saXN0aW5nIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAuOTM3NXJlbSAxLjVyZW07IH1cbiAgLndpZGdldC0tbGlzdGluZyAuY29sdW1ucyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAud2lkZ2V0LS1saXN0aW5nIGgzIHtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC53aWRnZXQtLWxpc3RpbmcgdWwsIC53aWRnZXQtLWxpc3RpbmcgcCB7XG4gICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLndpZGdldC0tbGlzdGluZyB1bCB7XG4gICAgbWF4LXdpZHRoOiA2MCU7IH1cbiAgICAud2lkZ2V0LS1saXN0aW5nIHVsIGxpIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgLndpZGdldC0tbGlzdGluZy1ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAud2lkZ2V0LS1saXN0aW5nLWJvZHktaW5uZXIge1xuICAgICAgcGFkZGluZzogMS41cmVtIDAuNzVyZW07IH1cbiAgICAud2lkZ2V0LS1saXN0aW5nLWJvZHktdGl0bGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgICAud2lkZ2V0LS1saXN0aW5nLWJvZHktZGF0ZSB7XG4gICAgICBmb250LXNpemU6IDEuMTVlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogIzI2MjI2MjtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07IH1cbiAgICAud2lkZ2V0LS1saXN0aW5nLWJvZHktbG9jYXRpb24ge1xuICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogIzI2MjI2MjtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTsgfVxuICAgIC53aWRnZXQtLWxpc3RpbmctYm9keS1zdW1tYXJ5IHAsIC53aWRnZXQtLWxpc3RpbmctYm9keS1zdW1tYXJ5IGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTsgfVxuICAgIC53aWRnZXQtLWxpc3RpbmctYm9keSAuYnRuIHtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gIC53aWRnZXQtLWxpc3RpbmctbWFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgIC8qIGZpeGVzIHBvdGVudGlhbCB0aGVtZSBjc3MgY29uZmxpY3QgKi8gfVxuICAgIC53aWRnZXQtLWxpc3RpbmctbWFwIC5hY2YtbWFwIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzMS4yNXJlbTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC53aWRnZXQtLWxpc3RpbmctbWFwIC5hY2YtbWFwIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC53aWRnZXQtLWxpc3RpbmctYm9keS1pbm5lciB7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud2lkZ2V0LS1saXN0aW5nLWJvZHktaW5uZXIge1xuICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAud2lkZ2V0LS1saXN0aW5nLWJvZHktaW5uZXIge1xuICAgIHBhZGRpbmc6IDMuNXJlbSAxLjc1cmVtOyB9IH1cblxuLndpZGdldC0tb3B0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC53aWRnZXQtLW9wdGlvbi5yZXZlYWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MTI4OGQ7IH1cbiAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogIzkxMjg4ZDtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBoMiwgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBoMywgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBwLCAud2lkZ2V0LS1vcHRpb24tY29udGFpbmVyIGxpIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBoMiB7XG4gICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBoMyB7XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBwLnN1cHBvcnQtY29weSB7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMS41cmVtOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciBsaSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICByaWdodDogMC43NXJlbTtcbiAgICAgIHRvcDogMC43NXJlbTsgfVxuICAgICAgLndpZGdldC0tb3B0aW9uLWNvbnRhaW5lciAuY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1saXN0IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjE4NzVyZW07IH1cbiAgICAud2lkZ2V0LS1vcHRpb24tbGlzdCBsaSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGZvbnQtc2l6ZTogNjAlOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLWxpc3QgbGkgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1saXN0IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjNzQyMDcxO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDMuNzVyZW07IH1cbiAgICAud2lkZ2V0LS1vcHRpb24tbGlzdCBhOmFmdGVyIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnO1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBjb250ZW50OiAnXFxmMDU0JztcbiAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07IH1cbiAgICAud2lkZ2V0LS1vcHRpb24tbGlzdCBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM5MTI4OGQ7IH1cbiAgLndpZGdldC0tb3B0aW9uIHNwYW4uc3RhdHVzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAgIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5LWlubmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICM5MTI4OGQ7XG4gICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBoMy5zZWN0aW9uLXRpdGxlLCAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBwIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgcGFkZGluZy1yaWdodDogMy43NXJlbTsgfVxuICAgIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5IGEubWVtYnR5cGVfb3BlbiB7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgLndpZGdldC0tb3B0aW9uLXN1bW1hcnkgYS5tZW1idHlwZV9vcGVuOmhvdmVyLCAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBhLm1lbWJ0eXBlX29wZW46Zm9jdXMsIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5IGEubWVtYnR5cGVfb3BlbjphY3RpdmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBzcGFuLnctc3RhdHVzIHtcbiAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiAjOTEyODhkO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICM5MTI4OGQ7IH1cbiAgICAgIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5IHNwYW4udy1zdGF0dXMgaSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC53aWRnZXQtLW9wdGlvbi1jb250YWluZXIgcC5zdXBwb3J0LWNvcHkge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW46IDAgYXV0byAycmVtOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5LWlubmVyIHtcbiAgICBwYWRkaW5nOiAycmVtOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5IGgzLnNlY3Rpb24tdGl0bGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLndpZGdldC0tb3B0aW9uLXN1bW1hcnkgcCB7XG4gICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBzcGFuLnctc3RhdHVzIHtcbiAgICB3aWR0aDogMy40Mzc1cmVtO1xuICAgIGhlaWdodDogMy40Mzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjQzNzVyZW07XG4gICAgcmlnaHQ6IDJyZW07IH1cbiAgICAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBzcGFuLnctc3RhdHVzIGkge1xuICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNjg3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLndpZGdldC0tb3B0aW9uLWxpc3QgYTphZnRlciB7XG4gICAgcmlnaHQ6IDAuNzVyZW07XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgd2lkdGg6IDIuNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5LWlubmVyIHtcbiAgICBwYWRkaW5nOiAzcmVtOyB9XG4gIC53aWRnZXQtLW9wdGlvbi1zdW1tYXJ5IHAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDYuMjVyZW07IH1cbiAgLndpZGdldC0tb3B0aW9uLXN1bW1hcnkgc3Bhbi53LXN0YXR1cyB7XG4gICAgd2lkdGg6IDQuMzc1cmVtO1xuICAgIGhlaWdodDogNC4zNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDQuMzc1cmVtO1xuICAgIHJpZ2h0OiAzcmVtOyB9XG4gICAgLndpZGdldC0tb3B0aW9uLXN1bW1hcnkgc3Bhbi53LXN0YXR1cyBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLndpZGdldC0tb3B0aW9uLXN1bW1hcnktaW5uZXIge1xuICAgIHBhZGRpbmc6IDMuNXJlbTsgfVxuICAud2lkZ2V0LS1vcHRpb24tc3VtbWFyeSBzcGFuLnctc3RhdHVzIHtcbiAgICByaWdodDogMy41cmVtOyB9IH1cblxuLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjVyZW0gMC41cmVtIDA7XG4gIG1hcmdpbi1ib3R0b206IC0xLjVyZW07IH1cbiAgLnNlY3Rpb24taGVhZGluZy13cmFwcGVyLS1saWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIuc2VjdGlvbi0tcGFkZGVkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtOyB9XG4gIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciAuc2VjdGlvbi1oZWFkaW5nIHtcbiAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgICBmb250LXNpemU6IDEuNXJlbTsgfVxuICAgIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciAuc2VjdGlvbi1oZWFkaW5nOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgd2lkdGg6IDQuNzVyZW07XG4gICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzkxMjg4ZCAwJSwgIzI2MjI2MiAxMDAlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMWVtIDA7IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIgLnNlY3Rpb24taGVhZGluZy5jb2xvdXItLWJsdWU6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDljYjg7IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIgLnNlY3Rpb24taGVhZGluZy5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWNiODsgfVxuICAgIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciAuc2VjdGlvbi1oZWFkaW5nLmNvbG91ci0tb3JhbmdlOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWE1YjBjOyB9XG4gICAgLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIC5zZWN0aW9uLWhlYWRpbmcuY29sb3VyLS1ncmVlbjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzliYmQxZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciB7XG4gICAgcGFkZGluZzogMnJlbSAwIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogLTJyZW07IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIuc2VjdGlvbi0tcGFkZGVkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIgLnNlY3Rpb24taGVhZGluZyB7XG4gICAgICBmb250LXNpemU6IDJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciB7XG4gICAgcGFkZGluZzogM3JlbSAwIDA7IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIuc2VjdGlvbi0tcGFkZGVkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9XG4gICAgLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIgLnNlY3Rpb24taGVhZGluZyB7XG4gICAgICBmb250LXNpemU6IDIuMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciB7XG4gICAgcGFkZGluZzogMy41cmVtIDAgMDsgfVxuICAgIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlci5zZWN0aW9uLS1wYWRkZWQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTsgfVxuICAgIC5zZWN0aW9uLWhlYWRpbmctd3JhcHBlciBoMiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzLjVyZW07IH1cbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIgLnNlY3Rpb24taGVhZGluZyB7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTsgfSB9XG5cbi5ob21lcGFnZS1wb3N0cyB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLnBvc3QtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogNjIuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA0cmVtIDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWY5ZmY7XG4gIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG5cbi5wb3N0LWJvZHkgLnBnX19pdGVtIGgyIHtcbiAgY29sb3I6ICM5MTI4OGQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBib3JkZXItYm90dG9tOiAwLjA2MjVyZW0gc29saWQgIzVmNzM3ZDsgfVxuXG4ucG9zdC1ib2R5IC5wZ19faXRlbSBoMyB7XG4gIGNvbG9yOiAjOTEyODhkO1xuICBmb250LXNpemU6IDEuMWVtOyB9XG5cbi5wb3N0LWJvZHkgLnBnX19pdGVtIGg0LCAucG9zdC1ib2R5IC5wZ19faXRlbSBoNSwgLnBvc3QtYm9keSAucGdfX2l0ZW0gaDYge1xuICBjb2xvcjogIzkxMjg4ZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4ucG9zdC1ib2R5IC5wZ19faXRlbSB1bCwgLnBvc3QtYm9keSAucGdfX2l0ZW0gcCB7XG4gIGNvbG9yOiAjMzAyZjM1O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5wb3N0LWJvZHkgLnBnX19pdGVtIHVsIHtcbiAgbWF4LXdpZHRoOiA2MCU7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAucG9zdC1ib2R5IC5wZ19faXRlbSB1bCBsaSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzkxMjg4ZDsgfVxuXG4ucG9zdC1ib2R5IGhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLnBvc3QtYm9keSAucmVzcG9uc2l2ZS1lbWJlZCB7XG4gIG1hcmdpbjogYXV0bztcbiAgbWF4LXdpZHRoOiA1Ni4yNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDYwJTsgfVxuXG4ucG9zdC1ib2R5IGJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5wb3N0LWJvZHkgYmxvY2txdW90ZSBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wb3N0LWJvZHkgdWwgbGkge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMwMDAwMDA7IH1cblxuLnBnIGgyLCBoMywgaDQge1xuICBjb2xvcjogIzkxMjg4ZDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbi5wZyAucm93LnJvdy0tZnVsbHdpZHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5wZ19faXRlbSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5wZ19fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5wZ19fcm93Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW46IDFyZW0gMDsgfVxuXG4ucGcgLmltZy1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLnBnIC53cC1jYXB0aW9uLXRleHQge1xuICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHBhZGRpbmc6IDEuMTg3NXJlbSAwLjVyZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMzgzODM4OyB9XG4gIC5wZyAud3AtY2FwdGlvbi10ZXh0OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgd2lkdGg6IDEwLjQzNzVyZW07XG4gICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgei1pbmRleDogMjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM5MTI4OGQgMCUsICMyNjIyNjIgMTAwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogMCAxZW0gMDsgfVxuXG4ud2lkZ2V0LS13cml0dGVuLWRhdGUsXG4ud2lkZ2V0LS1wb3N0ZWQtZGF0ZSxcbi53aWRnZXQtLWF1dGhvci10aXRsZSxcbi53aWRnZXQtLW9wcG9ydHVuaXR5LWVtcGxveWVyLFxuLndpZGdldC0tb3Bwb3J0dW5pdHktZGF0ZSxcbi53aWRnZXQtLWV2ZW50LXN0YXJ0LWRhdGUsXG4ud2lkZ2V0LS1ldmVudC1sb2NhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjNjc2NzY3O1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi5wb3N0LW1ldGEtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wb3N0LW1ldGEtY29udGFpbmVyIHAge1xuICAgIGNvbG9yOiAjNjc2NzY3O1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLnBvc3QtLXRhZ3Mge1xuICBtYXJnaW46IDJyZW0gYXV0byAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAxLjVyZW0gYXV0bzsgfVxuICAucG9zdC0tdGFncyBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMC4xMjVyZW0gMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAwLjEyNXJlbSBzb2xpZCAjNWY3MzdkO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgLnBvc3QtLXRhZ3MgYTpob3ZlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAucGcgLmltZy1jb250YWluZXIsIC5wZyAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjYyNWVtKSB7XG4gIC5wb3N0LWJvZHkgaW1nOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDAuNTYyNXJlbTsgfVxuICAucG9zdC1ib2R5IC53cC1jYXB0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwLjU2MjVyZW07IH1cbiAgLnBvc3QtYm9keSAud3AtY2FwdGlvbiBpbWcge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5wb3N0LWJvZHkgLnBvc3QtZmVhdHVyZWQtaW1hZ2Uge1xuICAgIG1pbi13aWR0aDogNTAlO1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAucG9zdC1ib2R5IC5wb3N0LWZlYXR1cmVkLWltYWdlIGltZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnBnIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5wZyAuaW1nLWNvbnRhaW5lciBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAucGdfX2l0ZW06bm90KC5mdWxsd2lkdGgpIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5wZ19fcm93Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW46IDNyZW0gMDsgfVxuICAucGdfX3Jvdzpub3QoLnJldmVyc2UpIC5wZ19fdGV4dDpub3QoLmZ1bGx3aWR0aCkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICAucGdfX3Jvdzpub3QoLnJldmVyc2UpIC5wZ19faW1nIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5wZ19fcm93Om5vdCgucmV2ZXJzZSkgLmltZy1jb250YWluZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5wZ19fcm93LnJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgIC5wZ19fcm93LnJldmVyc2UgLnBnX190ZXh0Om5vdCguZnVsbHdpZHRoKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgLnBnX19yb3cucmV2ZXJzZSAucGdfX2ltZyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cbiAgICAucGdfX3Jvdy5yZXZlcnNlIC5pbWctY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucG9zdC1ib2R5IC5wZ19faXRlbSBoMiB7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgLnBvc3QtYm9keSAucGdfX2l0ZW0gaDMge1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGZvbnQtc2l6ZTogMS4xZW07IH1cbiAgLnBnIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5wb3N0LW1ldGEge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucG9zdC1tZXRhIHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtOyB9XG4gIC5wb3N0LXB1Ymxpc2hlZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnBvc3QtLXRhZ3Mge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGp1c3RpZnktY29udGVudDogaW5oZXJpdDtcbiAgICBmbGV4LXdyYXA6IGluaGVyaXQ7IH1cbiAgLnBvc3QtYm9keSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzLjc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDMuNzVyZW07IH1cbiAgICAucG9zdC1ib2R5IC5wZ19faXRlbSBoMiB7XG4gICAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuICAgIC5wb3N0LWJvZHkgLnBnX19pdGVtIGgzIHtcbiAgICAgIGNvbG9yOiAjOTEyODhkO1xuICAgICAgZm9udC1zaXplOiAxLjFlbTsgfVxuICAgIC5wb3N0LWJvZHkgLnBnIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5wb3N0LWJvZHkgLnBvc3QtZmVhdHVyZWQtaW1hZ2UgaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7IH0gfVxuXG4ucG9zdC1tZXRhLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAucG9zdC1tZXRhIHtcbiAgICBwYWRkaW5nLXRvcDogMS43NXJlbTsgfVxuICAucG9zdC1ib2R5IC5wZ19faXRlbSBoMiB7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtOyB9XG4gIC5wb3N0LWJvZHkgLnBnX19pdGVtIGgzIHtcbiAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICBmb250LXNpemU6IDEuMWVtOyB9XG4gIC5wb3N0LWJvZHkgdWw6bm90KFtjbGFzc10pLCAucG9zdC1ib2R5IG9sOm5vdChbY2xhc3NdKSwgLnBvc3QtYm9keSAuYnRuLXdyYXBwZXIsIC5wb3N0LWJvZHkgaHIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLnBnIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLnZpZGVvLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07IH1cblxuLnlvdXR1YmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAueW91dHViZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogLTE2Ljg0JTtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuICAueW91dHViZSAucGxheS1idXR0b24ge1xuICAgIHdpZHRoOiA5MHB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICAgIGJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICB6LWluZGV4OiAxO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgICAueW91dHViZSAucGxheS1idXR0b246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxNXB4IDAgMTVweCAyNi4wcHg7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7IH1cbiAgLnlvdXR1YmUgaW1nLCAueW91dHViZSAucGxheS1idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAueW91dHViZSBpbWcsXG4gIC55b3V0dWJlIGlmcmFtZSxcbiAgLnlvdXR1YmUgLnBsYXktYnV0dG9uLFxuICAueW91dHViZSAucGxheS1idXR0b246YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgLnlvdXR1YmUgLnBsYXktYnV0dG9uLFxuICAueW91dHViZSAucGxheS1idXR0b246YmVmb3JlIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAueW91dHViZSBpZnJhbWUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4uc2lnbnVwLWJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEuNXJlbSAwLjc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDAuMTg3NXJlbSAjOTEyODhkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnNpZ251cC1ibG9jazpmb2N1cyB7XG4gICAgb3V0bGluZTogIzkxMjg4ZCBhdXRvIDVweDsgfVxuICAuc2lnbnVwLWJsb2NrIC5mb3JtLXRpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gIC5zaWdudXAtYmxvY2sgLmNvbHVtbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnNpZ251cC1ibG9jayBmb3JtLnN1YnNjcmliZS1mb3JtIGlucHV0LCAuc2lnbnVwLWJsb2NrIGZvcm0uc3Vic2NyaWJlLWZvcm0gYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5zaWdudXAtYmxvY2sgZm9ybS5zdWJzY3JpYmUtZm9ybSBpbnB1dCB7XG4gICAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBib3JkZXI6IHNvbGlkIDAuMDVlbSAjYmJiYmJiO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVlbTsgfVxuICAuc2lnbnVwLWJsb2NrIGZvcm0uc3Vic2NyaWJlLWZvcm0gYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjOTEyODhkO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuc2lnbnVwLWJsb2NrIGZvcm0uc3Vic2NyaWJlLWZvcm0gYnV0dG9uIGkge1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjE4NzVyZW07IH1cbiAgLnNpZ251cC1ibG9jayBmb3JtLnN1YnNjcmliZS1mb3JtIC5mb3JtLWFjdGlvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgLnNpZ251cC1ibG9jayAuZmEtY2xvc2Uge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuNjI1cmVtO1xuICAgIHJpZ2h0OiAwLjYyNXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnNpZ251cC1ibG9jayAuZmllbGQtc2hpZnQge1xuICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNpZ251cC1ibG9jayB7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtOyB9XG4gICAgLnNpZ251cC1ibG9jayAuZm9ybS10aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLnNpZ251cC1ibG9jayAuZm9ybS1hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaWdudXAtYmxvY2sge1xuICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtOyB9XG4gICAgLnNpZ251cC1ibG9jayAuZm9ybS10aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbiAgICAuc2lnbnVwLWJsb2NrIC5mb3JtLWFjdGlvbnMge1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2lnbnVwLWJsb2NrIHtcbiAgICBwYWRkaW5nOiAzLjVyZW0gMS43NXJlbTsgfVxuICAgIC5zaWdudXAtYmxvY2sgLmZvcm0tdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTsgfVxuICAgIC5zaWdudXAtYmxvY2sgLmZvcm0tYWN0aW9ucyB7XG4gICAgICBtYXJnaW4tdG9wOiAxLjc1cmVtOyB9IH1cblxuLnByaW1hcnktLWZvb3RlciB7XG4gIGNvbG9yOiAjYjBhZWJhO1xuICBiYWNrZ3JvdW5kOiAjMjYyMjYyO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5wcmltYXJ5LS1mb290ZXIgbGkge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5wcmltYXJ5LS1mb290ZXIgLmZvb3Rlci0tbWVudXMge1xuICAgIGJvcmRlci10b3A6IHNvbGlkIDAuMTI1cmVtICNkYWQ3ZTU7XG4gICAgcGFkZGluZzogMS41cmVtIDA7IH1cbiAgICAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLW1lbnVzIHVsLCAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLW1lbnVzIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLWNvcHlyaWdodCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAgIC5wcmltYXJ5LS1mb290ZXIgLmZvb3Rlci0tY29weXJpZ2h0IHAge1xuICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIHBhZGRpbmc6IDAgMC41cmVtOyB9XG4gIC5wcmltYXJ5LS1mb290ZXIgLmZvb3Rlci0tdGVydGlhcnkge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnByaW1hcnktLWZvb3RlciAuZm9vdGVyLS10ZXJ0aWFyeSBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLXRlcnRpYXJ5IGxpIGEge1xuICAgICAgICBjb2xvcjogI2IwYWViYTsgfVxuICAgICAgLnByaW1hcnktLWZvb3RlciAuZm9vdGVyLS10ZXJ0aWFyeSBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAucHJpbWFyeS0tZm9vdGVyIC5zdWItbmF2IHtcbiAgICBtYXJnaW46IDA7IH1cblxuLmZvb3Rlci0tbWVudXMtc2l0ZW1hcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAuZm9vdGVyLS1tZW51cy1zaXRlbWFwIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnByaW1hcnktLWZvb3RlciAuZm9vdGVyLS1jb3B5cmlnaHQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLXRlcnRpYXJ5IGxpIHtcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTsgfVxuICAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLXRlcnRpYXJ5IC5zdWItbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLmZvb3Rlci0tdGVydGlhcnkgbGk6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgY29udGVudDogJ3wnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHJpZ2h0OiAtMC4xODc1cmVtO1xuICAgIGNvbG9yOiAjYjBhZWJhOyB9XG4gIC5mb290ZXItLWNvcHlyaWdodCBwIHtcbiAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAucHJpbWFyeS0tZm9vdGVyIC5mb290ZXItLXRlcnRpYXJ5IGxpIHtcbiAgICBwYWRkaW5nOiAwIDAuNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5wcmltYXJ5LS1mb290ZXIgLmZvb3Rlci0tdGVydGlhcnkgbGkge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cblxuLnNlY29uZGFyeS0tZm9vdGVyIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQ6ICMyNjIyNjI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDQ4cHg7XG4gIGJveC1zaGFkb3c6IDAgLTAuMDVlbSAwLjVlbSAwLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAuc2Vjb25kYXJ5LS1mb290ZXIgLnJvdy0tZnVsbHdpZHRoIHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07IH1cbiAgLnNlY29uZGFyeS0tZm9vdGVyIC5mb290ZXItLWluZm8ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0taW5mby1uYW1lIHtcbiAgICBjb2xvcjogI2IwYWViYTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5zZWNvbmRhcnktLWZvb3RlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgY29sb3I6ICNiMGFlYmE7IH1cbiAgICAuc2Vjb25kYXJ5LS1mb290ZXIgcCBhIHtcbiAgICAgIGNvbG9yOiAjYjBhZWJhOyB9XG4gIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1zb2NpYWwge1xuICAgIG1hcmdpbjogMS41cmVtIDA7IH1cbiAgLnNlY29uZGFyeS0tZm9vdGVyIC5mb290ZXItLXNvY2lhbC1tZW51IHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1zb2NpYWwtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0tc29jaWFsLWxpc3QgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMXJlbTsgfVxuICAgICAgLnNlY29uZGFyeS0tZm9vdGVyIC5mb290ZXItLXNvY2lhbC1saXN0IGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDIuNjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNjI1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgYm9yZGVyOiAwLjA5ZW0gc29saWQgI2IwYWViYTsgfVxuICAgICAgICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0tc29jaWFsLWxpc3QgbGkgYSBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gICAgICAgICAgY29sb3I6ICNiMGFlYmE7IH1cbiAgICAgICAgICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0tc29jaWFsLWxpc3QgbGkgYSBpLmZhLWdvb2dsZS1wbHVzIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuODEyNXJlbTsgfVxuICAgICAgICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0tc29jaWFsLWxpc3QgbGkgYTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2IwYWViYTsgfVxuICAgICAgICAgIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1zb2NpYWwtbGlzdCBsaSBhOmhvdmVyIGkge1xuICAgICAgICAgICAgY29sb3I6ICMyNjIyNjI7IH1cbiAgLnNlY29uZGFyeS0tZm9vdGVyIC5mb290ZXItLXBhcnRuZXItbGlzdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnNlY29uZGFyeS0tZm9vdGVyIC5mb290ZXItLXBhcnRuZXItbGlzdCBpbWcge1xuICAgICAgd2lkdGg6IDcuNXJlbTtcbiAgICAgIGhlaWdodDogMy42ODc1cmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNlY29uZGFyeS0tZm9vdGVyIC5yb3ctLWZ1bGx3aWR0aCB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zZWNvbmRhcnktLWZvb3RlciAucm93LS1mdWxsd2lkdGgge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2Vjb25kYXJ5LS1mb290ZXIgLnJvdy0tZnVsbHdpZHRoIHtcbiAgICBwYWRkaW5nLXRvcDogMy41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1pbmZvLWNvbnRhY3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1pbmZvLWNvbnRhY3Q6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1pbmZvLWNvbnRhY3Qgc3Ryb25nIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG4gIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1zb2NpYWwtbWVudSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5zZWNvbmRhcnktLWZvb3RlciAuZm9vdGVyLS1zb2NpYWwtbGlzdCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0tc29jaWFsLWxpc3QgbGkge1xuICAgICAgcGFkZGluZzogMC43NXJlbTsgfVxuICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0tcGFydG5lci1saXN0IHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAuc2Vjb25kYXJ5LS1mb290ZXIgLmZvb3Rlci0taW5mbyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNlY29uZGFyeS0tZm9vdGVyIC5mb290ZXItLXNvY2lhbC1saXN0IGxpIHtcbiAgICBwYWRkaW5nOiAxcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuZm9vdGVyLS1wYXJ0bmVyLWxpc3Qge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMnJlbTsgfSB9XG5cbi5zZWFyY2gtLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzOCwgMzQsIDk4LCAwLjk1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE1MCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnNlYXJjaC0tb3ZlcmxheSBmb3JtIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAgIC5zZWFyY2gtLW92ZXJsYXkgZm9ybSBpbnB1dCB7XG4gICAgICBtYXgtd2lkdGg6IDQzLjc1cmVtOyB9XG4gICAgLnNlYXJjaC0tb3ZlcmxheSBmb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjI1cmVtIHNvbGlkICNmZWZlZmU7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmFmOWZmO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMnJlbTtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgICAgLnNlYXJjaC0tb3ZlcmxheSBmb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjYjBhZWJhOyB9XG4gICAgLnNlYXJjaC0tb3ZlcmxheSBmb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6ICNiMGFlYmE7IH1cbiAgICAgIC5zZWFyY2gtLW92ZXJsYXkgZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmYWY5ZmY7IH1cbiAgLnNlYXJjaC0tb3ZlcmxheSAuY2xvc2UtLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNSU7XG4gICAgcmlnaHQ6IDUlO1xuICAgIGNvbG9yOiAjYjBhZWJhO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4gICAgLnNlYXJjaC0tb3ZlcmxheSAuY2xvc2UtLWJ1dHRvbjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogI2ZhZjlmZjsgfVxuICAuc2VhcmNoLS1vdmVybGF5LXNob3cge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2VhcmNoLS1uby1yZXN1bHRzIHtcbiAgbWF4LXdpZHRoOiAzNy41cmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zZWFyY2gtLW92ZXJsYXkgZm9ybSB7XG4gICAgd2lkdGg6IDUwJTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNlYXJjaC0tb3ZlcmxheSBmb3JtIHtcbiAgICB3aWR0aDogNDAlOyB9IH1cblxuLnNoYXJlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwOyB9XG5cbi5zaGFyZSBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNC4xMjVyZW07XG4gIGhlaWdodDogNC4xMjVyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnNoYXJlIGxpIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMi42MjVyZW07XG4gICAgaGVpZ2h0OiAyLjYyNXJlbTtcbiAgICBtYXJnaW46IDAuNzVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5zaGFyZSBsaSBhIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gICAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgIC5zaGFyZSBsaSBhOmhvdmVyIHNwYW4ge1xuICAgICAgY29sb3I6ICMyNjIyNjI7IH1cblxuLnN0YWNrZWQtbGlzdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQuMTI1cmVtOyB9XG4gIC5zdGFja2VkLWxpc3QgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0LjEyNXJlbTtcbiAgICBoZWlnaHQ6IDQuMTI1cmVtO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOyB9XG4gICAgLnN0YWNrZWQtbGlzdCBsaSBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAyLjYyNXJlbTtcbiAgICAgIGhlaWdodDogMi42MjVyZW07XG4gICAgICBtYXJnaW46IDAuNzVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLnN0YWNrZWQtbGlzdCBsaSBhIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogIzkxMjg4ZDsgfVxuICAgICAgLnN0YWNrZWQtbGlzdCBsaSBhOmhvdmVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogIzI2MjI2MjsgfVxuXG4uc2hhcmUtLW1vYmlsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDFyZW0gMDsgfVxuICAuc2hhcmUtLW1vYmlsZSBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hhcmUtLW1vYmlsZSB7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogLTFyZW0gMCAzcmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hhcmUtY29udGFpbmVyIHtcbiAgICByaWdodDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnNoYXJlLWNvbnRhaW5lciB7XG4gICAgcmlnaHQ6IC02LjYyNXJlbTsgfSB9XG5cbi53aWRnZXQtLXRpbWVsaW5lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IC02LjI1cmVtIGF1dG8gMS41cmVtO1xuICBwYWRkaW5nOiAxLjI1cmVtIDAgMTIuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDUzLjc1cmVtO1xuICB6LWluZGV4OiAyMDsgfVxuICAud2lkZ2V0LS10aW1lbGluZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiAwLjYyNXJlbTtcbiAgICBoZWlnaHQ6IDEyLjVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzkxMjg4ZCAwJSwgIzI2MjI2MiAxMDAlKTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSBhIGgzLCAud2lkZ2V0LS10aW1lbGluZSBhIGg0LCAud2lkZ2V0LS10aW1lbGluZSBhIGg1LCAud2lkZ2V0LS10aW1lbGluZSBhIGg2LCAud2lkZ2V0LS10aW1lbGluZSBhIGxpLCAud2lkZ2V0LS10aW1lbGluZSBhIHAge1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSBhIHAge1xuICAgIGNvbG9yOiAjMzAyZjM1OyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIGgyIHtcbiAgICBjb2xvcjogIzkxMjg4ZDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICBsaW5lLWhlaWdodDogMS4xNWVtOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIGJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIGgyLndpZGdldC0tdGl0bGUge1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1kYXRlIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xuICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTsgfVxuICAgIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWRhdGUgaDMge1xuICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBjb2xvcjogIzI2MjI2MjsgfVxuICAgIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWRhdGUgLndpZGdldC1kYXRlX19pY29uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICB3aWR0aDogMS4yZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1kYXRlIC53aWRnZXQtZGF0ZV9faWNvbiBzdmcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWRhdGUgLndpZGdldC1kYXRlX19pY29uIHBhdGgge1xuICAgICAgICBmaWxsOiAjMjYyMjYyOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmOWZmO1xuICAgIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTsgfVxuICAgIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWJvZHk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMS4yNXJlbTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDBkZWcsICM5MTI4OGQgMCUsICMyNjIyNjIgMTAwJSk7IH1cbiAgICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1ib2R5OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMC42MjVyZW07XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwLjc1cmVtOyB9XG4gICAgICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1ib2R5LWlubmVyIHAgYSwgLndpZGdldC0tdGltZWxpbmUgLndpZGdldC0tYm9keS1pbm5lciBsaSBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgICAgLndpZGdldC0tdGltZWxpbmUgLndpZGdldC0tYm9keS1pbm5lciBwIGE6aG92ZXIsIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWJvZHktaW5uZXIgbGkgYTpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi50aW1lbGluZS0tbW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7IH1cbiAgLnRpbWVsaW5lLS1tb2RhbCAud2lkZ2V0LS10aW1lbGluZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMCAwO1xuICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgICB6LWluZGV4OiAyMDsgfVxuICAgIC50aW1lbGluZS0tbW9kYWwgLndpZGdldC0tdGltZWxpbmU6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAudGltZWxpbmUtLW1vZGFsIC5jbG9zZS1idXR0b24ge1xuICAgIHdpZHRoOiAyLjI1cmVtO1xuICAgIGhlaWdodDogMi4yNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAyO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiAjOTEyODhkO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICM5MTI4OGQ7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud2lkZ2V0LS10aW1lbGluZSBoMi53aWRnZXQtLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWRhdGUge1xuICAgIG1hcmdpbi1yaWdodDogLTJyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0ycmVtOyB9XG4gICAgLndpZGdldC0tdGltZWxpbmUgLndpZGdldC0tZGF0ZSBoMyB7XG4gICAgICBmb250LXNpemU6IDEuMDYyNXJlbTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWJvZHkge1xuICAgIGJvcmRlci1ib3R0b206IDAuMjVlbSBzb2xpZCAjOTEyODhkOyB9XG4gICAgLndpZGdldC0tdGltZWxpbmUgLndpZGdldC0tYm9keS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAycmVtIDFyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53aWRnZXQtLXRpbWVsaW5lIGgyLndpZGdldC0tdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1kYXRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0zcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtM3JlbTsgfVxuICAgIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWRhdGUgaDMge1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgLndpZGdldC0tdGltZWxpbmUgLndpZGdldC0tYm9keSB7XG4gICAgbWFyZ2luLXRvcDogMS4zNzVyZW07IH1cbiAgICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAud2lkZ2V0LS10aW1lbGluZSBoMi53aWRnZXQtLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWRhdGUge1xuICAgIG1hcmdpbi1yaWdodDogLTMuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTMuNXJlbTsgfVxuICAud2lkZ2V0LS10aW1lbGluZSAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxLjc1cmVtOyB9XG4gIC53aWRnZXQtLXRpbWVsaW5lIC53aWRnZXQtLWJvZHkge1xuICAgIG1hcmdpbi10b3A6IDIuNzVyZW07IH1cbiAgICAud2lkZ2V0LS10aW1lbGluZSAud2lkZ2V0LS1ib2R5LWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDMuNXJlbSAxLjc1cmVtOyB9IH1cblxuI21lbnUtc2l0ZS1tYXAge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgI21lbnUtc2l0ZS1tYXAgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cbiAgICAjbWVudS1zaXRlLW1hcCA+IGxpIHVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cblxuI21lbnUtc2l0ZS1tYXAgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgI21lbnUtc2l0ZS1tYXAgdWwgbGkge1xuICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cblxuI21lbnUtc2l0ZS1tYXAgI3N1Yi1tZW51IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICNtZW51LXNpdGUtbWFwICNzdWItbWVudSBsaTpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cblxuLmNjLXdpbmRvdyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDAuNXJlbTsgfVxuICAuY2Mtd2luZG93IC5jYy1jb21wbGlhbmNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAuY2Mtd2luZG93IC5jYy1oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jYy13aW5kb3cgLmNjLW1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNjLXdpbmRvdyAuY2MtbGluaywgLmNjLXdpbmRvdyAuY2MtYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNjLXdpbmRvdyAuY2MtYnRuIHtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgdGV4dC1pbmRlbnQ6IC02MjQ5OTk5LjkzNzVyZW07XG4gICAgd2lkdGg6IDAuOTM3NXJlbTtcbiAgICBoZWlnaHQ6IDAuOTM3NXJlbTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zL2Nsb3NlLWJ1dHRvbi5zdmcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMiU7XG4gICAgcmlnaHQ6IDIlO1xuICAgIHBhZGRpbmc6IDAuOGVtO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuICAuY2Mtd2luZG93IC5jYy1kaXNtaXNzIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMC44ZW07IH1cbiAgLmNjLXdpbmRvdyAuY2MtbGluayB7XG4gICAgb3BhY2l0eTogLjc7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuICAgIC5jYy13aW5kb3cgLmNjLWxpbms6aG92ZXIsIC5jYy13aW5kb3cgLmNjLWxpbms6Zm9jdXMsIC5jYy13aW5kb3cgLmNjLWxpbms6YWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNjLXdpbmRvdyAuY2MtbWVzc2FnZSwgLmNjLXdpbmRvdyAuY2MtY29tcGxpYW5jZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmNjLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYwLCA2MCwgNjAsIDAuOSk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmNjLXdpbmRvdyB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZTsgfVxuXG4uY2Mtd2luZG93LmNjLWludmlzaWJsZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLyogb25seSBhbmltYXRlIGlmaGFzIGNsYXNzICdjYy1hbmltYXRlJyAqL1xuLmNjLWFuaW1hdGUuY2MtcmV2b2tlIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2U7IH1cblxuLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLXRvcCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMmVtKTsgfVxuXG4uY2MtYW5pbWF0ZS5jYy1yZXZva2UuY2MtYm90dG9tIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJlbSk7IH1cblxuLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLWFjdGl2ZS5jYy10b3Age1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLWFjdGl2ZS5jYy1ib3R0b20ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLmNjLXJldm9rZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jYy1ib3R0b20ge1xuICAgIHJpZ2h0OiAwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAuY2Mtd2luZG93IC5jYy1idXR0b24ge1xuICAgIHJpZ2h0OiA1JTtcbiAgICB0b3A6IDUlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuaG9tZXBhZ2UgLndpZGdldC0tbGFuZHNjYXBlLWludHJvIC53aWRnZXQtLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAtbW96LWFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGU7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTAuMDYyNXJlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1sZWZ0OiAwLjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAwLjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogMC43NXJlbSBzb2xpZCAjZmVmZWZlO1xuICAgIHotaW5kZXg6IDI7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMzBweCk7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xNXB4KTsgfSB9XG5cbi5sb2FkZXItY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuXG5Aa2V5ZnJhbWVzIGxvYWRlci1lY2xpcHNlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsb2FkZXItZWNsaXBzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4ubG9hZGVyLWVjbGlwc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmxvYWRlci1lY2xpcHNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZGVyLWVjbGlwc2UgMXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IGxvYWRlci1lY2xpcHNlIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgdG9wOiAyMHB4O1xuICBsZWZ0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDAgMCAjMDBBMTlCO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDQwcHggNDFweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNDBweCA0MXB4OyB9XG5cbi5sb2FkZXItZWNsaXBzZSB7XG4gIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEyMHB4ICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMHB4LCAtMTAwcHgpIHNjYWxlKDEpIHRyYW5zbGF0ZSgxMDBweCwgMTAwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIC0xMDBweCkgc2NhbGUoMSkgdHJhbnNsYXRlKDEwMHB4LCAxMDBweCk7IH1cblxuLmZhZGVPdXQge1xuICBhbmltYXRpb246IGZhZGVPdXQgMTAwMG1zIGZvcndhcmRzOyB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4jYWR2YW5jZWQtc2VhcmNoX19mb3JtIHtcbiAgcGFkZGluZy10b3A6IDFlbTtcbiAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICNhZHZhbmNlZC1zZWFyY2hfX2Zvcm0gbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgI2FkdmFuY2VkLXNlYXJjaF9fZm9ybSBidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4td2lkdGg6IDEwZW07XG4gICAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM5MTI4OGQ7XG4gICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjOTEyODhkO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAjYWR2YW5jZWQtc2VhcmNoX19mb3JtIGJ1dHRvbiBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC4xODc1cmVtOyB9XG5cbi5hZHZhbmNlZC1zZWFyY2hfX2NhdGVnb3JpZXMge1xuICBtYXJnaW4tYm90dG9tOiAxZW07IH1cblxuLnNhcy1maWx0ZXJfX3JlbW92ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxZW07IH1cblxuI3Nhcy1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gICNzYXMtcGFnaW5hdGlvbiB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgI3Nhcy1wYWdpbmF0aW9uIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjQuM1xuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0ICcuLi9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cblxuICBAaWYgJHByb3RvdHlwZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XG4gICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuXG4gICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICB9XG4gICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICBAaWYgJGJwICE9IG51bGwgYW5kICRicCA8PSAkcGJwIHtcbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRvbGQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICAvLyBSZXN0b3JlIHRoZSBvbGQgYnJlYWtwb2ludCBzaXplXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJC16Zi1zaXplOiBudWxsICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2luZyAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbmcuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG5cbi8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuLy8gUHJldmVudHMgZHVwbGljYXRlIENTUyB3aGVuIGRlZmluaW5nIG11bHRpcGxlIFJldmVhbCBzaXplc1xuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1kdXBsaWNhdGUtcHJvcGVydGllc1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXZlYWwge1xuICAvLyBbVE9ET10gSXMgdGhpcyBuZWNlc3Nhcnk/XG4gIGJvZHkuaXMtcmV2ZWFsLW9wZW4geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gaHRtbCBnZXRzIHRoaXMgY2xhc3Mgb25seSBpbiBpT1NcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbixcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFJlbW92ZSBwYWRkaW5nXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFNpemluZyBjbGFzc2VzXG4gICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgzMCUpOyB9XG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XG4gICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg5MCUpOyB9XG5cbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2FyZFxuLy8gIDE1LiBDbG9zZSBCdXR0b25cbi8vICAxNi4gRHJpbGxkb3duXG4vLyAgMTcuIERyb3Bkb3duXG4vLyAgMTguIERyb3Bkb3duIE1lbnVcbi8vICAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vICAyMC4gRm9ybXNcbi8vICAyMS4gTGFiZWxcbi8vICAyMi4gTWVkaWEgT2JqZWN0XG4vLyAgMjMuIE1lbnVcbi8vICAyNC4gTWV0ZXJcbi8vICAyNS4gT2ZmLWNhbnZhc1xuLy8gIDI2LiBPcmJpdFxuLy8gIDI3LiBQYWdpbmF0aW9uXG4vLyAgMjguIFByb2dyZXNzIEJhclxuLy8gIDI5LiBQcm90b3R5cGUgQXJyb3dcbi8vICAzMC4gUHJvdG90eXBlIEJvcmRlci1Cb3hcbi8vICAzMS4gUHJvdG90eXBlIEJvcmRlci1Ob25lXG4vLyAgMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gIDM0LiBQcm90b3R5cGUgRm9udC1TdHlsaW5nXG4vLyAgMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vICAzNi4gUHJvdG90eXBlIE92ZXJmbG93XG4vLyAgMzcuIFByb3RvdHlwZSBQb3NpdGlvblxuLy8gIDM4LiBQcm90b3R5cGUgUm91bmRlZFxuLy8gIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAgNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vICA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAgNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAgNDUuIFByb3RvdHlwZSBUZXh0LVV0aWxpdGllc1xuLy8gIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAgNDcuIFJldmVhbFxuLy8gIDQ4LiBTbGlkZXJcbi8vICA0OS4gU3dpdGNoXG4vLyAgNTAuIFRhYmxlXG4vLyAgNTEuIFRhYnNcbi8vICA1Mi4gVGh1bWJuYWlsXG4vLyAgNTMuIFRpdGxlIEJhclxuLy8gIDU0LiBUb29sdGlwXG4vLyAgNTUuIFRvcCBCYXJcbi8vICA1Ni4gWHkgR3JpZFxuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tXG4vLyAxLjEgQ29sb3Vyc1xuLy8gLS0tLS0tLS0tXG5cbi8vIEJyYW5kIENvbG91cnNcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogcmdiKDE0NSwgNDAsIDE0MSksXG4gIHNlY29uZGFyeTogcmdiKDM4LCAzNCwgOTgpLFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbik7XG5cbiRjb2xvci1ncmFkaWVudDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjOTEyODhkIDAlLCAjMjYyMjYyIDEwMCUpO1xuJGNvbG9yLWJnLWxpZ2h0OiAjZmFmOWZmO1xuJGNvbG9yLWJnLWRhcms6ICNkYWQ3ZTU7XG4kY29sb3ItdGV4dC13aGl0ZTogI2ZhZjlmZjtcbiRjb2xvci10ZXh0LWxpZ2h0OiAjYjBhZWJhO1xuJGNvbG9yLXRleHQtZGFyazogIzMwMmYzNTtcbiRjb2xvci1oZWFkaW5nLWRhcms6IHJnYigzOCwgMzQsIDk4KTtcbiRjb2xvci1oZWFkaW5nLWxpZ2h0OiAjZmNmY2ZmO1xuJGNvbG9yLWJ0bi13aGl0ZTogI2ZhZjlmZjtcblxuJHJlZDogI2EwM2Y1NDtcbiRncmVlbjogIzliYmQxZTtcbiRvcmFuZ2U6ICNlYTViMGM7XG4kZGFyay1ibHVlOiAjNWY3MzdkO1xuJGJsdWU6ICMwMDljYjg7XG5cbiRib3gtc2hhZG93OiAwIDAuMDVlbSAwLjVlbSAwLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRsaWdodC1ncmV5OiAjZWVlO1xuJG1lZGl1bS1ncmF5OiAjNjc2NzY3O1xuJGRhcmstZ3JheTogIzM4MzgzODtcbiRibGFjazogIzAwMDAwMDtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtcG9zaXRpb246IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQ7XG4kZ2xvYmFsLXJhZGl1czogMDtcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRwcmludC1icmVha3BvaW50OiBsYXJnZTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UgeGxhcmdlIHh4bGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbik7XG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzMiksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMzIpLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBsYXJnZTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNTgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMzYpLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjgpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICB4bGFyZ2U6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDcwKSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbik7XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGNvZGUtY29sb3I6ICRibGFjaztcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpO1xuJGFuY2hvci1jb2xvcjogJHJlZDtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtO1xuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHg7XG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pO1xuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJTtcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJTtcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2FyZFxuLy8gLS0tLS0tLS1cblxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiRjYXJkLXNoYWRvdzogbm9uZTtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3A7XG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjaztcblxuLy8gMTYuIERyaWxsZG93blxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXI7XG4kZHJpbGxkb3duLWFycm93czogdHJ1ZTtcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDA7XG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweDtcblxuLy8gMTcuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW07XG4kZHJvcGRvd24tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4kZHJvcGRvd24tYm9yZGVyOiAwcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbTtcbiRkcm9wZG93bi13aWR0aDogMzAwcHg7XG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IGZhbHNlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4vLyAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbi8vICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDY7XG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xuXG4vLyAyMC4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JleTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmV5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIyLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIzLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkc2Vjb25kYXJ5LWNvbG9yO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmV5O1xuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlO1xuXG4vLyAyNC4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI1LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JleTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XG5cbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pO1xuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKTtcblxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbik7XG5cbi8vIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyZXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmV5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy8gXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBPdXRwdXRzIENTUyBjbGFzc2VzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiBmb3VuZGF0aW9uLWdyaWQoXG4gICRyb3c6ICdyb3cnLFxuICAkY29sdW1uOiAnY29sdW1uJyxcbiAgJGNvbHVtbi1yb3c6ICdjb2x1bW4tcm93JyxcbiAgJGd1dHRlcjogJ2d1dHRlcicsXG4gICRwdXNoOiAncHVzaCcsXG4gICRwdWxsOiAncHVsbCcsXG4gICRjZW50ZXI6ICdjZW50ZXJlZCcsXG4gICR1bmNlbnRlcjogJ3VuY2VudGVyZWQnLFxuICAkY29sbGFwc2U6ICdjb2xsYXBzZScsXG4gICR1bmNvbGxhcHNlOiAndW5jb2xsYXBzZScsXG4gICRvZmZzZXQ6ICdvZmZzZXQnLFxuICAkZW5kOiAnZW5kJyxcbiAgJGV4cGFuZGVkOiAnZXhwYW5kZWQnLFxuICAkYmxvY2s6ICdibG9jaydcbikge1xuICAvLyBSb3dcbiAgLiN7JHJvd30ge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgLy8gQ29sbGFwc2luZ1xuICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJiAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRncmlkLWNvbHVtbi1ndXR0ZXIpO1xuXG4gICAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgKGZ1bGwtd2lkdGgpIHJvd1xuICAgICYuI3skZXhwYW5kZWR9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC4jeyRleHBhbmRlZH0pIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICBAaWYgdHlwZS1vZigkZ3JpZC1jb2x1bW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAvLyBTdGF0aWMgKHVucmVzcG9uc2l2ZSkgcm93IGd1dHRlcnNcbiAgICAgIC8vXG4gICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRncmlkLWNvbHVtbi1ndXR0ZXIge1xuICAgICAgICAmLiN7JGd1dHRlcn0tI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCR2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC4jeyRjb2x1bW59IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbDtcblxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmLiN7JGVuZH0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1lbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLiN7JHJvd30gLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBDb2x1bW4gd2lkdGhcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1zaXplKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgICBAaWYgJGkgPCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1c2h9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoJGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKC0kaSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRvZmZzZXR9LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtb2ZmKCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtbGF5b3V0KCRpLCAnLiN7JGNvbHVtbn0nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRleHBhbmRlZH0uI3skcm93fSAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfS4jeyRyb3d9IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25pbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNlbnRlcn0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLy8gR3V0dGVyIGFkanVzdG1lbnRcbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY2VudGVyfSxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1c2h9LTAsXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdWxsfS0wIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXVucG9zO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuI3skY29sdW1ufS0jeyRibG9ja30ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIEBpZiAkY29sdW1uID09ICdjb2x1bW4nIGFuZCBoYXMtdmFsdWUoJGdyaWQtY29sdW1uLWFsaWFzKSB7XG4gICAgLiN7JGdyaWQtY29sdW1uLWFsaWFzfSB7XG4gICAgICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1ibG9jayBwbGFjZWhvbGRlci1pbi1leHRlbmRcbiAgICAgIEBleHRlbmQgLmNvbHVtbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAvIDIgKiAtMTtcblxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0IGEgZ3JpZCByb3cgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuQG1peGluIGdyaWQtcm93LXNpemUoJHNpemU6ICRncmlkLXJvdy13aWR0aCkge1xuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcbiAgICAkc2l6ZTogbm9uZTtcbiAgfVxuXG4gIG1heC13aWR0aDogJHNpemU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0cyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXJuIHRoZW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sdW1uLWd1dHRlcigpLiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2wtZ3V0dGVyKCkuIGdyaWQtY29sLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jb2x1bW4nXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGd1dHRlclxuLy8vICAgVGhlIGd1dHRlciB0byBhcHBseSB0byBjaGlsZCBlbGVtZW50cy4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtICRncmlkLWNvbHVtbi1ndXR0ZXIgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiB0aGUgJGdyaWQtY29sdW1uLWd1dHRlciBtYXAsIGluY2x1ZGluZyBicmVha3BvaW50IHNpemVzLlxuLy8vICAgLSBBIGZpeGVkIG51bWVyaWMgdmFsdWUgd2lsbCBhcHBseSB0aGlzIGd1dHRlciB0byBhbGwgYnJlYWtwb2ludHMuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJyxcbiAgJGd1dHRlcjogbnVsbFxuKSB7XG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICAvLyBJZiBhICRndXR0ZXIgdmFsdWUgaXMgcGFzc2VkXG4gICAgQGlmKCRndXR0ZXIpIHtcbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7ICBcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICB1bCwgb2wge1xuICAgIC8vIFVzZSB0byByZW1vdmUgbnVtYmVycyBmcm9tIG9yZGVyZWQgbGlzdCAmIGJ1bGxldHMgZnJvbSB1bm9yZGVyZWQgbGlzdFxuICAgICYubm8tYnVsbGV0IHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGJ1dHRvbiBlbGVtZW50cy5cbi8vLyBAdHlwZSBGb250XG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgd2lkdGggZm9yIGhvbGxvdyBvdXRsaW5lIGJ1dHRvbnNcbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG5cbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0ge1xuICAgICYsXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsXG4gICRib3JkZXItd2lkdGg6ICRidXR0b24taG9sbG93LWJvcmRlci13aWR0aFxuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsZWFyIHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBjbGVhciB7XG4gICAgICAmLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcblxuICAgICAgICAgICAgJiwgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbiAgYS5idXR0b24ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcbi8vLy9cblxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJyAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDogNiAhZGVmYXVsdDtcblxuLy8vIERldGVybWluZXMgaWYgJGJ1dHRvbi1yYWRpdXMgaXMgYXBwbGllZCB0byBlYWNoIGJ1dHRvbiBvciB0aGUgYnV0dG9uIGdyb3VwIGFzIGEgd2hvbGUuIFVzZSAkZ2xvYmFsLXJhZGl1cyBpbiBfc2V0dGluZ3Muc2NzcyB0byBjaGFuZ2UgcmFkaXVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGNoaWxkLXNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZ1xuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNwYWNpbmcgWyRidXR0b25ncm91cC1zcGFjaW5nXSAtIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmcsXG4gICRjb3VudDogbnVsbFxuKSB7XG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogLSRzcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIE9uZSBjaGlsZFxuICAgICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC8vIFR3byBvciBtb3JlIGNoaWxkcmVlblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRzcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtdW5zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIEdyb3VwXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQsXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCxcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3RhY2s7XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIGZvcmNlLWVsZW1lbnQtbmVzdGluZ1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbiBob3ZlcmVkIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuXG4gICAgLy8gRGVmYXVsdCBvcmllbnRhdGlvbjogaG9yaXpvbnRhbFxuICAgICYsICYuaG9yaXpvbnRhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBvcmllbnRhdGlvbiBtb2RpZmllclxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuICAgIH1cblxuICAgIC8vIEJyZWFrcG9pbnQgc3BlY2lmaWMgdmVyc2lvbnNcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXNpbXBsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJhc2UgU3R5bGVzXG4gICAgJi5pY29ucyB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1pY29ucy1iYWNrLWNvbXBhdCB7XG4gICAgICAmLmljb24tdG9wLFxuICAgICAgJi5pY29uLXJpZ2h0LFxuICAgICAgJi5pY29uLWJvdHRvbSxcbiAgICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJY29uIExlZnRcbiAgICAmLmljb24tbGVmdCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBSaWdodFxuICAgICYuaWNvbi1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24ocmlnaHQpO1xuICAgIH1cblxuICAgIC8vIEljb24gVG9wXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24odG9wKTtcbiAgICB9XG5cbiAgICAvLyBJY29uIEJvdHRvbVxuICAgICYuaWNvbi1ib3R0b20ge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuICAgIFxuICAgIC8vIEJhY2t3YXJkIENvbXBhdGliaWxpdHkgZm9yIGFjdGl2ZSBzdGF0ZVxuICAgIEBpZiAkbWVudS1zdGF0ZS1iYWNrLWNvbXBhdCB7XG4gICAgICAuYWN0aXZlID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGxlZnRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1sZWZ0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEFsaWduIHJpZ2h0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24ocmlnaHQpO1xuXG4gICAgICAubmVzdGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJG5lc3RlZC1hbGlnbm1lbnQ6IHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBjZW50ZXJcbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLm1lbnUtdGV4dCB7XG4gICAgICBAaW5jbHVkZSBtZW51LXRleHQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0IHtcbiAgICAubWVudS1jZW50ZXJlZCB7XG4gICAgICA+IC5tZW51IHtcbiAgICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IEZPVUMgd2hlbiB1c2luZyB0aGUgUmVzcG9uc2l2ZSBNZW51IHBsdWdpblxuICAubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogJHRpdGxlYmFyLWljb24tY29sb3IsICRjb2xvci1ob3ZlcjogJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXIpO1xuICB9XG5cbiAgLm1lbnUtaWNvbi5kYXJrIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcgaW4gdGhlIHN1Ym1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHN1Ym1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnUge1xuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxuICAuaXMtZHJpbGxkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuYW5pbWF0ZS1oZWlnaHQge1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHRvcCBsZXZlbCA8dWw+XG4gIC5kcmlsbGRvd24ge1xuICAgIGEge1xuICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1wYWRkaW5nO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFwcGxpZWQgdG8gc3VibWVudSA8dWw+c1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgICB6LWluZGV4OiAtMTtcblxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFN1Ym1lbnUgaXRlbSBwYWRkaW5nXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZzogJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJpbGxkb3duLW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgICBAaW5jbHVkZSB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG5cbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nO1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tYmFja2dyb3VuZDtcblxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XG5cblxuICAvLyBBbGxvdyBhbiBpbnRlcm1pdHRlbnQgc3RhdGUgdG8gZG8gcG9zaXRpb25pbmcgYmVmb3JlIG1ha2luZyB2aXNpYmxlLlxuICAmLmlzLW9wZW5pbmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBzdWItbWVudSBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLyBVc2VkIHRvIGFkanVzdCB0b3AgbWFyZ2luIG9mIGEgc3ViLW1lbnUgaWYgYSBib3JkZXIgaXMgdXNlZC5cbi8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0uIEV4cGxpY2l0IG92ZXJyaWRlIGZvciBtZW51IGRlZmF1bHRzXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc7XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8gV0FSTklORzogV2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gNi40XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbzogZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRmluZHMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2Vycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYSAtIEZpcnN0IG51bWJlciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYiAtIFNlY29uZCBudW1iZXIgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvci5cbkBmdW5jdGlvbiBnY2QoJGEsICRiKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9HcmVhdGVzdF9jb21tb25fZGl2aXNvciNKYXZhU2NyaXB0XG4gIEBpZiAoJGIgIT0gMCkge1xuICAgIEByZXR1cm4gZ2NkKCRiLCAkYSAlICRiKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBhYnMoJGEpO1xuICB9XG59XG5cbi8vLyBIYW5kbGVzIGRlY2ltYWwgZXhwb25lbnRzIGJ5IHRyeWluZyB0byBjb252ZXJ0IHRoZW0gaW50byBhIGZyYWN0aW9uIGFuZCB0aGVuIHVzZSBhIG50aC1yb290LWFsZ29yaXRobSBmb3IgcGFydHMgb2YgdGhlIGNhbGN1bGF0aW9uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgYmFzZSBudW1iZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBvbmVudCAtIFRoZSBleHBvbmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBwcm9kdWN0IG9mIHRoZSBleHBvbmVudGlhdGlvbi5cbkBmdW5jdGlvbiBwb3coJGJhc2UsICRleHBvbmVudCwgJHByZWM6IDE2KSB7XG4gIEBpZiAoZmxvb3IoJGV4cG9uZW50KSAhPSAkZXhwb25lbnQpIHtcbiAgICAkcHJlYzIgOiBwb3coMTAsICRwcmVjKTtcbiAgICAkZXhwb25lbnQ6IHJvdW5kKCRleHBvbmVudCAqICRwcmVjMik7XG4gICAgJGRlbm9taW5hdG9yOiBnY2QoJGV4cG9uZW50LCAkcHJlYzIpO1xuICAgIEByZXR1cm4gbnRoLXJvb3QocG93KCRiYXNlLCAkZXhwb25lbnQgLyAkZGVub21pbmF0b3IpLCAkcHJlYzIgLyAkZGVub21pbmF0b3IsICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLyAkYmFzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIG50aC1yb290KCRudW0sICRuOiAyLCAkcHJlYzogMTIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL050aF9yb290I0phdmFTY3JpcHRcbiAgJHg6IDE7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkcHJlYyB7XG4gICAgJHg6IDEgLyAkbiAqICgoJG4gLSAxKSAqICR4ICsgKCRudW0gLyBwb3coJHgsICRuIC0gMSkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHg7XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB3aWR0aCBmb3IgYSBnaXZlbiByYXRpby5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyAtIFJhdGlvIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCwgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuLy8vIEByZXR1cm4ge051bWJlcn0gQSBwZXJjZW50YWdlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IHJlbGF0aXZlIHRvIHRoZSB3aWR0aCBvZiBhIHJlc3BvbnNpdmUgY29udGFpbmVyLlxuQGZ1bmN0aW9uIHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKSB7XG4gICR3OiBudGgoJHJhdGlvLCAxKTtcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xuICBAcmV0dXJuICRoIC8gJHcgKiAxMDAlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGUgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXG5AbWl4aW4gbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICRsYWJlbC1yYWRpdXM7XG5cbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbGFiZWwtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkbGFiZWwtY29sb3IsICRsYWJlbC1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9yYml0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhY3RpdmUgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlhbWV0ZXIgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGJldHdlZW4gT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlzdGFuY2UgZnJvbSBzbGlkZSByZWdpb24gZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZyb20gT3JiaXQncyBidWxsZXRzIHRvIHdoYXRldmVyIGNvbnRlbnQgbWF5IGx1cmsgYmVsb3cgaXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjb250cm9scyB3aGVuIGhvdmVyZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgei1pbmRleCBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIG91dGVyIE9yYml0IHdyYXBwZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgT3JiaXQgc2xpZGUgY29udGFpbmVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY29udGFpbmVyYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDsgLy8gUHJldmVudCBGT1VDIGJ5IG5vdCBzaG93aW5nIHVudGlsIEpTIHNldHMgaGVpZ2h0XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5kaXZpZHVhbCBzbGlkZXMgb2YgYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtc2xpZGVgIGNsYXNzLlxuQG1peGluIG9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi5uby1tb3Rpb251aSB7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHNsaWRlIGNvbnRhaW5pbmcgYW4gaW1hZ2UuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1pbWFnZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxuQG1peGluIG9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6ICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG5cbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aXRsZS1iYXJcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBXZWlnaHRcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiB0aGUgbWVudSBpY29uIGFuZCB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAubWVudS1pY29uIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudGl0bGUtYmFyLWxlZnQsXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudGl0bGUtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAudGl0bGUtYmFyLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXdlaWdodDogJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b3AtYmFyIHtcbiAgLy8gVG9wIGJhciBjb250YWluZXJcbiAgLnRvcC1iYXIge1xuICAgIEBpbmNsdWRlIHRvcC1iYXItY29udGFpbmVyO1xuXG4gICAgLy8gU3RhY2sgb24gc21hbGwgc2NyZWVucyBieSBkZWZhdWx0XG4gICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludCkge1xuICAgICAgQGluY2x1ZGUgdG9wLWJhci11bnN0YWNrO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGNsYXNzZXMgZm9yIHN0YWNraW5nIG9uIGVhY2ggc2NyZWVuIHNpemUgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcylcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICYuc3RhY2tlZC1mb3ItI3skc2l6ZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wLWJhci1zdGFja2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbjogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAudG9wLWJhci10aXRsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgICAgLm1lbnUtaWNvbiB7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0Jykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0JywgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEgeyBcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vLyBBcHBsaWVzIGJhc2ljIHRyYW5zaXRpb24gc2V0dGluZ3MgdG8gYW4gZWxlbWVudC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICBAaW5jbHVkZSAtbW90aW9uLXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG5AbWl4aW4gLW1vdGlvbi11aS1kZWZhdWx0cyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLWVhc2luZ3MsIGRlZmF1bHQpO1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xuICAvLyBTbGlkZVxuICAuc2xpZGUtaW4tZG93biAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGRvd24pOyB9XG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XG4gIC5zbGlkZS1pbi11cCAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgdXApOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxuICAuc2xpZGUtb3V0LXJpZ2h0ICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHJpZ2h0KTsgfVxuICAuc2xpZGUtb3V0LXVwICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHVwKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAuc2hha2UsXG4gIC5zcGluLWN3LFxuICAuc3Bpbi1jY3csXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgYWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxuKSAhZGVmYXVsdDtcbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbWFwOiBjYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbGVmdF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGxlZnQsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrXG4pIHtcbiAgLy8gUm90YXRpb24gZGlyZWN0aW9ucyB3aGVuIGhpbmdpbmcgZnJvbSBiYWNrIHZzLiBmcm9udFxuICAkcm90YXRpb24tYW1vdW50OiA5MGRlZztcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgKTtcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkaXJlY3Rpb24gW2N3XSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufSIsIi8vIFV0aWxpdHkgQ2xhc3Nlc1xuXG5tYWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbn1cblxuLy8gUmVzZXQgYW5jaG9yIGNvbG91ciBmb3Igd2lkZ2V0cyAoTW92ZT8pXG5hIHtcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUgLGg2LCBwLCBsaSB7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIH1cbn1cblxuLnNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMyKSAwIDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG5cbiAgICAmLS1kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gICAgfVxuICAgICYtLWRhcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICB9XG4gICAgJi0tbGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICB9XG4gICAgJi0tZ2FsbGVyeSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tc21hbGw7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgIC5nYWxsZXJ5LWZyYW1lLCAudmlkZW8tY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTsgbGVmdDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiA4MCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICB9XG4gICAgJi0taW50cm9kdWN0aW9uLCAmLS10aW1lbGluZSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgICYtLXRpbWVsaW5lLXN0YXJ0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEwMCkgIWltcG9ydGFudDsgLy8gQ2FuY2VsIHdpZGdldCBuZWdhdGl2ZSBtYXJnaW5cbiAgICB9XG4gICAgJi0tcHJvbW8ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gLnJvdyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi0tY29tcHJlc3NlZCB7XG4gICAgICAgICsgLnNlY3Rpb24tLWNvbXByZXNzZWQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuXG4uY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5jb2x1bW5zOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIC5zZWN0aW9uIHtcbiAgICAgICAgXG4gICAgICAgICYtLWludHJvZHVjdGlvbiwgJi0tdGltZWxpbmUge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAmLS1nYWxsZXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzNikgMCAwO1xuICAgICAgICAmLS1pbnRyb2R1Y3Rpb24sICYtLXRpbWVsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJi0tZ2FsbGVyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS8yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgLnNlY3Rpb24ge1xuICAgICAgICBcbiAgICAgICAgJi0taW50cm9kdWN0aW9uLCAmLS10aW1lbGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgICYtLWdhbGxlcnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXhsYXJnZS8yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udHR1IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZmIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubHN0biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luOiAzZW0gMCAxZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyZW07XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMi41ZW07XG4gICAgICBoZWlnaHQ6IDIuNWVtO1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJnLWxpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOiBzb2xpZCAwLjA1ZW0gJHByaW1hcnktY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDAuMDVlbSAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuMjVlbTtcbiAgICB9XG59XG5cbi52LS1jZW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5yb3cge1xuICAgICYucm93LS1mdWxsd2lkdGgge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICAgICYucm93LS1mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgJi5yb3ctLWZsZXgtcmV2ZXJzZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG4gICAgJi5yb3ctLWZsZXgtY2VudGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgICYucm93LS1mbGV4LXZlcnRpY2FsLWFsaWduIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgJi5yb3ctLWZsZXgtc3BhY2UtYXJvdW5kIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAucm93IHtcbiAgICAgICAgJi5yb3ctLWZ1bGx3aWR0aCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRtYXJnaW4tbWVkaXVtO1xuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIC5yb3cge1xuICAgICAgICAmLnJvdy0tZnVsbHdpZHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJG1hcmdpbi1sYXJnZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgICYtLXBhZGRlZC1sYXJnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSoyIDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIC5yb3cge1xuICAgICAgICAmLnJvdy0tZnVsbHdpZHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBDbGVhcmZpeFxuXG4uY2Yge1xuICAgICY6YWZ0ZXIsICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4vLyBTY3JlZW4gcmVhZGVyIGV0YyBlbGVtZW50c1xuLmVsZW1lbnQtaW52aXNpYmxlLCAuc2hvdy1mb3Itc3IsIC5zaG93LW9uLWZvY3VzLCAudmlzdWFsbHloaWRkZW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBib3JkZXI6IDA7XG59XG5cbmJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJhY2stdG8tdG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDMwcHg7XG4gICAgYm90dG9tOiA4NTBweDtcbiAgICBmb250LXNpemU6IDNyZW07ICAgIFxufSIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVmFyaWFibGVzIChtb3ZlKVxuJG1vYmlsZV9tZW51X2JvcmRlcjogJHByaW1hcnktY29sb3I7IC8vIE1lbnUgaXRlbSBib3JkZXJcbiRtb2JpbGVfbWVudV9saW5rOiAkcHJpbWFyeS1jb2xvcjsgLy8gTWVudSBpdGVtIGxpbmtzXG4kbW9iaWxlX21lbnVfYmc6IHJnYmEoJGNvbG9yLWJnLWxpZ2h0LCAwLjk1KTsgLy8gTWVudSBiYWNrZ3JvdW5kXG4kbW9iaWxlX21lbnVfYXJyb3c6ICR3aGl0ZTsgLy8gTWVudSBpdGVtIGFycm93c1xuXG4jc2l0ZS1oZWFkZXIge1xuICAgIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLy8gZGlzcGxheTogZmxleDtcbiAgICAvLyBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yLWJnLWxpZ2h0LCAwLjk1KTtcbiAgICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbn1cblxuLnotMSB7XG4gICAgei1pbmRleDogMTtcbn1cblxuLnRvcC1iYXIge1xuICAgIHVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1vYmlsZV9tZW51X2JnO1xuICAgIH1cbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhlYWRlciBDb250YWluZXJcbi5oZWFkZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI0KSByZW0tY2FsYyg4KTtcbiAgICB6LWluZGV4OiA1MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3ItYmctbGlnaHQsIDAuOTUpO1xufVxuLmhlYWRlci0tb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjc1KTtcbiAgICBtaW4taGVpZ2h0OiByZW0tY2FsYygzMjUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTUwJSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgJi1zaG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3ItYmctbGlnaHQsIDAuOTUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQnJhbmQgLyBsb2dvXG4uYnJhbmQtbmF2aWdhdGlvbiB7XG4gICAgei1pbmRleDogMjAwOyAvLyBTdGF5IGluZnJvbnQgb2YgbW9iaWxlIG1lbnVcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgLy9saW5lLWhlaWdodDogYXV0bztcbiAgICB9XG59XG4ubG9nbywgLmludmVyc2UtLWxvZ28ge1xuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTc4KTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuLmxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhlYWRlci0tY29tcHJlc3NlZCB7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDE2KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNZWdhLW1lbnVcblxuLmRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDk2KSByZW0tY2FsYygxOCkgcmVtLWNhbGMoMCkgcmVtLWNhbGMoMTgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpO1xuXG4gICAgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAwLjFlbSAkbW9iaWxlX21lbnVfYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAwLjE1ZW0gJG1vYmlsZV9tZW51X2JvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTYpIDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1vYmlsZV9tZW51X2JnO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zaG93IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUpO1xuICAgIH1cblxuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDk2KSByZW0tY2FsYygxOCkgcmVtLWNhbGMoMCkgcmVtLWNhbGMoMTgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbW9iaWxlX21lbnVfYmc7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNikgMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1lbnUgLmlzLWRyaWxsZG93bi1zdWJtZW51IGxpLmlzLXN1Ym1lbnUtaXRlbSBhIHtcbiAgICAvLyBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAvLyBmb250LXdlaWdodDogNTAwO1xuICAgIC8vIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xufVxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICByaWdodDogcmVtLWNhbGMoMCk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiByZW0tY2FsYyg4KSBzb2xpZCAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbS1jYWxjKDYpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiByZW0tY2FsYyg2KSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxNSk7XG4gICAgfVxufVxuLm1lbnUuZHJpbGxkb3duIC5qcy1kcmlsbGRvd24tYmFjayA+IGEge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygyNCk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICBsZWZ0OiByZW0tY2FsYygwKTsgcmlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuLmlzLWRyaWxsZG93biB7XG4gICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuXG4gICAgJi1zdWJtZW51IHtcbiAgICAgICAgLy9wYWRkaW5nOiByZW0tY2FsYyg2NCkgcmVtLWNhbGMoMTYpIHJlbS1jYWxjKDApIHJlbS1jYWxjKDMyKTtcbiAgICB9XG59XG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG5cbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1haW4gTWVudSAmIENUQSBNZW51XG5cbi5tYWluLW5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1lbnUge1xuICAgIGxpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICAgIGNvbG9yOiAmcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRtb2JpbGVfbWVudV9saW5rO1xuICAgICAgICAgICAgLy9mb250LXdlaWdodDogNzAwOyAvLyhXaW5kb3dzIHJlbmRlcmluZyBvZiBmb250IHdpdGggYm9sZCBpcyBoYXJtaW5nIHRoZSBkaXNwbGF5IG9mIHRoZSBsZXR0ZXIgJ2knXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLm1lbnUtY3RhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9wYWRsb2NrLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGkuaXMtc3VibWVudS1pdGVtIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJG1vYmlsZV9tZW51X2xpbms7XG4gICAgICAgICAgICAvL2ZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAvL2ZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNYWluIE1lbnUgLSBvdmVycmlkZSBGNiBkZWZhdWx0c1xuLmRyb3Bkb3duLm1lbnUge1xuXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ1RBIE1lbnVcbi5tZW51IHtcbiAgICBsaSB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgJi5tZW51LWN0YSB7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRHJvcGRvd24gTGlzdFxuLmRyb3Bkb3duIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiByZW0tY2FsYygzMDApO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvL2JhY2tncm91bmQ6ICNmZWZlZmU7XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG5cbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlYXJjaFxuLnNlYXJjaC0taWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogcmVtLWNhbGMoMzQpO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMzQpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5mYSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtLWljb24tbW9iaWxlIHtcbiAgICB3aWR0aDogcmVtLWNhbGMoNDApO1xuICAgIGhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgIGJvcmRlcjogcmVtLWNhbGMoMSkgc29saWQgJHdoaXRlO1xuICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICBkaXNwbGF5OiBub25lOyAvLyBIaWRlIGZvciB0aGlzIHNpdGVcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNb2JpbGVcbi5tZW51LS1idG4tY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogZGlzcGxheSAxcztcbn1cbi5tb2JpbGUtLW1lbnUge1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoOCk7XG59XG4ubWVudS0tYnRuLCAubWVudS0tYnRuLWNsb3NlIHtcbiAgICB0cmFuc2l0aW9uOiBkaXNwbGF5IDFzO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwKTtcbiAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgIHdpZHRoOiByZW0tY2FsYyg0MCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICRzZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gICAgLmZhIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yXG4gICAgICAgIH1cbiAgICB9XG59XG4ub2gge1xuICAgIC5tZW51LS1idG4gLmZhIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBFbXB0eSBIZXJvIEltYWdlIE1lbnUgU3R5bGVzXG5cbi5lbXB0eSB7XG4gICAgLm1lbnUgbGkgYSB7XG4gICAgICAgIC8vY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgICAuc2VhcmNoLS1pY29uIC5mYSB7XG4gICAgICAgIC8vY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgICAuaW52ZXJzZS0tbG9nbyB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAubG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLy8gU29ycnkhXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE9uIFNjcm9sbCBIZWFkZXIgQ2xhc3Nlc1xuLmhlYWRlciB7XG4gICAgJi5oZWFkZXItLWNvbXByZXNzZWQge1xuICAgICAgICAvLyBwYWRkaW5nOiByZW0tY2FsYygxNSkgcmVtLWNhbGMoMTUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjc1KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICB9XG59XG4uaW52ZXJzZS0tbG9nbyB7XG4gICAgaW1nIHtcbiAgICAgICAgJi5pbnZlcnNlLS1sb2dvLWNvbXByZXNzZWQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygyMTApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblxuICAgIC5oZWFkZXIge1xuICAgICAgICAvLyBwYWRkaW5nOiByZW0tY2FsYygyNCkgJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICAgIC5oZWFkZXIge1xuICAgICAgICAvLyBwYWRkaW5nOiAwIHJlbS1jYWxjKDYpO1xuICAgIH1cblxuICAgICNtYWluLS1tZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB9XG4gICAgLnRvcC1iYXIge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaW52ZXJzZS0tbG9nbyB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgJi1zaG93IHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubWVudSB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDApO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgcmVtLWNhbGMoMikgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubWVudS1jdGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMCk7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgLy9wYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDQpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIHJlbS1jYWxjKDIpICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2JvcmRlci1ib3R0b20td2lkdGg6IHJlbS1jYWxjKDMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRyb3Bkb3duLm1lbnUge1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbS1jYWxjKDI0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOCkgcmVtLWNhbGMoMCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgfVxuICAgICAgICB1bC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygyOCk7XG4gICAgICAgIH1cbiAgICAgICAgbGkuaXMtc3VibWVudS1pdGVtIGEge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDApO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBPdmVycmlkZSBGNiBzdHlsZXNcbiAgICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIC5oZWFkZXIge1xuICAgICAgICBcblxuICAgICAgICAvLyAmLmhlYWRlci0tY29tcHJlc3NlZCB7XG4gICAgICAgIC8vICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSkgJG1hcmdpbi1tZWRpdW07XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgLmRyb3Bkb3duLm1lbnUge1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbS1jYWxjKDMyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5tYWluLW5hdmlnYXRpb24ge1xuICAgICAgICAvL2p1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5tZW51IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgJi5tZW51LWN0YSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICAuZHJvcGRvd24ubWVudSB7XG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbS1jYWxjKDI0KTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIC8vZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEZPVUMgb2YgbWVudVxuXG4ubm8tanMge1xuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAudG9wLWJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIFxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAudGl0bGUtYmFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIuYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoOCkgcmVtLWNhbGMoMTYpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMtaG92ZXI7XG4gICAgfVxuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICRjb2xvci10ZXh0LXdoaXRlO1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LXdoaXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zZWNvbmRhcnkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiByZW0tY2FsYygyKSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10ZXJ0aWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEyKSByZW0tY2FsYygxMik7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICAvL3RyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb247XG4gICAgfVxuXG5cbn1cblxuXG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLmJ0biB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDMyKTtcbiAgICAgICAgJi0tdGVydGlhcnkge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOSkgcmVtLWNhbGMoMzgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXJvdW5kZWRcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHJvdW5kZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItcmFkaXVzYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKSAhZGVmYXVsdDtcblxuLy8vIFJvdW5kZWQgdXRpbGl0eSAoYWxsIGNvcm5lcnMpOiBBZGRzIHJhZGl1cyBjb3JuZXJzIChhbGwgY29ybmVycykgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaXVzIFskcHJvdG90eXBlLWJvcmRlci1yYWRpdXNdIEJvcmRlciByYWRpdXMgKGFsbCBjb3JuZXJzKVxuQG1peGluIGJvcmRlci1yYWRpdXMoXG4gICRyYWRpdXM6ICRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c1xuKSB7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG59XG5cbi8vLyBSb3VuZGVkIHNxdWFyZSB1dGlsaXR5IG9yIHJlY3RhbmdsZSB1dGlsaXR5IChhbGwgY29ybmVycyk6IFJvdW5kcyBhbGwgY29ybmVycyB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQgdG8gbWFrZSBhIHBpbGwgc2hhcGUuXG5AbWl4aW4gYm9yZGVyLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA1MDAwcHggIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXJvdW5kZWQge1xuICAucm91bmRlZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gIH1cblxuICAucmFkaXVzIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1yb3VuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tcmFkaXVzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBDYWxjdWxhdGUgdGhlIGZvbnQtc2l6ZSBiYXNlZCBvbiB0aGUgc2NyZWVuIHNpemUgb2YgdGhlIHZpZXdwb3J0XG5cbkBtaXhpbiBmb250LXNpemUtY2FsYygkZm9udC1zaXplLXNtOiAxNiwgJGZvbnQtc2l6ZS1sZzogMzAsICRzY3JlZW4tc2l6ZS1zbTogMzIwLCAkc2NyZWVuLXNpemUtbGc6IDE0MDApIHtcbiAgZm9udC1zaXplOiBjYWxjKCN7JGZvbnQtc2l6ZS1zbX1weCArICgjeyRmb250LXNpemUtbGd9IC0gI3skZm9udC1zaXplLXNtfSkgKiAoICgxMDB2dyAtICN7JHNjcmVlbi1zaXplLXNtfXB4KSAvICgjeyRzY3JlZW4tc2l6ZS1sZ30gLSAjeyRzY3JlZW4tc2l6ZS1zbX0pICkgKTtcbn1cblxuQG1peGluIGljb24oJHR5cGU6IG51bGwsICRzaXplOiBudWxsKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAkc2l6ZTtcbiAgd2lkdGg6ICRzaXplO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2ljb25zLyN7JHR5cGV9LnN2Zyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xufVxuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogMTZweDtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVlbTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMtaG92ZXIge1xuICBib3JkZXItcmFkaXVzOiAwIDFlbSAwO1xufVxuIiwiLy8gR2xvYmFsIGZvcm0gc3R5bGVzXG5cbmlucHV0W3R5cGU9J3RleHQnXSwgXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddLCBcbmlucHV0W3R5cGU9J2RhdGUnXSwgXG5pbnB1dFt0eXBlPSdkYXRldGltZSddLCBcbmlucHV0W3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFxuaW5wdXRbdHlwZT0nbW9udGgnXSwgXG5pbnB1dFt0eXBlPSd3ZWVrJ10sIFxuaW5wdXRbdHlwZT0nZW1haWwnXSwgXG5pbnB1dFt0eXBlPSdudW1iZXInXSwgXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSwgXG5pbnB1dFt0eXBlPSd0ZWwnXSwgXG5pbnB1dFt0eXBlPSd0aW1lJ10sIFxuaW5wdXRbdHlwZT0ndXJsJ10sIFxuaW5wdXRbdHlwZT0nY29sb3InXSwgXG5pbnB1dFt0eXBlPSd0ZWwnXSxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4gICAgYm9yZGVyOiAwO1xuICAgIC8vY29sb3I6ICR0ZXh0LWdyZXk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg0Nyk7XG4gICAgcGFkZGluZzogMCByZW0tY2FsYygxNik7XG4gICAgYm9yZGVyOiByZW0tY2FsYygxKSBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIC8vb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAgIH1cbiAgICBcbn1cbnNlbGVjdCB7XG4gIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDMyKTtcbn1cbnRleHRhcmVhIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoOCkgcmVtLWNhbGMoMTYpO1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDgpO1xuICAgIC8vY29sb3I6ICR0ZXh0LWdyZXk7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAvL2NvbG9yOiAkdGV4dC1ncmV5O1xuICAgIH1cbn1cbnNlbGVjdCB7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoOCkgcmVtLWNhbGMoMjApO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbn1cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgLy9jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1pbi13aWR0aDogcmVtLWNhbGMoMTk3KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cbmJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgIC8vIHBhZGRpbmc6IHJlbS1jYWxjKDEyKSByZW0tY2FsYygyOCk7XG59XG5pbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwKSByZW0tY2FsYygyOCk7XG59XG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAvLyBjb2xvcjogJHdoaXRlO1xuICAgIC8vIGJvcmRlcjogMDtcbiAgICAvLyBwYWRkaW5nOiByZW0tY2FsYygyNCkgcmVtLWNhbGMoMzIpO1xuICAgIC8vIG1pbi13aWR0aDogcmVtLWNhbGMoMjAwKTtcbn1cbmlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgLy9jb2xvcjogJHRleHQtZ3JleTtcbn1cblxuLy8gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbi8vICAgICBvcGFjaXR5OiAwO1xuLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICBsZWZ0OiAwO1xuLy8gICAgIHRvcDogcmVtLWNhbGMoNyk7XG4vLyAgICAgd2lkdGg6IHJlbS1jYWxjKDE1KTtcbi8vICAgICBoZWlnaHQ6IHJlbS1jYWxjKDE1KTtcbi8vIH1cblxuLy8gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBzcGFuIHtcbi8vICAgICAmOmFmdGVyIHtcbi8vICAgICAgICAgb3BhY2l0eTogMTtcbi8vICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbi8vICAgICB9XG4vLyB9XG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgbGFiZWwgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDgpO1xuICAgIH1cbn1cbmZvcm0ge1xuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sIGJ1dHRvbjpub3QoLnNlYXJjaC10b2dnbGUpIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAvL3dpZHRoOiAxMDAlO1xuICAgICAgICAvL2JvcmRlci1ib3R0b206IHJlbS1jYWxjKDMpIHNvbGlkICRwcmltYXJ5LWNvbG9yOyAvLyBTZWUgYWxzbyBfYnV0dG9uc1xuICAgICAgICAvL3BhZGRpbmc6IHJlbS1jYWxjKDE0KSByZW0tY2FsYygyOCk7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ud3BjZjctc3VibWl0IHtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygxOTcpO1xuICAgIH1cbn1cblxuLy8gZm9ybSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuLy8gICAgIGNvbG9yOiAkdGV4dC1ncmV5O1xuLy8gfVxuXG4jbWNlLXN1Y2Nlc3MtcmVzcG9uc2UsICNtY2UtZXJyb3ItcmVzcG9uc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMyKTtcbiAgICAvL2ZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICB3aWR0aDogOTAlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xufVxuXG4jbWNlLXN1Y2Nlc3MtcmVzcG9uc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAvL2NvbG9yOiAkdGV4dC1ncmV5O1xufVxuXG4jbWNlLWVycm9yLXJlc3BvbnNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgY29sb3I6IHJlZDtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICBsYWJlbCwgcC5saWtlbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xuXG4gICAgJi5zbWFsbC1sYWJlbCB7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQpO1xuICAgIH1cbiAgICAmLmxhcmdlLWxhYmVsIHtcblxuICAgIH1cbiAgfSAgXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgaW5wdXRbdHlwZT1cInVybFwiXSxcbiAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuICBpbnB1dFt0eXBlPVwiZmlsZVwiXSwgXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg1MCk7IFxuXG4gICAgbGFiZWwgJiB7XG4gICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg4KTtcbiAgICB9XG4gIH0gXG4gIHRleHRhcmVhIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblxuICAgIGxhYmVsICYge1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoOCk7XG4gICAgfVxuICB9IFxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuXG4gICAgbGFiZWwuaW5saW5lLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xuICAgIH1cbiAgfVxuICAjbWNlLXN1Y2Nlc3MtcmVzcG9uc2UsICNtY2UtZXJyb3ItcmVzcG9uc2Uge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoNDgpO1xufVxufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFZhbGlkYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKlxuJGFsZXJ0LWNvbG9yOiAjZjA0MTI0O1xuJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkE7XG4kd2FybmluZy1jb2xvcjogI2YwOGEyNDtcbiRpbmZvLWNvbG9yOiAjYTBkM2U4O1xuXG4qL1xuLy8gQWxlcnQgTWVzc2FnZVxuLmFsZXJ0LmNhbGxvdXQge1xuICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICBib3JkZXItY29sb3I6ICRhbGVydC1jb2xvcjtcblxuICAuZmEge1xuICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoOCk7XG4gIH1cbn1cbi8vIFBIUCAvIFNlcnZlci1zaWRlIGVycm9yIHN0eWxpbmdcbi5lcnJvciB7XG4gIHNwYW4uZm9ybS1lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4gIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4gIGlucHV0W3R5cGU9XCJmaWxlXCJdLCBcbiAgc2VsZWN0IHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0LWNvbG9yOyAgXG4gIH1cbiAgbGFiZWwge1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gIH1cbn1cblxuXG4uY2hlY2tib3gtZ3JvdXAge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jaGVja2JveC1ncm91cCBsaSB7XG4gIG1hcmdpbjogMCAyNHB4O1xufVxuXG5cbi5zaWdudXAtYmxvY2sgZm9ybS5zdWJzY3JpYmUtZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5jdXN0b20tY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN1c3RvbS1jaGVja2JveCBzcGFuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IHNwYW46YmVmb3JlIHtcbiAgY29udGVudDogJyc7IFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5MTI4OGQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtM3B4O1xuICBsZWZ0OiAwO1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IHNwYW46YWZ0ZXIge1xuICBjb250ZW50OiAn4pyUJztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTFweDtcbiAgbGVmdDogM3B4O1xufVxuXG4uY3VzdG9tLWNoZWNrYm94IGlucHV0ICsgc3BhbjphZnRlciB7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5jdXN0b20tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIHNwYW46YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uc2lnbnVwLWJ0biB7XG4gIG1heC13aWR0aDogMjUwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uaW5wdXQtZ3JvdXAtc3Vic2NyaXB0aW9uIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG59XG4gICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIFxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICBbZGF0YS1hYmlkZV0gLmVycm9yIHtcbiAgICAgc21hbGwuZXJyb3Ige1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuICB9XG59XG4vL1tkYXRhLWFiaWRlXSAuZXJyb3Igc3Bhbi5lcnJvciwgXG4vL1tkYXRhLWFiaWRlXSBzcGFuLmVycm9yLCBcbi8vW2RhdGEtYWJpZGVdIHNtYWxsLmVycm9yIHtcbiIsIiNjb250YWN0LWZvcm0ge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYyg3NTApO1xuICAgIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUtY2FsYygkZm9udC1zaXplLXNtOiAxNCwgJGZvbnQtc2l6ZS1sZzogMTQpO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDE2KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjUwKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzLWhvdmVyO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXYud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgZGl2LndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcbiAgICAgICAgYm9yZGVyOiByZW0tY2FsYygxKSBzb2xpZCAkYWxlcnQtY29sb3I7XG4gICAgfVxuXG4gICAgZGl2LndwY2Y3LW1haWwtc2VudC1vayB7XG4gICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMSkgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgc3Bhbi53cGNmNy1ub3QtdmFsaWQtdGlwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3MTUxNTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICB9XG5cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXG4gICAgXG59IiwiYmxvY2txdW90ZSB7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYygxMDAwKTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDI0KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tc21hbGw7XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbWFyZ2luLXNtYWxsKjEuNDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4tc21hbGwvMS40O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICfigJwnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDExKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNjIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE2Nyk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGNvbG9yLWdyYWRpZW50O1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cy1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgICAmLmNvbG91ci0tYmx1ZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgJi5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgJi5jb2xvdXItLW9yYW5nZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgICAmLmNvbG91ci0tZ3JlZW46YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoOCk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1hcmdpbi1tZWRpdW0qMS40O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4tbWVkaXVtLzEuNDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoOTMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkbWFyZ2luLWxhcmdlKjEuNDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWFyZ2luLWxhcmdlLzEuNDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXhsYXJnZTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1hcmdpbi14bGFyZ2UqMS40O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4teGxhcmdlLzEuNDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBOb3Rlc1xuLy8gUmVuYW1lIHRvIF9oZXJvIGFzIGluY2x1ZGVzIHNlY29uZGFyeSB0b28/P1xuXG4uaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgei1pbmRleDogMTAwO1xuXG5cblxuICAgIC5yb3cge1xuICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgIH1cblxuICAgICYtLWZ1bGwge1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIH1cbiAgICAmLS1wYXJ0aWFsIHtcbiAgICAgICAgaGVpZ2h0OiA1MHZoO1xuICAgIH1cbiAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYtLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgICAgIC8vIC5oZXJvLS1wYXJ0aWFsICYge1xuICAgICAgICAvLyAgICAgdG9wOiAzMCU7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgJi0tY29udGVudCB7XG4gICAgICAgIC8vdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDUwKTsgLy8gQ2xlYXIgdG9wYmFyXG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsgLy8gcmVtLWNhbGMoMTYpXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1ZW0gMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsgLy8gcmVtLWNhbGMoMTYpXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1ZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICBmb250LXNpemU6IDEuMzVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4tLXByaW1hcnkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1pbWFnZSB7XG5cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yNSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLDAuMykgMSUsIHJnYmEoMCwwLDAsMC4yKSAyNiUsIHJnYmEoMCwwLDAsMC4yKSA2NCUsIHJnYmEoMCwwLDAsMC4yKSAxMDAlKTtcbiAgICAgICAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjZmFmYWZhJywgZW5kQ29sb3JzdHI9JyNkMWQxZDEnLCBHcmFkaWVudFR5cGU9MCApO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLWVtcHR5IHtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxMDApOyAvLyB0b3AgYmFyIGNsZWFyYW5jZSArIGludHJvZHVjdGlvbiBzdHlsaW5nXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvLyBVcGRhdGUgdG8gYm9keSBjb2xvdXJcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuLy8gQ29sb3VyIHZhcmlhdGlvbnNcbi5jb2xvdXItLWdyZWVuIHtcbiAgICAuaGVyby0tZW1wdHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgfVxufVxuLmNvbG91ci0tZGFyay1ibHVlIHtcbiAgICAuaGVyby0tZW1wdHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xuICAgIH1cbn1cbi5jb2xvdXItLWJsdWUge1xuICAgIC5oZXJvLS1lbXB0eSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIH1cbn1cbi5jb2xvdXItLW9yYW5nZSB7XG4gICAgLmhlcm8tLWVtcHR5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICAgIC5oZXJvIHtcbiAgICAgICAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJi0tY29udGVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApOyAvLyBDbGVhciB0b3BiYXJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlOyBsZWZ0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwtNTAlKTtcblxuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVlbSAwOyAvLyByZW0tY2FsYygyMikgMCByZW0tY2FsYygyOClcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsgLy9yZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgLmhlcm8tLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNTIwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNzUpO1xuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcblxuICAgIC5oZXJvIHtcblxuICAgICAgICAmLS1jb250ZW50IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgIC5oZXJvLS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDcyMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuaGVyby0tcGFydGlhbCB7XG4gIGhlaWdodDogNTB2aDtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTB2aDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTQ1LCA0MCwgMTQxLCAwLjQpIDAlLCByZ2JhKDM4LCAzNCwgOTgsIDAuNSkgMTAwJSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cbiIsIi8vIEhUSyBEZXZlbG9wbWVudCBGcmFtZXdvcmtcbi8vIFZlcnNpb246ICAgdjEuMFxuLy8gTmFtZTogICAgRWxlbWVudHMgc3R5bGVzaGVldFxuLy8gU0NTUyBUeXBlOiAgIFByb2plY3QgUGFydGlhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHN0eWxlc2hlZXQgY292ZXJpbmcgZ2FsbGVyeSBjYXJvdXNlbCBzdHlsZXNcbi8vXG4vLyAucHJvZHVjdC1nYWxsZXJ5IHJlbmFtZWQgLnByb2R1Y3QtZ2FsbGVyeSBmb3IgdGhpcyBwcm9qZWN0XG5cbi8vIEF2b2lkIGp1bXBpbmcgY29udGVudFxuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6bm90KC5zbGljay1pbml0aWFsaXplZCkgLnNsaWRlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIEdhbGxlcnkgQ2Fyb3VzZWwgLSBkZWZhdWx0XG4vL1xuLnByb2R1Y3QtZ2FsbGVyeSwgLmdhbGxlcnktY2Fyb3VzZWwge1xuICB3aWR0aDogOTAlO1xuICBtYXJnaW46ICRtYXJnaW4teGxhcmdlLzIgYXV0bztcblxuICAgIC5zbGlkZS5zbGljay1zbGlkZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpIHJlbS1jYWxjKDE2KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pbWFnZS1zbGlkZSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIC8vIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4ucHJvZHVjdC1nYWxsZXJ5IHtcbiAgICAmLnByb2R1Y3QtZ2FsbGVyeS1tYWluIHtcblxuICAgICAgICBpbWcge1xuICAgICAgICB9XG4gICAgfVxuICAgICYucHJvZHVjdC1nYWxsZXJ5LW5hdiB7XG4gICAgICAgIG1hcmdpbjogMCByZW0tY2FsYygzMCk7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgcmVtLWNhbGMoNSkgJHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLWN1cnJlbnQge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5wcm9kdWN0LWdhbGxlcnkuZGVmYXVsdC1jYXJvdXNlbCAuc2xpY2stZG90cyB7XG4gICAgYm90dG9tOiA1JTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhcm91c2VsIGNvbnRyb2xzXG4vLyAoYnVsbGV0cywgYXJyb3dzIGV0Yylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uc2xpY2stZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTYpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IHJlbS1jYWxjKC05OTk5OSk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCByZW0tY2FsYygyKSAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUsICYuc2xpY2stYWN0aXZlIHtcblxuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5kZWZhdWx0LWNhcm91c2VsIC5zbGljay1kb3RzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpY2stYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiByZW0tY2FsYygzMCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygzMCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAgJHByaW1hcnktY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICYuZmEge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiAgICB9XG4gICAgJi5mYS1hbmdsZS1sZWZ0IHtcbiAgICAgICAgbGVmdDogcmVtLWNhbGMoLTMwKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMCk7XG4gICAgfVxuICAgICYuZmEtYW5nbGUtcmlnaHQge1xuICAgICAgICByaWdodDogcmVtLWNhbGMoLTMwKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygwKTtcbiAgICB9XG59XG5pW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgY29sb3I6ICAkcHJpbWFyeS1jb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgLyogRm9yIElFMTEvIE1TIEVkZ2UgYnVnICovXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgLmRlZmF1bHQtY2Fyb3VzZWwgLnNsaWNrLWRvdHMge1xuICAgICAgICBib3R0b206IHJlbS1jYWxjKDIwKTsgLy8gY2xlYXIgYm90dG9tIHJpcCAoNDgpICsgY2FwdGlvblxuICAgICAgICByaWdodDogJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxMCk7XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICAvLyBoZWlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5LCAuZ2FsbGVyeS1jYXJvdXNlbCB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWFyZ2luOiAkbWFyZ2luLXhsYXJnZS8yIGF1dG87XG5cbiAgICAgICAgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNikgcmVtLWNhbGMoMjQpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuXG4gICAgICAgIH1cbiAgICAgICAgJi5wcm9kdWN0LWdhbGxlcnktbWFpbiB7XG5cbiAgICAgICAgICAgIGltZyB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgcmlnaHQ6ICRtYXJnaW4tbGFyZ2UvMjtcbiAgICB9XG4gICAgLnByb2R1Y3QtZ2FsbGVyeSwgLmdhbGxlcnktY2Fyb3VzZWwge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46ICRtYXJnaW4teGxhcmdlLzIgYXV0bztcblxuICAgICAgICAuZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICAgICAgICAgIC8vbWFyZ2luOiByZW0tY2FsYygtNzIpIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuXG4gICAgICAgIH1cbiAgICAgICAgJi5wcm9kdWN0LWdhbGxlcnktbWFpbiB7XG5cbiAgICAgICAgICAgIGltZyB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIHJpZ2h0OiAkbWFyZ2luLXhsYXJnZS8yO1xuICAgIH1cbiAgICAucHJvZHVjdC1nYWxsZXJ5LCAuZ2FsbGVyeS1jYXJvdXNlbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46ICRtYXJnaW4teGxhcmdlLzIgYXV0bztcblxuICAgICAgICBpbWcge1xuXG4gICAgICAgIH1cbiAgICAgICAgJi5wcm9kdWN0LWdhbGxlcnktbWFpbiB7XG5cbiAgICAgICAgICAgIGltZyB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHN0eWxlc2hlZXQgY292ZXJpbmcgaGVybyBjYXJvdXNlbCBzdHlsZXNcbi8vXG4vLyBOT1RFOlxuLy8gX2dhbGxlcnlfY2Fyb3VzZWwgY3JlYXRlcyBzdHlsZXNcbi8vIGNyZWF0ZSBnbG9iYWwgY2Fyb3VzZWwgcGFydGlhbD9cbi8vXG4uaGVyby1jYXJvdXNlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmhlcm8tLWNvbnRlbnQge1xuICAgICAgICB6LWluZGV4OiAyMDtcbiAgICB9XG5cbiAgICAuaGVyby0tY292ZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmNhcm91c2VsLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgICBib3R0b206IHJlbS1jYWxjKDQwKTsgLy8gY2xlYXIgYm90dG9tIHJpcFxuICAgICAgICByaWdodDogJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgbGkge1xuXG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgLmhlcm8tY2Fyb3VzZWwge1xuICAgICAgICAuc2xpY2stZG90cyB7XG4gICAgICAgICAgICByaWdodDogJG1hcmdpbi1tZWRpdW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAuaGVyby1jYXJvdXNlbCB7XG4gICAgICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgICAgIHJpZ2h0OiAkbWFyZ2luLWxhcmdlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIC5oZXJvLWNhcm91c2VsIHtcbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgcmlnaHQ6ICRtYXJnaW4teGxhcmdlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLndpZGdldC0tbGFuZHNjYXBlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuXHRwYWRkaW5nOiAwIHJlbS1jYWxjKDE1KSAkbWFyZ2luLXNtYWxsOyAvLyBBZGQgZ2xvYmFsIGd1dHRlclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LmNvbHVtbnMge1xuXHRcdHBhZGRpbmc6IDA7IC8vIFJlbW92ZSBndXR0ZXJcblx0fVxuXHQud2lkZ2V0LS1jb250ZW50IHtcblxuXHRcdCYtZ3JleSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHR9XG5cdH1cblx0YSB7XG5cdFx0aDMsIGg0LCBoNSwgaDYsIGxpLCBwIHtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdHAge1xuXHRcdGNvbG9yOiAkY29sb3ItdGV4dC1kYXJrO1xuXHR9XG5cdH1cblx0aDMge1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtMXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE1ZW07XG5cdH1cblx0aDQsIGg1LCBoNiB7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0fVxuXHR1bCwgcCB7XG5cdFx0bWF4LXdpZHRoOiByZW0tY2FsYyg4MDApOyAvLyBLZWVwIHBhcmFncmFwaHMgcmVhZGFibGUgb24gdGV4dC1vbmx5IGJsb2Nrc1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0fVxuXHR1bCB7XG5cdFx0bWF4LXdpZHRoOiA2MCU7XG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpO1xuXG5cdFx0bGkge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdH1cbiAgICAud2lkZ2V0LS10aXRsZSB7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3ItaGVhZGluZy1kYXJrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgIH1cblxuICAgIC53aWRnZXQtLWRhdGUge1xuICAgICAgXHRmb250LXNpemU6IHJlbS1jYWxjKCBtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIHNtYWxsLCBoNSwgZm9udC1zaXplKSApO1xuICAgICAgXHRtYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsKi0xO1xuICAgIH1cbiAgICAuYnRuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1zbWFsbC8yO1xuICAgIH1cblx0LndpZGdldC0taW1hZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC53aWRnZXQtLWJvZHkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJnLWxpZ2h0O1xuXG5cdFx0JjpiZWZvcmUge1xuXHQgICAgICAgIGNvbnRlbnQ6ICcnO1xuXHQgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICAgICAgICB0b3A6IDA7XG5cdCAgICAgICAgbGVmdDogNTAlO1xuXHQgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuXHQgICAgICAgIHdpZHRoOiByZW0tY2FsYygxNjcpO1xuXHQgICAgICAgIGhlaWdodDogcmVtLWNhbGMoOCk7XG5cdCAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0ei1pbmRleDogMjtcblx0ICAgIFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTQ1LDQwLDE0MSwxKSAwJSwgcmdiYSgzOCwzNCw5OCwxKSAxMDAlKTtcblx0XHRcdFx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzLWhvdmVyO1xuXHQgICAgfVxuXHQgICAgJi5jb2xvdXItLWJsdWU6YmVmb3JlIHtcblx0ICAgIFx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG5cdCAgICB9XG5cdCAgICAmLmNvbG91ci0tZGFyay1ibHVlOmJlZm9yZSB7XG5cdCAgICBcdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXHQgICAgfVxuXHQgICAgJi5jb2xvdXItLW9yYW5nZTpiZWZvcmUge1xuXHQgICAgXHRiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuXHQgICAgfVxuXHQgICAgJi5jb2xvdXItLWdyZWVuOmJlZm9yZSB7XG5cdCAgICBcdGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcblx0ICAgIH1cblxuICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tc21hbGwgJG1hcmdpbi1zbWFsbC8yO1xuXHRcdFx0XHRcdFx0Ym94LXNoYWRvdzogJGJveC1zaGFkb3c7XG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICAgICBwIGEsIGxpIGEge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHQud2lkZ2V0LS1sYW5kc2NhcGUge1xuXG5cdFx0LndpZGdldC0tdGl0bGUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi1tZWRpdW07XG5cdFx0fVxuXHQgICAgLndpZGdldC0tZGF0ZSB7XG5cdCAgICAgIFx0Zm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGg1LCBmb250LXNpemUpICk7XG4gICAgICBcdFx0bWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0qLTE7XG5cdCAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0vMjtcbiAgICAgICAgfVxuXHRcdC53aWRnZXQtLWJvZHkge1xuXG5cdCAgICAgICAgJi1pbm5lciB7XG5cdCAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbWVkaXVtICRtYXJnaW4tbWVkaXVtLzI7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDAuMjVlbSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblx0ICAgICAgICB9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0LndpZGdldC0tbGFuZHNjYXBlIHtcblxuXHRcdC53aWRnZXQtLXRpdGxlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2U7XG5cdFx0fVxuXHQgICAgLndpZGdldC0tZGF0ZSB7XG5cdCAgICAgIFx0Zm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBsYXJnZSwgaDUsIGZvbnQtc2l6ZSkgKTtcbiAgICAgIFx0XHRtYXJnaW4tdG9wOiAkbWFyZ2luLWxhcmdlKi0xO1xuXHQgICAgfVxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tbGFyZ2UvMjtcbiAgICAgICAgfVxuXHRcdC53aWRnZXQtLWJvZHkge1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMjIpO1xuXG5cdCAgICAgICAgJi1pbm5lciB7XG5cdCAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbGFyZ2UgJG1hcmdpbi1sYXJnZS8yO1xuXHQgICAgICAgIH1cblx0XHR9XG5cblx0fVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcblxuXHQud2lkZ2V0LS1sYW5kc2NhcGUge1xuXG5cdFx0LndpZGdldC0tdGl0bGUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2U7XG5cdFx0fVxuXHQgICAgLndpZGdldC0tZGF0ZSB7XG4gICAgICBcdFx0bWFyZ2luLXRvcDogJG1hcmdpbi14bGFyZ2UqLTE7XG5cdCAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi14bGFyZ2UvMjtcbiAgICAgICAgfVxuXHRcdC53aWRnZXQtLWJvZHkge1xuXHRcdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoNDQpO1xuXG5cdCAgICAgICAgJi1pbm5lciB7XG5cdCAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4teGxhcmdlICRtYXJnaW4teGxhcmdlLzI7XG5cdCAgICAgICAgfVxuXHRcdH1cblxuXHR9XG5cbn1cbiIsIi53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMTUpICRtYXJnaW4tc21hbGw7IC8vIEFkZCBnbG9iYWwgZ3V0dGVyXG5cbiAgICAuY29sdW1ucyB7XG4gICAgICAgIHBhZGRpbmc6IDA7IC8vIFJlbW92ZSBndXR0ZXJcbiAgICB9XG4gICAgLndpZGdldC0tY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICBoMiwgaDMge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgdWwsIHAge1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDgwMCk7IC8vIEtlZXAgcGFyYWdyYXBocyByZWFkYWJsZSBvbiB0ZXh0LW9ubHkgYmxvY2tzXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICAgIHVsIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MCU7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC53aWRnZXQtLXRpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgICBcbiAgICAgICAgXG4gICAgfVxuICAgIC53aWRnZXQtLWltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAud2lkZ2V0LS1ib2R5IHtcbiAgICAgICAgXG4gICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAkbWFyZ2luLXNtYWxsLzI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG5cbi53aWRnZXQtLWlubmVyLWJvZHktZXhwYW5kYWJsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogcmVtLWNhbGMoNDAwKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpO1xuXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbi53aWRnZXQtLWxhbmRzY2FwZS1leHBhbmRhYmxlLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiByZW0tY2FsYygxNjApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygyNCkgcmVtLWNhbGMoOCk7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCNmZWZlZmUgNTAlLHJnYmEoMjU0LDI1NCwyNTQsLjUpIDEwMCUpO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogcmVtLWNhbGMoNikgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IHJlbS1jYWxjKDYpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICAgICAgfVxuICAgICAgICAmLm1vcmUge1xuICAgICAgICAgICAgJjphZnRlciB7ICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiByZW0tY2FsYyg2KSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIH0gICAgICAgICAgICBcbiAgICAgICAgfSAgICBcbiAgICAgICAgJi5sZXNzIHtcbiAgICAgICAgICAgICY6YWZ0ZXIgeyAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtLWNhbGMoNikgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH0gICAgIFxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICYubW9yZSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7ICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgICAgICB9ICAgIFxuICAgICAgICAgICAgJi5sZXNzIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHsgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIH0gICAgICAgICAgICBcbiAgICAgICAgICAgIH0gICAgIFxuICAgICAgICB9ICAgICAgIFxuICAgIH1cblxuICAgIC5sZXNzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cbiAgICAgICAgLmxlc3Mge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1vcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgLndpZGdldC0tbGFuZHNjYXBlLWV4cGFuZGFibGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgICAud2lkZ2V0LS1ib2R5IHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1tZWRpdW0gJG1hcmdpbi1tZWRpdW0vMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2U7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1sYXJnZTtcbiAgICAgICAgfVxuICAgICAgICAud2lkZ2V0LS1ib2R5IHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1sYXJnZSAkbWFyZ2luLWxhcmdlLzI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLndpZGdldC0taW1hZ2Uge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtZXhwYW5kYWJsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4teGxhcmdlO1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4teGxhcmdlO1xuICAgICAgICB9XG4gICAgICAgIC53aWRnZXQtLWJvZHkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSAkbWFyZ2luLXhsYXJnZS8yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLndpZGdldC0tbGFuZHNjYXBlLXByb21vIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLXNtYWxsO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgICAud2lkZ2V0LS1jb250ZW50IHtcbiAgICAgICAgbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgICAud2lkZ2V0LS1ib2R5IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iZy1saWdodDtcbiAgICAgICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLW1lZGl1bSAkbWFyZ2luLW1lZGl1bS8yO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTY3KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY29sb3ItZ3JhZGllbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzLWhvdmVyO1xuICAgICAgICB9XG4gICAgICAgICYuY29sb3VyLS1ibHVlOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgICAgICAmLmNvbG91ci0tZGFyay1ibHVlOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xuICAgICAgICB9XG4gICAgICAgICYuY29sb3VyLS1vcmFuZ2U6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgICAgJi5jb2xvdXItLWdyZWVuOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC53aWRnZXQtLXRpdGxlIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItaGVhZGluZy1kYXJrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tc21hbGw7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgZm9udC1zaXplOiAxLjM1ZW07XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbWFyZ2luOiAxLjI1ZW0gMCAwO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsLzI7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIC53aWRnZXQtLWxhbmRzY2FwZS1wcm9tbyB7XG4gICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbWVkaXVtO1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtO1xuICAgICAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0vMjtcbiAgICAgICAgfVxuICAgICAgICAud2lkZ2V0LS1ib2R5IHtcblxuICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1tZWRpdW0gJG1hcmdpbi1tZWRpdW0vMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8ge1xuICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLWxhcmdlO1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2U7XG4gICAgICAgIH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLWxhcmdlLzI7XG4gICAgICAgIH1cbiAgICAgICAgLndpZGdldC0tYm9keSB7XG5cbiAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbGFyZ2UgJG1hcmdpbi1sYXJnZS8yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtcHJvbW8ge1xuICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZTtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXhsYXJnZTtcbiAgICAgICAgfVxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLzI7XG4gICAgICAgIH1cbiAgICAgICAgLndpZGdldC0tYm9keSB7XG5cbiAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4teGxhcmdlICRtYXJnaW4teGxhcmdlLzI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIucm93LS1pbnRyb2R1Y3Rpb24tcG9zdCB7XG5cdG1hcmdpbi1ib3R0b206IC04ZW07XG59XG5cbi53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbDtcblx0cGFkZGluZzogMCByZW0tY2FsYygxNSkgJG1hcmdpbi1zbWFsbDsgLy8gQWRkIGdsb2JhbCBndXR0ZXJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR6LWluZGV4OiAxMjA7XG5cdGJvdHRvbTogNGVtO1xuXG5cdC5jb2x1bW5zIHtcblx0XHRwYWRkaW5nOiAwOyAvLyBSZW1vdmUgZ3V0dGVyXG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cblxuXHQud2lkZ2V0LS1jb250ZW50IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmctbGlnaHQ7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG5cdH1cblxuXHRoMSwgaDIge1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoIG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgc21hbGwsIGgyLCBmb250LXNpemUpICk7XG5cdH1cblxuXHR1bCwgcCB7XG5cdFx0Y29sb3I6ICRjb2xvci10ZXh0LWRhcms7XG5cdFx0Ly9tYXgtd2lkdGg6IHJlbS1jYWxjKDgwMCk7IC8vIEtlZXAgcGFyYWdyYXBocyByZWFkYWJsZSBvbiB0ZXh0LW9ubHkgYmxvY2tzXG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHR9XG5cblx0dWwge1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI0KTtcblxuXHRcdGxpIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0fVxuXHR9XG5cbiAgICAud2lkZ2V0LS10aXRsZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbDtcblxuICAgIH1cblxuICAgIC5idG4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsLzI7XG4gICAgfVxuXG5cdC53aWRnZXQtLWJvZHkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxMDtcblxuICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tc21hbGwgJG1hcmdpbi1zbWFsbDtcblx0XHRcdFxuICAgICAgICAgICAgcCBhLCBsaSBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cdH1cblxuXHQvLyBIb3ZlciBiZWhhdmlvdXJcblx0Jjpob3ZlciB7XG5cblxuXHR9XG5cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0LndpZGdldC0tbGFuZHNjYXBlLWludHJvIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcblxuXHRcdGgxLCBoMiB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKCBtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIG1lZGl1bSwgaDIsIGZvbnQtc2l6ZSkgKTtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcblx0XHR9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0vMjtcbiAgICAgICAgfVxuXHRcdC53aWRnZXQtLWJvZHkge1xuXG5cdCAgICAgICAgJi1pbm5lciB7XG5cdCAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbWVkaXVtICRtYXJnaW4tbWVkaXVtO1xuXHQgICAgICAgIH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHQud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8ge1xuXHRcdG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2U7XG5cblx0XHRoMSwgaDIge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBsYXJnZSwgaDIsIGZvbnQtc2l6ZSkgKTtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlO1xuXHRcdH1cblx0XHRsaSwgcCB7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcblx0XHR9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS8yO1xuICAgICAgICB9XG5cdFx0LndpZGdldC0tY29udGVudCB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0ICAgICAgICB0b3A6IHJlbS1jYWxjKC0zNCk7XG5cdFx0ICAgIH1cblx0XHQgICAgJjphZnRlciB7XG5cdFx0ICAgICAgICB0b3A6IHJlbS1jYWxjKC02OCk7XG5cdFx0ICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTM3KTtcblx0XHQgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTM3KTtcblx0XHQgICAgfVxuXHRcdH1cblx0XHQud2lkZ2V0LS1ib2R5IHtcblxuXHQgICAgICAgICYtaW5uZXIge1xuXHQgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLWxhcmdlICRtYXJnaW4tbGFyZ2U7XG5cdCAgICAgICAgfVxuXHRcdH1cblxuXHR9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuXG5cdC53aWRnZXQtLWxhbmRzY2FwZS1pbnRybyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2U7XG5cblx0XHRoMSwgaDIge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCB4bGFyZ2UsIGgyLCBmb250LXNpemUpICk7XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2U7XG5cdFx0fVxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLzI7XG4gICAgICAgIH1cblx0XHQud2lkZ2V0LS1ib2R5IHtcblxuXHQgICAgICAgICYtaW5uZXIge1xuXHQgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSAkbWFyZ2luLXhsYXJnZTtcblx0ICAgICAgICB9XG5cdFx0fVxuXG5cdH1cblxufVxuIiwiXG4ud2lkZ2V0LS1wb3J0cmFpdCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4tc21hbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tc21hbGw7XG5cbiAgICAud2lkZ2V0LS1jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAud2lkZ2V0LS10aXRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tc21hbGw7XG4gICAgfVxuICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1oZWFkaW5nLWRhcms7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjFlbTtcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG5cbiAgICBoNCwgaDUsIGg2IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG4gICAgaHIge1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDEpO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci10ZXh0LWxpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAkbWFyZ2luLXNtYWxsIHJlbS1jYWxjKC0xMik7IC8vICRtYXJnaW4tc21hbGwvMlxuICAgIH1cbiAgICAuYnRuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1zbWFsbC8yO1xuICAgIH1cblxuICAgIC53aWRnZXQtLWltYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJGxpZ2h0LWdyZXksICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMDVlbSAwLjVlbSAwLjA1ZW0gcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud2lkZ2V0LS1ib2R5IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmctbGlnaHQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4wNWVtIDAuNWVtIDAuMDVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1sYXJnZSAkbWFyZ2luLWxhcmdlLzI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjI1ZW0gc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBwIGEsIGxpIGEge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDE2Nyk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDE0NSw0MCwxNDEsMSkgMCUsIHJnYmEoMzgsMzQsOTgsMSkgMTAwJSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzLWhvdmVyO1xuICAgICAgICB9XG4gICAgICAgIGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICYuY29sb3VyLS1ibHVlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhyLCBhLndpZGdldC0tcHJvZmlsZS1lbWFpbDphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jb2xvdXItLWRhcmstYmx1ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhyLCBhLndpZGdldC0tcHJvZmlsZS1lbWFpbDphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmNvbG91ci0tb3JhbmdlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaHIsIGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY29sb3VyLS1ncmVlbiB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaHIsIGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tc21hbGwgJG1hcmdpbi1zbWFsbC8yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndpZGdldC0taW1hZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICB9XG5cbiAgICAvLyBIb3ZlciBiZWhhdmlvdXJcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLy9jdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG59XG5cbi53aWRnZXQtLWJvZHktaW5uZXIge1xuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG59XG5cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAud2lkZ2V0LS1wb3J0cmFpdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMWVtO1xuICAgICAgICB9XG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbi1zbWFsbCByZW0tY2FsYygtMTYpOyAvLyAkbWFyZ2luLW1lZGl1bS8yXG4gICAgICAgIH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLW1lZGl1bS8yO1xuICAgICAgICB9XG4gICAgICAgIC53aWRnZXQtLWJvZHkge1xuXG4gICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLW1lZGl1bSAkbWFyZ2luLW1lZGl1bS8yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtd2hpdGUge1xuICAgICAgICAgICAgLndpZGdldC0tYm9keSB7XG5cbiAgICAgICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIC53aWRnZXQtLXBvcnRyYWl0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1sYXJnZTtcblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjFlbTtcbiAgICAgICAgfVxuICAgICAgICBociB7XG4gICAgICAgICAgICBtYXJnaW46ICRtYXJnaW4tc21hbGwgcmVtLWNhbGMoLTI0KTsgLy8gJG1hcmdpbi1sYXJnZS8yXG4gICAgICAgIH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLWxhcmdlLzI7XG4gICAgICAgIH1cbiAgICAgICAgLndpZGdldC0tYm9keSB7XG5cbiAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbGFyZ2UgJG1hcmdpbi1sYXJnZS8yICRtYXJnaW4tbGFyZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi13aGl0ZSB7XG4gICAgICAgICAgICAud2lkZ2V0LS1ib2R5IHtcblxuICAgICAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gMi11cCB3aWRnZXRzIG9ubHlcbiAgICAubGFyZ2UtNiB7XG4gICAgICAgIC53aWRnZXQtLXBvcnRyYWl0IHtcbiAgICAgICAgICAgIC53aWRnZXQtLWJvZHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLWxhcmdlLzEuNTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tbGFyZ2UvMS41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAud2lkZ2V0LS1wb3J0cmFpdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4teGxhcmdlO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMWVtO1xuICAgICAgICB9XG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbi1zbWFsbCByZW0tY2FsYygtMjgpOyAvLyAkbWFyZ2luLXhsYXJnZS8yXG4gICAgICAgIH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXhsYXJnZS8yO1xuICAgICAgICB9XG4gICAgICAgIC53aWRnZXQtLWJvZHkge1xuXG4gICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSAkbWFyZ2luLXhsYXJnZS8yICRtYXJnaW4teGxhcmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtd2hpdGUge1xuICAgICAgICAgICAgLndpZGdldC0tYm9keSB7XG5cbiAgICAgICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIDItdXAgd2lkZ2V0cyBvbmx5XG4gICAgLmxhcmdlLTYge1xuICAgICAgICAud2lkZ2V0LS1wb3J0cmFpdCB7XG4gICAgICAgICAgICAud2lkZ2V0LS1ib2R5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbi14bGFyZ2UvMS41O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbi14bGFyZ2UvMS41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLndpZGdldC1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmctbGlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMzIpO1xuICAgIGgxLCBoMiB7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICB9XG5cbiAgICBwLCBsaSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1kYXJrO1xuICAgIH1cbiAgICBcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIC53aWRnZXQtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDY0KTtcbiAgICB9XG59IiwiLndpZGdldC0tY29sLWZsdWlkIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLndpZGdldC0tZmx1aWQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLndpZGdldC0tZmx1aWQge1xuICAgICYtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDElIDIlO1xuICAgIH1cbiAgICAmX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuXG5cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAud2lkZ2V0LS1mbHVpZC1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAyNSU7XG4gICAgfVxuICAgIC53aWRnZXQtLWZsdWlkIHtcbiAgICAgICAgJi1ib2R5IHtcbiAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBTaW1pbGFyIHRvIF93aWRnZXQtcG9ydHJhaXRcblxuLndpZGdldC0tcHJvZmlsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iZy1saWdodDtcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzIpO1xuICBib3JkZXItYm90dG9tOiAwLjI1ZW0gc29saWQgJHByaW1hcnktY29sb3I7XG5cbiAgLndpZGdldC0tYm9keSB7XG4gICAgcGFkZGluZzogMWVtIDFlbSAyZW07XG4gICAgYm94LXNoYWRvdzogMCAwLjA1ZW0gMC41ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLndpZGdldC0tcHJvZmlsZS1uYW1lIHtcbiAgICBjb2xvcjogJGNvbG9yLWhlYWRpbmctZGFyaztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLndpZGdldC0tcHJvZmlsZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICBjb2xvcjogJGNvbG9yLWhlYWRpbmctZGFyaztcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLndpZGdldC0tcHJvZmlsZS1jb21wYW55IHtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtZGFyaztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLndpZGdldC0tcHJvZmlsZS1pbWFnZSB7XG4gICAgYm94LXNoYWRvdzogMCAwLjA1ZW0gMC41ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLndpZGdldC0tcHJvZmlsZS1zb2NpYWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICBsaW5lLWhlaWdodDogMC41ZW07IC8vIGNlbnRlciBpY29ucyB2ZXJ0aWNhbHlcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICB9XG5cbiAgICAuc29jaWFsLS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDAuMDllbSAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwYWRkaW5nOiAxZW07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygwLjY1KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IHJlbS1jYWxjKDMyKSBhdXRvO1xuICB9XG59XG5cbi8qXG4ud2lkZ2V0LS1wb3J0cmFpdCB7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMyKTtcblxuICAud2lkZ2V0LWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC8vIGhyIHsgTW92ZWQgdG8gX3dpZGdldC1wb3J0cmFpdC5zY3NzXG4gIC8vICAgICB3aWR0aDogMTAwJTtcbiAgLy8gICAgIGhlaWdodDogcmVtLWNhbGMoMSk7XG4gIC8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuICAvLyAgICAgbWFyZ2luOiByZW0tY2FsYygzMikgYXV0bztcbiAgLy8gfVxuICAud2lkZ2V0LS1wcm9maWxlLW5hbWUge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYpO1xuICB9XG5cbiAgaDQud2lkZ2V0LS1wcm9maWxlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTsgLy8gRml4ZWQgYWNyb3NzIGFsbCBzaXplc1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYpO1xuICB9XG5cbiAgaDQud2lkZ2V0LS1wcm9maWxlLWNvbXBhbnkge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpOyAvLyBGaXhlZCBhY3Jvc3MgYWxsIHNpemVzXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG5cbiAgLndpZGdldC0tYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMyKSByZW0tY2FsYyg0MCk7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyOCk7XG5cbiAgICAmLndpZGdldC0tcHJvZmlsZS1waG9uZSB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYpO1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQtLXByb2ZpbGUtY29udGVudCBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGEud2lkZ2V0LS1wcm9maWxlLWVtYWlsIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LS1wcm9maWxlLXNvY2lhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgbGkge1xuICAgICAgYm9yZGVyOiByZW0tY2FsYygxKSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHdpZHRoOiByZW0tY2FsYygzMCk7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDMwKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg4KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI0KTtcbiAgICB9XG5cbiAgICAuZmEge1xuICAgICAgJi5mYS1saW5rZWRpbixcbiAgICAgICYuZmEtdHdpdHRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiovXG4iLCIud2lkZ2V0LS1saXN0aW5nIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiAwIHJlbS1jYWxjKDE1KSAkbWFyZ2luLXNtYWxsOyAvLyBBZGQgZ2xvYmFsIGd1dHRlclxuXG5cdC5jb2x1bW5zIHtcblx0XHRwYWRkaW5nOiAwOyAvLyBSZW1vdmUgZ3V0dGVyXG5cdH1cblx0aDMge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblx0dWwsIHAge1xuXHRcdG1heC13aWR0aDogcmVtLWNhbGMoODAwKTsgLy8gS2VlcCBwYXJhZ3JhcGhzIHJlYWRhYmxlIG9uIHRleHQtb25seSBibG9ja3Ncblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdH1cblx0dWwge1xuXHRcdG1heC13aWR0aDogNjAlO1xuXG5cdFx0bGkge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHR9XG5cdH1cbiAgICAmLWJvZHkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXNtYWxsICRtYXJnaW4tc21hbGwgLyAyO1xuICAgICAgICB9XG5cdCAgICAmLXRpdGxlIHtcblx0ICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHQgICAgfVxuXHQgICAgJi1kYXRlIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjE1ZW07XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdCAgICBcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHQgICAgXHRtYXJnaW4tdG9wOiByZW0tY2FsYygtOCk7XG5cdCAgICB9XG5cdCAgICAmLWxvY2F0aW9uIHtcblx0XHRcdFx0Zm9udC1zaXplOiAwLjllbTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0ICAgIFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cdCAgICBcdG1hcmdpbi10b3A6IHJlbS1jYWxjKC04KTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMS4yZW07XG5cdCAgICB9XG5cdCAgICAmLXN1bW1hcnkge1xuXHQgICAgXHRwLCBsaSB7XG5cdCAgICBcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMS4yZW07XG5cdCAgICBcdH1cblx0ICAgIH1cblx0ICAgIC5idG4ge1xuXHQgICAgXHRtYXJnaW46IDAgYXV0bztcblx0ICAgIH1cbiAgICB9XG5cdCYtbWFwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblxuXHRcdC5hY2YtbWFwIHtcblx0XHQgIHdpZHRoOiAxMDAlO1xuXHRcdCAgaGVpZ2h0OiByZW0tY2FsYyg1MDApO1xuXHRcdCAgYm9yZGVyOiBub25lO1xuXHRcdH1cblxuXHRcdC8qIGZpeGVzIHBvdGVudGlhbCB0aGVtZSBjc3MgY29uZmxpY3QgKi9cblx0XHQuYWNmLW1hcCBpbWcge1xuXHRcdCAgIG1heC13aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXG5cdH1cblxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHQud2lkZ2V0LS1saXN0aW5nIHtcblxuXHRcdCYtYm9keSB7XG5cblx0ICAgICAgICAmLWlubmVyIHtcblx0ICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1tZWRpdW0gJG1hcmdpbi1tZWRpdW0vMjtcblx0ICAgICAgICB9XG5cdFx0fVxuXHR9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdC53aWRnZXQtLWxpc3Rpbmcge1xuXG5cdFx0Ji1ib2R5IHtcblxuXHQgICAgICAgICYtaW5uZXIge1xuXHQgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLWxhcmdlICRtYXJnaW4tbGFyZ2UvMjtcblx0ICAgICAgICB9XG5cdFx0fVxuXHR9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuXHQud2lkZ2V0LS1saXN0aW5nIHtcblxuXHRcdCYtYm9keSB7XG5cblx0ICAgICAgICAmLWlubmVyIHtcblx0ICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi14bGFyZ2UgJG1hcmdpbi14bGFyZ2UvMjtcblx0ICAgICAgICB9XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBXaWRnZXQgT3B0aW9uXG4vLyBCbG9ja3Mgb2Ygb3B0aW9ucyAoZS5nLiBwcm9kdWN0cywgY29tcGFyaXNvbnMpXG4vL1xuLy8gVXNlIHdpZGdldC0tcG9ydHJhaXQgZm9yIGJsb2NrIGlmIGJhc2ljIGluZm8gKGUuZy4gTlRTVVNBKSwgb3IgZXh0ZW5kIHVzaW5nIGJlbG93IChlLmcuIGZvciBjb21wYXJpc29uICd0YWJsZXMnKVxuLy9cbi53aWRnZXQtLW9wdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLnJldmVhbCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgLy8gQ2hvaWNlIGNvbnRhaW5lciAtIG1vcmUgaW5mbyAoZS5nLiBtb2RhbCwgc2VlIE5UU1VTQSAtIGpvaW4pXG4gICAgJi1jb250YWluZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGgyLCBoMywgcCwgbGkge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cbiAgICAgICAgcC5zdXBwb3J0LWNvcHkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAkbWFyZ2luLXNtYWxsO1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgICAgIHJpZ2h0OiAkbWFyZ2luLXNtYWxsLzI7XG4gICAgICAgICAgICB0b3A6ICRtYXJnaW4tc21hbGwvMjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRnVydGhlciBvcHRpb25zIHRvIGNob29zZSAocHJvZHVjdCBsaXN0KSAoc2VlIE5UU1VTQSAtIGpvaW4pXG4gICAgJi1saXN0IHtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzKTsgXG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA2MCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtMjAlKTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tc21hbGwvMiAkbWFyZ2luLXNtYWxsO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoNjApO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1xcZjA1NCc7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzcGFuLnN0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi1zdW1tYXJ5IHsgLy8gU3VtbWFyeSBvZiBjaG9zZW4gb3B0aW9uIChzZWUgTlRTVVNBIGZvcm0gLSBjaG9zZW4gbWVtYmVyc2hpcClcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbDtcblxuICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgzLnNlY3Rpb24tdGl0bGUsIHAge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDYwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEubWVtYnR5cGVfb3BlbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNwYW4udy1zdGF0dXMge1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNDApO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6ICRtYXJnaW4tc21hbGw7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjsgXG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTsgXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIC53aWRnZXQtLW9wdGlvbiB7XG5cbiAgICAgICAgJi1jb250YWluZXIge1xuXG4gICAgICAgICAgICBwLnN1cHBvcnQtY29weSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1hcmdpbi1tZWRpdW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi1zdW1tYXJ5IHsgLy8gU2VsZWN0ZWQgdGhlcmVmb3JlIGZ1bGwtd2lkdGggbGFuZHNjYXBlXG5cbiAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbWVkaXVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMy5zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoODApOyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4udy1zdGF0dXMge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg1NSk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg1NSk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDU1KTtcbiAgICAgICAgICAgICAgICByaWdodDogJG1hcmdpbi1tZWRpdW07XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMik7IFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblxuICAgIC53aWRnZXQtLW9wdGlvbiB7XG4gICAgICAgIFxuICAgICAgICAmLWxpc3Qge1xuXG4gICAgICAgICAgICBsaSB7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogJG1hcmdpbi1zbWFsbC8yO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zdW1tYXJ5IHsgLy8gU2VsZWN0ZWQgdGhlcmVmb3JlIGZ1bGwtd2lkdGggbGFuZHNjYXBlXG5cbiAgICAgICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtYXJnaW4tbGFyZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxMDApOyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4udy1zdGF0dXMge1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg3MCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDcwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJG1hcmdpbi1sYXJnZTtcblxuICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQwKTsgXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcblxuICAgIC53aWRnZXQtLW9wdGlvbiB7XG5cblxuICAgICAgICAmLXN1bW1hcnkgeyAvLyBTZWxlY3RlZCB0aGVyZWZvcmUgZnVsbC13aWR0aCBsYW5kc2NhcGVcblxuICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuLnctc3RhdHVzIHtcbiAgICAgICAgICAgICAgICByaWdodDogJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiAkbWFyZ2luLXNtYWxsIHJlbS1jYWxjKDgpIDA7XG5cdG1hcmdpbi1ib3R0b206IC0kbWFyZ2luLXNtYWxsOyAvLyBSZW1vdmUgbmV4dCBzZWN0aW9uJ3MgcGFkZGluZ1xuXG5cdCYtLWxpZ2h0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgfVxuICAgICYuc2VjdGlvbi0tcGFkZGVkIHsgLy8gVXNlZCBieSBzdGFuZC1hbG9uZSBzZWN0aW9uIGhlYWRpbmdzXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgIH1cblx0LnNlY3Rpb24taGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tc21hbGwgLyAyO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCBtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIHNtYWxsLCBoMiwgZm9udC1zaXplKSApO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoNzYpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNDUsNDAsMTQxLDEpIDAlLCByZ2JhKDM4LDM0LDk4LDEpIDEwMCUpO1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cy1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgICAmLmNvbG91ci0tYmx1ZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgJi5jb2xvdXItLWRhcmstYmx1ZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgJi5jb2xvdXItLW9yYW5nZTpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgICAmLmNvbG91ci0tZ3JlZW46YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJG1hcmdpbi1tZWRpdW0gMCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtJG1hcmdpbi1tZWRpdW07IC8vIFJlbW92ZSBuZXh0IHNlY3Rpb24ncyBwYWRkaW5nXG5cbiAgICAgICAgJi5zZWN0aW9uLS1wYWRkZWQgeyAvLyBVc2VkIGJ5IHN0YW5kLWFsb25lIHNlY3Rpb24gaGVhZGluZ3NcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bTtcbiAgICAgICAgICAgIC8vIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzQpOyAvLyBvdmVycmlkZSBkZWZhdWx0IGgyIHNpemluZ1xuICAgICAgICB9XG4gICAgICAgIC5zZWN0aW9uLWhlYWRpbmcge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGgyLCBmb250LXNpemUpICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnNlY3Rpb24taGVhZGluZy13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJG1hcmdpbi1sYXJnZSAwIDA7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IC0kbWFyZ2luLWxhcmdlOyAvLyBSZW1vdmUgbmV4dCBzZWN0aW9uJ3MgcGFkZGluZ1xuXG4gICAgICAgICYuc2VjdGlvbi0tcGFkZGVkIHsgLy8gVXNlZCBieSBzdGFuZC1hbG9uZSBzZWN0aW9uIGhlYWRpbmdzXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1hcmdpbi1sYXJnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2U7XG4gICAgICAgIH1cbiAgICAgICAgLnNlY3Rpb24taGVhZGluZyB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCBtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIGxhcmdlLCBoMiwgZm9udC1zaXplKSApO1xuICAgICAgICB9XG4gICAgfVxufVxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAuc2VjdGlvbi1oZWFkaW5nLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSAwIDA7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IC0kbWFyZ2luLXhsYXJnZTsgLy8gUmVtb3ZlIG5leHQgc2VjdGlvbidzIHBhZGRpbmdcblxuICAgICAgICAmLnNlY3Rpb24tLXBhZGRlZCB7IC8vIFVzZWQgYnkgc3RhbmQtYWxvbmUgc2VjdGlvbiBoZWFkaW5nc1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4teGxhcmdlO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgICAgICAvLyBmb250LXNpemU6IHJlbS1jYWxjKDQwKTsgLy8gb3ZlcnJpZGUgZGVmYXVsdCBoMiBzaXppbmdcbiAgICAgICAgfVxuICAgICAgICAuc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoIG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgeGxhcmdlLCBoMiwgZm9udC1zaXplKSApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gSEtTTiBEZXZlbG9wbWVudCBQcm9qZWN0XG4vLyBWZXJzaW9uOiAgIHYxLjBcbi8vIE5hbWU6ICAgIEVsZW1lbnRzIHN0eWxlc2hlZXRcbi8vIFNDU1MgVHlwZTogICBQcm9qZWN0IFBhcnRpYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBzdHlsZXNoZWV0IGNvdmVycyB0aGUgc3R5bGVzIG9mIHRoZSBwb3N0IHNlY3Rpb25zXG5cbi5ob21lcGFnZS1wb3N0cyB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi5wb3N0LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IHJlbS1jYWxjKDEwMDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDRyZW0gMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJnLWxpZ2h0O1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbn1cblxuLnBvc3QtYm9keSB7XG5cbiAgLnBnX19pdGVtIHtcblxuICAgIGgyIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBzbWFsbCwgaDMsIGZvbnQtc2l6ZSkgKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbDtcbiAgICAgIGJvcmRlci1ib3R0b206IHJlbS1jYWxjKDEpIHNvbGlkICRkYXJrLWJsdWU7XG4gICAgfVxuICAgIGgzIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgfVxuICAgIGg0LCBoNSwgaDYge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG4gICAgdWwsIHAge1xuICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWRhcms7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gICAgdWwge1xuICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCk7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIGlmcmFtZXNcbiAgLnJlc3BvbnNpdmUtZW1iZWQge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDkwMCk7XG4gICAgcGFkZGluZy1ib3R0b206IDYwJTtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMyKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygwKTtcblxuICAgIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMCk7XG4gICAgfVxuICB9XG5cbiAgdWwgbGkge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAkYmxhY2s7XG4gIH1cblxufVxuXG4ucGcgaDIsIGgzLCBoNCB7XG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4ucGcge1xuICAucm93LnJvdy0tZnVsbHdpZHRoIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG4ucGcge1xuICAmX19pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbjogcmVtLWNhbGMoMTYpIDA7XG4gICAgfVxuXG4gICAgJjpub3QoLmxhbmRzY2FwZS1pbWcpIC5pbWctY29udGFpbmVyIHtcbiAgICAgIC8vIG1heC13aWR0aDogcmVtLWNhbGMoNDAwKTtcbiAgICB9XG4gIH1cblxuICAuaW1nLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogdGFibGU7IC8vIE1ha2Ugc3VyZSB0aGUgZmlndXJlIGdldCB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gIH1cblxuICAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuICAgIGNhcHRpb24tc2lkZTogYm90dG9tO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgY29sb3I6ICRibGFjaztcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxOSkgcmVtLWNhbGMoOCkgMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTY3KTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjb2xvci1ncmFkaWVudDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cy1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLndpZGdldC0td3JpdHRlbi1kYXRlLCBcbi53aWRnZXQtLXBvc3RlZC1kYXRlLCBcbi53aWRnZXQtLWF1dGhvci10aXRsZSxcbi53aWRnZXQtLW9wcG9ydHVuaXR5LWVtcGxveWVyLFxuLndpZGdldC0tb3Bwb3J0dW5pdHktZGF0ZSxcbi53aWRnZXQtLWV2ZW50LXN0YXJ0LWRhdGUsXG4ud2lkZ2V0LS1ldmVudC1sb2NhdGlvblxue1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbn1cblxuLndpZGdldC0td3JpdHRlbi1kYXRlIHtcblxufVxuXG4ud2lkZ2V0LS1wb3N0ZWQtZGF0ZSB7XG5cbn1cblxuLndpZGdldC0tYXV0aG9yLXRpdGxlIHtcblxufVxuXG4ucG9zdC1tZXRhLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwIHtcbiAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICB9XG5cbn1cblxuLnBvc3QtLXRhZ3Mge1xuICBtYXJnaW46IHJlbS1jYWxjKDMyKSBhdXRvIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46ICRtYXJnaW4tc21hbGwgYXV0bztcblxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMikgMDtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDgpO1xuICAgIGJvcmRlci1ib3R0b206IHJlbS1jYWxjKDIpIHNvbGlkICRkYXJrLWJsdWU7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoOCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAucGcge1xuICAgIC5pbWctY29udGFpbmVyLCAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KDY1MHB4KSB7XG4gIC5wb3N0LWJvZHkge1xuICAgIGltZyB7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC53cC1jYXB0aW9uIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg5KTtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LWZlYXR1cmVkLWltYWdlIHtcbiAgICAgIG1pbi13aWR0aDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wZyB7XG4gICAgLnJvdy5yb3ctLWZ1bGx3aWR0aCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5wZyB7XG4gICAgLmltZy1jb250YWluZXIgaW1nIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pdGVtOm5vdCguZnVsbHdpZHRoKSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg0OCkgMDtcbiAgICAgIH1cbiAgICAgICY6bm90KC5yZXZlcnNlKSB7XG4gICAgICAgIC5wZ19fdGV4dDpub3QoLmZ1bGx3aWR0aCkge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBnX19pbWcge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbWctY29udGFpbmVyIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5yZXZlcnNlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICAgIC5wZ19fdGV4dDpub3QoLmZ1bGx3aWR0aCkge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wZ19faW1nIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbWctY29udGFpbmVyIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAucG9zdC1ib2R5IHtcbiAgICAucGdfX2l0ZW0ge1xuICAgICAgLy8gTWFwIGRvd24gZWFjaCBmb250IHNpemUgZm9yIHBvc3RzXG4gICAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBtZWRpdW0sIGgzLCBmb250LXNpemUpICk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgfVxuICAgICAgaDMge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBnIHtcbiAgICAucm93LnJvdy0tZnVsbHdpZHRoIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnBvc3QtbWV0YSB7XG4gICAgcGFkZGluZy10b3A6ICRtYXJnaW4tbWVkaXVtLzI7XG4gIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgLnBvc3QtbWV0YSB7XG4gICAgcGFkZGluZy10b3A6ICRtYXJnaW4tbGFyZ2UvMjtcbiAgfVxuICAucG9zdC1wdWJsaXNoZWQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5wb3N0LS10YWdzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGluaGVyaXQ7XG4gICAgZmxleC13cmFwOiBpbmhlcml0O1xuICB9XG4gIC5wb3N0LWJvZHkge1xuICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNjApO1xuICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDYwKTtcblxuICAgIC5wZ19faXRlbSB7XG4gICAgICAvLyBNYXAgZG93biBlYWNoIGZvbnQgc2l6ZSBmb3IgcG9zdHNcbiAgICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCBtYXAtZGVlcC1nZXQoJGhlYWRlci1zdHlsZXMsIGxhcmdlLCBoMywgZm9udC1zaXplKSApO1xuICAgICAgfVxuICAgICAgaDMge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBnIHtcbiAgICAgIC5yb3cucm93LS1mdWxsd2lkdGgge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnBvc3QtZmVhdHVyZWQtaW1hZ2UgaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG4ucG9zdC1tZXRhLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMyKTtcbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gIC5wb3N0LW1ldGEge1xuICAgIHBhZGRpbmctdG9wOiAkbWFyZ2luLXhsYXJnZS8yO1xuICB9XG4gIC5wb3N0LS10YWdzIHtcbiAgICAvL21hcmdpbi1ib3R0b206ICRtYXJnaW4teGxhcmdlO1xuICB9XG4gIC5wb3N0LWJvZHkge1xuXG4gICAgLnBnX19pdGVtIHtcbiAgICAgIC8vIE1hcCBkb3duIGVhY2ggZm9udCBzaXplIGZvciBwb3N0c1xuICAgICAgaDIge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoIG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgbGFyZ2UsIGgzLCBmb250LXNpemUpICk7XG4gICAgICB9XG4gICAgICBoMyB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB1bDpub3QoW2NsYXNzXSksIG9sOm5vdChbY2xhc3NdKSwgLmJ0bi13cmFwcGVyLCBociB7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMik7IC8vIDEuNWVtO1xuICAgIH1cbiAgfVxuXG4gIC5wZyB7XG4gICAgLnJvdy5yb3ctLWZ1bGx3aWR0aCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LWNvbnRhaW5lciAuc2hhcmUtLXN0YWNrZWQtbGFyZ2Uge1xuICAgIC8vdG9wOiByZW0tY2FsYyg1MCk7XG4gIH1cbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUG9zdCB2aWRlbyBibG9ja1xuLy8tLVxuLy8gLnBvc3QtdmlkZW8tYmxvY2sgLnZpZGVvLWJsb2NrIHtcbi8vICAgbWF4LXdpZHRoOiByZW0tY2FsYyg5MDApO1xuLy8gICBtYXJnaW46IGF1dG87XG4vLyAgIHBhZGRpbmctYm90dG9tOiA2MCU7XG4vLyB9XG4iLCIvLyBIS1NOIERldmVsb3BtZW50IFByb2plY3Rcbi8vIFZlcnNpb246ICAgdjEuMFxuLy8gTmFtZTogICAgVmlkZW8gQmxvY2sgc3R5bGVzaGVldFxuLy8gU0NTUyBUeXBlOiAgIFByb2plY3QgUGFydGlhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHN0eWxlc2hlZXQgY292ZXJzIHRoZSBzdHlsZXMgb2YgdGhlIHZpZGVvIGJsb2NrXG4udmlkZW8tY29udGFpbmVyIHtcblx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoODApO1xufVxuLnlvdXR1YmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7IC8vIDE2eDlcbiAgICAvL3BhZGRpbmctdG9wOiA0OS44JTsgLy8gSEQgV2lkZXNjcmVlblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRvcDogLTE2Ljg0JTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cblxuICAgIC5wbGF5LWJ1dHRvbiB7XG4gICAgICB3aWR0aDogOTBweDtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMzBweCByZ2JhKCAwLDAsMCwwLjYgKTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDE1cHggMCAxNXB4IDI2LjBweDtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW1nLCAucGxheS1idXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIGltZyxcbiAgICBpZnJhbWUsXG4gICAgLnBsYXktYnV0dG9uLFxuICAgIC5wbGF5LWJ1dHRvbjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIC5wbGF5LWJ1dHRvbixcbiAgICAucGxheS1idXR0b246YmVmb3JlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggLTUwJSwgLTUwJSwgMCApO1xuICAgIH1cbiAgICBpZnJhbWUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLy8gSFRLIERldmVsb3BtZW50IEZyYW1ld29ya1xuLy8gVmVyc2lvbjogICB2MS4wXG4vLyBOYW1lOiAgICBGb3JtIFNpZ24tdXAgc3R5bGVzaGVldFxuLy8gU0NTUyBUeXBlOiAgIFByb2plY3QgUGFydGlhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHN0eWxlc2hlZXQgZm9yIHNpbXBsZSBmb3JtIGJsb2NrIChlLmcuIEVtYWlsIHNpZ251cClcbi8vXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zaWdudXAtYmxvY2sge1xuICB3aWR0aDogMTAwJTtcbiAgLy9tYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsLzI7IC8vIEdpdmUgY2xlYXJhbmNlIG9uIG1haW5jb250ZW50XG4gIHBhZGRpbmc6ICRtYXJnaW4tc21hbGwgJG1hcmdpbi1zbWFsbC8yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgYm9yZGVyLXRvcDogc29saWQgcmVtLWNhbGMoMykgJHByaW1hcnktY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAkcHJpbWFyeS1jb2xvciBhdXRvIDVweDtcbiAgfVxuXG4gIC5mb3JtLXRpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiAgfVxuXG4gIGZvcm0uc3Vic2NyaWJlLWZvcm0ge1xuXG4gICAgaW5wdXQsIGJ1dHRvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNDUpO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG4gICAgICBib3JkZXI6IHNvbGlkIDAuMDVlbSBkYXJrZW4oJGxpZ2h0LWdyZXksIDIwJSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjI1ZW07XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0NSk7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIC8vIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAvLyBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgIC8vIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICB9XG5cbiAgICAgIGkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygzKTtcbiAgICAgIH1cbiAgICAgIHNwYW4ge1xuICAgICAgICAvL0BpbmNsdWRlIHNob3ctZm9yLXNyO1xuICAgICAgfVxuICAgIH1cbiAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tc21hbGw7XG4gICAgfVxuICB9XG4gIC5mYS1jbG9zZSB7XG4gICAgLy9jb2xvcjogJGxpZ2h0X2dyYXk7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogcmVtLWNhbGMoMTApO1xuICAgIHJpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAvL2NvbG9yOiBzY2FsZS1jb2xvcigkbGlnaHRfZ3JheSwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpO1xuICAgIH1cbiAgfVxuICAvLyBNYWlsY2hpbXAgc3BhbSBob25leXBvdFxuICAuZmllbGQtc2hpZnQge1xuICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgLnNpZ251cC1ibG9jayB7XG4gICAgLy9tYXJnaW4tdG9wOiAkbWFyZ2luLW1lZGl1bS8yO1xuICAgIHBhZGRpbmc6ICRtYXJnaW4tbWVkaXVtICRtYXJnaW4tbWVkaXVtLzI7XG5cbiAgICAuZm9ybS10aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLW1lZGl1bS8yO1xuICAgIH1cbiAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tbWVkaXVtLzI7XG4gICAgfVxuICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gIC5zaWdudXAtYmxvY2sge1xuICAgIC8vbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS8yO1xuICAgIHBhZGRpbmc6ICRtYXJnaW4tbGFyZ2UgJG1hcmdpbi1sYXJnZS8yO1xuXG4gICAgLmZvcm0tdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1sYXJnZS8yO1xuICAgIH1cbiAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tbGFyZ2UvMjtcbiAgICB9XG4gIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gIC5zaWdudXAtYmxvY2sge1xuICAgIC8vbWFyZ2luLXRvcDogJG1hcmdpbi14bGFyZ2UvMjtcbiAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSAkbWFyZ2luLXhsYXJnZS8yO1xuXG4gICAgLmZvcm0tdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2UvMjtcbiAgICB9XG4gICAgLmZvcm0tYWN0aW9ucyB7XG4gICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXhsYXJnZS8yO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExlZ2FsIGZvb3RlclxuXG4ucHJpbWFyeS0tZm9vdGVyIHtcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtbGlnaHQ7XG4gICAgYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG4gICAgLmZvb3Rlci0tbWVudXMge1xuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCByZW0tY2FsYygyKSAkY29sb3ItYmctZGFyaztcbiAgICAgICAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAwO1xuXG4gICAgICAgIHVsLCBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvb3Rlci0tY29weXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoOCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZvb3Rlci0tdGVydGlhcnkge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpIDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxuICAgIC5zdWItbmF2IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLmZvb3Rlci0tbWVudXMtc2l0ZW1hcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMyKTtcbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAucHJpbWFyeS0tZm9vdGVyIHtcblxuICAgICAgICAuZm9vdGVyLS1jb3B5cmlnaHQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmZvb3Rlci0tdGVydGlhcnkge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc3ViLW5hdiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5mb290ZXItLXRlcnRpYXJ5IHtcbiAgICAgICAgbGkge1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoLTMpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLS1jb3B5cmlnaHQge1xuICAgICAgIHAge1xuICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG5cbiAgICAucHJpbWFyeS0tZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci0tdGVydGlhcnkgbGkge1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0tY2FsYygxMik7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcblxuICAgIC5wcmltYXJ5LS1mb290ZXIge1xuICAgICAgICAuZm9vdGVyLS10ZXJ0aWFyeSBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDI0KTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByb21vIGZvb3RlciAoc29jaWFsLCBjb250YWN0IGRldGFpbHMgZXRjKVxuLnNlY29uZGFyeS0tZm9vdGVyIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctdG9wOiA0OHB4OyAvLyBDbGVhciByaXAgaW1hZ2VcbiAgICBib3gtc2hhZG93OiAwIC0wLjA1ZW0gMC41ZW0gMC4wNWVtIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG5cbiAgICAucm93LS1mdWxsd2lkdGgge1xuICAgICAgICBwYWRkaW5nLXRvcDogJG1hcmdpbi1zbWFsbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4tc21hbGw7XG4gICAgfVxuXG4gICAgLmZvb3Rlci0taW5mbyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBDb250YWN0IERldGFpbHNcbiAgICAuZm9vdGVyLS1pbmZvLW5hbWUge1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtbGlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWxpZ2h0O1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1saWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb290ZXItLXNvY2lhbCB7XG4gICAgICAgIG1hcmdpbjogJG1hcmdpbi1zbWFsbCAwO1xuICAgIH1cblxuICAgIC8vIFNvY2lhbCBJY29ucyAmIExvZ29zXG4gICAgLmZvb3Rlci0tc29jaWFsLW1lbnUge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAuZm9vdGVyLS1zb2NpYWwtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE2KTtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQyKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQyKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICBib3JkZXI6IDAuMDllbSBzb2xpZCAkY29sb3ItdGV4dC1saWdodDtcblxuICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJi5mYS1nb29nbGUtcGx1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10ZXh0LWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLS1wYXJ0bmVyLWxpc3Qge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTIwKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNTkpO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cblxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIC5zZWNvbmRhcnktLWZvb3RlciB7XG4gICAgICAgIC5yb3ctLWZ1bGx3aWR0aCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1hcmdpbi1tZWRpdW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1hcmdpbi1tZWRpdW07XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnNlY29uZGFyeS0tZm9vdGVyIHtcbiAgICAgICAgLnJvdy0tZnVsbHdpZHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkbWFyZ2luLWxhcmdlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRtYXJnaW4tbGFyZ2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIC5zZWNvbmRhcnktLWZvb3RlciB7XG4gICAgICAgIC5yb3ctLWZ1bGx3aWR0aCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1hcmdpbi14bGFyZ2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnNlY29uZGFyeS0tZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci0taW5mby1jb250YWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmZvb3Rlci0tc29jaWFsLW1lbnUge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci0tc29jaWFsLWxpc3Qge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5mb290ZXItLXBhcnRuZXItbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTYpO1xuICAgICAgICB9XG4gICAgICAgIC5mb290ZXItLWluZm8ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIC5zZWNvbmRhcnktLWZvb3RlciB7XG4gICAgICAgIC5mb290ZXItLXNvY2lhbC1saXN0IHtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlIHVwKSB7XG4gICAgLmZvb3Rlci0tcGFydG5lci1saXN0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMzIpO1xuICAgIH1cblxufVxuIiwiLnNlYXJjaC0tb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7IHJpZ2h0OiAwO1xuICAgIHRvcDogMDsgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZWNvbmRhcnktY29sb3IsIDAuOTUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNTAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgZm9ybSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDgwJTtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDcwMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbS1jYWxjKDEpIHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byByZW0tY2FsYygzMik7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0LWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtbGlnaHQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC13aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jbG9zZS0tYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUlO1xuICAgICAgICByaWdodDogNSU7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1saWdodDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQtd2hpdGU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYtc2hvdyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG5cbn1cblxuLnNlYXJjaC0tbm8tcmVzdWx0cyB7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYyg2MDApO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnNlYXJjaC0tb3ZlcmxheSB7XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgLnNlYXJjaC0tb3ZlcmxheSB7XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCIuc2hhcmUtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAwO1xufVxuLnNoYXJlIHtcblxuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYyg2Nik7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNjYpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoNDIpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0Mik7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuLnN0YWNrZWQtbGlzdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiByZW0tY2FsYyg2Nik7XG5cbiAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoNjYpO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDY2KTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNCk7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDsgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg0Mik7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQyKTtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zaGFyZS0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogcmVtLWNhbGMoMTYpIDA7XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoOCk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLnNoYXJlLS1tb2JpbGUge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKC0xNikgMCAkbWFyZ2luLWxhcmdlO1xuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgLnNoYXJlLWNvbnRhaW5lciB7XG4gICAgICAgIHJpZ2h0OiByZW0tY2FsYygwKTtcbiAgICB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICAuc2hhcmUtY29udGFpbmVyIHtcbiAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKC0xMDYpO1xuICAgIH1cbn1cbiIsIi8vIEhLU04gRGV2ZWxvcG1lbnQgUHJvamVjdFxuLy8gVmVyc2lvbjogICB2MS4wXG4vLyBOYW1lOiAgICBUaW1lbGluZSBCbG9jayBzdHlsZXNoZWV0XG4vLyBTQ1NTIFR5cGU6ICAgUHJvamVjdCBQYXJ0aWFsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgc3R5bGVzaGVldCBjb3ZlcnMgdGhlIHN0eWxlcyBvZiB0aGUgdGltZWxpbmUgY29tcG9uZW50XG5cblxuLndpZGdldC0tdGltZWxpbmUge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogcmVtLWNhbGMoLTEwMCkgYXV0byAkbWFyZ2luLXNtYWxsO1xuXHRwYWRkaW5nOiByZW0tY2FsYygyMCkgMCByZW0tY2FsYygyMDApOyAvLyBBZGQgZ2xvYmFsIGd1dHRlciwgbWF0Y2ggaGVpZ2h0IG9uICY6YWZ0ZXJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRtYXgtd2lkdGg6IHJlbS1jYWxjKDg2MCk7XG5cdHotaW5kZXg6IDIwO1xuXG5cdCY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IHJlbS1jYWxjKDApO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyMDApOyAvLyBtYXRjaCBwYWRkaW5nLWJvdHRvbSBvbiAud2lkZ2V0LS10aW1lbGluZVxuICAgICAgICBkaXNwbGF5OiBibG9jaztcblx0XHR6LWluZGV4OiAxO1xuXHQgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMTQ1LDQwLDE0MSwxKSAwJSwgcmdiYSgzOCwzNCw5OCwxKSAxMDAlKTtcbiAgICB9XG5cblx0YSB7XG5cdFx0aDMsIGg0LCBoNSwgaDYsIGxpLCBwIHtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdHAge1xuXHRcdGNvbG9yOiAkY29sb3ItdGV4dC1kYXJrO1xuXHR9XG5cdH1cblx0aDIge1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDMyKTtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtMXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE1ZW07XG5cdH1cblx0YnV0dG9uIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblxuICAgIGgyLndpZGdldC0tdGl0bGUge1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgIH1cbiAgICAud2lkZ2V0LS1kYXRlIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTYpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xuXHQgICAgbWFyZ2luLXJpZ2h0OiAtJG1hcmdpbi1zbWFsbDtcblx0ICAgIG1hcmdpbi1sZWZ0OiAtJG1hcmdpbi1zbWFsbDtcblxuICAgICAgICBoMyB7XG5cdCAgICBcdGZvbnQtc2l6ZTogcmVtLWNhbGMoIG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgc21hbGwsIGg1LCBmb250LXNpemUpICk7XG5cdCAgICBcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdCAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgXHRtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBcdGNvbG9yOiAkY29sb3ItaGVhZGluZy1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgLndpZGdldC1kYXRlX19pY29uIHtcbiAgICAgICAgXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgXHR3aWR0aDogMS4yZW07XG4gICAgICAgIFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICBcdHN2ZyB7XG4gICAgICAgIFx0XHRtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIFx0fVxuXG4gICAgICAgIFx0cGF0aCB7XG4gICAgICAgIFx0XHRmaWxsOiAkY29sb3ItaGVhZGluZy1kYXJrO1xuICAgICAgICBcdH1cbiAgICAgICAgfVxuICAgIH1cblxuXHQud2lkZ2V0LS1ib2R5IHtcbiAgICAgIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDIwO1xuXHRcdHBhZGRpbmctdG9wOiByZW0tY2FsYygyMCk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJnLWxpZ2h0O1xuXHRcdGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG5cblx0XHQmOmJlZm9yZSB7XG5cdCAgICAgICAgY29udGVudDogJyc7XG5cdCAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgICAgIHRvcDogcmVtLWNhbGMoLTIwKTtcblx0ICAgICAgICBsZWZ0OiA1MCU7XG5cdCAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG5cdCAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcblx0ICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDQwKTtcblx0ICAgICAgICBkaXNwbGF5OiBibG9jaztcblx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdCAgICBcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDE0NSw0MCwxNDEsMSkgMCUsIHJnYmEoMzgsMzQsOTgsMSkgMTAwJSk7XG5cdCAgICB9XG5cdFx0JjphZnRlciB7XG5cdCAgICAgICAgY29udGVudDogJyc7XG5cdCAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgICAgIHRvcDogcmVtLWNhbGMoLTEwKTtcblx0ICAgICAgICBsZWZ0OiA1MCU7XG5cdCAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG5cdCAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDIwKTtcblx0ICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIwKTtcblx0ICAgICAgICBkaXNwbGF5OiBibG9jaztcblx0XHRcdHotaW5kZXg6IDEwO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHQgICAgXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHQgICAgfVxuXG4gICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1zbWFsbCAkbWFyZ2luLXNtYWxsLzI7XG5cbiAgICAgICAgICAgIHAgYSwgbGkgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXHR9XG59XG5cblxuLnRpbWVsaW5lLS1tb2RhbCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93LXk6IHZpc2libGU7XG5cdHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgLndpZGdldC0tdGltZWxpbmUge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiByZW0tY2FsYygyMCkgMCAwO1xuXHRcdG1heC13aWR0aDogaW5oZXJpdDtcblx0XHR6LWluZGV4OiAyMDtcblxuXHRcdCY6YWZ0ZXIge1xuXHQgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cdCAgICB9XG5cdH1cbiAgICAuY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDM2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNik7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdHotaW5kZXg6IDI7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGJvcmRlcjogc29saWQgMXB4ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cblx0Ly8gYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG5cdC8vIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG5cblx0Ly8gJjpiZWZvcmUge1xuIC8vICAgICAgICBjb250ZW50OiAnJztcbiAvLyAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuIC8vICAgICAgICB0b3A6IHJlbS1jYWxjKC0yMCk7XG4gLy8gICAgICAgIGxlZnQ6IDUwJTtcbiAvLyAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gLy8gICAgICAgIHdpZHRoOiByZW0tY2FsYyg0MCk7XG4gLy8gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNDApO1xuIC8vICAgICAgICBkaXNwbGF5OiBibG9jaztcblx0Ly8gXHR6LWluZGV4OiAyO1xuXHQvLyBcdGJvcmRlci1yYWRpdXM6IDUwJTtcbiAvLyAgICBcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDE0NSw0MCwxNDEsMSkgMCUsIHJnYmEoMzgsMzQsOTgsMSkgMTAwJSk7XG4gLy8gICAgfVxuXHQvLyAmOmFmdGVyIHtcbiAvLyAgICAgICAgY29udGVudDogJyc7XG4gLy8gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAvLyAgICAgICAgdG9wOiByZW0tY2FsYygtMTApO1xuIC8vICAgICAgICBsZWZ0OiA1MCU7XG4gLy8gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuIC8vICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjApO1xuIC8vICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAvLyAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cdC8vIFx0ei1pbmRleDogMTA7XG5cdC8vIFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuIC8vICAgIFx0YmFja2dyb3VuZDogI2ZmZjtcbiAvLyAgICB9XG4gLy8gICAgLmNsb3NlLWJ1dHRvbiB7XG4gLy8gICAgICAgIHdpZHRoOiByZW0tY2FsYygzNik7XG4gLy8gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzYpO1xuIC8vICAgICAgICBkaXNwbGF5OiBibG9jaztcblx0Ly8gXHR6LWluZGV4OiAyO1xuXHQvLyBcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdC8vIFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHQvLyBcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0Ly8gXHRib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1jb2xvcjtcbiAvLyAgICB9XG5cdC8vIC53aWRnZXQtLWJvZHkge1xuIC8vICAgICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdC8vIFx0ei1pbmRleDogMjA7XG5cdC8vIFx0cGFkZGluZy10b3A6IHJlbS1jYWxjKDIwKTtcblx0Ly8gXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmctbGlnaHQ7XG5cdC8vIFx0Ym94LXNoYWRvdzogJGJveC1zaGFkb3c7XG5cdC8vIFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcblxuXHQvLyBcdCY6YmVmb3JlIHtcblx0Ly8gICAgICAgICBjb250ZW50OiAnJztcblx0Ly8gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdC8vICAgICAgICAgdG9wOiByZW0tY2FsYygtMjApO1xuXHQvLyAgICAgICAgIGxlZnQ6IDUwJTtcblx0Ly8gICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcblx0Ly8gICAgICAgICB3aWR0aDogcmVtLWNhbGMoNDApO1xuXHQvLyAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNDApO1xuXHQvLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXHQvLyBcdFx0ei1pbmRleDogMjtcblx0Ly8gXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ly8gICAgIFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMTQ1LDQwLDE0MSwxKSAwJSwgcmdiYSgzOCwzNCw5OCwxKSAxMDAlKTtcblx0Ly8gICAgIH1cblx0Ly8gXHQmOmFmdGVyIHtcblx0Ly8gICAgICAgICBjb250ZW50OiAnJztcblx0Ly8gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdC8vICAgICAgICAgdG9wOiByZW0tY2FsYygtMTApO1xuXHQvLyAgICAgICAgIGxlZnQ6IDUwJTtcblx0Ly8gICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcblx0Ly8gICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjApO1xuXHQvLyAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjApO1xuXHQvLyAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXHQvLyBcdFx0ei1pbmRleDogMTA7XG5cdC8vIFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdC8vICAgICBcdGJhY2tncm91bmQ6ICNmZmY7XG5cdC8vICAgICB9XG5cbiAvLyAgICAgICAgJi1pbm5lciB7XG4gLy8gICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXNtYWxsICRtYXJnaW4tc21hbGwvMjtcblxuIC8vICAgICAgICAgICAgcCBhLCBsaSBhIHtcbiAvLyAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuIC8vICAgICAgICAgICAgICAgICY6aG92ZXIge1xuIC8vICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gLy8gICAgICAgICAgICAgICAgfVxuIC8vICAgICAgICAgICAgfVxuIC8vICAgICAgICB9XG5cdC8vIH1cblxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHQud2lkZ2V0LS10aW1lbGluZSB7XG5cblx0XHRoMi53aWRnZXQtLXRpdGxlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtLzI7XG5cdFx0fVxuXHQgICAgLndpZGdldC0tZGF0ZSB7XG5cdCAgICAgIFx0bWFyZ2luLXJpZ2h0OiAtJG1hcmdpbi1tZWRpdW07XG5cdCAgICAgIFx0bWFyZ2luLWxlZnQ6IC0kbWFyZ2luLW1lZGl1bTtcblxuXHQgICAgICBcdGgzIHtcblx0ICAgICAgXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoIG1hcC1kZWVwLWdldCgkaGVhZGVyLXN0eWxlcywgbWVkaXVtLCBoNSwgZm9udC1zaXplKSApO1xuXHQgICAgICBcdH1cblx0ICAgIH1cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLW1lZGl1bS8yO1xuICAgICAgICB9XG5cdFx0LndpZGdldC0tYm9keSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAwLjI1ZW0gc29saWQgJHByaW1hcnktY29sb3I7XG5cblx0ICAgICAgICAmLWlubmVyIHtcblx0ICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1tZWRpdW0gJG1hcmdpbi1tZWRpdW0vMjtcblx0ICAgICAgICB9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0LndpZGdldC0tdGltZWxpbmUge1xuXG5cdFx0aDIud2lkZ2V0LS10aXRsZSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlLzI7XG5cdFx0fVxuXHQgICAgLndpZGdldC0tZGF0ZSB7XG5cdCAgICAgIFx0bWFyZ2luLXJpZ2h0OiAtJG1hcmdpbi1sYXJnZTtcblx0ICAgICAgXHRtYXJnaW4tbGVmdDogLSRtYXJnaW4tbGFyZ2U7XG5cblx0ICAgIFx0aDMge1xuXHQgICAgICBcdFx0Zm9udC1zaXplOiByZW0tY2FsYyggbWFwLWRlZXAtZ2V0KCRoZWFkZXItc3R5bGVzLCBsYXJnZSwgaDUsIGZvbnQtc2l6ZSkgKTtcblx0ICAgICAgXHR9XG5cdCAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS8yO1xuICAgICAgICB9XG5cdFx0LndpZGdldC0tYm9keSB7XG5cdFx0XHRtYXJnaW4tdG9wOiByZW0tY2FsYygyMik7XG5cblx0ICAgICAgICAmLWlubmVyIHtcblx0ICAgICAgICAgICAgcGFkZGluZzogJG1hcmdpbi1sYXJnZSAkbWFyZ2luLWxhcmdlLzI7XG5cdCAgICAgICAgfVxuXHRcdH1cblxuXHR9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuXG5cdC53aWRnZXQtLXRpbWVsaW5lIHtcblxuXHRcdGgyLndpZGdldC0tdGl0bGUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJG1hcmdpbi14bGFyZ2UvMjtcblx0XHR9XG5cdCAgICAud2lkZ2V0LS1kYXRlIHtcblx0ICAgICAgXHRtYXJnaW4tcmlnaHQ6IC0kbWFyZ2luLXhsYXJnZTtcblx0ICAgICAgXHRtYXJnaW4tbGVmdDogLSRtYXJnaW4teGxhcmdlO1xuXHQgICAgfVxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLzI7XG4gICAgICAgIH1cblx0XHQud2lkZ2V0LS1ib2R5IHtcblx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKDQ0KTtcblxuXHQgICAgICAgICYtaW5uZXIge1xuXHQgICAgICAgICAgICBwYWRkaW5nOiAkbWFyZ2luLXhsYXJnZSAkbWFyZ2luLXhsYXJnZS8yO1xuXHQgICAgICAgIH1cblx0XHR9XG5cblx0fVxuXG59XG4iLCIjbWVudS1zaXRlLW1hcCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIFxuICAgID4gbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTYpIHJlbS1jYWxjKDI0KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZXk7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4jbWVudS1zaXRlLW1hcCB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGxpIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTYpIHJlbS1jYWxjKDI0KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuI21lbnUtc2l0ZS1tYXAgI3N1Yi1tZW51IHtcbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xuICAgICAgICAmOmZpcnN0LWNoaWxkKCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8gSEtTTiBEZXZlbG9wbWVudCBQcm9qZWN0XG4vLyBWZXJzaW9uOiAgIHYxLjBcbi8vIE5hbWU6ICAgIEVsZW1lbnRzIHN0eWxlc2hlZXRcbi8vIFNDU1MgVHlwZTogICBQcm9qZWN0IFBhcnRpYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBzdHlsZXNoZWV0IGNvdmVycyB0aGUgY29va2llIG5vdGUgc3R5bGVzIHVzZWQgYWNyb3NzIHRoZSB3ZWJzaXRlXG4vL1xuXG4vLyBDb29raWUgbm90aWNlIGJhbm5lciBjb250ZW50XG4uY2Mtd2luZG93IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDgpO1xuICBcbiAgICAuY2MtY29tcGxpYW5jZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICBcbiAgICAuY2MtaGVhZGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICBcbiAgICAuY2MtbWVzc2FnZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIFxuICAgIC5jYy1saW5rLCAuY2MtYnRuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoOCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIFxuICAgIC5jYy1idG4ge1xuICAgICAgcGFkZGluZzogcmVtLWNhbGMoOCk7XG4gICAgICB0ZXh0LWluZGVudDogcmVtLWNhbGMoLTk5OTk5OTk5KTtcbiAgICAgIHdpZHRoOiByZW0tY2FsYygxNSk7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDE1KTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvaWNvbnMvY2xvc2UtYnV0dG9uLnN2Zyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAyJTtcbiAgICAgIHJpZ2h0OiAyJTtcbiAgICAgIHBhZGRpbmc6IDAuOGVtO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG4gIFxuICAgIC5jYy1kaXNtaXNzIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmc6IDAuOGVtO1xuICAgIH1cbiAgXG4gICAgLmNjLWxpbmsge1xuICAgICAgb3BhY2l0eTogLjc7XG4gICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAuY2MtbWVzc2FnZSwgLmNjLWNvbXBsaWFuY2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIENvb2tpZSBub3RlIHBvc2l0aW9uXG4gIC5jYy1ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygzMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2MCw2MCw2MCwwLjkpO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICBcbiAgXG4gIC8vIENvb2tpZSBub3RpY2UgYW5pbWF0aW9uc1xuICBcbiAgLmNjLXdpbmRvdyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2U7XG4gIH1cbiAgXG4gIC5jYy13aW5kb3cuY2MtaW52aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIFxuICAvKiBvbmx5IGFuaW1hdGUgaWZoYXMgY2xhc3MgJ2NjLWFuaW1hdGUnICovXG4gIC5jYy1hbmltYXRlLmNjLXJldm9rZSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2U7XG4gIH1cbiAgLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLXRvcCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yZW0pO1xuICB9XG4gIC5jYy1hbmltYXRlLmNjLXJldm9rZS5jYy1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyZW0pO1xuICB9XG4gIC5jYy1hbmltYXRlLmNjLXJldm9rZS5jYy1hY3RpdmUuY2MtdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgLmNjLWFuaW1hdGUuY2MtcmV2b2tlLmNjLWFjdGl2ZS5jYy1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICAuY2MtcmV2b2tlOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgXG4gIFxuICAvLyBNRWRpYSBRdWVyaWVzXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAuY2MtYm90dG9tIHtcbiAgICAgIHJpZ2h0OiAwJTtcbiAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gICAgLmNjLXdpbmRvdyB7XG4gICAgICAuY2MtYnV0dG9uIHtcbiAgICAgICAgcmlnaHQ6IDUlO1xuICAgICAgICB0b3A6IDUlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAiLCJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgLmhvbWVwYWdlIHtcbiAgICAud2lkZ2V0LS1sYW5kc2NhcGUtaW50cm8ge1xuICAgICAgLndpZGdldC0tY29udGVudCB7XG4gICAgICAgIFxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgLW1vei1hbmltYXRpb246IGJvdW5jZSAycyBpbmZpbml0ZTtcbiAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xuICAgICAgICAgIGFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IHJlbS1jYWxjKC0xKTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgLy9tYXJnaW4tdG9wOiByZW0tY2FsYygyKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IHJlbS1jYWxjKDgpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1yaWdodDogcmVtLWNhbGMoOCkgc29saWQgdHJhbnNwYXJlbnQ7ICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgYm9yZGVyLXRvcDogcmVtLWNhbGMoMTIpIHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0zMHB4KTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTE1cHgpO1xuICB9XG59XG4vLyRiYXNlOiAwLjZyZW07XG5cbi8vIC5jb250YWluZXIge1xuLy8gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICBsZWZ0OiA1MCU7XG4vLyAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuLy8gIGJvdHRvbTogMTUlO1xuLy8gIHdpZHRoOiAkYmFzZSAqIDU7XG4vLyB9XG5cbi8vIC5hcnJvdyB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgd2lkdGg6ICRiYXNlICogNTtcbi8vICAgaGVpZ2h0OiAkYmFzZSAqIDAuMztcbi8vICAgb3BhY2l0eTogMDtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgwLjMpO1xuLy8gICBhbmltYXRpb246IG1vdmUtYXJyb3cgM3MgZWFzZS1vdXQgaW5maW5pdGU7XG4vLyB9XG5cbi8vIC5hcnJvdzpmaXJzdC1jaGlsZCB7XG4vLyAgIGFuaW1hdGlvbjogbW92ZS1hcnJvdyAzcyBlYXNlLW91dCAxcyBpbmZpbml0ZTtcbi8vIH1cblxuLy8gLmFycm93Om50aC1jaGlsZCgyKSB7XG4vLyAgIGFuaW1hdGlvbjogbW92ZS1hcnJvdyAzcyBlYXNlLW91dCAycyBpbmZpbml0ZTtcbi8vIH1cblxuLy8gLmFycm93OmJlZm9yZSxcbi8vIC5hcnJvdzphZnRlciB7XG4vLyAgY29udGVudDogJyc7XG4vLyAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gIHRvcDogMDtcbi8vICBoZWlnaHQ6IDEwMCU7XG4vLyAgd2lkdGg6IDUwJTtcbi8vICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbi8vIH1cblxuLy8gLmFycm93OmJlZm9yZSB7XG4vLyAgbGVmdDogMDtcbi8vICB0cmFuc2Zvcm06IHNrZXdZKDMwZGVnKTtcbi8vIH1cblxuLy8gLmFycm93OmFmdGVyIHtcbi8vICByaWdodDogMDtcbi8vICB3aWR0aDogNTAlO1xuLy8gIHRyYW5zZm9ybTogc2tld1koLTMwZGVnKTtcbi8vIH1cblxuLy8gQGtleWZyYW1lcyBtb3ZlLWFycm93IHtcbi8vICAyNSUge1xuLy8gICBvcGFjaXR5OiAxO1xuLy8gXHR9XG4vLyAgMzMuMyUge1xuLy8gICBvcGFjaXR5OiAxO1xuLy8gICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJhc2UgKiAzLjgpO1xuLy8gIH1cbi8vICA2Ni42JSB7XG4vLyAgIG9wYWNpdHk6IDE7XG4vLyAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkYmFzZSAqIDUuMik7XG4vLyAgfVxuLy8gIDEwMCUge1xuLy8gICBvcGFjaXR5OiAwO1xuLy8gICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJhc2UgKiA4KSBzY2FsZSgwLjUpO1xuLy8gIH1cbi8vIH0iLCIubG9hZGVyLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgfVxuICBcbiAgQGtleWZyYW1lcyBsb2FkZXItZWNsaXBzZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgXG4gICAgNTAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICBcbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG4gIFxuICBALXdlYmtpdC1rZXlmcmFtZXMgbG9hZGVyLWVjbGlwc2Uge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gIFxuICAgIDUwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgXG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxuICBcbiAgLmxvYWRlci1lY2xpcHNlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgXG4gIC5sb2FkZXItZWNsaXBzZSAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZGVyLWVjbGlwc2UgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogbG9hZGVyLWVjbGlwc2UgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICB0b3A6IDIwcHg7XG4gICAgbGVmdDogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMCAwICMwMEExOUI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA0MHB4IDQxcHg7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNDBweCA0MXB4O1xuICB9XG4gIFxuICAubG9hZGVyLWVjbGlwc2Uge1xuICAgIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTIwcHggIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDBweCwgLTEwMHB4KSBzY2FsZSgxKSB0cmFuc2xhdGUoMTAwcHgsIDEwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwcHgsIC0xMDBweCkgc2NhbGUoMSkgdHJhbnNsYXRlKDEwMHB4LCAxMDBweCk7XG4gIH1cbiAgXG4gIFxuICAuZmFkZU91dCB7XG4gICAgYW5pbWF0aW9uOiBmYWRlT3V0IDEwMDBtcyBmb3J3YXJkcztcbiAgfVxuICBcbiAgQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIFxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH0iLCJcdFxuXG5cblx0I2FkdmFuY2VkLXNlYXJjaF9fZm9ybSB7XG5cdFx0cGFkZGluZy10b3A6IDFlbTtcblx0XHRwYWRkaW5nLWJvdHRvbTogMWVtO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFxuXHRcdGxhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXG5cdFx0YnV0dG9uIHtcblx0ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHQgICAgICBtaW4td2lkdGg6IDEwZW07XG5cdCAgICAgIGhlaWdodDogcmVtLWNhbGMoNDUpO1xuXHQgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0ICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHQgICAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuXHQgICAgICBwYWRkaW5nOiAwO1xuXHQgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXHQgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cblx0ICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG5cdCAgICAgICAgLy8gYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdCAgICAgICAgLy8gY29sb3I6ICRjb2xvci10ZXh0LXdoaXRlO1xuXHQgICAgICAgIC8vIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgJHByaW1hcnktY29sb3I7XG5cdCAgICAgIH1cblxuXHQgICAgICBpIHtcblx0ICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0ICAgICAgICBjb2xvcjogJHdoaXRlO1xuXHQgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQpO1xuXHQgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygzKTtcblx0ICAgICAgfVxuXHQgICAgICBzcGFuIHtcblx0ICAgICAgICAvL0BpbmNsdWRlIHNob3ctZm9yLXNyO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdH1cblxuXG5cdFx0LmFkdmFuY2VkLXNlYXJjaF9fY2F0ZWdvcmllcyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdFx0XHQvLyBjb2x1bW4tY291bnQ6IDM7XG5cdFx0fVx0XG5cblxuXG5cdC5zYXMtZmlsdGVyX19yZW1vdmUge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IDFlbTtcblx0fVxuXG5cblxuXHQjc2FzLXBhZ2luYXRpb24ge1xuXHRcdG1hcmdpbi1ib3R0b206IDFlbTtcblx0XHRcblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdH1cblxuXHRcdGxpIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cdH0iXX0= */
