@charset "UTF-8";
/*  COLORS
--------------------------------------

[ modifying foundations default palette ]

$foundation-palette: (
  primary: #E44347,
  mars: #D7525C,
  saturn: #E4B884,
  neptune: #5147D7,
)

Using the above palette, we can add the .mars, .saturn, or .neptune classes to buttons, labels, badges, and more.

To access the colors in your code, use Sass's map-get() function:

.mars {
  color: map-get($foundation-palette, mars);
}

-------------------------------------- */
.bg-wht {
  background: #fafafa;
}

.bg-blk {
  background: #000222;
}

.bg-blkalt {
  background: #3c4245;
}

.bg-blkdrk {
  background: #000000;
}

.bg-whtlite {
  background: #fff;
}

.bg-gry {
  background: #ebebeb;
}

.bg-gray {
  background: #ebebeb;
}

.bg-grylite {
  background: #e1e1e1;
}

.bg-gryslvr {
  background: #dadada;
}

.bg-gry_muted {
  background: #b8b7b4;
}

.bg-grydrk {
  background: #464646;
}

.bg-slate {
  background: #404040;
}

.bg-blu {
  background: #598db2;
}

.bg-blue {
  background: #003146;
}

.bg-blue-bright {
  background: #00b2e2;
}

.bg-bludrk {
  background: #294c65;
}

.bg-pch {
  background: #ffe0b2;
}

.bg-gld {
  background: #ffb74d;
}

.bg-trq {
  background: #006064;
}

.bg-teal {
  background: #1CB0B5;
}

.bg-navy {
  background: #192857;
}

.bg-green {
  background: #64A70B;
}

.txt-wht {
  color: #fafafa;
}

.txt-wht-hover:hover {
  color: #fafafa;
}

.txt-blk {
  color: #000222;
}

.txt-blkalt {
  color: #3c4245;
}

.txt-blkdrk {
  color: #000000;
}

.txt-slate {
  color: #404040;
}

.txt-gry {
  color: #ebebeb;
}

.txt-grylite {
  color: #e1e1e1 !important;
}

.txt-gryslvr {
  color: #dadada;
}

.txt-grydrk {
  color: #464646;
}

.txt-gry_muted {
  color: #b8b7b4;
}

.txt-blu {
  color: #598db2;
}

.txt-blue {
  color: #003146;
}

.txt-navy {
  color: #192857;
}

.txt-bludrk {
  color: #598db2;
}

.txt-pch {
  color: #ffe0b2;
}

.txt-gld {
  color: #ffb74d;
}

.txt-trq {
  color: #006064;
}

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

/**
 * 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: #fafafa;
  font-family: "Montserrat", "Gotham", "Open Sans", "Helvetica Neue", Helvetica, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

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

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

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

button {
  padding: 0;
  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: ' ';
  flex-basis: 0;
  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;
  }
}

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

.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: "Montserrat", "Gotham", "Open Sans", "Helvetica Neue", Helvetica, 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: #cacaca;
}

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

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

h3, .h3 {
  font-size: 1.1875rem;
  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: 2rem;
  }
  h2, .h2 {
    font-size: 1.875rem;
  }
  h3, .h3 {
    font-size: 1.625rem;
  }
  h4, .h4 {
    font-size: 1.25rem;
  }
  h5, .h5 {
    font-size: 1.125rem;
  }
  h6, .h6 {
    font-size: 1rem;
  }
}

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

a {
  line-height: inherit;
  color: #192857;
  text-decoration: none;
  cursor: pointer;
}

a:hover, a:focus {
  color: #16224b;
}

a img {
  border: 0;
}

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

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

li {
  font-size: inherit;
}

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

ol {
  margin-left: 1.25rem;
}

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

dl {
  margin-bottom: 1rem;
}

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

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca;
}

blockquote, blockquote p {
  line-height: 1.6;
  color: #8a8a8a;
}

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

cite:before {
  content: "— ";
}

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

figure {
  margin: 0;
}

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

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

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

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

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

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

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

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !important;
    text-shadow: none !important;
  }
  .show-for-print {
    display: block !important;
  }
  .hide-for-print {
    display: none !important;
  }
  table.show-for-print {
    display: table !important;
  }
  thead.show-for-print {
    display: table-header-group !important;
  }
  tbody.show-for-print {
    display: table-row-group !important;
  }
  tr.show-for-print {
    display: table-row !important;
  }
  td.show-for-print {
    display: table-cell !important;
  }
  th.show-for-print {
    display: table-cell !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: '';
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .print-break-inside {
    page-break-inside: auto;
  }
}

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

[type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
textarea:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fafafa;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

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

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

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

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

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

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

[type='checkbox'] + label[for],
[type='radio'] + label[for] {
  cursor: pointer;
}

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

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

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

label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

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

.input-group {
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  align-items: stretch;
}

.input-group > :first-child {
  border-radius: 0 0 0 0;
}

.input-group > :last-child > * {
  border-radius: 0 0 0 0;
}

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

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: flex;
  flex: 0 0 auto;
  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;
  flex: 1 1 0px;
  height: auto;
  min-width: 0;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  display: flex;
  flex: 0 0 auto;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  height: auto;
  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 #cacaca;
}

.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
}

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

select:focus {
  outline: none;
  border: 1px solid #8a8a8a;
  background-color: #fafafa;
  box-shadow: 0 0 5px #cacaca;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
}

select:disabled {
  background-color: #e6e6e6;
  cursor: not-allowed;
}

select::-ms-expand {
  display: none;
}

select[multiple] {
  height: auto;
  background-image: none;
}

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f5e9e7;
}

.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 {
  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: #192857;
  color: #fafafa;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button:hover, .button:focus {
  background-color: #15224a;
  color: #fafafa;
}

.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: #192857;
  color: #fafafa;
}

.button.primary:hover, .button.primary:focus {
  background-color: #142046;
  color: #fafafa;
}

.button.secondary {
  background-color: #c8922b;
  color: #0a0a0a;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #a07522;
  color: #0a0a0a;
}

.button.success {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button.warning {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button.alert {
  background-color: #cc4b37;
  color: #0a0a0a;
}

.button.alert:hover, .button.alert:focus {
  background-color: #a53b2a;
  color: #0a0a0a;
}

.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: #192857;
  color: #fafafa;
}

.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: #192857;
  color: #fafafa;
}

.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: #c8922b;
  color: #0a0a0a;
}

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

.button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #3adb76;
  color: #0a0a0a;
}

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

.button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #ffae00;
  color: #0a0a0a;
}

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

.button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #cc4b37;
  color: #0a0a0a;
}

.button.hollow {
  border: 1px solid #192857;
  color: #192857;
}

.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: #0d142c;
  color: #0d142c;
}

.button.hollow:hover.disabled, .button.hollow:hover[disabled], .button.hollow:focus.disabled, .button.hollow:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow.primary {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: #0d142c;
  color: #0d142c;
}

.button.hollow.primary:hover.disabled, .button.hollow.primary:hover[disabled], .button.hollow.primary:focus.disabled, .button.hollow.primary:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.button.hollow.secondary {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #644916;
  color: #644916;
}

.button.hollow.secondary:hover.disabled, .button.hollow.secondary:hover[disabled], .button.hollow.secondary:focus.disabled, .button.hollow.secondary:focus[disabled] {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.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 #192857;
  color: #192857;
}

.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: #0d142c;
  color: #0d142c;
}

.button.clear:hover.disabled, .button.clear:hover[disabled], .button.clear:focus.disabled, .button.clear:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.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 #192857;
  color: #192857;
}

.button.clear.primary:hover, .button.clear.primary:focus {
  border-color: #0d142c;
  color: #0d142c;
}

.button.clear.primary:hover.disabled, .button.clear.primary:hover[disabled], .button.clear.primary:focus.disabled, .button.clear.primary:focus[disabled] {
  border: 1px solid #192857;
  color: #192857;
}

.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 #c8922b;
  color: #c8922b;
}

.button.clear.secondary:hover, .button.clear.secondary:focus {
  border-color: #644916;
  color: #644916;
}

.button.clear.secondary:hover.disabled, .button.clear.secondary:hover[disabled], .button.clear.secondary:focus.disabled, .button.clear.secondary:focus[disabled] {
  border: 1px solid #c8922b;
  color: #c8922b;
}

.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: #fafafa transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}

.button.dropdown.hollow::after {
  border-top-color: #192857;
}

.button.dropdown.hollow.primary::after {
  border-top-color: #192857;
}

.button.dropdown.hollow.secondary::after {
  border-top-color: #c8922b;
}

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

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

.accordion[disabled] .accordion-title {
  cursor: not-allowed;
}

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

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

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #192857;
}

:last-child:not(.is-active) > .accordion-title {
  border-bottom: 1px solid #e6e6e6;
  border-radius: 0 0 0 0;
}

.accordion-title:hover, .accordion-title:focus {
  background-color: #e6e6e6;
}

.accordion-title::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  margin-top: -0.5rem;
  content: '+';
}

.is-active > .accordion-title::before {
  content: '\2013';
}

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

:last-child > .accordion-content:last-child {
  border-bottom: 1px solid #e6e6e6;
}

.accordion-menu li {
  width: 100%;
}

.accordion-menu a {
  padding: 0.7rem 1rem;
}

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem;
}

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem;
}

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0;
}

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative;
}

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

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  left: auto;
  right: 1rem;
}

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem;
}

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

.is-accordion-submenu-parent {
  position: relative;
}

.has-submenu-toggle > a {
  margin-right: 40px;
}

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  width: 40px;
  height: 40px;
}

.submenu-toggle::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #192857 transparent transparent;
  top: 0;
  bottom: 0;
  margin: auto;
}

.submenu-toggle[aria-expanded='true']::after {
  transform: scaleY(-1);
  transform-origin: 50% 50%;
}

.submenu-toggle-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  clip-path: inset(50%);
  border: 0;
}

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #192857;
  color: #fafafa;
}

.badge.primary {
  background: #192857;
  color: #fafafa;
}

.badge.secondary {
  background: #c8922b;
  color: #0a0a0a;
}

.badge.success {
  background: #3adb76;
  color: #0a0a0a;
}

.badge.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.badge.alert {
  background: #cc4b37;
  color: #0a0a0a;
}

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none;
}

.breadcrumbs::before, .breadcrumbs::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.breadcrumbs::after {
  clear: both;
}

.breadcrumbs li {
  float: left;
  font-size: 0.6875rem;
  color: #0a0a0a;
  cursor: default;
  text-transform: uppercase;
}

.breadcrumbs li:not(:last-child)::after {
  position: relative;
  margin: 0 0.75rem;
  opacity: 1;
  content: "/";
  color: #cacaca;
}

.breadcrumbs a {
  color: #192857;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

.breadcrumbs .disabled {
  color: #cacaca;
  cursor: not-allowed;
}

.button-group {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
}

.button-group::before, .button-group::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.button-group::after {
  clear: both;
}

.button-group .button {
  margin: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  font-size: 0.9rem;
  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 {
  flex: 1 1 0px;
}

.button-group.primary .button {
  background-color: #192857;
  color: #fafafa;
}

.button-group.primary .button:hover, .button-group.primary .button:focus {
  background-color: #142046;
  color: #fafafa;
}

.button-group.secondary .button {
  background-color: #c8922b;
  color: #0a0a0a;
}

.button-group.secondary .button:hover, .button-group.secondary .button:focus {
  background-color: #a07522;
  color: #0a0a0a;
}

.button-group.success .button {
  background-color: #3adb76;
  color: #0a0a0a;
}

.button-group.success .button:hover, .button-group.success .button:focus {
  background-color: #22bb5b;
  color: #0a0a0a;
}

.button-group.warning .button {
  background-color: #ffae00;
  color: #0a0a0a;
}

.button-group.warning .button:hover, .button-group.warning .button:focus {
  background-color: #cc8b00;
  color: #0a0a0a;
}

.button-group.alert .button {
  background-color: #cc4b37;
  color: #0a0a0a;
}

.button-group.alert .button:hover, .button-group.alert .button:focus {
  background-color: #a53b2a;
  color: #0a0a0a;
}

.button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
  flex-wrap: wrap;
}

.button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
  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 {
    flex: 1 1 0px;
    margin-bottom: 0;
  }
}

@media print, screen and (min-width: 64em) {
  .button-group.stacked-for-medium .button {
    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;
  }
}

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: #fefefe;
  color: #0a0a0a;
}

.callout > :first-child {
  margin-top: 0;
}

.callout > :last-child {
  margin-bottom: 0;
}

.callout.primary {
  background-color: #d1d9f2;
  color: #0a0a0a;
}

.callout.secondary {
  background-color: #f8efde;
  color: #0a0a0a;
}

.callout.success {
  background-color: #e1faea;
  color: #0a0a0a;
}

.callout.warning {
  background-color: #fff3d9;
  color: #0a0a0a;
}

.callout.alert {
  background-color: #f7e4e1;
  color: #0a0a0a;
}

.callout.small {
  padding-top: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.5rem;
}

.callout.large {
  padding-top: 3rem;
  padding-right: 3rem;
  padding-bottom: 3rem;
  padding-left: 3rem;
}

.card {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fafafa;
  box-shadow: none;
  overflow: hidden;
  color: #0a0a0a;
}

.card > :last-child {
  margin-bottom: 0;
}

.card-divider {
  flex: 0 1 auto;
  display: flex;
  padding: 1rem;
  background: #e6e6e6;
}

.card-divider > :last-child {
  margin-bottom: 0;
}

.card-section {
  flex: 1 0 auto;
  padding: 1rem;
}

.card-section > :last-child {
  margin-bottom: 0;
}

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

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover, .close-button:focus {
  color: #0a0a0a;
}

.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}

.close-button, .close-button.medium {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: flex;
  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 {
  flex-wrap: wrap;
  flex-direction: row;
}

.menu.vertical {
  flex-wrap: nowrap;
  flex-direction: column;
}

.menu.expanded li {
  flex: 1 1 0px;
}

.menu.simple {
  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 {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.medium-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.medium-expanded li {
    flex: 1 1 0px;
  }
  .menu.medium-simple li {
    flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    flex-wrap: wrap;
    flex-direction: row;
  }
  .menu.large-vertical {
    flex-wrap: nowrap;
    flex-direction: column;
  }
  .menu.large-expanded li {
    flex: 1 1 0px;
  }
  .menu.large-simple li {
    flex: 1 1 0px;
  }
}

.menu.nested {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.icons a {
  display: flex;
}

.menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
  display: flex;
}

.menu.icon-left li a {
  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 {
  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 {
  flex-flow: column nowrap;
}

.menu.icon-top li a img,
.menu.icon-top li a i,
.menu.icon-top li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu.icon-bottom li a {
  flex-flow: column nowrap;
}

.menu.icon-bottom li a img,
.menu.icon-bottom li a i,
.menu.icon-bottom li a svg {
  align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu .is-active > a {
  background: #192857;
  color: #fafafa;
}

.menu .active > a {
  background: #192857;
  color: #fafafa;
}

.menu.align-left {
  justify-content: flex-start;
}

.menu.align-right li {
  display: flex;
  justify-content: flex-end;
}

.menu.align-right li .submenu li {
  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: flex;
  justify-content: center;
}

.menu.align-center li .submenu li {
  justify-content: flex-start;
}

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

.menu-centered > .menu {
  justify-content: center;
}

.menu-centered > .menu li {
  display: flex;
  justify-content: center;
}

.menu-centered > .menu li .submenu li {
  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: #fafafa;
  box-shadow: 0 7px 0 #fafafa, 0 14px 0 #fafafa;
  content: '';
}

.menu-icon:hover::after {
  background: #cacaca;
  box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #0a0a0a;
  box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #8a8a8a;
  box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
}

.is-drilldown {
  position: relative;
  overflow: hidden;
}

.is-drilldown li {
  display: block;
}

.is-drilldown.animate-height {
  transition: height 0.5s;
}

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

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fafafa;
  transition: transform 0.15s linear;
}

.drilldown .is-drilldown-submenu.is-active {
  z-index: 1;
  display: block;
  transform: translateX(-100%);
}

.drilldown .is-drilldown-submenu.is-closing {
  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 #192857;
}

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

.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 #192857 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 #192857 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: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  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 > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem;
}

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

.dropdown.menu a {
  padding: 0.7rem 1rem;
}

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

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

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

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

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

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

@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-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #192857 transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    right: auto;
    left: 5px;
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #192857 transparent transparent;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #192857;
  }
}

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

.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 #cacaca;
  background: #fafafa;
}

.dropdown .is-dropdown-submenu a {
  padding: 0.7rem 1rem;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  right: auto;
  left: 5px;
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #192857 transparent transparent;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #192857;
}

.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: #192857;
  color: #fafafa;
}

.label.primary {
  background: #192857;
  color: #fafafa;
}

.label.secondary {
  background: #c8922b;
  color: #0a0a0a;
}

.label.success {
  background: #3adb76;
  color: #0a0a0a;
}

.label.warning {
  background: #ffae00;
  color: #0a0a0a;
}

.label.alert {
  background: #cc4b37;
  color: #0a0a0a;
}

.media-object {
  display: flex;
  margin-bottom: 1rem;
  flex-wrap: nowrap;
}

.media-object img {
  max-width: none;
}

@media screen and (max-width: 39.9375em) {
  .media-object.stack-for-small {
    flex-wrap: wrap;
  }
}

@media screen and (max-width: 39.9375em) {
  .media-object.stack-for-small .media-object-section {
    padding: 0;
    padding-bottom: 1rem;
    flex-basis: 100%;
    max-width: 100%;
  }
  .media-object.stack-for-small .media-object-section img {
    width: 100%;
  }
}

.media-object-section {
  flex: 0 1 auto;
}

.media-object-section:first-child {
  padding-right: 1rem;
}

.media-object-section:last-child:not(:nth-child(2)) {
  padding-left: 1rem;
}

.media-object-section > :last-child {
  margin-bottom: 0;
}

.media-object-section.main-section {
  flex: 1 1 0px;
}

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

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(250, 250, 250, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
}

.js-off-canvas-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.js-off-canvas-overlay.is-closable {
  cursor: pointer;
}

.js-off-canvas-overlay.is-overlay-absolute {
  position: absolute;
}

.js-off-canvas-overlay.is-overlay-fixed {
  position: fixed;
}

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

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e6e6e6;
}

[data-whatinput='mouse'] .off-canvas {
  outline: 0;
}

.off-canvas.is-transition-push {
  z-index: 12;
}

.off-canvas.is-closed {
  visibility: hidden;
}

.off-canvas.is-transition-overlap {
  z-index: 13;
}

.off-canvas.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas.is-open {
  transform: translate(0, 0);
}

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: transform 0.5s ease;
  backface-visibility: hidden;
  background: #e6e6e6;
}

[data-whatinput='mouse'] .off-canvas-absolute {
  outline: 0;
}

.off-canvas-absolute.is-transition-push {
  z-index: 12;
}

.off-canvas-absolute.is-closed {
  visibility: hidden;
}

.off-canvas-absolute.is-transition-overlap {
  z-index: 13;
}

.off-canvas-absolute.is-transition-overlap.is-open {
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.off-canvas-absolute.is-open {
  transform: translate(0, 0);
}

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left {
  transform: translateX(-250px);
}

.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-left.has-transition-push {
  transform: translateX(250px);
}

.position-left.is-transition-push {
  box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right {
  transform: translateX(250px);
}

.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-right.has-transition-push {
  transform: translateX(-250px);
}

.position-right.is-transition-push {
  box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
}

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top {
  transform: translateY(-250px);
}

.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-top.has-transition-push {
  transform: translateY(250px);
}

.position-top.is-transition-push {
  box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
}

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom {
  transform: translateY(250px);
}

.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
  transform: translate(0, 0);
}

.off-canvas-content.is-open-bottom.has-transition-push {
  transform: translateY(-250px);
}

.position-bottom.is-transition-push {
  box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
}

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

.off-canvas-content.has-transition-push {
  transform: translate(0, 0);
}

.off-canvas-content .off-canvas.is-open {
  transform: translate(0, 0);
}

@media print, screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-left.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-left.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-left {
    margin-left: 250px;
  }
  .position-left.reveal-for-medium ~ .off-canvas-content {
    margin-left: 250px;
  }
  .position-right.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-right.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-right.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-right {
    margin-right: 250px;
  }
  .position-right.reveal-for-medium ~ .off-canvas-content {
    margin-right: 250px;
  }
  .position-top.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-top.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-top.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-top {
    margin-top: 250px;
  }
  .position-top.reveal-for-medium ~ .off-canvas-content {
    margin-top: 250px;
  }
  .position-bottom.reveal-for-medium {
    transform: none;
    z-index: 12;
    transition: none;
    visibility: visible;
  }
  .position-bottom.reveal-for-medium .close-button {
    display: none;
  }
  .off-canvas-content .position-bottom.reveal-for-medium {
    transform: none;
  }
  .off-canvas-content.has-reveal-bottom {
    margin-bottom: 250px;
  }
  .position-bottom.reveal-for-medium ~ .off-canvas-content {
    margin-bottom: 250px;
  }
}

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

@media print, screen and (min-width: 40em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: inherit;
    width: inherit;
    overflow: inherit;
    transition: inherit;
  }
  .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
    box-shadow: none;
    transform: none;
  }
  .off-canvas.in-canvas-for-medium .close-button {
    display: none;
  }
}

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: inherit;
    width: inherit;
    overflow: inherit;
    transition: inherit;
  }
  .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
    box-shadow: none;
    transform: none;
  }
  .off-canvas.in-canvas-for-large .close-button {
    display: none;
  }
}

.orbit {
  position: relative;
}

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

.orbit-slide {
  width: 100%;
}

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

.orbit-figure {
  margin: 0;
}

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

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

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fafafa;
}

[data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
  outline: 0;
}

.orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
  background-color: rgba(10, 10, 10, 0.5);
}

.orbit-previous {
  left: 0;
}

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

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}

[data-whatinput='mouse'] .orbit-bullets {
  outline: 0;
}

.orbit-bullets button {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.1rem;
  border-radius: 50%;
  background-color: #cacaca;
}

.orbit-bullets button:hover {
  background-color: #8a8a8a;
}

.orbit-bullets button.is-active {
  background-color: #8a8a8a;
}

.pagination {
  margin-left: 0;
  margin-bottom: 1rem;
}

.pagination::before, .pagination::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.pagination::after {
  clear: both;
}

.pagination li {
  margin-right: 0.0625rem;
  border-radius: 0;
  font-size: 0.875rem;
  display: none;
}

.pagination li:last-child, .pagination li:first-child {
  display: inline-block;
}

@media print, screen and (min-width: 40em) {
  .pagination li {
    display: inline-block;
  }
}

.pagination a,
.pagination button {
  display: block;
  padding: 0.1875rem 0.625rem;
  border-radius: 0;
  color: #0a0a0a;
}

.pagination a:hover,
.pagination button:hover {
  background: #e6e6e6;
}

.pagination .current {
  padding: 0.1875rem 0.625rem;
  background: #192857;
  color: #fafafa;
  cursor: default;
}

.pagination .disabled {
  padding: 0.1875rem 0.625rem;
  color: #cacaca;
  cursor: not-allowed;
}

.pagination .disabled:hover {
  background: transparent;
}

.pagination .ellipsis::after {
  padding: 0.1875rem 0.625rem;
  content: '\2026';
  color: #0a0a0a;
}

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

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

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca;
}

.progress.primary .progress-meter {
  background-color: #192857;
}

.progress.secondary .progress-meter {
  background-color: #c8922b;
}

.progress.success .progress-meter {
  background-color: #3adb76;
}

.progress.warning .progress-meter {
  background-color: #ffae00;
}

.progress.alert .progress-meter {
  background-color: #cc4b37;
}

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

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

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

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

.slider-fill.is-dragging {
  transition: all 0s linear;
}

.slider-handle {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #192857;
  transition: all 0.2s ease-in-out;
  touch-action: manipulation;
}

[data-whatinput='mouse'] .slider-handle {
  outline: 0;
}

.slider-handle:hover {
  background-color: #15224a;
}

.slider-handle.is-dragging {
  transition: all 0s linear;
}

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

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  transform: scale(1, -1);
}

.slider.vertical .slider-fill {
  top: 0;
  width: 0.5rem;
  max-height: 100%;
}

.slider.vertical .slider-handle {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1.4rem;
  height: 1.4rem;
  transform: translateX(-50%);
}

.sticky-container {
  position: relative;
}

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

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%;
}

.sticky.is-stuck.is-at-top {
  top: 0;
}

.sticky.is-stuck.is-at-bottom {
  bottom: 0;
}

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

.sticky.is-anchored.is-at-bottom {
  bottom: 0;
}

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

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

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

.reveal {
  z-index: 1006;
  backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fafafa;
  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;
}

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

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

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer;
}

input + .switch-paddle {
  margin: 0;
}

.switch-paddle::after {
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  transform: translate3d(0, 0, 0);
  border-radius: 0;
  background: #fafafa;
  transition: all 0.25s ease-out;
  content: '';
}

input:checked ~ .switch-paddle {
  background: #192857;
}

input:checked ~ .switch-paddle::after {
  left: 2.25rem;
}

[data-whatinput='mouse'] input:focus ~ .switch-paddle {
  outline: 0;
}

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

.switch-active {
  left: 8%;
  display: none;
}

input:checked + label > .switch-active {
  display: block;
}

.switch-inactive {
  right: 15%;
}

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

.switch.tiny {
  height: 1.5rem;
}

.switch.tiny .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem;
}

.switch.tiny .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1rem;
  height: 1rem;
}

.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem;
}

.switch.small {
  height: 1.75rem;
}

.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

.switch.small .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
}

.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem;
}

.switch.large {
  height: 2.5rem;
}

.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem;
}

.switch.large .switch-paddle::after {
  top: 0.25rem;
  left: 0.25rem;
  width: 2rem;
  height: 2rem;
}

.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0;
}

thead,
tbody,
tfoot {
  border: 1px solid #eeeeee;
  background-color: #fafafa;
}

caption {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
}

thead {
  background: #f4f4f4;
  color: #0a0a0a;
}

tfoot {
  background: #eeeeee;
  color: #0a0a0a;
}

thead tr,
tfoot tr {
  background: transparent;
}

thead th,
thead td,
tfoot th,
tfoot td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-weight: bold;
  text-align: left;
}

tbody th,
tbody td {
  padding: 0.5rem 0.625rem 0.625rem;
}

tbody tr:nth-child(even) {
  border-bottom: 0;
  background-color: #eeeeee;
}

table.unstriped tbody {
  background-color: #fafafa;
}

table.unstriped tbody tr {
  border-bottom: 0;
  border-bottom: 1px solid #eeeeee;
  background-color: #fafafa;
}

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

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

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

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

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

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

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

.table-scroll table {
  width: auto;
}

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fafafa;
  list-style-type: none;
}

.tabs::before, .tabs::after {
  display: table;
  content: ' ';
  flex-basis: 0;
  order: 1;
}

.tabs::after {
  clear: both;
}

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

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

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

.tabs.primary {
  background: #192857;
}

.tabs.primary > li > a {
  color: #fafafa;
}

.tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
  background: #1d2f66;
}

.tabs-title {
  float: left;
}

.tabs-title > a {
  display: block;
  padding: 1.25rem 1.5rem;
  font-size: 0.75rem;
  line-height: 1;
  color: #192857;
}

.tabs-title > a:hover {
  background: #fafafa;
  color: #16224b;
}

.tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
  background: #e6e6e6;
  color: #192857;
}

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

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

.tabs-panel {
  display: none;
  padding: 1rem;
}

.tabs-panel.is-active {
  display: block;
}

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

a.thumbnail {
  transition: box-shadow 200ms ease-out;
}

a.thumbnail:hover, a.thumbnail:focus {
  box-shadow: 0 0 6px 1px rgba(25, 40, 87, 0.5);
}

a.thumbnail image {
  box-shadow: none;
}

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fafafa;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.title-bar .menu-icon {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

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

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

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

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

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fafafa;
}

.tooltip::before {
  position: absolute;
}

.tooltip.bottom::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-top-width: 0;
  border-bottom-style: solid;
  border-color: transparent transparent #0a0a0a;
  bottom: 100%;
}

.tooltip.bottom.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.tooltip.top::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #0a0a0a transparent transparent;
  top: 100%;
  bottom: auto;
}

.tooltip.top.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.tooltip.left::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #0a0a0a;
  left: 100%;
}

.tooltip.left.align-center::before {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.tooltip.right::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.75rem;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #0a0a0a transparent transparent;
  right: 100%;
  left: auto;
}

.tooltip.right.align-center::before {
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.tooltip.align-top::before {
  bottom: auto;
  top: 10%;
}

.tooltip.align-bottom::before {
  bottom: 10%;
  top: auto;
}

.tooltip.align-left::before {
  left: 10%;
  right: auto;
}

.tooltip.align-right::before {
  left: auto;
  right: 10%;
}

.top-bar {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem;
  flex-wrap: wrap;
}

.top-bar,
.top-bar ul {
  background-color: #e6e6e6;
}

.top-bar input {
  max-width: 200px;
  margin-right: 1rem;
}

.top-bar .input-group-field {
  width: 100%;
  margin-right: 0;
}

.top-bar input.button {
  width: auto;
}

.top-bar .top-bar-left,
.top-bar .top-bar-right {
  flex: 0 0 100%;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .top-bar {
    flex-wrap: nowrap;
  }
  .top-bar .top-bar-left {
    flex: 1 1 auto;
    margin-right: auto;
  }
  .top-bar .top-bar-right {
    flex: 0 1 auto;
    margin-left: auto;
  }
}

@media screen and (max-width: 63.9375em) {
  .top-bar.stacked-for-medium {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-medium .top-bar-left,
  .top-bar.stacked-for-medium .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

@media screen and (max-width: 74.9375em) {
  .top-bar.stacked-for-large {
    flex-wrap: wrap;
  }
  .top-bar.stacked-for-large .top-bar-left,
  .top-bar.stacked-for-large .top-bar-right {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

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

.top-bar-left,
.top-bar-right {
  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;
  }
}

.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;
  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;
  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: ' ';
  flex-basis: 0;
  order: 1;
}

.clearfix::after {
  clear: both;
}

/* .clearfix { *zoom: 1; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }*/
.content-cntrd {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* background mixin (wip)
@mixin background($bg-color $bg-img_url $bg-attachment $bg-position_x $bg-position_y $bg-repeat $bg-size) {
    background-color:           $bg-color;
    background-image:       url($bg-img_url);
    background-attachment:      $bg-attachment;
    background-position:        $bg-position_x
                                $bg-position_y;
    background-repeat:          $bg-repeat;
    -webkit-background-size:    $bg-size;
       -moz-background-size:    $bg-size;
         -o-background-size:    $bg-size;
            background-size:    $bg-size;
}
*/
/*  COLORS
--------------------------------------

[ modifying foundations default palette ]

$foundation-palette: (
  primary: #E44347,
  mars: #D7525C,
  saturn: #E4B884,
  neptune: #5147D7,
)

Using the above palette, we can add the .mars, .saturn, or .neptune classes to buttons, labels, badges, and more.

To access the colors in your code, use Sass's map-get() function:

.mars {
  color: map-get($foundation-palette, mars);
}

-------------------------------------- */
.bg-wht {
  background: #fafafa;
}

.bg-blk {
  background: #000222;
}

.bg-blkalt {
  background: #3c4245;
}

.bg-blkdrk {
  background: #000000;
}

.bg-whtlite {
  background: #fff;
}

.bg-gry {
  background: #ebebeb;
}

.bg-gray {
  background: #ebebeb;
}

.bg-grylite {
  background: #e1e1e1;
}

.bg-gryslvr {
  background: #dadada;
}

.bg-gry_muted {
  background: #b8b7b4;
}

.bg-grydrk {
  background: #464646;
}

.bg-slate {
  background: #404040;
}

.bg-blu {
  background: #598db2;
}

.bg-blue {
  background: #003146;
}

.bg-blue-bright {
  background: #00b2e2;
}

.bg-bludrk {
  background: #294c65;
}

.bg-pch {
  background: #ffe0b2;
}

.bg-gld {
  background: #ffb74d;
}

.bg-trq {
  background: #006064;
}

.bg-teal {
  background: #1CB0B5;
}

.bg-navy {
  background: #192857;
}

.bg-green {
  background: #64A70B;
}

.txt-wht {
  color: #fafafa;
}

.txt-wht-hover:hover {
  color: #fafafa;
}

.txt-blk {
  color: #000222;
}

.txt-blkalt {
  color: #3c4245;
}

.txt-blkdrk {
  color: #000000;
}

.txt-slate {
  color: #404040;
}

.txt-gry {
  color: #ebebeb;
}

.txt-grylite {
  color: #e1e1e1 !important;
}

.txt-gryslvr {
  color: #dadada;
}

.txt-grydrk {
  color: #464646;
}

.txt-gry_muted {
  color: #b8b7b4;
}

.txt-blu {
  color: #598db2;
}

.txt-blue {
  color: #003146;
}

.txt-navy {
  color: #192857;
}

.txt-bludrk {
  color: #598db2;
}

.txt-pch {
  color: #ffe0b2;
}

.txt-gld {
  color: #ffb74d;
}

.txt-trq {
  color: #006064;
}

/* BREAKPOINTS & EM QUICKVIEW
===========================================

1em = 16px
2em = 32px
3em = 48px
4em = 64px

0.0625em   =       1px
0.125em    =       2px
0.15625em  =       2.5px
0.1875em   =       3px
0.3125em   =       5px 
0.625em    =      10px
0.9375em   =      15px
1.25em     =      20px
1.5625em   =      25px
2.5em      =      40px
3.125em    =      50px
3.375em;   =      54px - back-to-top bottom + bottom navbar height
4.6875em   =      75px
6.25em     =     100px

20em =  320px - iPhone 5
30em =  480px
40em =  640px - foundation medium
50em =  800px
60em =  960px
64em = 1024px - iPad / foundation large
70em = 1120px
80em = 1280px

63.9375em =    1023px - single page - goal title switch to tablet view
81.25em   =    1300px
87.5em    =    1400px - where GOVERNMENT overlaps edge

*/
/* Small only */
/* Medium and up */
/* Medium only */
/* Large and up */
/* Large only */
/** Define width Values for JS reference **/
.width-definitions {
  visibility: hidden;
}

.width-definitions div {
  visibility: hidden;
}

.width-definitions .width-small {
  width: 39.9375em;
}

.width-definitions .width-medium {
  width: 63.9375em;
}

.width-definitions .width-large {
  width: 74.9375em;
}

@media screen and (max-width: 20em) {
  .wrapp-100 {
    padding: 0.9375em 0.625em;
  }
}

@media screen and (min-width: 20.01em) and (max-width: 39.9375em) {
  .wrapp-100 {
    padding: 1.25em 0.625em;
  }
}

.mt25 {
  margin-top: 25px;
}

.mb25 {
  margin-bottom: 25px;
}

.mb75 {
  margin-bottom: 75px;
}

.mtb75 {
  margin-top: 75px;
  margin-bottom: 75px;
}

.pt0 {
  padding-top: 0px !important;
}

.p10 {
  padding: 10px;
}

.p15 {
  padding: 15px;
}

.p25 {
  padding: 25px;
}

.p50 {
  padding: 50px;
}

.pt10 {
  padding-top: 10px;
}

.pb10 {
  padding-bottom: 10px;
}

.ptb10 {
  padding-top: 10px;
  padding-bottom: 10px;
}

.pt15 {
  padding-top: 15px;
}

.pb15 {
  padding-bottom: 15px;
}

.pr15 {
  padding-right: 15px;
}

.ptb15 {
  padding-top: 15px;
  padding-bottom: 15px;
}

.pt25 {
  padding-top: 25px;
}

.pb25 {
  padding-bottom: 25px;
}

.ptb25 {
  padding-top: 25px;
  padding-bottom: 25px;
}

.pt50 {
  padding-top: 50px;
}

.pb50 {
  padding-bottom: 50px;
}

.ptb50 {
  padding-top: 50px;
  padding-bottom: 50px;
}

.ptlr50 {
  padding-top: 50px;
  padding-left: 50px;
  padding-right: 50px;
}

.ptbl50 {
  padding-top: 50px;
  padding-bottom: 50px;
  padding-left: 50px;
}

.pt75 {
  padding-top: 75px;
}

.ptb75 {
  padding-top: 75px;
  padding-bottom: 75px;
}

.pt100 {
  padding-top: 100px;
}

.pb100 {
  padding-bottom: 100px !important;
}

.ptb100 {
  padding-top: 100px;
  padding-bottom: 100px;
}

.padwrap {
  padding: 10px;
}

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

.centered {
  display: block;
  margin: 0 auto;
}

.relative {
  position: relative;
}

.display-none {
  display: none;
}

img.responsive {
  display: block;
  max-width: 100%;
  height: auto;
}

img.alignright {
  float: right;
  margin-left: 25px;
}

.z-top {
  position: relative;
  z-index: 3;
  opacity: 0.99;
}

.z500 {
  z-index: 500;
}

.pipe {
  font-size: 1.5625em;
  padding: 0 0.9375em;
  vertical-align: middle;
}

small {
  vertical-align: middle;
}

small .pipe {
  font-size: 1.5em;
  padding: 0 0.9375em;
  vertical-align: top;
  line-height: 1.5em;
}

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

.is-hidden {
  display: none;
}

.is-found {
  display: block;
  /* transition visibility */
  -webkit-transition: visibility 0s;
  -moz-transition: visibility 0s;
  -o-transition: visibility 0s;
  transition: visibility 0s;
  visibility: visible;
  -webkit-overflow-scrolling: touch;
}

.readmore {
  text-align: center;
  padding-top: 25px;
  padding-bottom: 25px;
}

.readmore a {
  color: #fafafa;
  -webkit-transition: color 0.3s ease;
  -moz-transition: color 0.3s ease;
  -o-transition: color 0.3s ease;
  transition: color 0.3s ease;
}

[data-whatinput="touch"] .readmore a:focus,
[data-whatinput="touch"] .readmore a:active,
[data-whatinput="mouse"] .readmore a:focus,
[data-whatinput="mouse"] .readmore a:active,
[data-whatinput="mouse"] .readmore a:hover, .readmore a:hover, .readmore a:active {
  color: #404040;
}

.external_link {
  position: relative;
}

.external_link:before {
  content: "\f08e";
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  color: #dadada;
  font-size: 18px;
  padding-right: 0.5em;
  position: absolute;
  top: 0px;
  right: 0px;
  padding: 7px 25px;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.nav-is-open {
  overflow-y: scroll;
}

.wrap {
  display: block;
  width: 100%;
}

.wrap:before, .wrap:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrap:after {
  clear: both;
}

.wrapp {
  padding-top: 50px;
  padding-bottom: 50px;
  display: block;
  width: 100%;
}

.wrapp:before, .wrapp:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp:after {
  clear: both;
}

.wrapp-100 {
  padding-top: 100px;
  padding-bottom: 100px;
  display: block;
  width: 100%;
}

.wrapp-100:before, .wrapp-100:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-100:after {
  clear: both;
}

.wrapp-150 {
  padding-top: 150px;
  padding-bottom: 150px;
  display: block;
  width: 100%;
}

.wrapp-150:before, .wrapp-150:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-150:after {
  clear: both;
}

.wrapp-200 {
  padding-top: 200px;
  padding-bottom: 200px;
  display: block;
  width: 100%;
}

.wrapp-200:before, .wrapp-200:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-200:after {
  clear: both;
}

.wrapm {
  margin-top: 100px;
  margin-bottom: 150px;
  display: block;
}

.wrapm:before, .wrapm:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapm:after {
  clear: both;
}

.wrapp-nopad {
  padding-top: 0px;
  padding-bottom: 0px;
  display: block;
  width: 100%;
}

.wrapp-nopad:before, .wrapp-nopad:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-nopad:after {
  clear: both;
}

.wrapp-nopad-150 {
  padding-top: 0px;
  padding-bottom: 150px;
  display: block;
  width: 100%;
}

.wrapp-nopad-150:before, .wrapp-nopad-150:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-nopad-150:after {
  clear: both;
}

.wrapp-search {
  padding: 6.25em 15% 6em;
  display: block;
  width: 100%;
}

.wrapp-search:before, .wrapp-search:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-search:after {
  clear: both;
}

@media screen and (max-width: 39.9375em) {
  .wrapp-search {
    padding-top: 1rem;
    padding-left: 1.5em;
    padding-right: 1.5em;
    padding-bottom: 4rem;
  }
}

.wrapp-location {
  padding-top: 0px;
  padding-bottom: 0px;
  display: block;
  width: 100%;
  position: absolute;
  top: 1.25em;
  right: 0px;
}

.wrapp-location:before, .wrapp-location:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp-location:after {
  clear: both;
}

.wrapp_goes_squish, .topics_header, .wrapp_featured_section, .wrapp_actions, .guides_wrapper.-actions {
  padding: 4.6875em 0;
  display: block;
  width: 100%;
  background-size: cover;
}

.wrapp_goes_squish:before, .topics_header:before, .wrapp_featured_section:before, .wrapp_actions:before, .guides_wrapper.-actions:before, .wrapp_goes_squish:after, .topics_header:after, .wrapp_featured_section:after, .wrapp_actions:after, .guides_wrapper.-actions:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}

.wrapp_goes_squish:after, .topics_header:after, .wrapp_featured_section:after, .wrapp_actions:after, .guides_wrapper.-actions:after {
  clear: both;
}

@media screen and (max-width: 39.9375em) {
  .wrapp_goes_squish, .topics_header, .wrapp_featured_section, .wrapp_actions, .guides_wrapper.-actions {
    padding-top: 0;
    padding-bottom: 0.45rem;
  }
}

.shadow {
  -webkit-box-shadow: 2px 2px 1px rgba(153, 153, 153, 0.83);
  -moz-box-shadow: 2px 2px 1px rgba(153, 153, 153, 0.83);
  box-shadow: 2px 2px 1px rgba(153, 153, 153, 0.83);
}

.shadow-inset {
  -webkit-box-shadow: inset 0 0 12px #000000;
  -moz-box-shadow: inset 0 0 12px #000000;
  box-shadow: inset 0 0 12px #000000;
}

.shadow-center {
  -webkit-box-shadow: 0 8px 6px -6px rgba(153, 153, 153, 0.83);
  -moz-box-shadow: 0 8px 6px -6px rgba(153, 153, 153, 0.83);
  box-shadow: 0 8px 6px -6px rgba(153, 153, 153, 0.83);
}

.shadow-center-2 {
  -webkit-box-shadow: 0 10px 6px -6px #777;
  -moz-box-shadow: 0 10px 6px -6px #777;
  box-shadow: 0 10px 6px -6px #777;
}

.shadow-tb {
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
}

.shadow-tb:before, .shadow-tb:after {
  content: "";
  z-index: -1;
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  top: 0;
  bottom: 0;
  left: 10px;
  right: 10px;
  -moz-border-radius: 100px / 10px;
  border-radius: 100px / 10px;
}

.shadow-tb:after {
  right: 10px;
  left: auto;
  -webkit-transform: skew(8deg) rotate(3deg);
  -moz-transform: skew(8deg) rotate(3deg);
  -ms-transform: skew(8deg) rotate(3deg);
  -o-transform: skew(8deg) rotate(3deg);
  transform: skew(8deg) rotate(3deg);
}

.shadow-page {
  position: relative;
}

.shadow-page:after {
  z-index: -1;
  position: absolute;
  content: "";
  bottom: 15px;
  right: 10px;
  left: auto;
  width: 50%;
  top: 80%;
  max-width: 300px;
  background: #777;
  -webkit-box-shadow: 0 15px 10px #777;
  -moz-box-shadow: 0 15px 10px #777;
  box-shadow: 0 15px 10px #777;
  -webkit-transform: rotate(3deg);
  -moz-transform: rotate(3deg);
  -o-transform: rotate(3deg);
  -ms-transform: rotate(3deg);
  transform: rotate(3deg);
}

.shadow-curve {
  position: relative;
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
}

.shadow-curve:before, .shadow-curve:after {
  content: "";
  position: absolute;
  z-index: -1;
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
  top: 50%;
  bottom: 0;
  left: 10px;
  right: 10px;
  -moz-border-radius: 100px / 10px;
  border-radius: 100px / 10px;
}

/* BACKGROUNDS
========================================= */
.bg {
  position: relative;
  display: block;
  padding: 90px 0;
  background-attachment: scroll;
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  webkit-filter: contrast(1.1);
  -moz-filter: contrast(1.1);
  -ms-filter: contrast(1.1);
  -o-filter: contrast(1.1);
  filter: contrast(1.1);
  -webkit-transition: all ease 1s;
  -moz-transition: all ease 1s;
  -o-transition: all ease 1s;
  transition: all ease 1s;
}

.bg.wrapp-search {
  background-attachment: fixed;
}

.bg::before {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  max-height: 100%;
  background: linear-gradient(transparent, transparent, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
}

.bg.bg-overlay::before {
  background: linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)), linear-gradient(rgba(0, 0, 0, 0.75), rgba(255, 224, 178, 0.25));
}

@media screen and (max-width: 39.9375em) {
  .bg {
    background-attachment: scroll !important;
  }
  .bg .wrapp-search {
    background-attachment: scroll !important;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .bg {
    background-attachment: scroll !important;
  }
  .bg .wrapp-search {
    background-attachment: scroll !important;
  }
}

@media screen and (orientation: landscape) {
  .bg {
    background-attachment: scroll !important;
  }
}

@media screen and (max-width: 39.9375em) {
  .bg {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 200px;
    max-height: 200px;
  }
  .bg > .row {
    min-width: 100%;
    padding-bottom: 0;
  }
}

.outline {
  display: block;
  border: 0.125em solid #fafafa;
  padding: 3.125em;
  color: #fafafa;
  background: rgba(0, 0, 0, 0.175);
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.outline h1, .outline h2, .outline h3, .outline h4, .outline h5, .outline p {
  color: #fafafa;
  font-weight: 700;
}

.outline.outline_wht h1, .outline.outline_wht p {
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .outline.outline_wht:focus,
[data-whatinput="touch"] .outline.outline_wht:active,
[data-whatinput="mouse"] .outline.outline_wht:focus,
[data-whatinput="mouse"] .outline.outline_wht:active,
[data-whatinput="mouse"] .outline.outline_wht:hover, .outline.outline_wht:hover, .outline.outline_wht:active {
  background: #fafafa;
}

[data-whatinput="touch"] .outline.outline_wht:focus h1, [data-whatinput="touch"] .outline.outline_wht:focus p,
[data-whatinput="touch"] .outline.outline_wht:active h1,
[data-whatinput="touch"] .outline.outline_wht:active p,
[data-whatinput="mouse"] .outline.outline_wht:focus h1,
[data-whatinput="mouse"] .outline.outline_wht:focus p,
[data-whatinput="mouse"] .outline.outline_wht:active h1,
[data-whatinput="mouse"] .outline.outline_wht:active p,
[data-whatinput="mouse"] .outline.outline_wht:hover h1,
[data-whatinput="mouse"] .outline.outline_wht:hover p, .outline.outline_wht:hover h1, .outline.outline_wht:hover p, .outline.outline_wht:active h1, .outline.outline_wht:active p {
  color: #404040;
}

.outline.outline_wht_title h1, .outline.outline_wht_title p {
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.outline.outline_slate {
  border: 2px solid #404040;
}

.outline.outline_slate h1, .outline.outline_slate p {
  color: #404040;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .outline.outline_slate:focus,
[data-whatinput="touch"] .outline.outline_slate:active,
[data-whatinput="mouse"] .outline.outline_slate:focus,
[data-whatinput="mouse"] .outline.outline_slate:active,
[data-whatinput="mouse"] .outline.outline_slate:hover, .outline.outline_slate:hover, .outline.outline_slate:active {
  background: #fafafa;
}

.outline.outline_slatealt h1, .outline.outline_slatealt p {
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .outline.outline_slatealt:focus,
[data-whatinput="touch"] .outline.outline_slatealt:active,
[data-whatinput="mouse"] .outline.outline_slatealt:focus,
[data-whatinput="mouse"] .outline.outline_slatealt:active,
[data-whatinput="mouse"] .outline.outline_slatealt:hover, .outline.outline_slatealt:hover, .outline.outline_slatealt:active {
  background: #404040;
  border: 0.125em solid #404040;
}

@media screen and (max-width: 39.9375em) {
  .outline {
    margin: 0;
    padding: 1.25em;
  }
  .outline.outline_wht p {
    margin-bottom: 0.25em;
  }
  .outline.outline_wht p small {
    font-size: 0.85rem;
  }
  .outline.outline_wht h1 {
    font-size: 1.25rem;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .outline {
    padding: 2.5em;
  }
}

.full {
  position: relative;
  color: #fff;
  height: 100vh;
  max-height: 100%;
  /* 100vh */
  width: 100%;
}

.reveal.full {
  color: #003146;
}

._404__search {
  color: #192857;
  min-height: 16em;
  padding-top: 15px;
  padding-bottom: 50px;
}

._404__search .search-input.hide-for-large {
  display: initial !important;
}

._404__search .search-input.show-for-large {
  display: none !important;
}

._404__header {
  color: #192857;
  margin-bottom: 20px;
  text-align: center;
}

._404__wrapp {
  padding-top: 22vh !important;
}

.template__acf-page #content {
  padding-top: 0;
}

.article h2 {
  padding-top: 2.5rem;
}

.article h3, .article h4 {
  padding-bottom: 0.625rem;
}

.article ul {
  list-style: disc !important;
  padding-left: 2.5em;
}

@media screen and (max-width: 39.9375em) {
  .article h2 {
    padding-top: 1.4rem;
    padding-bottom: .25rem;
    margin-bottom: 0;
  }
  .article ul {
    padding: 0 1.2rem;
  }
  .article .row,
  .article .row .row {
    padding: 0;
    margin: 0;
  }
}

.alert_icon {
  text-align: center;
}

.alert_icon i {
  display: block;
  margin: auto;
  font-size: 5em;
  padding: 0.625rem;
}

.featured-title {
  color: #fafafa !important;
}

.featured ul li {
  color: #fafafa;
}

.featured p {
  color: #fafafa;
}

.featured p a {
  color: #fafafa;
  text-decoration: underline;
}

@media screen and (max-width: 39.9375em) {
  .featured {
    padding-top: 1.25rem;
  }
}

.featured__wrapper {
  display: inline-block;
  width: 100%;
  margin-bottom: -10px;
}

.featured__item {
  float: left;
  display: block;
  transition: all 0.3s ease-in-out;
  width: 100%;
}

.featured__item:hover .featured__item--inner {
  background: rgba(0, 0, 0, 0.375);
}

.featured__item--inner {
  padding: 3.125em;
  color: #fafafa;
  background: rgba(0, 0, 0, 0.175);
  min-height: 350px;
}

@media screen and (max-width: 39.9375em) {
  .featured__item--inner {
    padding: 1.5em;
    min-height: 250px;
  }
}

.bg .featured__item--inner {
  background: rgba(0, 0, 0, 0.275);
}

.featured__item--inner a {
  color: #fafafa;
}

[data-whatinput="touch"] .featured__item--inner a:focus,
[data-whatinput="touch"] .featured__item--inner a:active,
[data-whatinput="mouse"] .featured__item--inner a:focus,
[data-whatinput="mouse"] .featured__item--inner a:active,
[data-whatinput="mouse"] .featured__item--inner a:hover, .featured__item--inner a:hover, .featured__item--inner a:active {
  color: #fafafa;
}

.featured__item--title {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  color: #fafafa;
}

@media screen and (max-width: 39.9375em) {
  .featured__item--title {
    font-size: 2.5rem;
  }
}

.featured__item--title small {
  font-size: 50%;
  color: #fafafa;
}

.-col-2 .featured__item {
  width: 50%;
  float: left;
}

@media only screen and (max-width: 68em) {
  .-col-2 .featured__item {
    width: 100%;
    float: left;
    min-height: 0;
  }
}

.-col-3 .featured__item {
  width: 33.33333%;
  float: left;
}

@media only screen and (max-width: 68em) {
  .-col-3 .featured__item {
    width: 100%;
    float: left;
    min-height: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .featured__wrapper {
    margin-bottom: 25px;
  }
}

@media screen and (max-width: 39.9375em) {
  .topics_header_mobile {
    min-height: 12.375rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .topics_header {
    padding: 0;
    background: none !important;
  }
  .topics_header .row {
    padding: 0;
    margin: 0;
  }
  .topics_header.row, .topics_header .row .row {
    padding: 0;
    margin: 0;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .topics_header .topic_summary_wrapp {
    margin-top: 1.5625em;
  }
  .topics_header .topic_summary_wrapp .article {
    margin-bottom: 1.25em;
  }
}

.topic_summary {
  background: #fafafa;
  padding: 3.125em;
}

.topic_summary h1 {
  font-weight: 700;
}

.topic_summary .topic_menu_title {
  margin-top: 1rem;
}

.topic_summary .topic_menu li > a {
  line-height: 1.4em;
  color: #192857;
}

[data-whatinput="touch"] .topic_summary .topic_menu li > a:focus,
[data-whatinput="touch"] .topic_summary .topic_menu li > a:active,
[data-whatinput="mouse"] .topic_summary .topic_menu li > a:focus,
[data-whatinput="mouse"] .topic_summary .topic_menu li > a:active,
[data-whatinput="mouse"] .topic_summary .topic_menu li > a:hover, .topic_summary .topic_menu li > a:hover, .topic_summary .topic_menu li > a:active {
  color: #00b2e2;
}

.topic_summary .back-to {
  color: #003146;
}

[data-whatinput="touch"] .topic_summary .back-to:focus,
[data-whatinput="touch"] .topic_summary .back-to:active,
[data-whatinput="mouse"] .topic_summary .back-to:focus,
[data-whatinput="mouse"] .topic_summary .back-to:active,
[data-whatinput="mouse"] .topic_summary .back-to:hover, .topic_summary .back-to:hover, .topic_summary .back-to:active {
  color: #192857;
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .topic_summary .columns {
    margin: 0;
    padding: 0;
  }
  .topic_summary .article {
    margin-bottom: 1.25em;
  }
}

@media screen and (max-width: 39.9375em) {
  .topic_summary {
    margin-top: .7em;
    padding: 0 0 1.25em 0;
  }
  .topic_summary h1 {
    font-size: 1.4em;
    padding-bottom: 1rem;
  }
  .topic_summary .topic_summary_title {
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
  }
  .topic_summary .article {
    margin-bottom: 1.25em;
  }
}

.wrapp_featured_section {
  margin-bottom: 0;
}

.wrapp_featured_section h2 {
  padding-bottom: 0.2rem;
  margin-bottom: 0;
}

@media screen and (max-width: 39.9375em) {
  .wrapp_featured_section {
    margin: 0;
    padding-bottom: 0.45rem;
  }
  .wrapp_featured_section p {
    padding: 0;
  }
  .wrapp_featured_section h2, .wrapp_featured_section h4 {
    padding: 1.5rem 0 0.2rem;
    margin-bottom: 0;
  }
}

.article_wrapp h2 {
  padding: 1.5rem 0rem 0.2rem;
  margin-bottom: 0;
}

.article_wrapp h4 {
  padding: 0.5rem 0rem 0.2rem;
  margin-bottom: 0;
}

@media screen and (max-width: 39.9375em) {
  .article_wrapp p {
    padding: 0;
  }
  .article_wrapp h2, .article_wrapp h4, .article_wrapp h5 {
    padding: 1.5rem 0 0.2rem;
    margin-bottom: 0;
  }
  .article_wrapp.row, .article_wrapp.row .row {
    margin: 0 auto;
  }
}

@media screen and (max-width: 39.9375em) {
  .wrapp_actions {
    padding-top: 1.75rem;
  }
}

.guides_wrapper {
  max-width: 57rem;
  margin: 0 auto;
}

.guides_wrapper.-actions {
  padding: 2.5em 0 0;
}

@media screen and (max-width: 39.9375em) {
  .guides_wrapper.-actions {
    padding-top: 1.75rem;
    padding-bottom: 0;
  }
}

.guides_wrapper.-actions .h2 {
  padding-top: 0;
}

.related-links {
  padding: 90px 0;
}

@media screen and (max-width: 39.9375em) {
  .related-links {
    padding: 1.25em 0;
  }
}

.actionitem {
  display: block;
  padding-bottom: 1em !important;
  position: relative;
}

.actionitem .actionitem-title {
  font-size: 18px;
  font-weight: 300;
}

.actionitem.columns {
  padding-left: .5rem;
  padding-right: .5rem;
}

.actionitem.columns:not(:first-child) {
  float: left;
}

@media screen and (max-width: 39.9375em) {
  .actionitem.columns {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-bottom: 1em !important;
  }
}

.actionitem div {
  padding: 1rem;
  text-align: center;
  background: #ebebeb;
  color: #003146;
  min-height: 210px;
  font-size: 18px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

@media screen and (min-width: 1024px) and (max-width: 1160px) {
  .actionitem div {
    min-height: 235px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .actionitem div {
    min-height: 0;
  }
}

@media screen and (max-width: 39.9375em) {
  .actionitem div {
    min-height: 0;
  }
}

.actionitem div i {
  display: block;
  margin: auto;
  font-size: 4em;
  padding-bottom: 1rem;
  color: #192857;
}

@media screen and (max-width: 39.9375em) {
  .actionitem div i {
    font-size: 2em;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .actionitem div i {
    font-size: 3em;
  }
}

.actionitem.external-icon:before {
  content: "\f08e";
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  color: #003146;
  font-size: 1.125em;
  padding-right: 0.5em;
  position: absolute;
  top: 0px;
  right: 0px;
  padding: 0.4375em 1.5625em;
}

.actionitem.no_ext:before {
  content: "";
}

[data-whatinput="touch"] .actionitem:focus div,
[data-whatinput="touch"] .actionitem:active div,
[data-whatinput="mouse"] .actionitem:focus div,
[data-whatinput="mouse"] .actionitem:active div,
[data-whatinput="mouse"] .actionitem:hover div, .actionitem:hover div, .actionitem:active div {
  color: #fafafa;
  background: #192857;
}

[data-whatinput="touch"] .actionitem:focus div .actionitem-title,
[data-whatinput="touch"] .actionitem:active div .actionitem-title,
[data-whatinput="mouse"] .actionitem:focus div .actionitem-title,
[data-whatinput="mouse"] .actionitem:active div .actionitem-title,
[data-whatinput="mouse"] .actionitem:hover div .actionitem-title, .actionitem:hover div .actionitem-title, .actionitem:active div .actionitem-title {
  color: #fafafa;
}

[data-whatinput="touch"] .actionitem:focus div i,
[data-whatinput="touch"] .actionitem:active div i,
[data-whatinput="mouse"] .actionitem:focus div i,
[data-whatinput="mouse"] .actionitem:active div i,
[data-whatinput="mouse"] .actionitem:hover div i, .actionitem:hover div i, .actionitem:active div i {
  color: #fafafa;
}

[data-whatinput="touch"] .actionitem:focus:before,
[data-whatinput="touch"] .actionitem:active:before,
[data-whatinput="mouse"] .actionitem:focus:before,
[data-whatinput="mouse"] .actionitem:active:before,
[data-whatinput="mouse"] .actionitem:hover:before, .actionitem:hover:before, .actionitem:active:before {
  color: #fafafa;
}

.search-form {
  display: block;
  position: relative;
  width: 100%;
}

@media screen and (max-width: 39.9375em) {
  .search-form .results .row .row {
    padding-left: 1em !important;
    padding-right: 1em !important;
  }
}

.search-form .search-input {
  color: #192857;
  display: block;
  margin: 0;
  padding: 0 .25em;
  width: 90%;
  border: 0;
  box-shadow: none;
  outline: 0;
  border-radius: 0;
  transition: ease-in-out .3s;
}

.search-form .search-button-wrapper {
  position: absolute;
  top: -1px;
  right: 5px;
  height: 42px;
  width: 20px;
  cursor: pointer;
}

.search-form .search-button {
  font-size: 1.5em;
  height: 38px;
  cursor: pointer;
}

.search-form .search-button i {
  color: #c8922b;
  font-size: 1rem;
}

@media screen and (max-width: 63.9375em) {
  .search-form .more-results {
    display: block;
    margin-bottom: 1em;
  }
}

#breadcrumbExtension {
  padding-left: 4px;
}

#breadcrumbExtension p {
  margin-bottom: 0;
}

.search-input {
  padding: 0 1.5em;
}

.search-bar-wrapper {
  border: 2px solid #00b2e2;
  border-radius: 25px;
  line-height: 1;
  height: 48px;
  padding: 2px 15px;
}

.search-bar-wrapper input {
  color: #003146;
  background-color: transparent;
  padding-left: 1.5em;
  padding-right: 0;
}

.search-bar-wrapper input:focus {
  background-color: transparent;
}

[data-whatinput="touch"] .search-bar-wrapper input:focus,
[data-whatinput="touch"] .search-bar-wrapper input:active,
[data-whatinput="mouse"] .search-bar-wrapper input:focus,
[data-whatinput="mouse"] .search-bar-wrapper input:active,
[data-whatinput="mouse"] .search-bar-wrapper input:hover, .search-bar-wrapper input:hover, .search-bar-wrapper input:active {
  color: #003146;
}

.search-bar-wrapper .button {
  padding: .5em 1.5em .5em .5em;
}

.search-bar-wrapper .modalicon {
  font-size: 2rem;
}

.search-bar-wrapper .pageicon {
  font-size: 1.5rem;
}

.search-helper {
  margin: 40px 0 0 20px;
}

.search-wrapper {
  position: relative;
}

.search-wrapper input {
  font-size: 1rem;
}

.search-wrapper input + button {
  color: #1CB0B5;
  cursor: pointer;
  padding: 0.8rem 20px;
}

.search-wrapper input + button:hover, .search-wrapper input + button:active, .search-wrapper input + button:focus {
  color: #1CB0B5;
  background-color: transparent;
}

.results .result-description {
  color: #003146;
  margin-bottom: 0;
  padding-top: 0;
  margin-top: 0.75em;
  overflow: hidden;
  text-align: left;
}

.results .results-url,
.results .results-categories {
  color: #003146;
  font-size: .7rem;
  margin-bottom: .5rem;
}

.results .results-title, .results .search-results li a .results-title {
  color: #003146;
  font-size: 1em;
  font-weight: bold;
  margin-bottom: .6667em;
}

.results .sort-wrapper {
  position: relative;
}

.results .sort-wrapper label {
  display: inline-block;
}

.results .sort-wrapper select {
  display: inline-block;
  width: 150px;
}

.results .search-reults-wrapper {
  width: 100%;
}

.results .search-reults-wrapper .preresults p {
  font-size: 1em;
  margin-bottom: 0.25em;
  padding-top: 0.75em;
  line-height: 1.2em;
  color: #b8b7b4;
  text-align: left;
}

@media screen and (max-width: 63.9375em) {
  .results .search-reults-wrapper .preresults p {
    text-align: center;
  }
}

.results .search-reults-wrapper .preresults i {
  text-align: center;
}

.results .results-title {
  margin-bottom: 0;
}

.results .quick-links {
  font-size: 14px;
}

@media screen and (max-width: 63.9375em) {
  .results .quick-links {
    border-right: none;
    text-align: left;
  }
  .results .quick-links ul {
    padding-right: 0 !important;
  }
  .results .quick-links li {
    text-align: center;
    display: inline-block;
    width: 50%;
  }
  .results .quick-links li:first-child > a {
    margin-right: .5em;
  }
}

.results .quick-links h3 {
  padding-right: 50px;
}

@media screen and (max-width: 39.9375em) {
  .results .quick-links ul {
    border-right: none;
    padding-right: 1.25em;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .results .quick-links ul {
    border-right: none;
    padding-right: 1.25em;
  }
}

.results .quick-links li {
  padding-bottom: 1em;
}

.results .quick-links a {
  color: #003146;
  padding: 1em;
  border: 2px solid #64A70B;
  background: transparent;
  display: block;
}

[data-whatinput="mouse"] .results .quick-links a:hover {
  background: #64A70B;
  color: #fafafa;
}

[data-whatinput="mouse"] .results .quick-links a:hover p {
  color: #fafafa;
}

.results .quick-links a:focus, .results .quick-links a:active, .results .quick-links a.is-active {
  background: #64A70B;
  color: #fafafa;
}

.results .search-results {
  margin: 0;
}

.results .search-results li {
  position: relative;
  display: block;
  width: 100%;
  margin-bottom: 0.75em;
  background: #ebebeb;
  border-left: 0.1875em solid #00b2e2;
}

[data-whatinput="touch"] .results .search-results li:focus,
[data-whatinput="touch"] .results .search-results li:active,
[data-whatinput="mouse"] .results .search-results li:focus,
[data-whatinput="mouse"] .results .search-results li:active,
[data-whatinput="mouse"] .results .search-results li:hover, .results .search-results li:hover, .results .search-results li:active {
  background-color: #00b2e2;
}

.results .search-results li:last-of-type {
  margin-bottom: 2em;
}

.results .search-results li .post-date {
  font-size: .9em;
  padding-top: .5em;
}

.results .search-results li a {
  padding: 15px;
  width: 100%;
  padding: 1em;
  display: inline-block;
  color: #003146;
}

@media screen and (max-width: 63.9375em) {
  .results .search-results li a {
    min-height: 0;
  }
}

.results .search-results li a .results-title {
  margin-bottom: 0;
}

[data-whatinput="touch"] .results .search-results li a:focus,
[data-whatinput="touch"] .results .search-results li a:active,
[data-whatinput="mouse"] .results .search-results li a:focus,
[data-whatinput="mouse"] .results .search-results li a:active,
[data-whatinput="mouse"] .results .search-results li a:hover, .results .search-results li a:hover, .results .search-results li a:active {
  background: #00b2e2;
  color: #fafafa;
}

[data-whatinput="touch"] .results .search-results li a:focus h4, [data-whatinput="touch"] .results .search-results li a:focus p, [data-whatinput="touch"] .results .search-results li a:focus::before,
[data-whatinput="touch"] .results .search-results li a:active h4,
[data-whatinput="touch"] .results .search-results li a:active p,
[data-whatinput="touch"] .results .search-results li a:active::before,
[data-whatinput="mouse"] .results .search-results li a:focus h4,
[data-whatinput="mouse"] .results .search-results li a:focus p,
[data-whatinput="mouse"] .results .search-results li a:focus::before,
[data-whatinput="mouse"] .results .search-results li a:active h4,
[data-whatinput="mouse"] .results .search-results li a:active p,
[data-whatinput="mouse"] .results .search-results li a:active::before,
[data-whatinput="mouse"] .results .search-results li a:hover h4,
[data-whatinput="mouse"] .results .search-results li a:hover p,
[data-whatinput="mouse"] .results .search-results li a:hover::before, .results .search-results li a:hover h4, .results .search-results li a:hover p, .results .search-results li a:hover::before, .results .search-results li a:active h4, .results .search-results li a:active p, .results .search-results li a:active::before {
  color: #fafafa;
}

[data-whatinput="touch"] .results .search-results li a:focus h4::after, [data-whatinput="touch"] .results .search-results li a:focus p::after,
[data-whatinput="touch"] .results .search-results li a:active h4::after,
[data-whatinput="touch"] .results .search-results li a:active p::after,
[data-whatinput="mouse"] .results .search-results li a:focus h4::after,
[data-whatinput="mouse"] .results .search-results li a:focus p::after,
[data-whatinput="mouse"] .results .search-results li a:active h4::after,
[data-whatinput="mouse"] .results .search-results li a:active p::after,
[data-whatinput="mouse"] .results .search-results li a:hover h4::after,
[data-whatinput="mouse"] .results .search-results li a:hover p::after, .results .search-results li a:hover h4::after, .results .search-results li a:hover p::after, .results .search-results li a:active h4::after, .results .search-results li a:active p::after {
  background-color: #00b2e2;
}

.results time {
  /*font-size: 1.2rem;*/
  color: #70727d;
}

.resultswrap {
  margin-top: 50px;
}

.resultswrap .pagination {
  display: table;
}

.resultswrap .no-results p {
  font-size: 1.5em;
  padding-top: 2em;
  text-align: center;
}

.resultswrap .no-results p span {
  font-weight: bold;
}

.resultswrap .results > h4 {
  margin-bottom: 0;
}

.resultswrap .results .fa:before {
  padding-right: .5em;
}

table.cabTravel {
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 39.9375em) {
  table.cabTravel {
    font-size: .8rem;
  }
}

table.cabTravel tr td:nth-child(4) {
  text-align: right;
}

table.cabTravel tr th {
  text-align: left;
}

.legendText {
  font-size: .88em;
  line-height: 32px;
}

.tabColor1 {
  background-color: #1E3B66;
}

.tabColor2 {
  background-color: #8d8c35;
}

.tabColor3 {
  background-color: #CA9A31;
}

.tabColor4 {
  background-color: #ca7131;
}

.tabColor5 {
  background-color: #cc3c2f;
}

.legendBlock {
  width: 18px;
  height: 22px;
  display: block;
  margin-top: 4px;
  float: left;
  margin-right: 10px;
}

.hideMed {
  display: none;
}

div.grid-cell {
  width: 20%;
  height: 16px;
  display: block;
  float: left;
  position: relative;
}

div.grid-label {
  width: 50px;
  height: 16px;
  position: absolute;
  left: -25px;
  text-align: center;
  font-size: 11px;
  padding-top: 4px;
  background-image: url(/wp-content/themes/bones/travel/stem.gif);
  background-repeat: no-repeat;
  background-position: top left 25px;
}

div.bar-container {
  position: relative;
  width: 100%;
  height: 25px;
  display: block;
}

div.bar-block {
  position: relative;
  width: 100%;
  height: 20px;
  display: block;
  float: left;
}

div.bar-segment {
  position: absolute;
  bottom: 25px;
  font-size: 12px;
  line-height: 13px;
  width: 100px;
  left: -50px;
  text-align: center;
  background-color: #CCC;
  border-radius: 4px;
  padding: 4px;
  display: none;
}

div.bar-block:hover > div.bar-segment {
  display: block;
}

.icon-png {
  width: 28px;
  height: 28px;
  padding-top: 0 !important;
  margin-right: 12px;
  margin: 0 12px 0 0;
}

@media screen and (max-width: 480px) {
  table.cabTravel tr td:nth-child(2) {
    display: none;
  }
  table.cabTravel tr th:nth-child(2) {
    display: none;
  }
  .hideMed {
    display: block;
  }
  .hideSmall {
    display: none;
  }
  .downLabel {
    margin-top: 16px;
  }
}

@media screen and (max-width: 640px) {
  .smaller-text {
    font-size: .85em !important;
  }
  .small-down {
    margin-top: 16px !important;
  }
  .icon-png {
    width: 16px;
    height: 16px;
    padding-top: 0 !important;
    margin-right: 12px;
    margin: 0 12px 0 0;
  }
}

.extraPad-bottom {
  padding-bottom: 1.25rem;
  display: inline-block;
  width: 100%;
}

.extraPad-top {
  padding-top: 1.25rem;
  display: inline-block;
  width: 100%;
}

.waiting-overlay {
  position: absolute;
  display: none;
  text-align: center;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #FFFFFF;
  opacity: .6;
}

.waiting-overlay img {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

/* BACK TO TOP
========================================= */
.back-to-top {
  display: inline-block;
  position: fixed;
  bottom: 3rem;
  right: 1em;
  width: 70px;
  padding: 1.25rem;
  z-index: 1;
  cursor: pointer;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  text-align: center;
  color: #fafafa;
  background: #c8922b;
  -webkit-transition: opacity 0.3s 0s, visibility 0s 0.3s;
  -moz-transition: opacity 0.3s 0s, visibility 0s 0.3s;
  -o-transition: opacity 0.3s 0s, visibility 0s 0.3s;
  transition: opacity 0.3s 0s, visibility 0s 0.3s;
}

.back-to-top i {
  font-size: 1.2rem;
  color: #fff;
  font-weight: 500;
}

.back-to-top p {
  margin-bottom: 0;
  font-size: 0.45em;
  font-weight: bold;
  letter-spacing: 0.7em;
  margin-right: -0.7em;
  color: #404040;
  text-align: center;
}

.back-to-top.back-to-top-is-visible, .back-to-top.back-to-top-fade-out {
  -webkit-transition: opacity 0.3s 0s, visibility 0s 0s;
  -moz-transition: opacity 0.3s 0s, visibility 0s 0s;
  -o-transition: opacity 0.3s 0s, visibility 0s 0s;
  transition: opacity 0.3s 0s, visibility 0s 0s;
}

.back-to-top.back-to-top-is-visible {
  visibility: visible;
  opacity: 1;
}

@media screen and (max-width: 39.9375em) {
  .back-to-top {
    right: 1rem;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .back-to-top {
    right: 1.1em;
  }
}

#breadcrumbs, #breadcrumbExtension {
  color: #b8b7b4;
  margin-bottom: 1rem;
  float: left;
}

@media screen and (max-width: 39.9375em) {
  #breadcrumbs, #breadcrumbExtension {
    font-size: .8rem;
    margin-bottom: .7rem;
  }
  #breadcrumbs p, #breadcrumbExtension p {
    font-size: .8rem;
    float: left;
  }
}

#breadcrumbs a, #breadcrumbExtension a {
  color: #192857;
  text-decoration: underline;
}

#breadcrumbs a:hover, #breadcrumbExtension a:hover {
  text-decoration: underline;
  color: #00b2e2;
}

#breadcrumbs .breadcrumb_last, #breadcrumbExtension .breadcrumb_last {
  color: #00b2e2;
}

.alert-top.callout {
  background: #404040;
  padding: .5rem 0;
  margin-bottom: 0px;
  border: none;
}

.alert-top.callout h5, .alert-top.callout h6, .alert-top.callout p {
  color: #fafafa;
  margin-bottom: 0;
  font-size: .9em;
}

.alert-top.callout a {
  color: #fafafa;
  text-decoration: underline;
}

[data-whatinput="touch"] .alert-top.callout a:focus,
[data-whatinput="touch"] .alert-top.callout a:active,
[data-whatinput="mouse"] .alert-top.callout a:focus,
[data-whatinput="mouse"] .alert-top.callout a:active,
[data-whatinput="mouse"] .alert-top.callout a:hover, .alert-top.callout a:hover, .alert-top.callout a:active {
  color: #fafafa;
}

.alert-top.callout a .fa {
  padding: 0 3px;
}

.alert-top.callout.-high-priority {
  background: #C60F13;
  border-bottom: 1px solid #c70f13;
}

.alert-top.callout.-low-priority {
  background: #003146;
  border-bottom: 1px solid #003247;
}

.alert-top.callout .close-button {
  right: 2%;
  top: 4px;
}

[data-whatinput="touch"] .alert-top.callout .close-button:focus,
[data-whatinput="touch"] .alert-top.callout .close-button:active,
[data-whatinput="mouse"] .alert-top.callout .close-button:focus,
[data-whatinput="mouse"] .alert-top.callout .close-button:active,
[data-whatinput="mouse"] .alert-top.callout .close-button:hover, .alert-top.callout .close-button:hover, .alert-top.callout .close-button:active {
  color: #fafafa;
}

@media screen and (max-width: 39.9375em) {
  .alert-top.callout .row {
    padding-left: .5em;
    padding-right: 0.5em;
  }
  .alert-top.callout .row .columns {
    padding-left: 0;
    padding-right: 2em;
  }
  .alert-top.callout h5, .alert-top.callout h6, .alert-top.callout p {
    font-size: .7em;
    text-align: left;
    padding-right: 40px;
  }
  .alert-top.callout .close-button {
    top: 0;
  }
}

.close-button {
  background: transparent;
  color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

[data-whatinput="touch"] .close-button:focus,
[data-whatinput="touch"] .close-button:active,
[data-whatinput="mouse"] .close-button:focus,
[data-whatinput="mouse"] .close-button:active,
[data-whatinput="mouse"] .close-button:hover, .close-button:hover, .close-button:active {
  background: transparent;
  color: #003146;
}

.warn.callout {
  background: #C60F13;
  color: #fafafa;
  margin-bottom: 0;
  border: none;
}

.warn.callout .row {
  padding: 3.125em;
}

@media screen and (max-width: 39.9375em) {
  .warn.callout .row {
    padding: 0 .5em;
  }
}

.media-object.map {
  background-color: #00b2e2;
  padding: 20px;
  color: white;
}

@media screen and (max-width: 39.9375em) {
  .media-object.map {
    padding: 0;
    margin: 0;
    letter-spacing: initial;
  }
}

.media-object.map h1, .media-object.map h2, .media-object.map h3, .media-object.map h4 {
  color: #fafafa;
  line-height: 1;
}

.media-object.map .button {
  color: #192857;
  background-color: #fafafa;
  font-weight: 700;
  float: right;
}

.media-object.map .thumbnail {
  box-shadow: none;
  border: none;
  font-size: 40px;
  color: #192857;
}

@media screen and (max-width: 39.9375em) {
  .media-object.map .thumbnail {
    font-size: 20px;
  }
}

.button.map .align-middle {
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.button.map .shrink {
  width: auto;
}

.button.map .shrink.first {
  padding-right: 10px;
}

.button.map .shrink.last {
  padding-left: 10px;
}

#map {
  height: 75vh;
  max-height: 800px;
  width: 100%;
}

@media screen and (max-width: 63.9375em) {
  #map {
    min-height: 0;
    height: 300px;
  }
}

#map h1,
#map p,
#map a {
  color: #0a0a0a;
}

#map-canvas img {
  max-width: none !important;
}

.gm-style .gm-style-iw {
  width: 350px !important;
  top: 15px !important;
  left: 0px !important;
  background-color: #fff;
  box-shadow: 0 1px 6px rgba(178, 178, 178, 0.6);
  border: 1px solid rgba(72, 181, 233, 0.6);
  border-radius: 0;
}

@media screen and (max-width: 63.9375em) {
  .gm-style .gm-style-iw {
    width: 250px !important;
  }
}

#iw-container {
  margin-bottom: 10px;
}

@media screen and (max-width: 63.9375em) {
  #iw-container {
    margin-bottom: 0;
  }
}

#iw-container .iw-title {
  font-family: 'Open Sans Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  padding: 10px;
  background-color: #48b5e9;
  color: white;
  margin: 0;
  border-radius: 2px 2px 0 0;
}

@media screen and (max-width: 63.9375em) {
  #iw-container .iw-title {
    font-size: 12px;
    padding: 5px 10px;
  }
}

#iw-container .iw-content {
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
  margin-right: 1px;
  padding: 15px 5px 0 15px;
  max-height: 140px;
  overflow-y: scroll;
  overflow-x: hidden;
}

@media screen and (max-width: 63.9375em) {
  #iw-container .iw-content {
    font-size: 12px;
    padding: 5px 10px;
    max-height: 100px;
  }
}

.iw-content img {
  float: right;
  margin: 0 5px 5px 10px;
}

.iw-content p {
  margin-bottom: 10px;
}

.iw-subTitle {
  font-size: 16px;
  font-weight: 700;
  padding: 0;
}

@media screen and (max-width: 63.9375em) {
  .iw-subTitle {
    font-size: 12px;
  }
}

/* .clearfix { *zoom: 1; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }*/
.content-cntrd {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* background mixin (wip)
@mixin background($bg-color $bg-img_url $bg-attachment $bg-position_x $bg-position_y $bg-repeat $bg-size) {
    background-color:           $bg-color;
    background-image:       url($bg-img_url);
    background-attachment:      $bg-attachment;
    background-position:        $bg-position_x
                                $bg-position_y;
    background-repeat:          $bg-repeat;
    -webkit-background-size:    $bg-size;
       -moz-background-size:    $bg-size;
         -o-background-size:    $bg-size;
            background-size:    $bg-size;
}
*/
#newsletter {
  background-color: #c8922b;
  background-image: url("../../images/coa.png");
  background-repeat: no-repeat;
  background-position: center -250px;
  color: #fafafa;
  padding: 4em 0;
}

@media screen and (max-width: 39.9375em) {
  #newsletter {
    padding: 2em 0;
  }
}

#newsletter .sidebar-navigation-text {
  color: #fafafa;
}

#newsletter .flair {
  margin-bottom: .5em;
  background: #fafafa;
  padding: 15px;
  border-radius: 45px;
  font-size: 1.5rem;
  color: #c8922b;
}

#newsletter h1 {
  font-size: 14.4px !important;
  letter-spacing: 0.05em;
  color: #fafafa;
}

#newsletter p {
  color: #fafafa;
}

#newsletter a {
  color: #fafafa;
}

#newsletter a:hover {
  color: #fafafa;
}

@media screen and (min-width: 40em) {
  #newsletter .field-wrap {
    float: left;
    width: 25%;
    padding: 0 5px;
  }
  #newsletter .ninja-forms-all-fields-wrap #ninja_forms_field_6_div_wrap,
  #newsletter .ninja-forms-all-fields-wrap #ninja_forms_field_11_div_wrap {
    width: 50%;
  }
}

#newsletter input {
  border: 5px solid #c5902a;
  outline: 0;
  padding: 0 25px;
  min-height: 60px;
  font-weight: 100;
  font-size: 1em;
  letter-spacing: .1em;
  color: #192857;
  margin-bottom: 0;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
  box-shadow: none;
}

[data-whatinput="touch"] #newsletter input:focus,
[data-whatinput="touch"] #newsletter input:active,
[data-whatinput="mouse"] #newsletter input:focus,
[data-whatinput="mouse"] #newsletter input:active,
[data-whatinput="mouse"] #newsletter input:hover, #newsletter input:hover, #newsletter input:active {
  -webkit-box-shadow: 0 0 8px 3px #a67924;
  -moz-box-shadow: 0 0 8px 3px #a67924;
  -ms-box-shadow: 0 0 8px 3px #a67924;
  -o-box-shadow: 0 0 8px 3px #a67924;
  box-shadow: 0 0 8px 3px #a67924;
}

#newsletter input[type="submit"] {
  display: inline-block;
  position: relative;
  font-weight: 100;
  color: #fafafa;
  background-color: #192857;
  border: none;
  border-radius: 0;
  padding: 20px 0;
}

#newsletterModal, #newsletterModal2 {
  z-index: 10;
  color: #fafafa;
  background-color: #192857;
}

#newsletterModal h1, #newsletterModal h2, #newsletterModal h3, #newsletterModal h4, #newsletterModal h5, #newsletterModal h6, #newsletterModal p, #newsletterModal2 h1, #newsletterModal2 h2, #newsletterModal2 h3, #newsletterModal2 h4, #newsletterModal2 h5, #newsletterModal2 h6, #newsletterModal2 p {
  color: #fafafa;
}

#newsletterModal .flair, #newsletterModal2 .flair {
  margin-bottom: 1em;
}

#newsletterModal .flair .fa-inverse, #newsletterModal2 .flair .fa-inverse {
  color: #192857;
}

#newsletterModal .ninja-forms-cont input[type="submit"], #newsletterModal2 .ninja-forms-cont input[type="submit"] {
  background: #c8922b;
  border-color: #c8922b;
  color: #fafafa;
  width: 100%;
}

#newsletterModal .ninja-forms-cont .ninja-forms-field-error p, #newsletterModal2 .ninja-forms-cont .ninja-forms-field-error p {
  background: #ef3a4c;
  color: #fafafa;
}

#newsletterModal:focus, #newsletterModal2:focus {
  outline: none;
}

#newsletterModal [type='email']:focus, #newsletterModal [type='text']:focus, #newsletterModal2 [type='email']:focus, #newsletterModal2 [type='text']:focus {
  box-shadow: none;
}

@media screen and (min-width: 40em) {
  #newsletterModal .ninja-forms-all-fields-wrap #ninja_forms_field_6_div_wrap, #newsletterModal2 .ninja-forms-all-fields-wrap #ninja_forms_field_6_div_wrap {
    width: 100%;
  }
  #newsletterModal .ninja-forms-all-fields-wrap #ninja_forms_field_7_div_wrap, #newsletterModal2 .ninja-forms-all-fields-wrap #ninja_forms_field_7_div_wrap {
    width: 60%;
  }
  #newsletterModal .ninja-forms-all-fields-wrap #ninja_forms_field_8_div_wrap, #newsletterModal2 .ninja-forms-all-fields-wrap #ninja_forms_field_8_div_wrap {
    width: 40%;
  }
}

@media screen and (max-width: 39.9375em) {
  #newsletterModal, #newsletterModal2 {
    height: inherit;
    min-height: inherit;
    width: 95%;
    margin: 0 auto;
  }
}

.ninja-forms-required-items, .input-counter {
  display: none;
}

.ninja-forms-response-msg {
  font-weight: bold;
  margin-bottom: 10px;
}

.ninja-forms-field-error p {
  font-weight: bold;
  background: rgba(255, 255, 255, 0.32);
  border-radius: 50px;
  padding: 3px 20px 0;
  display: inline-block;
}

.ninja-forms-cont input[type="submit"] {
  border-radius: 0;
  border-style: solid;
  border-width: 2px;
  cursor: pointer;
  line-height: normal;
  text-align: center;
  font-size: 1rem;
  display: inline-block;
  position: relative;
  letter-spacing: .12em;
  text-transform: uppercase;
  background-color: #192857;
  border-color: #192857;
  width: 100%;
  color: #fafafa;
  border: none;
  transition: all .2s ease;
  padding: 20px 0;
}

.pagination {
  padding-left: 0;
  margin: 0 auto;
  border-radius: 4px;
  text-align: center;
  display: table;
}

@media screen and (max-width: 39.9375em) {
  .pagination {
    margin-bottom: 3rem;
  }
}

.pagination li {
  display: inline;
}

.pagination li:first-child, .pagination li:last-child {
  display: inline;
}

.pagination li a, .pagination li span {
  padding: 1.25rem;
  font-size: 1.25rem;
  line-height: 1.5;
  position: relative;
  float: left;
  margin-left: -1px;
  color: #003146;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #ebebeb;
  font-weight: 500;
}

@media screen and (max-width: 39.9375em) {
  .pagination li a, .pagination li span {
    padding: 1rem;
    font-size: .85rem;
  }
}

.pagination li a.current, .pagination li span.current {
  padding: 1.25rem;
  font-size: 1.25rem;
  color: #fff;
}

@media screen and (max-width: 39.9375em) {
  .pagination li a.current, .pagination li span.current {
    padding: 1rem;
    font-size: .85rem;
  }
}

[data-whatinput="touch"] .pagination li a:focus,
[data-whatinput="touch"] .pagination li a:active,
[data-whatinput="mouse"] .pagination li a:focus,
[data-whatinput="mouse"] .pagination li a:active,
[data-whatinput="mouse"] .pagination li a:hover, .pagination li a:hover, .pagination li a:active, [data-whatinput="touch"] .pagination li span:focus,
[data-whatinput="touch"] .pagination li span:active,
[data-whatinput="mouse"] .pagination li span:focus,
[data-whatinput="mouse"] .pagination li span:active,
[data-whatinput="mouse"] .pagination li span:hover, .pagination li span:hover, .pagination li span:active {
  z-index: 3;
  color: #fff;
  background-color: #c8922b;
  border-color: #c8922b;
}

.pagination li .dots {
  display: none;
}

.pagination li .active a,
.pagination li .active a:focus,
.pagination li .active a:hover,
.pagination li .active span,
.pagination li .active span:focus,
.pagination li .active span:hover {
  display: block !important;
  z-index: 3;
  color: #fff;
  cursor: default;
  background-color: #192857;
  border-color: #192857;
}

.pagination li .disabled a,
.pagination li .disabled a:focus,
.pagination li .disabled a:hover,
.pagination li .disabled span,
.pagination li .disabled span:focus,
.pagination li .disabled span:hover {
  color: #b8b7b4;
  cursor: not-allowed;
  background-color: #fff;
  border-color: #ebebeb;
}

.panel .widget {
  border-style: solid;
  border-width: 1px;
  border-color: #ebebeb;
  background-color: #e1e1e1;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}

.panel .widget a {
  color: #c8922b;
  text-decoration: underline;
}

.panel .widget ul {
  border: none;
  background-color: transparent;
  margin-left: 1.1rem;
}

.panel .widget li {
  list-style-type: disc;
  padding-top: 4px;
  padding-bottom: 4px;
}

.panel .widget h3,
.panel .widget h4 {
  border-bottom: 1px solid #192857;
  padding-bottom: 4px;
  margin-bottom: 4px;
  margin-top: 8px;
}

.panel .widget h3 {
  font-size: 1.5rem;
  color: #192857;
}

.panel .widget h4 {
  font-size: 1rem;
  font-weight: 600;
  border-bottom: none;
  color: #464646;
}

.panel .widget .contact-panel {
  min-height: auto !important;
  background-color: #ebebeb !important;
  color: #192857 !important;
}

.panel .widget.callout > :first-child,
.panel .widget > :first-child {
  margin-top: 0;
}

.panel .widget > :last-child {
  margin-bottom: 0;
}

.panel .widget h1, .panel .widget h2, .panel .widget h3, .panel .widget h4, .panel .widget h5, .panel .widget h6 {
  line-height: 1;
  margin-bottom: 0.625rem;
}

.panel .widget h1.subheader, .panel .widget h2.subheader, .panel .widget h3.subheader, .panel .widget h4.subheader, .panel .widget h5.subheader, .panel .widget h6.subheader {
  line-height: 1.4;
}

.card_links .data-list-element a {
  padding: 0.25em 0.5em;
  margin-bottom: 0.5em;
  display: block;
  position: relative;
  color: #192857;
  background: #e1e1e1;
  border-left: 0.1875em solid #00b2e2;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.card_links .data-list-element a span {
  margin-right: 1em;
}

.card_links .data-list-element a.no_ext:before {
  content: "";
}

.card_links .data-list-element a:hover {
  background: #00b2e2;
  color: #fafafa;
}

@media screen and (max-width: 39.9375em) {
  .card_links .data-list-element a {
    font-size: 0.9em;
    line-height: 1.2em;
    padding: 1em;
  }
}

.nav-is-open {
  position: fixed !important;
  width: 100%;
}

.nav {
  width: 100%;
  z-index: 3;
  background: #fafafa;
  /* NAV: Links + Logo
    ------------------------------------------------------ */
}

.nav .nav-container {
  box-shadow: 0 0 5px rgba(70, 70, 70, 0.5);
}

.nav ul {
  display: block;
  list-style: none;
  margin: auto;
  line-height: 1;
  max-height: 65px;
  /* NAV: dropdowns */
}

.nav ul li {
  position: relative;
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  /* activate nav dropdowns */
}

.nav ul li > a {
  display: block;
  padding: 25px 5px;
  color: #192857;
  background: transparent;
  font-weight: 700;
  -webkit-transition: all 150ms ease;
  -moz-transition: all 150ms ease;
  -o-transition: all 150ms ease;
  transition: all 150ms ease;
}

@media screen and (max-width: 63.9375em) {
  .nav ul li > a {
    padding: 0 5px;
  }
}

[data-whatinput="touch"] .nav ul li > a:focus,
[data-whatinput="touch"] .nav ul li > a:active,
[data-whatinput="mouse"] .nav ul li > a:focus,
[data-whatinput="mouse"] .nav ul li > a:active,
[data-whatinput="mouse"] .nav ul li > a:hover, .nav ul li > a:hover, .nav ul li > a:active {
  color: #00b2e2;
}

.nav ul li > a.logo {
  padding: 0 15px;
  -webkit-transform: scale(0.95);
  -moz-transform: scale(0.95);
  -ms-transform: scale(0.95);
  -o-transform: scale(0.95);
  transform: scale(0.95);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0) scale(1, 1);
  -moz-transform: translateZ(0) scale(1, 1);
  -ms-transform: translateZ(0) scale(1, 1);
  -o-transform: translateZ(0) scale(1, 1);
  transform: translateZ(0) scale(1, 1);
}

.nav ul li > a.logo i {
  text-transform: none;
}

.nav ul li > a.logo img {
  max-height: 45px;
  float: left;
  padding: 3px 0 3px 10px;
}

@media only screen and (max-width: 68em) {
  .nav ul li > a.logo img {
    padding: 0;
  }
}

[data-whatinput="touch"] .nav ul li > a.logo:focus,
[data-whatinput="touch"] .nav ul li > a.logo:active,
[data-whatinput="mouse"] .nav ul li > a.logo:focus,
[data-whatinput="mouse"] .nav ul li > a.logo:active,
[data-whatinput="mouse"] .nav ul li > a.logo:hover, .nav ul li > a.logo:hover, .nav ul li > a.logo:active {
  color: #192857;
}

.nav ul li > a.loc {
  line-height: 1em;
  height: 62px;
  text-align: right;
}

.nav ul li > a.loc span, .nav ul li > a.loc i {
  display: inline-block;
}

.nav ul li > a.loc i {
  font-size: 2em;
  padding-left: 8px;
  vertical-align: top;
}

.nav ul li.active a {
  color: #404040;
  background: #ebebeb;
}

.nav ul li:hover > ul {
  display: block;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}

.nav ul ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 0;
}

.nav ul ul li {
  float: none;
  width: 200px;
  background: #e1e1e1;
}

.nav ul ul li a {
  color: #404040;
}

.nav ul ul li.active a {
  color: #404040;
  background: #b8b7b4;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
}

.nav ul ul a {
  line-height: 120%;
  padding: 10px 15px;
  text-align: left;
}

.nav .navitem .menulabel {
  padding-top: 8px;
  font-size: 10.512px;
  letter-spacing: 0.72px;
}

@media screen and (max-width: 63.9375em) {
  .nav .navitem {
    font-size: .73em;
    font-weight: 300;
    padding: 13px 5px;
  }
  .nav .navitem .fa {
    font-size: 22px;
    display: block;
  }
  .nav .navitem span {
    display: block;
    padding-top: 5px;
  }
  [data-whatinput="touch"] .nav .navitem:focus,
  [data-whatinput="touch"] .nav .navitem:active,
  [data-whatinput="mouse"] .nav .navitem:focus,
  [data-whatinput="mouse"] .nav .navitem:active,
  [data-whatinput="mouse"] .nav .navitem:hover, .nav .navitem:hover, .nav .navitem:active {
    color: #c8922b;
  }
}

.nav .google-translate {
  padding-left: 10px;
  cursor: pointer;
}

.nav .right {
  float: right;
  padding-right: 10px;
}

.nav .right .nav-right-hidden {
  display: inline-block;
}

.nav .left {
  float: left;
}

@media only screen and (max-width: 68em) {
  .nav .row {
    padding-left: 0.25em;
    padding-right: 0.25em;
  }
}

.mobile-only {
  display: none;
}

@media only screen and (max-width: 68em) {
  .mobile-only {
    display: block;
  }
}

/* NAV: MOBILE TRIGGER
--------------------------------------- */
.nav-wrapper {
  padding: 10px;
  background: #c8922b;
}

.nav .nav-trigger {
  display: block !important;
  float: left;
  width: 45px;
  height: 45px;
  padding: 0;
  cursor: pointer;
}

.nav .nav-trigger.nav-open {
  position: relative;
}

.nav .nav-trigger.nav-open .inner, .nav .nav-trigger.nav-open .inner::before, .nav .nav-trigger.nav-open .inner::after {
  background-color: #fff;
  content: "";
  display: block;
  height: 3px;
  width: 25px;
  transition: all .5s ease;
  margin: 0 auto;
}

.nav .nav-trigger.nav-open .inner {
  position: relative;
  top: 15px;
}

.nav .nav-trigger.nav-open .inner::before {
  margin-top: -6px;
  position: absolute;
}

.nav .nav-trigger.nav-open .inner::after {
  margin-top: 6px;
  position: absolute;
}

.nav .nav-trigger.active .inner {
  background-color: transparent;
  left: 7%;
}

.nav .nav-trigger.active .inner::before, .nav .nav-trigger.active .inner::after {
  transform: rotate(45deg);
  transform-origin: 4px;
}

.nav .nav-trigger.active .inner::after {
  transform: rotate(-45deg);
}

.nav .nav-trigger .menulabel {
  text-transform: uppercase;
  font-weight: normal;
  font-size: 10.512px;
  letter-spacing: 0.72px;
  color: #fff;
  position: relative;
  bottom: -25px;
}

.menulabel {
  text-transform: uppercase;
  font-weight: normal;
  font-size: 10px;
  letter-spacing: 0;
}

/* NAV: mobile left slideout menu
--------------------------------------- */
#nav-menu {
  position: fixed;
  left: -100%;
  z-index: 2;
  background: #fafafa;
  color: #192857;
  -webkit-transition: all 305ms ease;
  -moz-transition: all 305ms ease;
  -o-transition: all 305ms ease;
  transition: all 305ms ease;
  height: 100%;
  width: 100%;
  padding: 30px;
  padding-bottom: 130px;
  overflow-x: scroll;
  /* SOCIAL ICONS */
}

#nav-menu.active {
  left: 0;
}

#nav-menu ul {
  margin: 0;
}

#nav-menu ul li {
  list-style: none;
  margin-bottom: 30px;
}

#nav-menu a {
  color: #192857;
  -webkit-transition: all 150ms ease;
  -moz-transition: all 150ms ease;
  -o-transition: all 150ms ease;
  transition: all 150ms ease;
}

[data-whatinput="touch"] #nav-menu a:focus,
[data-whatinput="touch"] #nav-menu a:active,
[data-whatinput="mouse"] #nav-menu a:focus,
[data-whatinput="mouse"] #nav-menu a:active,
[data-whatinput="mouse"] #nav-menu a:hover, #nav-menu a:hover, #nav-menu a:active {
  color: #00b2e2;
}

#nav-menu hr {
  margin-bottom: 30px;
}

#nav-menu .soc p {
  font-size: 0.85em;
  text-align: left;
  vertical-align: middle;
  color: #e1e1e1;
}

#nav-menu .soc a {
  -webkit-transition: ease-in-out all 0.3s;
  -moz-transition: ease-in-out all 0.3s;
  -o-transition: ease-in-out all 0.3s;
  transition: ease-in-out all 0.3s;
}

#nav-menu .soc a i {
  margin-left: 0.5em;
  padding: 0.25em;
  vertical-align: middle;
  text-align: center;
  font-size: 0.85em;
  background: #fafafa;
  color: #404040;
  border-radius: 4px;
  min-width: 1.875em;
}

[data-whatinput="touch"] #nav-menu .soc a:focus,
[data-whatinput="touch"] #nav-menu .soc a:active,
[data-whatinput="mouse"] #nav-menu .soc a:focus,
[data-whatinput="mouse"] #nav-menu .soc a:active,
[data-whatinput="mouse"] #nav-menu .soc a:hover, #nav-menu .soc a:hover, #nav-menu .soc a:active {
  color: #598db2;
}

.search-alt a {
  letter-spacing: .1em;
  line-height: 2.05;
  font-size: .65em;
  font-weight: 300;
}

.search-alt a .fa {
  font-size: 22px;
}

.navbar-text {
  line-height: 21.32px;
  font-size: 10.4px;
  font-weight: 300;
  letter-spacing: 1.04px;
  color: #003146;
  -moz-text-size-adjust: 100%;
}

.navitem-search {
  font-size: 1em;
  color: #64A70B;
  display: inline-block;
  padding-right: .5em;
}

.desktop-search-wrap {
  width: 150px;
  border: 2px solid #00b2e2;
  font-size: 1em;
  border-radius: 25px;
  padding: .1em .5em .1em 1em;
}

.desktop-search-wrap input {
  width: 100px !important;
  display: inline-block;
  margin: 0;
  font-size: .8em;
  padding: 0;
  color: #464646;
  background: transparent;
  border: 0;
  box-shadow: none;
  outline: 0;
  border-radius: 0;
  transition: ease-in-out .3s;
}

.desktop-search-wrap input:focus {
  color: #192857;
  background-color: #fafafa;
  box-shadow: none;
  border: none;
}

.desktop-search-wrap button.search-button {
  height: 1.5em;
  padding-right: .5em;
}

/* LANGUAGE BAR: above regular navigation
--------------------------------------- */
.language-bar {
  display: block;
  left: 0;
  height: 35px;
  width: 100%;
  float: left;
}

.language-bar p {
  margin: 0;
  line-height: 35px;
}

/* Language Bar */
/****************/
.language-bar {
  font-weight: 400;
  padding: 0.25rem .5rem;
  max-width: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ebebeb;
}

.language-bar .h3 {
  margin-bottom: 0;
}

.language-bar div {
  font-size: 0.8rem;
  line-height: 0.9em;
}

.language-bar a {
  color: #333;
  display: inline-block;
}

.language-bar-left {
  margin-right: auto;
  max-width: 60%;
}

.language-bar-left a {
  padding-left: .5em;
}

[data-whatinput="touch"] .language-bar-left a:focus,
[data-whatinput="touch"] .language-bar-left a:active,
[data-whatinput="mouse"] .language-bar-left a:focus,
[data-whatinput="mouse"] .language-bar-left a:active,
[data-whatinput="mouse"] .language-bar-left a:hover, .language-bar-left a:hover, .language-bar-left a:active {
  text-decoration: underline;
}

.language-bar-left a,
.language-bar-left span {
  line-height: 1.1rem;
}

.lang-logo, .agency-logo.hide-for-large {
  height: 25px;
  width: auto;
}

a#btn-language {
  word-break: normal;
}

#google_translate_element {
  position: absolute;
  display: inline-block;
  opacity: 0;
  right: 0;
  top: .5em;
  height: 2em;
}

#searchModal {
  padding: 2em;
  width: 100%;
  background-color: #fafafa;
}

#searchModal .modalWrapper {
  display: flex;
  height: 100%;
  align-content: center;
  align-items: center;
  justify-content: center;
  font-size: 2em;
}

#searchModal .modalWrapper .fa {
  font-size: 1.5rem;
}

#searchModal .modalWrapper form {
  width: 100%;
}

#searchModal .modalWrapper input {
  font-size: 1em;
  background: transparent;
  padding: 0 .25em;
  margin-bottom: 0;
  line-height: 1.25em;
  -webkit-appearance: none;
  color: #192857;
  background: #fafafa;
  border: 0;
  box-shadow: none;
  outline: 0;
  border-radius: 0;
}

#searchModal .modalWrapper input:focus {
  -webkit-appearance: none;
}

@media screen and (max-width: 39.9375em) {
  #searchModal .modalWrapper {
    font-size: 1.25em;
  }
  #searchModal .modalWrapper .search-bar-wrapper {
    margin-bottom: 6em;
  }
}

@media screen and (min-width: 40em) {
  #searchModal .modalWrapper .search-bar-wrapper {
    margin-bottom: 4em;
  }
}

#searchModal button {
  font-size: inherit;
}

.shortcode-expand {
  float: left;
  display: block;
  width: 100%;
}

.shortcode-expand ul {
  list-style-type: none;
  list-style: none;
  padding-left: 0;
  background: transparent;
  list-style-type: none !important;
}

.shortcode-expand ul ul {
  list-style: disc;
  padding-left: 2.5em;
}

.shortcode-expand .accordion-title {
  font-size: inherit;
  border: 3px solid #c8922b;
  padding: 1rem;
  margin: 1.25em 0;
  text-decoration: none !important;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.shortcode-expand .accordion-title:hover, .shortcode-expand .accordion-title:focus {
  background-color: inherit;
  color: #003146;
}

.shortcode-expand .accordion-item.is-active .accordion-title {
  background-color: #c8922b;
  color: #fafafa;
}

.shortcode-expand .accordion-item.is-active .accordion-title .fa {
  -webkit-transform: rotateX(180deg);
  transform: rotateX(180deg);
}

.shortcode-expand .accordion-item.is-active .accordion-title:hover, .shortcode-expand .accordion-item.is-active .accordion-title:focus {
  color: #fafafa;
}

.shortcode-expand .accordion-content {
  border: none;
  background-color: transparent;
  padding: 0;
  margin: 0 0 1.25em;
}

.shortcode-expand .accordion-content p:last-child {
  margin-bottom: 0;
}

.shortcode-expand :last-child:not(.is-active) > .accordion-title {
  border-bottom: 3px solid #c8922b;
}

.shortcode-expand :last-child > .accordion-content:last-child {
  border-bottom: none;
}

.shortcode-expand .accordion-title::before {
  content: none;
}

.wrapp_featured_section .shortcode-expand .accordion-title .fa {
  color: #fafafa;
}

.wrapp_featured_section .shortcode-expand .accordion-title:hover, .wrapp_featured_section .shortcode-expand .accordion-title:focus {
  color: #fafafa;
}

.wrapp_featured_section .shortcode-expand .accordion-item {
  color: #fafafa;
}

.wrapp_featured_section .shortcode-expand .accordion-item a {
  color: #fafafa;
}

a {
  color: #00b2e2;
  -webkit-transition: color 0.2s ease;
  -moz-transition: color 0.2s ease;
  -o-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

.featured a {
  color: #fafafa;
  text-decoration: underline;
}

[data-whatinput="touch"] .featured a:focus,
[data-whatinput="touch"] .featured a:active,
[data-whatinput="mouse"] .featured a:focus,
[data-whatinput="mouse"] .featured a:active,
[data-whatinput="mouse"] .featured a:hover, .featured a:hover, .featured a:active {
  color: #fafafa !important;
}

.content a:not([class]),
#content #main a:not([class]) {
  text-decoration: underline;
  word-wrap: break-word;
}

.content a:not([class]):hover, .content a:not([class]):focus,
#content #main a:not([class]):hover,
#content #main a:not([class]):focus {
  color: #00b2e2;
}

.button, input[type='button'], .btn.btn-success, .files_uploaded .delete {
  letter-spacing: .12em;
  position: relative;
  padding-bottom: 15px;
  text-transform: uppercase;
  color: #c8922b;
}

.button:hover, input:hover[type='button'], .btn.btn-success:hover, .files_uploaded .delete:hover {
  background-color: #c8922b;
  color: #fafafa;
}

.secondary.button, input.secondary[type='button'], .secondary.btn.btn-success, .files_uploaded .secondary.delete, .success.button, input.success[type='button'], .success.btn.btn-success, .files_uploaded .success.delete, .alert.button, input.alert[type='button'], .alert.btn.btn-success, .files_uploaded .alert.delete, .warning.button, input.warning[type='button'], .warning.btn.btn-success, .files_uploaded .warning.delete, .info.button, input.info[type='button'], .info.btn.btn-success, .files_uploaded .info.delete {
  color: #fafafa;
  border: none;
}

.secondary.button:hover, input.secondary:hover[type='button'], .secondary.btn.btn-success:hover, .files_uploaded .secondary.delete:hover, .success.button:hover, input.success:hover[type='button'], .success.btn.btn-success:hover, .files_uploaded .success.delete:hover, .alert.button:hover, input.alert:hover[type='button'], .alert.btn.btn-success:hover, .files_uploaded .alert.delete:hover, .warning.button:hover, input.warning:hover[type='button'], .warning.btn.btn-success:hover, .files_uploaded .warning.delete:hover, .info.button:hover, input.info:hover[type='button'], .info.btn.btn-success:hover, .files_uploaded .info.delete:hover {
  color: #fafafa;
}

.expand.button, input.expand[type='button'], .expand.btn.btn-success, .files_uploaded .expand.delete {
  padding: 15px 25px;
}

input[type='button'], .btn.btn-success {
  background-color: #CA9A31 !important;
  color: #FFF !important;
  padding: 15px;
  letter-spacing: 2px;
}

.btn-white {
  border-color: #fafafa;
  color: #fafafa;
}

.btn-white:hover {
  background: #fafafa;
  color: #192857;
}

.btn-blue-bright {
  background-color: #00b2e2 !important;
  color: #FFF !important;
  padding: 15px;
  letter-spacing: 1px;
  text-align: left;
  font-weight: 700;
  border: none;
}

.files_uploaded .delete {
  background-color: #ef3a4c !important;
  color: #FFF !important;
  padding: 15px;
  letter-spacing: 1px;
}

.more {
  width: 368px;
  max-width: 100%;
  padding-left: 25px;
  text-align: left;
  position: relative;
}

.more:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 14px;
  height: 19px;
  background-position: -60px -90px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  .more:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.more:before {
  position: absolute;
  right: 20px;
  -webkit-transition: right 0s ease, width 0s ease, opacity 0.2s;
  -moz-transition: right 0s ease, width 0s ease, opacity 0.2s;
  -o-transition: right 0s ease, width 0s ease, opacity 0.2s;
  transition: right 0s ease, width 0s ease, opacity 0.2s;
}

.more:hover:before {
  background-position: -60px -60px;
  right: -2px;
  width: 1px;
  opacity: 0;
  -webkit-transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
  -moz-transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
  -o-transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
  transition: right 0.2s ease, width 0.2s 0.1s ease, opacity 0s 0.3s;
}

.more.white:before {
  background-position: -60px -60px;
}

.more.white:hover:before {
  background-position: -60px -90px;
}

.more.white-sm:before {
  background-position: -30px -90px;
  width: 8px;
  height: 10px;
  margin-top: 5px;
  right: 10px;
}

.more.tiny {
  width: 206px;
  font-size: 0.8rem;
  padding-bottom: 0.6rem;
}

.more.tiny:before {
  right: 10px;
  top: 8px;
}

@media screen and (max-width: 39.9375em) {
  .more {
    width: 100%;
  }
}

.nf-fu-progress-bar {
  background-color: #00b2e2;
}

.files_uploaded .delete {
  font-size: 12px;
  font-weight: 400;
  padding: 5px 10px;
  margin-left: 5px;
  color: #ef3a4c !important;
  position: relative;
}

.files_uploaded .delete:after {
  content: "REMOVE";
  color: white;
  position: absolute;
  left: 8px;
  top: 3px;
}

#respond {
  margin-top: 50px;
  padding-top: 50px;
  border-top: solid 1px #e1e1e1;
}

#respond .form-submit {
  margin-bottom: 0;
}

#respond .form-submit input {
  outline: none;
  border: none;
  text-transform: uppercase;
  background: #192857;
  color: #fafafa;
  display: inline-block;
  font-size: 1em;
  font-weight: normal;
  padding: 10px 15px;
  cursor: pointer;
  -webkit-transition: background ease 0.2s;
  -moz-transition: background ease 0.2s;
  -o-transition: background ease 0.2s;
  transition: background ease 0.2s;
}

#respond .form-submit input:hover {
  background: #0e162f;
}

@media screen and (max-width: 39.9375em) {
  .prev_next_links {
    margin-bottom: 2em;
  }
}

.pa_gov_event + .pa_gov_event {
  padding-top: 2em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last,
.pa_gov_event {
  margin-bottom: 25px;
  background: #fafafa;
}

.tribe-events-loop .type-tribe_events.tribe-events-last .row,
.pa_gov_event .row {
  padding: 25px 10px;
  margin: 0;
  border: solid 1px #0a0a0a;
  border-bottom: none;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-date,
.pa_gov_event-date {
  text-align: center;
}

@media screen and (max-width: 39.9375em) {
  .tribe-events-loop .type-tribe_events.tribe-events-last-date,
  .pa_gov_event-date {
    font-size: .8rem;
  }
}

.tribe-events-loop .type-tribe_events.tribe-events-last-date span,
.pa_gov_event-date span {
  display: block;
  text-transform: uppercase;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-month,
.pa_gov_event-month {
  color: #c8922b;
  font-size: .9em;
  font-weight: 600;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-day,
.pa_gov_event-day {
  font-size: 3.5em;
  line-height: 1.1em;
  font-weight: 600;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-year,
.pa_gov_event-year {
  font-size: .9em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-time,
.pa_gov_event-time {
  font-size: .9em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-time .fa,
.pa_gov_event-time .fa {
  color: #c8922b;
  font-size: 1.25em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-title,
.pa_gov_event-title {
  font-weight: bold;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-title .fa,
.pa_gov_event-title .fa {
  font-size: 75%;
  margin-left: 10px;
}

[data-whatinput="touch"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:focus,
[data-whatinput="touch"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:active,
[data-whatinput="mouse"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:focus,
[data-whatinput="mouse"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:active,
[data-whatinput="mouse"] .tribe-events-loop .type-tribe_events.tribe-events-last-title a:hover, .tribe-events-loop .type-tribe_events.tribe-events-last-title a:hover, .tribe-events-loop .type-tribe_events.tribe-events-last-title a:active, [data-whatinput="touch"]
.pa_gov_event-title a:focus,
[data-whatinput="touch"]
.pa_gov_event-title a:active,
[data-whatinput="mouse"]
.pa_gov_event-title a:focus,
[data-whatinput="mouse"]
.pa_gov_event-title a:active,
[data-whatinput="mouse"]
.pa_gov_event-title a:hover,
.pa_gov_event-title a:hover,
.pa_gov_event-title a:active {
  color: #00b2e2;
  text-decoration: underline;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar,
.pa_gov_event-shareBar {
  border: solid 2px #c8922b;
  padding: 10px 20px;
}

@media screen and (max-width: 39.9375em) {
  .tribe-events-loop .type-tribe_events.tribe-events-last-shareBar,
  .pa_gov_event-shareBar {
    padding: 10px;
  }
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .share-title,
.pa_gov_event-shareBar .share-title {
  font-size: .8em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .pull-right span,
.pa_gov_event-shareBar .pull-right span {
  display: inline-block;
  margin-top: 3px;
  margin-left: 8px;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .pull-right a,
.pa_gov_event-shareBar .pull-right a {
  color: #c8922b;
  font-size: .9em;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .fa,
.pa_gov_event-shareBar .fa {
  font-size: 1.25em;
  color: #c8922b;
  margin-right: 10px;
}

@media screen and (max-width: 39.9375em) {
  .tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .fa,
  .pa_gov_event-shareBar .fa {
    font-size: .8em;
    margin-right: 5px;
  }
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .cal-link,
.pa_gov_event-shareBar .cal-link {
  margin: 0;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .cal-link a,
.pa_gov_event-shareBar .cal-link a {
  font-size: .8em;
  display: inline-block;
  margin: 0;
  float: none;
  color: #c8922b;
  background: none;
}

.tribe-events-loop .type-tribe_events.tribe-events-last-shareBar .cal-link .fa,
.pa_gov_event-shareBar .cal-link .fa {
  color: #192857;
}

.events-search-header {
  padding: 20px 30px 15px;
  margin: 0;
  border: solid 1px #0a0a0a;
  background: #fafafa;
  margin-bottom: 20px;
}

.events-search-header h1 {
  font-weight: normal;
  margin: 0;
  padding: 0;
}

.tribe-events-venue-details {
  padding-top: 3px;
  font-weight: normal;
  font-size: .8em;
}

.tribe-events-venue-details .fa {
  color: #c8922b;
  font-size: 1.25em;
}

.tribe-events-venue-details abbr {
  font-weight: normal;
}

.tribe-events-venue-details a {
  color: #c8922b;
  margin: -2px 0 0 5px;
}

.tribe-events-venue-details a abbr.tribe-events-abbr {
  color: #192857;
  cursor: pointer;
}

.tribe-events-sub-nav {
  margin-top: 40px;
}

.tribe-events-sub-nav .tribe-events-nav-previous, .tribe-events-sub-nav .tribe-events-nav-next {
  list-style: none;
  display: inline;
  text-align: center;
  margin: 0 5px;
}

.tribe-events-sub-nav .tribe-events-nav-previous a, .tribe-events-sub-nav .tribe-events-nav-next a {
  display: inline-block;
  color: #000;
  padding: 5px 10px;
  height: 35px;
  border: solid 1px #a3a3a3;
  line-height: 1.8em;
  text-transform: uppercase;
}

.tribe-events-sub-nav .tribe-events-nav-previous a span, .tribe-events-sub-nav .tribe-events-nav-next a span {
  display: none;
}

.tribe-events-sub-nav .tribe-events-nav-previous a:hover, .tribe-events-sub-nav .tribe-events-nav-next a:hover {
  background-color: #ededed;
}

.featured-event .title-container {
  padding: 0 30px;
}

.featured-event .news-post-title {
  padding-top: 0;
  padding-bottom: 20px;
}

.featured-event .pa_gov_event-shareBar {
  background: #c8922b;
  color: #fafafa;
}

.featured-event .pa_gov_event-shareBar .fa {
  font-size: 1.25em;
  color: #c8922b;
}

.featured-event .pa_gov_event-shareBar a {
  color: #fafafa;
}

footer {
  position: relative;
  position: relative;
}

footer ul {
  margin: 0;
}

footer ul li {
  list-style-type: none;
}

@media only screen and (max-width: 68em) {
  footer .columns {
    width: 100% !important;
  }
}

footer #site-footer-nav {
  text-align: center;
  background: #fafafa;
  border-top: solid 2px #c4c4c4;
}

footer #site-footer-nav li {
  display: inline-block;
  padding: 7px 0px;
}

footer #site-footer-nav li a {
  padding: 7px 14px;
  display: inline-block;
  color: #0a0a0a;
  font-size: 1em;
  letter-spacing: .08em;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
  -webkit-transition: background 0.2s ease, color 0.2s ease;
  -moz-transition: background 0.2s ease, color 0.2s ease;
  -o-transition: background 0.2s ease, color 0.2s ease;
  transition: background 0.2s ease, color 0.2s ease;
}

footer #site-footer-nav li a:hover {
  background: #ebebeb;
  color: #707070;
}

footer #site-footer-nav li a:active {
  background: #e6e6e6;
}

footer #copyright {
  background: #003146;
  padding: 8px 20px;
  color: #fafafa;
  width: 100%;
  min-width: 100%;
}

footer #copyright a,
footer #copyright p {
  font-size: .65em;
  letter-spacing: .1em;
  margin: 0;
}

footer #copyright p {
  float: right;
  text-transform: initial;
  padding-top: 0;
  font-size: .75em;
}

@media only screen and (max-width: 68em) {
  footer #copyright p {
    text-align: right;
    padding-right: 0;
  }
}

footer #copyright li:first-child a,
footer #copyright ul {
  padding-left: 0;
}

@media only screen and (max-width: 68em) {
  footer #copyright li {
    width: 100%;
  }
}

footer #copyright li a {
  color: #fafafa;
  border-right: solid 1px #666;
  padding: 3px 20px;
  float: left;
}

[data-whatinput="touch"] footer #copyright li a:focus,
[data-whatinput="touch"] footer #copyright li a:active,
[data-whatinput="mouse"] footer #copyright li a:focus,
[data-whatinput="mouse"] footer #copyright li a:active,
[data-whatinput="mouse"] footer #copyright li a:hover, footer #copyright li a:hover, footer #copyright li a:active {
  color: #1CB0B5;
  text-decoration: underline;
}

@media only screen and (max-width: 68em) {
  footer #copyright li a {
    border: none;
    padding: 0;
    width: 100%;
    text-align: left;
    text-transform: capitalize;
    text-decoration: underline;
    font-size: .9em;
    line-height: 2;
  }
}

footer #copyright li:last-child a {
  border-right: 0;
}

@media only screen and (max-width: 68em) {
  footer #copyright {
    background: #2e2e2e;
    padding: 0 40px 40px 40px;
  }
}

@media only screen and (max-width: 68em) {
  footer #copyright {
    text-align: left;
  }
  footer #copyright p {
    padding-left: 0;
    text-align: left;
  }
  footer #copyright ul {
    width: 100%;
    padding: 0;
  }
  footer #copyright ul li {
    float: none;
    display: inline-block;
  }
}

.footer-nav.-stacked {
  padding: 50px 0;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .row {
    padding: 0 20px;
  }
}

.footer-nav.-stacked .menu-item {
  display: inline-block;
  width: 100%;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-menu {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media screen and (max-width: 320px) {
  .footer-nav.-stacked .footer-menu {
    padding: 0;
  }
}

.footer-nav.-stacked .footer-left {
  padding-right: 30px;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-left {
    width: 100%;
    padding: 0;
  }
  .footer-nav.-stacked .footer-left .menu-link {
    width: 100%;
    text-align: left;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-left .columns {
    padding: 0;
  }
}

.footer-nav.-stacked .footer-right {
  padding-left: 30px;
  border-left-width: 1px;
  border-left-style: solid;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-right {
    width: 100%;
    padding-left: 0;
    border-left: none;
    border-bottom: 1px solid #fafafa;
    border-top: 1px solid #fafafa;
    padding-top: 10px;
    padding-bottom: 10px;
    margin-top: 10px;
    margin-bottom: 15px;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-right .columns {
    border-bottom: 1px solid #fafafa;
    padding-bottom: 10px;
    margin-bottom: 10px;
    padding-left: 0;
  }
  .footer-nav.-stacked .footer-right .columns:last-child {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-img {
    width: 100%;
    text-align: center;
  }
}

.footer-nav.-stacked .footer-img img {
  max-width: 300px;
  width: 100%;
  margin-bottom: 20px;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .footer-img img {
    max-width: 240px;
    width: 100%;
  }
}

.footer-nav.-stacked li.show-for-small-only {
  text-align: center;
}

.footer-nav.-stacked a, .footer-nav.-stacked p {
  position: relative;
  color: #b8b7b4;
  font-size: .9em;
  margin-bottom: 8px;
  padding: 0;
}

.footer-nav.-stacked a {
  -webkit-transition: color 0.3s ease-in-out;
  -moz-transition: color 0.3s ease-in-out;
  -o-transition: color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out;
}

[data-whatinput="touch"] .footer-nav.-stacked a:focus,
[data-whatinput="touch"] .footer-nav.-stacked a:active,
[data-whatinput="mouse"] .footer-nav.-stacked a:focus,
[data-whatinput="mouse"] .footer-nav.-stacked a:active,
[data-whatinput="mouse"] .footer-nav.-stacked a:hover, .footer-nav.-stacked a:hover, .footer-nav.-stacked a:active {
  color: #1CB0B5;
  text-decoration: underline;
}

.footer-nav.-stacked .fa {
  position: absolute;
  top: 2px;
  left: -24px;
  padding-right: 4px;
  width: 23px;
}

.footer-nav.-stacked .main-menu-link {
  margin-bottom: 10px;
  color: #fafafa;
  letter-spacing: .1em;
  font-weight: 700;
  display: inline-block;
  text-transform: uppercase;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .main-menu-link {
    margin-top: 10px;
    width: 100%;
    text-align: left;
  }
}

.footer-nav.-stacked .main-menu-link + ul {
  margin-left: 24px;
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked .main-menu-link + ul {
    margin-bottom: 10px;
  }
}

@media only screen and (max-width: 68em) {
  .footer-nav.-stacked {
    padding: 40px 20px 0 20px;
  }
  .footer-nav.-stacked ul.footer-menu {
    padding: 1.5625em 0 1.5625em 1em;
    display: block;
    margin: auto;
  }
  .footer-nav.-stacked li {
    padding: 0;
  }
  .footer-nav.-stacked li ul {
    margin-bottom: 1.25em;
  }
  .footer-nav.-stacked li a {
    width: 100%;
  }
  .footer-nav.-stacked li a.main-menu-link {
    margin: 0;
    padding: 20px;
    border: none;
  }
  .footer-nav.-stacked li .main-menu-link {
    position: relative;
  }
  .footer-nav.-stacked li .main-menu-link:before {
    content: '';
    display: block;
    width: 18px;
    height: 13px;
    background-position: -90px -60px;
    position: absolute;
    z-index: 1;
    background-size: 210px 760px;
  }
  .footer-nav.-stacked li .main-menu-link:before {
    top: 25px;
    right: 20px;
  }
  [data-whatinput="touch"] .footer-nav.-stacked li .main-menu-link:focus:before,
  [data-whatinput="touch"] .footer-nav.-stacked li .main-menu-link:active:before,
  [data-whatinput="mouse"] .footer-nav.-stacked li .main-menu-link:focus:before,
  [data-whatinput="mouse"] .footer-nav.-stacked li .main-menu-link:active:before,
  [data-whatinput="mouse"] .footer-nav.-stacked li .main-menu-link:hover:before, .footer-nav.-stacked li .main-menu-link:hover:before, .footer-nav.-stacked li .main-menu-link:active:before {
    right: 20px;
    width: 18px;
    opacity: 1;
  }
}

.footer-nav.-stacked.-gov {
  background-color: #fafafa;
  color: #192857;
}

.footer-nav.-stacked.-gov .menu-link {
  color: #192857;
}

[data-whatinput="touch"] .footer-nav.-stacked.-gov .menu-link:focus,
[data-whatinput="touch"] .footer-nav.-stacked.-gov .menu-link:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov .menu-link:focus,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov .menu-link:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov .menu-link:hover, .footer-nav.-stacked.-gov .menu-link:hover, .footer-nav.-stacked.-gov .menu-link:active {
  color: #00b2e2;
}

.footer-nav.-stacked.-gov a, .footer-nav.-stacked.-gov p {
  color: #192857;
}

[data-whatinput="touch"] .footer-nav.-stacked.-gov a:focus,
[data-whatinput="touch"] .footer-nav.-stacked.-gov a:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov a:focus,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov a:active,
[data-whatinput="mouse"] .footer-nav.-stacked.-gov a:hover, .footer-nav.-stacked.-gov a:hover, .footer-nav.-stacked.-gov a:active {
  color: #00b2e2;
}

.footer-nav.-stacked.-gov .footer-right {
  border-left-color: #192857;
}

.footer-nav.-stacked.-enterprise {
  background: #2e2e2e;
  color: #fafafa;
}

.footer-nav.-stacked.-enterprise .footer-right {
  border-left-color: #fafafa;
}

.footer-action-plan {
  background-color: #00b2e2;
}

.footer-action-plan h1 {
  color: #fafafa;
  margin-bottom: .5em;
}

[data-whatinput="touch"] .footer-action-plan h1:focus,
[data-whatinput="touch"] .footer-action-plan h1:active,
[data-whatinput="mouse"] .footer-action-plan h1:focus,
[data-whatinput="mouse"] .footer-action-plan h1:active,
[data-whatinput="mouse"] .footer-action-plan h1:hover, .footer-action-plan h1:hover, .footer-action-plan h1:active {
  color: #192857;
}

.footer-action-plan li {
  color: #fafafa;
}

.footer-action-plan_logo {
  margin-top: -82.5px;
  position: relative;
}

.footer-action-plan_logo img {
  padding: 7.5px;
  max-height: 190px;
  max-width: 190px;
  background: #00b2e2;
  border-radius: 190px;
}

.footer-action-plan_link {
  color: #fafafa;
}

.footer-action-plan_list {
  margin-left: 0;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list {
    margin-top: 1em;
  }
}

.footer-action-plan_list-item {
  position: relative;
  float: none;
  display: inline-block;
  margin: 0;
  color: #fafafa;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list-item {
    display: block;
  }
}

@media screen and (max-width: 39.9375em) {
  .footer-action-plan_list-item {
    font-weight: bold;
  }
}

.footer-action-plan_list-item + .footer-action-plan_list-item {
  margin-left: 30px;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list-item + .footer-action-plan_list-item {
    margin-left: 0;
  }
}

.footer-action-plan_list-item + .footer-action-plan_list-item:before {
  content: '\2022';
  left: -22px;
  top: -11px;
  position: absolute;
  font-size: 1.5em;
}

@media screen and (max-width: 63.9375em) {
  .footer-action-plan_list-item + .footer-action-plan_list-item:before {
    display: none;
  }
}

#hero {
  position: relative;
}

#hero #social-nav {
  width: 100%;
  position: relative;
  border: none;
  z-index: 40;
  margin-top: -37px;
}

#hero #social-nav ul li {
  list-style-type: none;
  width: 16.66667%;
  float: left;
}

#hero #social-nav ul li a {
  background-color: #192857;
  background-color: rgba(25, 40, 87, 0.8);
  border-color: #fafafa;
  color: #fafafa;
}

[data-whatinput="touch"] #hero #social-nav ul li a:focus,
[data-whatinput="touch"] #hero #social-nav ul li a:active,
[data-whatinput="mouse"] #hero #social-nav ul li a:focus,
[data-whatinput="mouse"] #hero #social-nav ul li a:active,
[data-whatinput="mouse"] #hero #social-nav ul li a:hover, #hero #social-nav ul li a:hover, #hero #social-nav ul li a:active {
  background-color: #ab7d25;
  background-color: rgba(179, 131, 38, 0.7);
}

#hero #social-nav ul li a span.fb-icon:before {
  background-position: 0 -150px;
}

#hero #social-nav ul li a span.tw-icon:before {
  background-position: -60px -150px;
}

#hero #social-nav ul li a span.yt-icon:before {
  background-position: -90px -150px;
}

#hero #social-nav ul li a span.flk-icon:before {
  background-position: -150px -150px;
}

#hero #social-nav ul li a span.mail-small-icon:before {
  background-position: -180px -150px;
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #hero {
    background-position: top -100px;
  }
}

@media (min-width: 582px) and (max-width: 767px) {
  #hero {
    min-height: 300px;
  }
}

@media (min-width: 1320px) {
  #hero {
    background-size: 125% auto;
  }
}

.fiat-alert {
  margin: 10px;
  text-align: center;
  margin-top: 8px;
  background: #ef3a4c !important;
  text-shadow: none;
  border: 0;
  letter-spacing: .08em;
}

.fiat-alert p {
  margin-bottom: 0;
  color: #fafafa;
  text-transform: uppercase;
}

.fiat-alert button {
  padding: 0 !important;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  padding-top: 4px;
  color: #fafafa !important;
  border-color: #fafafa;
  float: right;
  outline: none;
}

.fiat-alert button:hover {
  background-color: #fafafa;
  color: #ef3a4c !important;
  cursor: pointer;
}

.fiat-alert a {
  color: #fafafa;
  display: inline-block;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
  padding: 5px 10px;
  background-color: #b40f1f;
  -webkit-transition: background-color ease 0.3s;
  -moz-transition: background-color ease 0.3s;
  -o-transition: background-color ease 0.3s;
  transition: background-color ease 0.3s;
}

.fiat-alert a:hover {
  background-color: #850b17;
}

@media screen and (max-width: 39.9375em) {
  .fiat-alert {
    margin-top: 20px;
  }
}

#priorities .tab-title {
  width: 33.333333333%;
  background-color: #af8026;
}

#priorities .tab-title a {
  background: #c8922b;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzFlNTc5OSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3ZGI5ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: -moz-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #c8922b), color-stop(100%, #af8026));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #c8922b 0%, #af8026 100%);
  /* IE10+ */
  background: linear-gradient(to bottom, #c8922b 0%, #af8026 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
  /* IE6-8 */
  transition: all .5s ease;
  color: #fafafa;
  border-right: solid 1px #fafafa;
  text-transform: uppercase;
  text-align: center;
  font-weight: normal;
  letter-spacing: .1em;
  padding: 40px 0;
  background-repeat: no-repeat;
  outline: none;
  -webkit-transition: background-position 0.3s ease;
  -moz-transition: background-position 0.3s ease;
  -o-transition: background-position 0.3s ease;
  transition: background-position 0.3s ease;
}

#priorities .tab-title a:hover {
  background-position: left -106px;
}

#priorities .tab-title a .schools-tab {
  position: relative;
  width: 62px;
}

#priorities .tab-title a .schools-tab:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 56px;
  height: 41px;
  background-position: 0 -330px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities .tab-title a .schools-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities .tab-title a .jobs-tab {
  position: relative;
  width: 50px;
}

#priorities .tab-title a .jobs-tab:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 40px;
  height: 42px;
  background-position: -60px -330px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities .tab-title a .jobs-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities .tab-title a .gov-tab {
  position: relative;
  width: 63px;
}

#priorities .tab-title a .gov-tab:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 53px;
  height: 45px;
  background-position: -120px -330px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities .tab-title a .gov-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities .tab-title a .tab-icon {
  height: 18px;
  margin: 0;
  display: inline-block;
}

#priorities .tab-title.active a {
  background: #fafafa;
  color: #0a0a0a;
  -webkit-transition: background 0.2s ease;
  -moz-transition: background 0.2s ease;
  -o-transition: background 0.2s ease;
  transition: background 0.2s ease;
}

#priorities .tab-title.active a .schools-tab:before {
  background-position: 0 -270px;
}

#priorities .tab-title.active a .jobs-tab:before {
  background-position: -60px -270px;
}

#priorities .tab-title.active a .gov-tab:before {
  background-position: -120px -270px;
}

#priorities .tab-title.active a:active {
  background: #ededed;
}

#priorities .tab-title:last-child a {
  border-right: none;
}

#priorities .tab-text {
  display: none;
}

#priorities .tabs-content {
  position: relative;
  z-index: 20;
}

#priorities .tabs-content .home-priorities-image {
  width: 100%;
  height: 300px;
  background-position: center;
  background-size: cover;
  position: relative;
}

#priorities .tabs-content .home-priorities-image:before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  background-position: center;
  background-color: #c8922b;
  background-image: url("../../images/coa_xsmall.png");
  background-size: contain;
  background-repeat: no-repeat;
  z-index: -1;
  border: solid 20px #c8922b;
}

#priorities .tabs-content h2 {
  font-weight: bold;
  margin-top: -10px;
  margin-bottom: 30px;
  font-size: 2rem;
}

#priorities .tabs-content p {
  margin-bottom: 40px;
}

@media screen and (max-width: 39.9375em) {
  #priorities .tab-title a {
    height: 100px;
    padding: 25px 0;
  }
  #priorities .tabs-content img {
    margin: 25px 0 50px 0;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title a {
    padding: 20px 0;
    font-size: .85em;
  }
  #priorities .tab-title a .tab-icon {
    margin-left: 0;
    margin-bottom: 10px;
  }
  #priorities .tab-title a .schools-tab {
    position: relative;
    width: 22px;
  }
  #priorities .tab-title a .schools-tab:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 29px;
    height: 20px;
    background-position: 0 -480px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: 63.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-resolution: 144dppx) {
  #priorities .tab-title a .schools-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title a .jobs-tab {
    position: relative;
    width: 22px;
  }
  #priorities .tab-title a .jobs-tab:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 22px;
    height: 24px;
    background-position: -30px -480px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: 63.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-resolution: 144dppx) {
  #priorities .tab-title a .jobs-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title a .gov-tab {
    position: relative;
    width: 29px;
  }
  #priorities .tab-title a .gov-tab:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 29px;
    height: 25px;
    background-position: -60px -480px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: 63.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: 63.9375em) and (min-resolution: 144dppx) {
  #priorities .tab-title a .gov-tab:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  #priorities .tab-title.active a .schools-tab:before {
    background-position: 0 -450px;
  }
  #priorities .tab-title.active a .jobs-tab:before {
    background-position: -30px -450px;
  }
  #priorities .tab-title.active a .gov-tab:before {
    background-position: -60px -450px;
  }
  #priorities .tab-text {
    display: block;
  }
}

@media screen and (min-width: 40em) {
  #priorities .tabs-content {
    padding: 75px 0;
  }
  #priorities .tabs-content img {
    max-width: 95%;
  }
}

@media screen and (min-width: 64em) {
  #priorities .tab-text {
    display: inline;
  }
  #priorities .tab-title a .tab-icon:before {
    top: -10px;
  }
}

#homeHeadline {
  margin-top: 20px;
}

#homeHeadline .news-post.news-post-headline {
  margin-bottom: 20px;
}

@media screen and (max-width: 39.9375em) {
  #homeHeadline {
    display: none;
  }
}

#governor {
  background: #192857;
  /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzFlNTc5OSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3ZGI5ZTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: -moz-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #192857), color-stop(100%, #121d3f));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #192857 0%, #121d3f 100%);
  /* IE10+ */
  background: linear-gradient(to bottom, #192857 0%, #121d3f 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
  /* IE6-8 */
  transition: all .5s ease;
  transition: all .5s ease;
  color: #fafafa;
  padding-top: 2.5em;
}

#governor #gov-photo {
  margin-top: 3.5em;
}

@media screen and (min-width: 64em) {
  #governor #gov-photo {
    height: 300px;
    margin-top: 6.5em;
  }
}

#governor #gov-info {
  margin: 30px 0 140px;
}

@media screen and (min-width: 64em) {
  #governor #gov-info {
    margin: 100px 0 140px;
  }
}

#governor #gov-info span {
  letter-spacing: 0.1em;
}

#governor #gov-info h1 {
  color: #fafafa;
  margin-bottom: 10px;
  margin-top: 0;
  line-height: inherit;
}

#governor #gov-info p {
  margin-bottom: 30px;
  color: #fafafa;
}

#governor #gov-info .button {
  color: #fafafa;
  border-color: transparent;
  margin-bottom: 0;
  padding: 0;
}

#governor #gov-info .button:hover {
  background-color: transparent;
  color: #192857;
}

#governor .news-image {
  display: inline-block;
  width: 100%;
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  background-size: 100%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-image: url(../../images/coa_xsmall.png);
  background-color: transparent;
}

#governor .news-image #image-inner {
  display: block;
  height: 0;
  padding-top: 58.3%;
  background-size: cover;
  background-position: center;
}

#social-media {
  padding: 50px 0;
}

#social-media .social-link {
  overflow: hidden;
  margin-bottom: 40px;
}

#social-media .social-link .social-icon {
  width: 60px;
  height: 60px;
  border: solid 2px #0a0a0a;
  border-radius: 50%;
  position: relative;
  float: left;
}

#social-media .social-link .social-icon.tw-icon:before, #social-media .social-link .social-icon.flickr-icon:before {
  margin: 15px 0 0 10px;
}

#social-media .social-link .social-icon.tw-icon {
  position: relative;
}

#social-media .social-link .social-icon.tw-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 32px;
  height: 27px;
  background-position: -150px -450px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .social-link .social-icon.tw-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .social-link .social-icon.tw-icon:before {
  margin-left: 12px;
}

#social-media .social-link .social-icon.flickr-icon {
  position: relative;
}

#social-media .social-link .social-icon.flickr-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 37px;
  height: 15px;
  background-position: -150px -480px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .social-link .social-icon.flickr-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .social-link .social-icon.flickr-icon:before {
  top: 5px;
}

#social-media .social-link .social-icon:after {
  content: '';
  width: 60px;
  height: 2px;
  background: #0a0a0a;
  display: block;
  position: absolute;
  top: 50%;
  right: -62px;
}

#social-media .social-link a {
  font-size: 24px;
  font-weight: bold;
  display: block;
  float: left;
  margin-left: 73px;
  margin-top: 11px;
  position: relative;
  color: #c8922b;
}

#social-media .social-link a:after {
  content: '';
  height: 2px;
  background: #0a0a0a;
  width: 1000px;
  display: block;
  position: absolute;
  right: -1015px;
  top: 19px;
}

#social-media .social-link a:hover {
  color: black;
}

#social-media .social-link a span {
  display: inline !important;
}

@media screen and (max-width: 39.9375em) {
  #social-media .social-link .social-icon:after {
    width: 500px;
    right: -502px;
  }
  #social-media .social-link a {
    background: #fafafa;
    float: right;
    font-size: 18px;
    margin-left: 0;
    margin-top: 18px;
    padding: 0 0 0 10px;
  }
  #social-media .social-link a:after {
    display: none;
  }
}

#social-media article {
  margin-bottom: -7px;
}

#social-media .latest-tweet h2 {
  font-weight: normal;
  margin-bottom: 50px;
}

#social-media .latest-tweet .tweet-date {
  color: #AAAAAA;
  font-weight: normal;
  font-style: italic;
  font-size: 1.2em;
}

#social-media .latest-tweet ul {
  text-align: center;
  margin: 0;
}

#social-media .latest-tweet ul li {
  list-style-type: none;
  padding: 0;
  display: inline-block;
  margin-top: 20px;
}

#social-media .latest-tweet ul li a {
  text-transform: uppercase;
  color: #0a0a0a;
  font-weight: normal;
  letter-spacing: .1em;
  padding: 10px 12px 9px 60px;
  position: relative;
  margin: 0;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
}

#social-media .latest-tweet ul li a:before {
  left: 13px;
}

#social-media .latest-tweet ul li a.reply-icon {
  position: relative;
}

#social-media .latest-tweet ul li a.reply-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 28px;
  height: 16px;
  background-position: 0 -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .latest-tweet ul li a.reply-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .latest-tweet ul li a.reply-icon:before {
  top: 9px;
}

#social-media .latest-tweet ul li a.rt-icon {
  position: relative;
}

#social-media .latest-tweet ul li a.rt-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 27px;
  height: 24px;
  background-position: -30px -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .latest-tweet ul li a.rt-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .latest-tweet ul li a.rt-icon:before {
  top: 5px;
}

#social-media .latest-tweet ul li a.fav-icon {
  position: relative;
}

#social-media .latest-tweet ul li a.fav-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 25px;
  height: 24px;
  background-position: -60px -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #social-media .latest-tweet ul li a.fav-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#social-media .latest-tweet ul li a.fav-icon:before {
  top: 6px;
}

#social-media .latest-tweet ul li a:hover {
  color: #192857;
  background: #f2f2f2;
}

#social-media .latest-tweet ul li a:active {
  background: #ededed;
}

#social-media .latest-tweet ul li:last-child a {
  margin: 0px;
}

@media screen and (min-width: 40em) {
  #social-media .latest-tweet ul {
    text-align: right;
  }
  #social-media .latest-tweet ul li {
    display: inline;
    float: none;
  }
  #social-media .latest-tweet ul li a {
    margin-left: 25px;
  }
}

#social-media div.fetch-tweets {
  max-height: 100% !important;
}

#social-media .latest-flickr:after {
  content: '';
  display: block;
  padding-bottom: 50px;
}

#social-media .latest-flickr .flickr-photos a img {
  -webkit-transition: opacity 0.2s ease;
  -moz-transition: opacity 0.2s ease;
  -o-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

#social-media .latest-flickr .flickr-photos a img:hover {
  -webkit-opacity: 0.5;
  -moz-opacity: 0.5;
  -ms-opacity: 0.5;
  -o-opacity: 0.5;
  opacity: 0.5;
}

@media screen and (max-width: 39.9375em) {
  #social-media {
    padding: 15px 0 0 0;
  }
  #social-media h1 {
    margin-bottom: 20px;
  }
  #social-media .latest-tweet h2 {
    margin-bottom: 15px;
  }
}

.reveal {
  border: none;
}

.reveal .close-button {
  font-size: 22px;
  font-weight: 700;
  padding: 10px;
  text-transform: uppercase;
  top: 0;
  right: 0;
  width: auto;
  background: transparent;
}

.reveal .close-button:hover {
  background: transparent;
}

.reveal .close-button .inner {
  height: 3px;
  background-color: transparent;
  color: #003146;
  content: "";
  width: 25px;
  margin: 0 auto;
  position: relative;
  top: 10px;
}

.reveal .close-button .inner:before {
  transform: rotate(45deg);
  background-color: #003146;
  content: "";
  display: block;
  height: 3px;
  width: 25px;
}

.reveal .close-button .inner:after {
  transform: rotate(-45deg);
  background-color: #003146;
  content: "";
  display: block;
  height: 3px;
  width: 25px;
  margin-top: -3px;
}

.reveal .close-button .menulabel {
  color: #003146;
  position: relative;
  bottom: -20px;
  font-weight: 300;
  font-size: 10px;
  letter-spacing: 0;
}

.close-button.text-white .menulabel {
  color: #fafafa;
}

.close-button.text-white .inner:before, .close-button.text-white .inner:after {
  background-color: #fafafa;
}

#newsroom {
  padding: 4em 0 7em 0;
}

#newsroom .section-title {
  color: #192857;
  padding-bottom: .5em;
}

#newsroom .section-title:hover {
  color: #00b2e2;
}

#newsroom .banner-image {
  width: 100%;
}

#newsroom .newsroom-date {
  text-transform: uppercase;
  font-weight: normal;
  display: inline-block;
  margin-bottom: 0;
  font-style: italic;
  font-size: .9em;
  display: block;
  margin: 10px 0;
}

#newsroom .news-post-byline {
  font-weight: 500;
  font-style: normal;
  font-size: .9em;
  display: block;
  margin: 10px 0;
}

.news-post-title {
  margin: 0;
  border-bottom: solid 1px #e1e1e1;
  padding-left: 55px;
  padding-bottom: 30px;
  margin-bottom: 40px;
  width: 368px;
  font-size: 1rem;
  line-height: 1.25;
  padding-bottom: 0.6875rem;
  font-weight: bold;
  text-transform: uppercase;
  position: relative;
}

.news-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 29px;
  height: 29px;
  background-position: -90px -180px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  .news-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.news-post-title:before {
  top: 2px;
  left: 0;
}

.news-post-category {
  color: #c8922b !important;
  font-size: .65rem !important;
  text-transform: uppercase;
  margin: 10px 0 !important;
}

.news-post-category > a {
  color: #c8922b;
  text-decoration: none !important;
}

.news-post-image {
  position: relative;
  margin-bottom: 15px;
}

.news-post-post-title {
  margin-top: 0;
  font-size: 1.25em;
  line-height: 1.3em;
}

.news-post-post-title a {
  color: #192857;
  text-decoration: none !important;
}

.news-post-post-date {
  font-weight: normal;
  font-style: italic;
  font-size: .9em;
  display: block;
  margin: 10px 0;
}

.news-post .button {
  margin: 0;
}

.news-post article.row {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: solid 1px #e1e1e1;
}

.news-post article.row:last-child {
  border: none;
  margin-bottom: 0;
}

.news-post.news-post-priority {
  margin: 50px 0 0;
  padding-bottom: 40px;
  border-bottom: none;
}

.news-post.news-post-headline {
  padding: 30px 40px 40px;
  margin-bottom: 50px;
  border-color: #192857;
}

.news-post.news-post-headline .news-post-title {
  margin-bottom: 30px;
  padding-bottom: 20px;
}

.news-post.news-post-headline .news-post-title:before {
  background-position: -120px -180px;
}

.view-all-news {
  padding: 25px 50px;
  background: #c8922b;
  color: #fafafa;
  margin-bottom: 75px;
}

.view-all-news h5 {
  color: #fafafa;
  margin: 0;
  font-weight: bold;
}

.view-all-news .button {
  margin: 0;
  margin-top: 8px;
}

#social-article {
  background: #c8922b;
  color: #fafafa;
  padding: 10px;
}

#social-article span {
  margin-right: 8px;
}

#social-article a {
  color: #fafafa;
}

#social-article a:hover {
  opacity: .7;
}

section#related-news h3, section#related-news .h3, section#related-media h3, section#related-media .h3 {
  padding-top: 1em;
  padding-bottom: .25em;
}

section#related-news .column-block, section#related-media .column-block {
  margin-bottom: 0;
}

.prev_next_links {
  margin-top: 25px;
}

.prev_next_links span {
  width: 150px;
  max-width: 50%;
}

.prev_next_links a {
  font-size: .8em;
  text-transform: uppercase;
  padding: 10px 15px;
  display: inline-block;
  color: #c8922b;
  border: solid 2px #c8922b;
}

.prev_next_links a:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f053";
  margin-right: 10px;
}

.prev_next_links a:hover {
  background: #c8922b;
  color: #fafafa;
}

.prev_next_links .previous_post a {
  text-align: right;
}

.prev_next_links .next_post a {
  text-align: left;
}

.prev_next_links .next_post a:before {
  right: 10px;
}

#content {
  padding: 50px 0 140px;
  position: relative;
}

@media screen and (max-width: 63.9375em) {
  #content {
    padding: 15px 0 140px;
  }
}

@media screen and (max-width: 39.9375em) {
  .priorities-content h1 {
    margin-top: 20px;
  }
}

#gov {
  text-align: center;
  padding: 9px 0;
  padding-top: 0;
  border-bottom: solid 1px #fafafa;
  overflow: hidden;
}

#gov .state {
  margin-bottom: 20px;
  position: relative;
}

#gov .state .state-icon {
  margin: 0 auto;
  width: 29px;
  position: relative;
}

#gov .state .state-icon:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 28px;
  height: 17px;
  background-position: 0px -90px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #gov .state .state-icon:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#gov .state:before, #gov .state:after {
  content: '';
  width: 100%;
  border-top: solid 1px #fafafa;
  display: block;
  position: absolute;
  top: 8px;
}

#gov .state:before {
  left: 55%;
}

#gov .state:after {
  right: 55%;
}

#gov h2, #gov h4 {
  color: #fafafa;
  letter-spacing: .18em;
  margin: 0px;
  text-transform: uppercase;
}

#gov h2 {
  font-size: 30px;
}

#gov h4 {
  font-weight: normal;
  font-size: 15px;
  line-height: 22px;
  letter-spacing: .14em;
}

#header_image {
  height: 420px;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

@media screen and (max-width: 39.9375em) {
  #header_image {
    height: 210px;
  }
}

#header_image.priorities-header {
  margin-top: 0px;
}

#priorities-nav {
  padding: 0;
  background: transparent;
}

#sticky-header {
  background: #c8922b;
  z-index: 9999;
  color: #fafafa;
  padding: 10px;
}

#sticky-header .right {
  margin-top: 5px;
  margin-right: 10px;
}

#sticky-header .right .share-title {
  font-size: .8em;
}

#sticky-header h3, #sticky-header a {
  display: inline-block;
  color: #fafafa;
  margin: 0;
  margin-left: 10px;
}

#sticky-header span {
  display: inline-block;
  height: 19px;
}

#sticky-header .fb-icon {
  width: 10px;
  height: 19px;
  margin-bottom: -3px;
}

#sticky-header .fb-icon:before {
  background-position: 0 -150px;
}

#sticky-header .tw-icon {
  width: 23px;
  height: 15px;
  margin-bottom: -2px;
}

#sticky-header .tw-icon:before {
  background-position: -60px -150px;
}

#sticky-header a:hover {
  opacity: .7;
}

#priorities-sidebar {
  background: #3d3d3d;
  display: inline-block;
  position: absolute;
  z-index: 20;
  width: 243px;
}

#priorities-sidebar h5 {
  color: #fafafa;
  text-transform: uppercase;
  font-weight: normal;
  margin: 0;
  font-size: .8em;
  padding: 10px 0 10px 40px;
  background: #242424;
  position: relative;
}

#priorities-sidebar h5:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 18px;
  height: 18px;
  background-position: -180px -240px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities-sidebar h5:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities-sidebar h5:before {
  left: 15px;
}

#priorities-sidebar ul {
  background: #3d3d3d;
  list-style-type: none;
  margin: 0;
}

#priorities-sidebar ul li:last-child ul {
  border-bottom: solid 1px #575757;
}

#priorities-sidebar ul a {
  padding: 18px 20px 12px;
  text-transform: uppercase;
  display: block;
  font-size: .8em;
  color: #fafafa;
  border: solid 1px #575757;
  border-left: none;
  border-right: none;
  position: relative;
  line-height: 1.5em;
  -webkit-transition: background 0.2s ease;
  -moz-transition: background 0.2s ease;
  -o-transition: background 0.2s ease;
  transition: background 0.2s ease;
}

#priorities-sidebar ul a:hover {
  background: #383838;
}

#priorities-sidebar ul a span {
  font-weight: bold;
  font-size: 1.4em;
  display: block;
}

#priorities-sidebar ul .active > a {
  color: #192857;
}

#priorities-sidebar ul .active > a + ul {
  height: auto;
  overflow: initial;
}

#priorities-sidebar ul ul {
  overflow: hidden;
  height: 0;
  opacity: 1;
  filter: alpha(opacity=100);
  -webkit-transition: opacity 0.5s ease-out;
  -moz-transition: opacity 0.5s ease-in-out;
  -ms-transition: opacity 0.5s ease-in-out;
  -o-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}

#priorities-sidebar ul ul li {
  padding: 0 15px;
  background: #242424;
}

#priorities-sidebar ul ul li a {
  font-size: .8em;
  border: none;
  border-bottom: solid 1px #3d3d3d;
  padding: 12px 0 9px 0;
  max-width: 100%;
  text-align: left;
  position: relative;
  padding-right: 20px;
  position: relative;
}

#priorities-sidebar ul ul li a:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 8px;
  height: 10px;
  background-position: -30px -90px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #priorities-sidebar ul ul li a:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#priorities-sidebar ul ul li a:before {
  position: absolute;
  margin-top: -5px;
  top: 50%;
  right: 0;
  -webkit-transition: right 0.2s ease, width 0s ease, opacity 0.2s;
  -moz-transition: right 0.2s ease, width 0s ease, opacity 0.2s;
  -o-transition: right 0.2s ease, width 0s ease, opacity 0.2s;
  transition: right 0.2s ease, width 0s ease, opacity 0.2s;
}

#priorities-sidebar ul ul li a:hover {
  background: #242424;
}

#priorities-sidebar ul ul li a:hover:before {
  right: -40px;
}

#priorities-sidebar ul ul li:hover a {
  color: #949494;
}

#priorities-sidebar ul ul li:last-child a {
  border: none;
}

@media screen and (max-width: 39.9375em) {
  #priorities-sidebar {
    margin: 0;
    width: 100%;
    height: auto;
  }
  #priorities-sidebar ul#priorities-main-nav .active {
    position: relative;
  }
  #priorities-sidebar ul#priorities-main-nav .active:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 20px;
    height: 20px;
    background-position: -180px -240px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (max-width: 39.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (max-width: 39.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (max-width: 39.9375em) and (min--moz-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-resolution: 144dppx) {
  #priorities-sidebar ul#priorities-main-nav .active:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (max-width: 39.9375em) {
  #priorities-sidebar ul#priorities-main-nav .active:before {
    left: 15px;
    top: 14px;
  }
  #priorities-sidebar ul li {
    opacity: 0;
    height: 0px;
  }
  #priorities-sidebar ul li.active {
    height: auto;
    opacity: 1;
  }
  #priorities-sidebar ul li.active > a {
    padding-left: 45px;
  }
  #priorities-sidebar ul a {
    padding: 14px 20px 10px;
    position: relative;
  }
  #priorities-sidebar ul a:before {
    content: '';
    display: block;
    background-image: url("../../images/sprite.png");
    width: 18px;
    height: 13px;
    background-position: -90px -60px;
    position: absolute;
    background-size: 210px 570px;
  }
}

@media screen and (max-width: 39.9375em) and (-webkit-min-device-pixel-ratio: 1), screen and (max-width: 39.9375em) and (-o-min-device-pixel-ratio: 3 / 2), screen and (max-width: 39.9375em) and (min--moz-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-device-pixel-ratio: 2), screen and (max-width: 39.9375em) and (min-resolution: 144dppx) {
  #priorities-sidebar ul a:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

@media screen and (max-width: 39.9375em) {
  #priorities-sidebar ul a:before {
    right: 13px;
  }
  #priorities-sidebar ul a span {
    display: inline-block;
    margin-right: 2px;
  }
  #priorities-sidebar ul.mobile-priorities-main-nav li {
    height: auto;
    opacity: 1;
  }
}

.fixedPrioNav {
  position: fixed;
  top: 109px;
  width: 100%;
  z-index: 3000;
}

.fixedPrioNav #priorities-sidebar {
  margin-top: 0;
}

@media screen and (max-width: 39.9375em) {
  .fixedPrioNav {
    top: 45px;
  }
}

.priorities-nav-bg {
  background: #3d3d3d;
  display: inline-block;
  position: absolute;
  height: 100%;
  width: 243px;
  z-index: -1;
  top: 0;
}

#content.priorities-content {
  margin-left: 275px;
  margin-top: 0;
  padding-top: 0;
}

@media screen and (max-width: 39.9375em) {
  #content.priorities-content {
    margin: 0;
    margin-top: 50px;
  }
}

.priorities-nav-arrow {
  display: block;
  position: absolute;
  top: 17px;
  right: -40px;
  width: 0;
  height: 0;
  border-top: 18px solid transparent;
  border-bottom: 18px solid transparent;
  border-right: 20px solid transparent;
  border-left: 20px solid #3d3d3d;
  opacity: 1;
  filter: alpha(opacity=100);
  -webkit-transition: top 0.3s 0s ease;
  -moz-transition: top 0.3s 0s ease;
  -o-transition: top 0.3s 0s ease;
  transition: top 0.3s 0s ease;
}

@media screen and (max-width: 39.9375em) {
  .priorities-nav-arrow {
    display: none;
  }
}

.priority-section {
  margin-top: 50px;
  border-bottom: solid 1px #e1e1e1;
}

.priority-section:first-child {
  margin-top: 0;
}

.priority-section:last-child {
  border: none;
}

.priority-post-title {
  padding-left: 65px;
  color: #0a0a0a;
  font-weight: bold;
  display: inline-block;
  margin-bottom: 25px;
  text-transform: uppercase;
}

.priority-post-title:before {
  top: 2px;
  left: 0;
}

#schools-section .priority-post-title {
  padding-left: 75px;
  position: relative;
}

#schools-section .priority-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 56px;
  height: 41px;
  background-position: 0 -390px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #schools-section .priority-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#jobs-section .priority-post-title {
  position: relative;
}

#jobs-section .priority-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 40px;
  height: 42px;
  background-position: -60px -390px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #jobs-section .priority-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

#government-section .priority-post-title {
  position: relative;
}

#government-section .priority-post-title:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 53px;
  height: 45px;
  background-position: -120px -390px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  #government-section .priority-post-title:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.anchor {
  display: block;
  visibility: hidden;
}

.priorities-main-nav_fade-out {
  opacity: 0.0;
  filter: alpha(opacity=0);
  position: relative;
  -webkit-transition: opacity 0.5s ease-out;
  -moz-transition: opacity 0.5s ease-in-out;
  -ms-transition: opacity 0.5s ease-in-out;
  -o-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
}

select {
  background-image: none;
}

.widget {
  margin-bottom: 50px;
}

.widget h5 {
  color: #fafafa;
  background-color: #192857;
  font-weight: normal;
  text-transform: uppercase;
  font-size: .9em;
  padding: 15px 20px 13px 25px;
  letter-spacing: .08em;
  margin: 0;
}

.widget .menu-about-container ul li {
  border-bottom: solid 1px #e1e1e1;
}

.widget ul {
  background: #fafafa;
  margin: 0;
  border: solid 1px #e1e1e1;
  border-top: 0;
}

.widget ul ul {
  border-bottom: 0;
}

.widget ul li {
  width: 100%;
  list-style-type: none;
}

.widget ul li a {
  position: relative;
  width: 100%;
  text-transform: uppercase;
  display: block;
  font-size: 1.1em;
  color: #0a0a0a;
  padding: 15px 20px;
  -webkit-transition: background ease 0.2s;
  -moz-transition: background ease 0.2s;
  -o-transition: background ease 0.2s;
  transition: background ease 0.2s;
}

.widget ul li a:hover {
  background: #ededed;
}

.widget ul li:last-child {
  border: none;
}

.widget div {
  background: #fafafa;
  border: solid 1px #e1e1e1;
}

.widget div ul {
  border: 0;
}

.widget .textwidget {
  padding: 1.25rem 1.25rem 0;
}

.panel .widget_text {
  background: #fafafa;
}

.panel .widget_text .textwidget {
  border: none;
  background: #fafafa;
}

.widget_nav_menu #newsroom-sidebar ul#menu-newsroom li.current-menu-item a {
  color: #192857;
}

@media screen and (max-width: 39.9375em) {
  .widget_nav_menu ul#menu-newsroom {
    border-top: solid 1px #e1e1e1;
    overflow: hidden;
  }
  .widget_nav_menu ul#menu-newsroom.mobile-dropdown li {
    height: auto;
    border-bottom: solid 1px #e1e1e1;
  }
  .widget_nav_menu ul#menu-newsroom.mobile-dropdown li:last-child {
    border: none;
  }
}

.widget-archivelist-year > a,
.widget-archivelist-year .menu-item-has-children > a,
.widget #menu-weekly-reports > a,
.widget #menu-weekly-reports .menu-item-has-children > a {
  font-size: 1.1em;
  color: #0a0a0a;
}

.widget-archivelist-year ul,
.widget #menu-weekly-reports ul {
  height: 0px;
  overflow: hidden;
  border: none;
}

.widget-archivelist-year ul li,
.widget #menu-weekly-reports ul li {
  border: none;
}

.widget-archivelist-year ul li a,
.widget #menu-weekly-reports ul li a {
  border: none;
  font-size: .9em;
  padding: 5px 30px;
}

.widget-archivelist-year.current-archive-year > a, .widget-archivelist-year.current-archive-year .menu-item-has-children > a, .widget-archivelist-year .current-report > a, .widget-archivelist-year .current-report .menu-item-has-children > a,
.widget #menu-weekly-reports.current-archive-year > a,
.widget #menu-weekly-reports.current-archive-year .menu-item-has-children > a,
.widget #menu-weekly-reports .current-report > a,
.widget #menu-weekly-reports .current-report .menu-item-has-children > a {
  color: #192857;
  border: none;
}

.widget-archivelist-year.current-archive-year > a:before, .widget-archivelist-year.current-archive-year .menu-item-has-children > a:before, .widget-archivelist-year .current-report > a:before, .widget-archivelist-year .current-report .menu-item-has-children > a:before,
.widget #menu-weekly-reports.current-archive-year > a:before,
.widget #menu-weekly-reports.current-archive-year .menu-item-has-children > a:before,
.widget #menu-weekly-reports .current-report > a:before,
.widget #menu-weekly-reports .current-report .menu-item-has-children > a:before {
  top: 10px;
  background-position: -120px -90px;
}

.widget-archivelist-year.current-archive-year ul, .widget-archivelist-year .current-report ul,
.widget #menu-weekly-reports.current-archive-year ul,
.widget #menu-weekly-reports .current-report ul {
  border: none;
  height: auto;
  padding-bottom: 5px;
  border-bottom: solid 1px #e1e1e1;
}

.widget-archivelist-year .current-report > a, .widget-archivelist-year .current-report .menu-item-has-children > a,
.widget #menu-weekly-reports .current-report > a,
.widget #menu-weekly-reports .current-report .menu-item-has-children > a {
  color: black;
  background: #ededed;
}

.widget .tut-tweet {
  padding: 20px;
  font-size: .95em;
}

.widget .tut-tweet .tut-user-name {
  display: none;
}

.widget .tut-tweet .tut-screen-name {
  display: none;
}

.widget .tut-tweet header {
  float: left;
  width: 20%;
  padding-right: 5px;
}

.widget .tut-tweet .tut-profile-image {
  height: auto;
}

.widget .tut-tweet li, .widget .tut-tweet .tut-text {
  border: none;
  margin: 0;
}

.widget .tut-tweet .tut-text {
  float: right;
  width: 80%;
}

.widget .tut-tweet a {
  display: inline;
  color: #192857;
  padding: 0;
  text-transform: capitalize;
  font-size: .95em;
}

.widget .tut-tweet::before, .widget .tut-tweet::after {
  content: ' ';
  display: table;
  clear: both;
}

.widget .tut-tweets li {
  margin-top: 0;
}

.widget .tut-follow-link {
  border: solid 1px #e1e1e1;
  border-top: none;
  display: block;
  margin: 0;
  padding: 15px;
  text-align: center;
  padding-left: 2px;
  font-size: 1em;
}

.widget .tut-actions {
  float: right;
  border: 1px solid #fafafa !important;
}

.widget .tut-actions a {
  margin-left: 8px;
  width: 16px;
  height: 16px;
  display: inline-block;
  background-image: url("../../images/everything-sprite-light.png");
}

.widget .tut-actions .tut-reply:hover {
  background-position: -16px 0;
}

.widget .tut-actions .tut-retweet {
  background-position: -82px 0;
}

.widget .tut-actions .tut-retweet:hover {
  background-position: -101px 0;
}

.widget .tut-actions .tut-favorite {
  background-position: -32px 0;
}

.widget .tut-actions .tut-favorite:hover {
  background-position: -48px 0;
}

.widget .tut-time {
  border: 1px solid #fafafa !important;
}

.widget_newsletter_widget .newsletter_widget_container {
  padding: 15px 20px;
}

.widget_newsletter_widget .newsletter_widget_container div {
  border: none;
}

.widget_newsletter_widget .newsletter_widget_container .ninja-forms-cont input[type="submit"] {
  background: #c8922b;
  border-color: #c8922b;
  color: #fafafa !important;
}

.widget_newsletter_widget h3 {
  text-align: center;
  line-height: 1.2em;
  padding-bottom: 5px;
  font-size: 1em;
  font-weight: 700;
  margin-top: 5px;
}

.widget_newsletter_widget form input {
  outline: none;
  border: solid 4px #e1e1e1;
  padding: 0 20px;
  min-height: 50px;
  font-weight: normal;
}

.widget_newsletter_widget form input:focus {
  border-color: #192857;
}

.widget_newsletter_widget form .button.secondary {
  background-color: #192857;
  margin-bottom: 5px;
}

.widget_newsletter_widget form .button.secondary:hover {
  background-color: #131f43;
}

.widget_schedule_filter_widget #tribe-events-bar {
  padding: 20px;
}

.widget_schedule_filter_widget #tribe-events-bar h4 {
  font-size: 1em;
  font-weight: bold;
}

.widget_schedule_filter_widget #tribe-events-bar div {
  border: none;
}

.widget_schedule_filter_widget #tribe-events-bar label {
  color: #aeaeae;
  font-weight: normal;
  margin-bottom: 5px;
}

.widget_schedule_filter_widget #tribe-events-bar input[type="text"] {
  border: solid 5px #e6e6e6;
  outline: none;
  padding: 0 15px;
  display: block;
  height: 50px;
  box-shadow: none;
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container {
  position: relative;
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container input {
  border: solid 1px #8a8a8a;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
  padding-left: 45px;
  color: #aeaeae;
  font-weight: normal;
  height: 40px;
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container:before {
  content: '';
  display: block;
  background-image: url("../../images/sprite.png");
  width: 15px;
  height: 15px;
  background-position: -150px -30px;
  position: absolute;
  background-size: 210px 570px;
}

@media (-webkit-min-device-pixel-ratio: 1), (-o-min-device-pixel-ratio: 3 / 2), (min--moz-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 144dppx) {
  .widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container:before {
    background-image: url("../../images/sprite@2x.png");
  }
}

.widget_schedule_filter_widget #tribe-events-bar .tribe-bar-search-container:before {
  top: 13px;
  left: 16px;
}

.widget_schedule_filter_widget #tribe-events-bar .button.primary {
  background: #c8922b;
  color: #fafafa;
  padding: 12px 20px;
  font-size: 1em;
  margin-bottom: 0;
}

.widget_schedule_filter_widget #schedule-widget {
  padding: 20px;
}

.widget_schedule_filter_widget #schedule-widget h4 {
  font-size: 1em;
  font-weight: bold;
}

.widget_schedule_filter_widget #schedule-widget div {
  border: none;
}

.widget_schedule_filter_widget #schedule-widget label {
  color: #aeaeae;
  font-weight: normal;
  margin-bottom: 5px;
}

.widget_schedule_filter_widget #schedule-widget input[type="text"] {
  border: solid 5px #e6e6e6;
  outline: none;
  padding: 0 15px;
  display: block;
  height: 50px;
  box-shadow: none;
}

.widget_schedule_filter_widget #schedule-widget .schedule_search {
  position: relative;
  margin-bottom: 15px;
  padding-bottom: 5px;
}

.widget_schedule_filter_widget #schedule-widget .schedule_search input[type="search"] {
  border: solid 1px #00b2e2;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -ms-border-radius: 50px;
  -o-border-radius: 50px;
  border-radius: 50px;
  padding-left: 15px;
  color: #192857;
  font-weight: normal;
  height: 40px;
  width: 100%;
}

.widget_schedule_filter_widget #schedule-widget .schedule_search .search-button-wrapper {
  background: transparent;
  right: 15px;
}

.widget_schedule_filter_widget #schedule-widget .button.primary {
  background: #c8922b;
  color: #fafafa;
  padding: 12px 20px;
  font-size: 1em;
  margin-bottom: 0;
}

.ui-datepicker-header {
  background: #fafafa;
  padding: 10px;
  border: solid 2px #dddddd;
  border-bottom: none;
}

.ui-datepicker-header .ui-datepicker-next {
  float: right;
}

.ui-datepicker-header .ui-datepicker-prev {
  float: left;
}

.ui-datepicker-header .ui-datepicker-title {
  text-align: center;
}

@media screen and (max-width: 63.9375em) {
  .schedule-page {
    height: auto;
    width: 100%;
    align-content: center;
  }
}

@media screen and (max-width: 39.9375em) {
  .schedule-page {
    max-width: 100%;
  }
}

@media screen and (max-width: 39.9375em) {
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget .schedule_search {
    border: none;
    margin: 20px 0;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget .schedule_search input[type=searcsh] {
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    -o-border-radius: 0;
    border-radius: 0;
    border: solid 2px #e1e1e1;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget label {
    float: left;
    padding: 0 5px;
    width: 50%;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget label:first-of-type {
    padding-left: 0;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget label:last-of-type {
    padding-right: 0;
  }
  #schedule-sidebar .widget_schedule_filter_widget #schedule-widget .button.primary {
    width: 230px;
    margin: 0 auto;
    display: block;
    max-width: 100%;
  }
}

#ui-datepicker-div table {
  margin-bottom: 0;
}

ul.site-map {
  list-style-type: none;
  margin: 0;
}

ul.site-map li {
  list-style-type: none;
  font-weight: normal;
}

ul.site-map li.menu-item-depth-0 {
  margin: 0;
  margin-left: 0;
  margin-top: 15px;
  list-style-type: none;
  font-size: 25px;
  font-weight: bold;
}

ul.site-map li.menu-item-depth-0 > a {
  color: #c8922b;
}

table {
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}

@media screen and (max-width: 63.9375em) {
  table {
    /* Get table cells to act like rows */
  }
  table thead {
    display: none;
  }
  table thead tr {
    position: absolute;
    top: -9999em;
    left: -9999em;
  }
  table tr {
    display: block;
  }
  table td {
    width: 100%;
    border: none;
    display: inline-block;
  }
  table td:before {
    content: attr(data-label);
    display: block;
    font-weight: bold;
    line-height: 1.5;
    width: 100%;
    position: relative;
    z-index: 1;
  }
}

.text-weight-bold {
  font-weight: bold;
}

.text-weight-normal {
  font-weight: normal;
}

.text-weight-light {
  font-weight: 100;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-underline {
  text-decoration: underline;
}

.top-navigation-text {
  font-size: .9em;
  font-weight: bold;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.sidebar-navigation-text {
  font-size: 1.75em;
  font-weight: bold;
  text-transform: uppercase;
  color: #192857;
}

blockquote {
  margin: 30px 0;
  padding: 0.5625rem 1.25rem 0 1.5875rem;
}

blockquote p {
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.2em;
  color: #0a0a0a;
  margin-bottom: 10px;
}

blockquote p:last-child {
  color: #192857;
}

.h1,
h1, .h2,
h2, .h3,
h3, .h4,
h4, .h5,
h5, .h6,
h6 {
  color: #192857;
  font-family: "Montserrat", "Gotham", "Open Sans", "Helvetica Neue", Helvetica, sans-serif;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: .5rem;
}

@media screen and (max-width: 39.9375em) {
  .h1,
  h1, .h2,
  h2, .h3,
  h3, .h4,
  h4, .h5,
  h5, .h6,
  h6 {
    font-weight: 700;
  }
}

.italic.h1,
h1.italic, .italic.h2,
h2.italic, .italic.h3,
h3.italic, .italic.h4,
h4.italic, .italic.h5,
h5.italic, .italic.h6,
h6.italic {
  font-style: italic;
}

.h1 > a, h1 > a, .h2 > a, h2 > a, .h3 > a, h3 > a, .h4 > a, h4 > a, .h5 > a, h5 > a, .h6 > a, h6 > a {
  color: inherit;
}

.article .h1:not([class]),
#content #main article .h1:not([class]), .article h1:not([class]),
#content #main article h1:not([class]), .header__section {
  color: #00b2e2;
  line-height: 1;
  font-size: 2.5em;
  font-weight: 600;
  text-align: center;
  text-transform: uppercase;
  border-bottom: 8px solid #00b2e2;
  padding-bottom: 5px;
  margin-bottom: 20px;
  width: 100%;
  text-align: left;
}

@media screen and (max-width: 39.9375em) {
  .article .h1:not([class]),
  #content #main article .h1:not([class]), .article h1:not([class]),
  #content #main article h1:not([class]), .header__section {
    font-size: 1.5em;
    border-bottom-width: 4px;
  }
}

.section-title {
  color: #00b2e2;
  padding-bottom: 1em;
  text-decoration: underline;
}

.h1,
h1 {
  font-size: 3rem;
  font-weight: bold;
  word-wrap: break-word;
  word-break: break-word;
}

.article .h1:not([class]),
#content #main article .h1:not([class]), .article
h1:not([class]),
#content #main article
h1:not([class]) {
  margin-top: 2.5rem;
}

@media screen and (max-width: 39.9375em) {
  .article .h1:not([class]),
  #content #main article .h1:not([class]), .article
  h1:not([class]),
  #content #main article
  h1:not([class]) {
    margin-top: 1.25rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .h1,
  h1 {
    font-size: 1.5rem;
    line-height: 1;
  }
}

.h2,
h2 {
  font-size: 2.5rem;
}

.article .h2, .article
h2 {
  padding-top: 2.5rem;
}

@media screen and (max-width: 39.9375em) {
  .article .h2, .article
  h2 {
    padding-top: 1.25rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .h2,
  h2 {
    font-size: 1.25rem;
  }
}

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

.article .h3, .article
h3 {
  padding-bottom: .625rem;
}

@media screen and (max-width: 39.9375em) {
  .h3,
  h3 {
    font-size: 1.1875rem;
  }
}

.h4,
h4 {
  font-size: 1.5625rem;
}

.article .h4, .article
h4 {
  padding-bottom: .625rem;
}

@media screen and (max-width: 39.9375em) {
  .h4,
  h4 {
    font-size: 1.125rem;
  }
}

.h5,
h5 {
  font-size: 1.25rem;
}

@media screen and (max-width: 39.9375em) {
  .h5,
  h5 {
    font-size: 1.0625rem;
  }
}

.h6,
h6 {
  font-size: 1rem;
}

/* ======================================================
        PAI: governor.PA.gov
   ====================================================== */
@media screen and (max-width: 39.9375em) {
  .column, .columns {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

@media screen and (max-width: 39.9375em) {
  .column .column, .columns .column, .column .columns, .columns .columns {
    padding: 0;
  }
}

.header__photo-cred {
  position: absolute;
  right: 40px;
  color: #fafafa;
  bottom: 20px;
  text-align: right;
}

.header__photo-cred p {
  line-height: 1.25rem;
}

.header__photo-cred p a {
  color: #1CB0B5;
}

.header__photo-cred p a:hover {
  text-decoration: underline;
}

.header__photo-cred p::after {
  font-family: FontAwesome;
  content: "\f041";
  color: #1CB0B5;
  font-size: 1.75rem;
  padding-left: .25rem;
}

@media screen and (max-width: 39.9375em) {
  .widget_archivelist_widget,
  .widget_ordersarchivelist_widget {
    display: none;
  }
}

@media screen and (max-width: 39.9375em) {
  .widget_newsletter_widget {
    display: none;
  }
}

#schedule-sidebar .widget_schedule_filter_widget #schedule-widget label {
  float: none;
}

#schedule-sidebar .widget_schedule_filter_widget #schedule-widget input {
  display: block;
  display: -webkit-inline-flex;
}

.google-translate {
  top: 0;
  right: 0;
  height: 46px;
}

.google-translate > div {
  top: 16px;
}

[data-whatinput="touch"] .google-translate:focus .google-alt,
[data-whatinput="touch"] .google-translate:active .google-alt,
[data-whatinput="mouse"] .google-translate:focus .google-alt,
[data-whatinput="mouse"] .google-translate:active .google-alt,
[data-whatinput="mouse"] .google-translate:hover .google-alt, .google-translate:hover .google-alt, .google-translate:active .google-alt {
  color: #1CB0B5;
}

@media only screen and (max-width: 68em) {
  .google-translate {
    width: 90px;
    top: 10px;
    margin-right: 15px;
  }
  .google-translate > div {
    top: 0;
  }
}

#google_translate_element {
  height: 0;
}

.goog-te-banner-frame {
  position: fixed !important;
  top: 64px !important;
  box-shadow: none !important;
  text-shadow: none !important;
  z-index: 1004 !important;
}

.goog-te-gadget-icon {
  display: none;
}

.google-alt {
  width: 100%;
  right: 10px;
  top: 0;
  z-index: 0 !important;
  color: red;
  display: block;
  margin-top: 0;
  margin-bottom: 0;
  text-transform: uppercase;
  font-weight: 500;
  font-size: .9em;
  letter-spacing: .1em;
  color: #003146;
  background: transparent;
  transition: all 150ms ease;
  pointer-events: none;
}

@media only screen and (max-width: 68em) {
  .google-alt {
    display: -ms-inline-grid;
    display: inline-grid;
    padding-top: 4px;
    padding-right: 20px;
    padding-bottom: 0;
    margin-right: 0;
    float: right;
    z-index: 2;
    top: 10px;
    right: 20px;
    left: initial !important;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    line-height: 2.05;
    font-size: .65em;
    font-weight: 300;
    color: #003146;
    border-left: none;
    border-right: 2px solid #003146;
    width: auto;
  }
  .google-alt .fa {
    color: #003146;
    font-size: 22px;
  }
  .google-alt .fa-caret-down {
    display: none;
  }
}

.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}

[data-abide] .error small.error, [data-abide] .error span.error {
  display: block;
  font-size: .75rem;
  font-style: italic;
  font-weight: 400;
  margin-bottom: 1rem;
  margin-top: -1px;
  padding: .375rem .5625rem .5625rem;
  background: #f04124;
  color: #fafafa;
}

[data-abide] small.error, [data-abide] span.error {
  display: block;
  font-size: .75rem;
  font-style: italic;
  font-weight: 400;
  margin-bottom: 1rem;
  margin-top: -1px;
  padding: .375rem .5625rem .5625rem;
  background: #f04124;
  color: #fafafa;
}

[data-abide] small.error, [data-abide] span.error {
  display: none;
}

.error small.error, small.error, span.error {
  font-weight: 400;
  display: block;
  font-size: .75rem;
  font-style: italic;
  margin-top: -1px;
  padding: .375rem .5625rem .5625rem;
  background: #f04124;
}

small.error, span.error {
  margin-bottom: 1rem;
  color: #fafafa;
}

.error input, .error select, .error textarea {
  margin-bottom: 0;
}

.error input[type=checkbox], .error input[type=radio] {
  margin-bottom: 1rem;
}

.error small.error {
  margin-bottom: 1rem;
}

.error label {
  color: #f04124;
}

.error label.error {
  color: #f04124;
}

.error small.error {
  color: #fafafa;
}

.error > label > small {
  background: 0 0;
  color: #676767;
  display: inline;
  font-size: 60%;
  font-style: normal;
  margin: 0;
  padding: 0;
  text-transform: capitalize;
}

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

input.error, select.error, textarea.error {
  margin-bottom: 0;
}

/*

    Custom PA.Gov styling for Ninja Forms elements

*/
/*  COLORS
--------------------------------------

[ modifying foundations default palette ]

$foundation-palette: (
  primary: #E44347,
  mars: #D7525C,
  saturn: #E4B884,
  neptune: #5147D7,
)

Using the above palette, we can add the .mars, .saturn, or .neptune classes to buttons, labels, badges, and more.

To access the colors in your code, use Sass's map-get() function:

.mars {
  color: map-get($foundation-palette, mars);
}

-------------------------------------- */
.bg-wht {
  background: #fafafa;
}

.bg-blk {
  background: #000222;
}

.bg-blkalt {
  background: #3c4245;
}

.bg-blkdrk {
  background: #000000;
}

.bg-whtlite {
  background: #fff;
}

.bg-gry {
  background: #ebebeb;
}

.bg-gray {
  background: #ebebeb;
}

.bg-grylite {
  background: #e1e1e1;
}

.bg-gryslvr {
  background: #dadada;
}

.bg-gry_muted {
  background: #b8b7b4;
}

.bg-grydrk {
  background: #464646;
}

.bg-slate {
  background: #404040;
}

.bg-blu {
  background: #598db2;
}

.bg-blue {
  background: #003146;
}

.bg-blue-bright {
  background: #00b2e2;
}

.bg-bludrk {
  background: #294c65;
}

.bg-pch {
  background: #ffe0b2;
}

.bg-gld {
  background: #ffb74d;
}

.bg-trq {
  background: #006064;
}

.bg-teal {
  background: #1CB0B5;
}

.bg-navy {
  background: #192857;
}

.bg-green {
  background: #64A70B;
}

.txt-wht {
  color: #fafafa;
}

.txt-wht-hover:hover {
  color: #fafafa;
}

.txt-blk {
  color: #000222;
}

.txt-blkalt {
  color: #3c4245;
}

.txt-blkdrk {
  color: #000000;
}

.txt-slate {
  color: #404040;
}

.txt-gry {
  color: #ebebeb;
}

.txt-grylite {
  color: #e1e1e1 !important;
}

.txt-gryslvr {
  color: #dadada;
}

.txt-grydrk {
  color: #464646;
}

.txt-gry_muted {
  color: #b8b7b4;
}

.txt-blu {
  color: #598db2;
}

.txt-blue {
  color: #003146;
}

.txt-navy {
  color: #192857;
}

.txt-bludrk {
  color: #598db2;
}

.txt-pch {
  color: #ffe0b2;
}

.txt-gld {
  color: #ffb74d;
}

.txt-trq {
  color: #006064;
}

/* .clearfix { *zoom: 1; }
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }*/
.content-cntrd {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* background mixin (wip)
@mixin background($bg-color $bg-img_url $bg-attachment $bg-position_x $bg-position_y $bg-repeat $bg-size) {
    background-color:           $bg-color;
    background-image:       url($bg-img_url);
    background-attachment:      $bg-attachment;
    background-position:        $bg-position_x
                                $bg-position_y;
    background-repeat:          $bg-repeat;
    -webkit-background-size:    $bg-size;
       -moz-background-size:    $bg-size;
         -o-background-size:    $bg-size;
            background-size:    $bg-size;
}
*/
.nf-field-label label {
  line-height: inherit;
  font-weight: 400 !important;
  font-size: 1rem;
  color: #003146;
  padding-bottom: .25em;
  text-transform: none;
}

.nf-form-fields-required {
  margin-bottom: 15px;
}

.inner-wrap #inner-content {
  padding: 0 0 8em 0;
}

@media screen and (max-width: 39.9375em) {
  .inner-wrap #inner-content {
    padding: 0;
  }
}

.fb-post {
  margin-bottom: 1em;
}

.reveal.full {
  top: 0 !important;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdXRpbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdmFsdWUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZGlyZWN0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwiaGVscGVycy9fY29sb3JzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9fbm9ybWFsaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX21pc3NpbmctZGVwZW5kZW5jaWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3RydWUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWluLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHVyZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19yZW1vdmUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19yZXBsYWNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdG8tbGlzdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191dGlsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL194eS1ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2ZyYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jb2xsYXBzZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3R5cG9ncmFwaHkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZm9ybXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcmFuZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3Byb2dyZXNzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19tZXRlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3Byb3RvdHlwZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JlbGF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcm90YXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC11dGlsaXRpZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL190ZXh0LXRyYW5zZm9ybWF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZm9udC1zdHlsaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fbGlzdC1zdHlsZS10eXBlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcm91bmRlZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlcmVkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2hhZG93LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYXJyb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zZXBhcmF0b3Iuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19vdmVyZmxvdy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Rpc3BsYXkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19wb3NpdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlci1ib3guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItbm9uZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NpemluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NwYWNpbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL21vdGlvbi11aS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX2FyZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX2tleWZyYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19zZWxlY3Rvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fc2VyaWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL191bml0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19mYWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19oaW5nZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fc3Bpbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fem9vbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fc2hha2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX3NsaWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL193aWdnbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19mYWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc2xpZGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsImhlbHBlcnMvX21peGlucy5zY3NzIiwiaGVscGVycy9fYnJlYWtwb2ludHMuc2NzcyIsImhlbHBlcnMvX2hlbHBlcnMuc2NzcyIsImhlbHBlcnMvX3dyYXBwZXJzLnNjc3MiLCJoZWxwZXJzL19zaGFkb3dzLnNjc3MiLCJiYXNlL19iYWNrZ3JvdW5kcy5zY3NzIiwicGFnZXMvXzQwNC5zY3NzIiwicGFnZXMvX3RvcGljcy5zY3NzIiwicGFnZXMvX3NlYXJjaC5zY3NzIiwicGFnZXMvX3RyYXZlbEV4cGVuc2VzLnNjc3MiLCJjb21wb25lbnRzL19jb21wb25lbnRzLnNjc3MiLCJjb21wb25lbnRzL19iYWNrVG9Ub3Auc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJjb21wb25lbnRzL19jYWxsb3V0cy5zY3NzIiwiY29tcG9uZW50cy9fZ29vZ2xlLW1hcHMuc2NzcyIsImNvbXBvbmVudHMvX25ld3NsZXR0ZXJDVEEuc2NzcyIsImNvbXBvbmVudHMvX25ld3NsZXR0ZXJNb2RhbC5zY3NzIiwiY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fcGFuZWxzLnNjc3MiLCJjb21wb25lbnRzL19jYXJkcy5zY3NzIiwiY29tcG9uZW50cy9fdG9wbmF2LnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2hNb2RhbC5zY3NzIiwiY29tcG9uZW50cy9fc2hvcnRjb2RlRXhwYW5kLnNjc3MiLCJ0aGVtZS9fdGhlbWUuc2NzcyIsInRoZW1lL19hbmNob3JzLnNjc3MiLCJ0aGVtZS9fYnV0dG9ucy5zY3NzIiwidGhlbWUvX2NvbW1lbnRzLnNjc3MiLCJ0aGVtZS9fZXZlbnRzLnNjc3MiLCJ0aGVtZS9fZm9vdGVyLnNjc3MiLCJ0aGVtZS9faGVhZGVyLnNjc3MiLCJ0aGVtZS9faG9tZS5zY3NzIiwidGhlbWUvX21vZGFsLnNjc3MiLCJ0aGVtZS9fbmV3c3Jvb20uc2NzcyIsInRoZW1lL19wYWdlcy5zY3NzIiwidGhlbWUvX3ByaW9yaXRpZXMuc2NzcyIsInRoZW1lL19zZWxlY3Quc2NzcyIsInRoZW1lL19zaWRlYmFyLnNjc3MiLCJ0aGVtZS9fc2l0ZW1hcC5zY3NzIiwidGhlbWUvX3RhYmxlcy5zY3NzIiwidGhlbWUvX3R5cG9ncmFwaHkuc2NzcyIsIl9jdXN0b20uc2NzcyIsIm5pbmphRm9ybXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdzZXR0aW5ncyc7XHJcbkBpbXBvcnQgJ2ZvdW5kYXRpb24nO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoJGZsZXg6IGZhbHNlKTtcclxuQGltcG9ydCAnbW90aW9uLXVpJztcclxuQGltcG9ydCAndXRpbC9taXhpbnMnO1xyXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xyXG5cclxuLy8gQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xyXG4vLyBAaW5jbHVkZSBtb3Rpb24tdWktYW5pbWF0aW9ucztcclxuXHJcbi8vIEBpbXBvcnQgJ2ZvbnQtYXdlc29tZSc7XHJcblxyXG4vLyBIZWxwZXJzXHJcbkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcclxuQGltcG9ydCAnaGVscGVycy9jb2xvcnMnO1xyXG5AaW1wb3J0ICdoZWxwZXJzL2JyZWFrcG9pbnRzJztcclxuQGltcG9ydCAnaGVscGVycy9oZWxwZXJzJztcclxuQGltcG9ydCAnaGVscGVycy93cmFwcGVycyc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvc2hhZG93cyc7XHJcblxyXG4vLyBCYXNlXHJcbkBpbXBvcnQgJ2Jhc2UvYmFja2dyb3VuZHMnO1xyXG5cclxuLy8gUGFnZXNcclxuQGltcG9ydCAncGFnZXMvNDA0JztcclxuQGltcG9ydCAncGFnZXMvdG9waWNzJztcclxuQGltcG9ydCAncGFnZXMvc2VhcmNoJztcclxuQGltcG9ydCAncGFnZXMvdHJhdmVsRXhwZW5zZXMnO1xyXG5cclxuQGltcG9ydCAnY29tcG9uZW50cy9jb21wb25lbnRzJztcclxuQGltcG9ydCAndGhlbWUvdGhlbWUnO1xyXG5AaW1wb3J0ICdjdXN0b20nO1xyXG5AaW1wb3J0ICduaW5qYUZvcm1zJztcclxuXHJcbi8vIGdsb2JhbCBzdHlsZXNcclxuXHJcbi8vICNjb250ZW50LnJvdyB7XHJcbi8vICAgICBtYXgtd2lkdGg6IDEyMDBweDsgLy8gbWF4aW11bSBzaXplIG91ciBjb250ZW50IHNob3VsZCBncm93XHJcbi8vICAgICBwYWRkaW5nOiA0ZW0gMCA4ZW0gMDsgLy8gYm90dG9tIGlzIGJlY2F1c2Ugb2YgdGhlIGdvdmVybm9yIGJhclxyXG4vLyB9XHJcblxyXG4vLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgcGFnZSBzdHJ1Y3R1cmVcclxuLmlubmVyLXdyYXAge1xyXG4gICAgI2lubmVyLWNvbnRlbnQge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMCA4ZW0gMDtcclxuXHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFdQJ3MgZW1iZWRkZWQgZmFjZWJvb2sgcG9zdHNcclxuLmZiLXBvc3Qge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG59XHJcblxyXG4vLyBzb21lIGtpbmRhIGlzc3VlIHd0aWggb3VyIHN0aWNreSBuYXYgYW5kIGZ1bGwgc2NyZWVuIHJldmVhbHNcclxuLnJldmVhbC5mdWxsIHtcclxuICAgIHRvcDogMCAhaW1wb3J0YW50O1xyXG59IiwiLy8genVyYiBmb3VuZGF0aW9uIG92ZXJ3cml0ZXNcclxuQGltcG9ydCAndXRpbC91dGlsJztcclxuQGltcG9ydCAnaGVscGVycy9jb2xvcnMnO1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgc3RhY2tzXHJcbiRmb250LW1vbnRzZXJyYXQ6J01vbnRzZXJyYXQnLCAnR290aGFtJywgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgc2Fucy1zZXJpZiA7XHJcbiRib2R5LWZvbnQtZmFtaWx5OiAkZm9udC1tb250c2VycmF0O1xyXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcclxuXHJcbi8vIGRlZmF1bHQgZm9udCB3ZWlnaHRzIGluIGFkZGl0aW9uIHRvIGZvdW5kYXRpb25zXHJcbi8vICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCBhbmQgJGdsb2JhbC13ZWlnaHQtYm9sZFxyXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDEwMDtcclxuXHJcbi8vIGRlZmF1bHQgY29sb3IgcGFsZXR0ZVxyXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXHJcbiAgcHJpbWFyeTogJG5hdnksXHJcbiAgc2Vjb25kYXJ5OiAkZ29sZCxcclxuICBzdWNjZXNzOiAjM2FkYjc2LFxyXG4gIHdhcm5pbmc6ICNmZmFlMDAsXHJcbiAgYWxlcnQ6ICNjYzRiMzcsXHJcbik7XHJcblxyXG4vLyBjdXN0b20gdHlwb2dyYXBoeSBzZXR0aW5nc1xyXG4kaGVhZGVyLXN0eWxlczogKFxyXG4gIHNtYWxsOiAoXHJcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcclxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxyXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXHJcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcclxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxyXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNilcclxuICApLFxyXG4gIG1lZGl1bTogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAzMiksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMjYpLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyMCksXHJcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcclxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpXHJcbiAgKSxcclxuICBsYXJnZTogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0MCksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDM2KSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzApLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNCksXHJcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcclxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpXHJcbiAgKVxyXG4pO1xyXG5cclxuLy8gaSBkb24ndCBiZWxpZXZlIHRoaXMgaXMgbmVjZXNzYXJ5XHJcbi8vIFdlYmZvbnQgc21vb3RoaW5nXHJcbi8vICoge1xyXG4vLyAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4vLyAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbi8vICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMCwwLDAsMC4wMDQpO1xyXG4vLyB9XHJcblxyXG4vLyBjdXN0b20gc3ByaXRlIHNpemVzXHJcbi8vIGkgZG9uJ3QgYmVsaWV2ZSB3ZSBhY3R1YWxseSB1c2Ugc3ByaXRlc1xyXG4kc3ByaXRlLXc6MjEwcHg7IC8vIEAxeFxyXG4kc3ByaXRlLWg6NTcwcHg7IC8vIEAxeFxyXG5cclxuLy8gTWVkaWEgUXVlcnkgUmFuZ2VzXHJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi8vIGZvdW5kYXRpb25zIGRlZmluZWQgYnJlYWtwb2ludHNcclxuLy8gJGJyZWFrcG9pbnRzOiAoXHJcbi8vICAgc21hbGw6IDAsXHJcbi8vICAgbWVkaXVtOiA2NDBweCxcclxuLy8gICBsYXJnZTogMTAyNHB4LFxyXG4vLyAgIHhsYXJnZTogMTIwMHB4LFxyXG4vLyAgIHh4bGFyZ2U6IDE0NDBweCxcclxuLy8gKTtcclxuXHJcbi8vIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAuLi4gd2Ugc2hvdWxkIGNvbnNpZGVyIHVzaW5nIGZvdW5kYXRpb25zXHJcbi8vIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXsgY29sb3I6IGdyZWVuOyB9IGZvciBleGFtcGxlXHJcbiRzbWFsbC1yYW5nZTogKDAsIDYzOXB4KTtcclxuJG1lZGl1bS1yYW5nZTogKDY0MHB4LCAxMDIzcHgpO1xyXG4kbGFyZ2UtcmFuZ2U6ICgxMDI0cHgsIDExOTlweCk7XHJcbiR4bGFyZ2UtcmFuZ2U6ICgxMjAwcHgsIDE0MzlweCk7XHJcbiR4eGxhcmdlLXJhbmdlOiAoMTQ0MHB4KTtcclxuXHJcbiRzY3JlZW46IFwib25seSBzY3JlZW5cIjtcclxuXHJcbiRsYW5kc2NhcGU6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCI7XHJcbiRwb3J0cmFpdDogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVwiO1xyXG5cclxuJHNtYWxsLXVwOiAkc2NyZWVuO1xyXG4kc21hbGwtb25seTogXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiO1xyXG5cclxuJG1lZGl1bS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiO1xyXG4kbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCI7XHJcblxyXG4kbGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiO1xyXG4kbGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCI7XHJcblxyXG4keGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCI7XHJcbiR4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIjtcclxuXHJcbiR4eGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3skeHhsYXJnZS1yYW5nZX0pXCI7XHJcbiR4eGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDojeyR4eGxhcmdlLXJhbmdlfSlcIjtcclxuXHJcblxyXG4vLyBWaXNpYmlsaXR5IENsYXNzZXNcclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxyXG5cclxuLnNob3ctZm9yLXNyIHtcclxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcclxuICB3aWR0aDogMXB4O1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBub3QgZmFsc2V5LCBpbiBDU1MgdGVybXMuIEZhbHNleSB2YWx1ZXMgYXJlIGBudWxsYCwgYG5vbmVgLCBgMGAgd2l0aCBhbnkgdW5pdCwgb3IgYW4gZW1wdHkgbGlzdC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICR2YWwgLSBWYWx1ZSB0byBjaGVjay5cbi8vL1xuLy8vIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWxgIGlzIG5vdCBmYWxzZXkuXG5AZnVuY3Rpb24gaGFzLXZhbHVlKCR2YWwpIHtcbiAgQGlmICR2YWwgPT0gbnVsbCBvciAkdmFsID09IG5vbmUge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJHZhbCkgPT0gMCB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIERldGVybWluZSBhIHRvcC9yaWdodC9ib3R0b20vcmlnaHQgdmFsdWUgb24gYSBwYWRkaW5nLCBtYXJnaW4sIGV0Yy4gcHJvcGVydHksIG5vIG1hdHRlciBob3cgbWFueSB2YWx1ZXMgd2VyZSBwYXNzZWQgaW4uIFVzZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIHNwZWNpZmljIHNpZGUgb2YgYSB2YWx1ZSwgYnV0IGRvbid0IGtub3cgaWYgdGhlIHZhbHVlIGlzIHVzaW5nIGEgc2hvcnRoYW5kIGZvcm1hdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdHxOdW1iZXJ9ICR2YWwgLSBWYWx1ZSB0byBhbmFseXplLiBTaG91bGQgYmUgYSBzaG9ydGhhbmQgc2l6aW5nIHByb3BlcnR5LCBlLmcuIFwiMWVtIDJlbSAxZW1cIlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRvIHJldHVybi4gU2hvdWxkIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBzaW5nbGUgdmFsdWUgYmFzZWQgb24gYCR2YWxgIGFuZCBgJHNpZGVgLlxuQGZ1bmN0aW9uIGdldC1zaWRlKCR2YWwsICRzaWRlKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcblxuICBAaWYgJGxlbmd0aCA9PSAxIHtcbiAgICBAcmV0dXJuICR2YWw7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICksICRzaWRlKTtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAzIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDQge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCA0KSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbn1cblxuLy8vIEdpdmVuIGJvcmRlciAkdmFsLCBmaW5kIGEgc3BlY2lmaWMgZWxlbWVudCBvZiB0aGUgYm9yZGVyLCB3aGljaCBpcyAkZWxlbS4gVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgJGVsZW0gYXJlIHdpZHRoLCBzdHlsZSwgYW5kIGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsIC0gQm9yZGVyIHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIC0gQm9yZGVyIGNvbXBvbmVudCB0byBleHRyYWN0LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBJZiB0aGUgdmFsdWUgZXhpc3RzLCByZXR1cm5zIHRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBpbiB0aGUgYm9yZGVyIGRlZmluaXRpb24sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIDBweCB3aWR0aCwgc29saWQgc3R5bGUsIG9yIGJsYWNrIGJvcmRlci5cbkBmdW5jdGlvbiBnZXQtYm9yZGVyLXZhbHVlKCR2YWwsICRlbGVtKSB7XG4gIC8vIEZpbmQgdGhlIHdpZHRoLCBzdHlsZSwgb3IgY29sb3IgYW5kIHJldHVybiBpdFxuICBAZWFjaCAkdiBpbiAkdmFsIHtcbiAgICAkdHlwZTogdHlwZS1vZigkdik7XG4gICAgQGlmICRlbGVtID09IHdpZHRoIGFuZCAkdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgICBAaWYgJGVsZW0gPT0gc3R5bGUgYW5kICR0eXBlID09ICdzdHJpbmcnIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBjb2xvciBhbmQgJHR5cGUgPT0gJ2NvbG9yJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmF1bHRzXG4gICRkZWZhdWx0czogKFxuICAgIHdpZHRoOiAwLFxuICAgIHN0eWxlOiBzb2xpZCxcbiAgICBjb2xvcjogIzAwMCxcbiAgKTtcblxuICBAcmV0dXJuIG1hcC1nZXQoJGRlZmF1bHRzLCAkZWxlbSk7XG59XG5cbi8vLyBGaW5kcyBhIHZhbHVlIGluIGEgbmVzdGVkIG1hcC5cbi8vLyBAbGluayBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvZGVlcC1nZXRzZXQtbWFwcy8gRGVlcCBHZXQvU2V0IGluIE1hcHNcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHB1bGwgYSB2YWx1ZSBmcm9tLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5cy4uLiAtIEtleXMgdG8gdXNlIHdoZW4gbG9va2luZyBmb3IgYSB2YWx1ZS5cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG4gIEByZXR1cm4gJG1hcDtcbn1cblxuLy8vIENhc3RzIGEgbWFwIGludG8gYSBsaXN0LlxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTQvMDQvMjgvY2FzdGluZy1tYXAtaW50by1saXN0L1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRGVwZW5kaW5nIG9uIHRoZSBmbGFnLCByZXR1cm5zIGVpdGhlciAka2V5cyBvciAkdmFsdWVzIG9yIGJvdGguXG5AZnVuY3Rpb24gbWFwLXRvLWxpc3QoJG1hcCwgJGtlZXA6ICdib3RoJykge1xuICAka2VlcDogaWYoaW5kZXgoJ2tleXMnICd2YWx1ZXMnLCAka2VlcCksICRrZWVwLCAnYm90aCcpO1xuXG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAka2V5czogKCk7XG4gICAgJHZhbHVlczogKCk7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xuICAgICAgJGtleXM6IGFwcGVuZCgka2V5cywgJGtleSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHZhbCk7XG4gICAgfVxuXG4gICAgQGlmICRrZWVwID09ICdrZXlzJyB7XG4gICAgICBAcmV0dXJuICRrZXlzO1xuICAgIH1cbiAgICBAZWxzZSBpZiAka2VlcCA9PSAndmFsdWVzJyB7XG4gICAgICBAcmV0dXJuICR2YWx1ZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gemlwKCRrZXlzLCAkdmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJG1hcCkgIT0gJ2xpc3QnLCAoJHZhbHVlLCksICRtYXApO1xuXG59XG5cbi8vLyBTYWZlbHkgcmV0dXJuIGEgdmFsdWUgZnJvbSBhIG1hcC5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHJldHJpZXZlIGEgdmFsdWUgZnJvbS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIE5hbWUgb2YgdGhlIG1hcCBrZXkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRm91bmQgdmFsdWUuXG5AZnVuY3Rpb24gbWFwLXNhZmUtZ2V0KCRtYXAsICRrZXkpIHtcbiAgQGlmICh0eXBlLW9mKCRtYXApID09ICdtYXAnIG9yICh0eXBlLW9mKCRtYXApID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRtYXApID09IDApKSB7XG4gICAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0tleTogYCN7JGtleX1gIGlzIG5vdCBhdmFpbGFibGUgaW4gYCN7JG1hcH1gJztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnYCN7JG1hcH1gIGlzIG5vdCBhIHZhbGlkIG1hcCc7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mICRkaXJcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFVzZWQgZGlyZWN0aW9uIGJldHdlZW4gXCJ0b3BcIiwgXCJyaWdodFwiLCBcImJvdHRvbVwiIGFuZCBcImxlZnRcIi5cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBPcHBvc2l0ZSBkaXJlY3Rpb24gb2YgJGRpclxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1vcHBvc2l0ZShcbiAgJGRpclxuKSB7XG4gICRkaXJzOiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTtcbiAgJHBsYWNlOiBpbmRleCgkZGlycywgJGRpcik7XG5cbiAgQGlmICRwbGFjZSA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ2RpcmVjdGlvbi1vcHBvc2l0ZTogSW52YWxpZCAkZGlyIHBhcmFtZXRlciwgZXhwZWN0ZWQgYSB2YWx1ZSBmcm9tIFwiI3skZGlyc31cIiwgZm91bmQgXCIjeyRkaXJ9XCIuJztcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDYWxjdWwgdGhlIG9wcG9zaXRlIHBsYWNlIGluIGEgY2lyY2xlLCB3aXRoIGEgc3RhcnRpbmcgaW5kZXggb2YgMVxuICAkbGVuZ3RoOiBsZW5ndGgoJGRpcnMpO1xuICAkZGVtaTogJGxlbmd0aCAvIDI7XG4gICRvcHBvc2l0ZS1wbGFjZTogKCgkcGxhY2UgKyAkZGVtaSAtIDEpICUgJGxlbmd0aCkgKyAxO1xuXG4gIEByZXR1cm4gbnRoKCRkaXJzLCAkb3Bwb3NpdGUtcGxhY2UpO1xufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuIFwiQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH1cIjtcbiAgfVxuXG4gIEByZXR1cm4gJGJlc3Q7XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBkYXJrZXIgaWYgaXQncyBsaWdodCwgb3IgbGlnaHRlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuXG4vLy8gR2V0IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcGFyYW0ge2tleX0gY29sb3Iga2V5IGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IGNvbG9yIGZyb20gZm91bmRhdGlvbi1wYWxldHRlXG5AZnVuY3Rpb24gZ2V0LWNvbG9yKCRrZXkpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnZ2l2ZW4gJGtleSBpcyBub3QgYXZhaWxhYmxlIGluICRmb3VuZGF0aW9uLXBhbGV0dGUnO1xuICB9XG59XG5cbi8vLyBUcmFuc2ZlcnMgdGhlIGNvbG9ycyBpbiB0aGUgYCRmb3VuZGF0aW9uLXBhbGV0dGVgbWFwIGludG8gdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxuQG1peGluIGFkZC1mb3VuZGF0aW9uLWNvbG9ycygpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcykge1xuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpIHtcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkge1xuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBHZW5lcmF0ZXMgYSBzZWxlY3RvciB3aXRoIGV2ZXJ5IHRleHQgaW5wdXQgdHlwZS4gWW91IGNhbiBhbHNvIGZpbHRlciB0aGUgbGlzdCB0byBvbmx5IG91dHB1dCBhIHN1YnNldCBvZiB0aG9zZSBzZWxlY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R8S2V5d29yZH0gJHR5cGVzIFsoKV0gLSBBIGxpc3Qgb2YgdGV4dCBpbnB1dCB0eXBlcyB0byB1c2UuIExlYXZlIGJsYW5rIHRvIHVzZSBhbGwgb2YgdGhlbS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRtb2RpZmllciBbJyddIC0gQSBtb2RpZmllciB0byBiZSBhcHBsaWVkIHRvIGVhY2ggdGV4dCBpbnB1dCB0eXBlIChlLmcuIGEgY2xhc3Mgb3IgYSBwc2V1ZG8tY2xhc3MpLiBMZWF2ZSBibGFuayB0byBpZ25vcmUuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoJHR5cGVzOiAoKSwgJG1vZGlmaWVyOiAnJykge1xuICAkcmV0dXJuOiAoKTtcblxuICAkYWxsLXR5cGVzOlxuICAgIHRleHRcbiAgICBwYXNzd29yZFxuICAgIGRhdGVcbiAgICBkYXRldGltZVxuICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgbW9udGhcbiAgICB3ZWVrXG4gICAgZW1haWxcbiAgICBudW1iZXJcbiAgICBzZWFyY2hcbiAgICB0ZWxcbiAgICB0aW1lXG4gICAgdXJsXG4gICAgY29sb3I7XG5cbiAgQGlmIG5vdCBoYXMtdmFsdWUoJHR5cGVzKSB7XG4gICAgJHR5cGVzOiAkYWxsLXR5cGVzO1xuICB9XG5cbiAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnW3R5cGU9XFwnI3skdHlwZX1cXCddI3skbW9kaWZpZXJ9JyksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cbiIsIiQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICdsZWZ0JzogZmxleC1zdGFydCxcbiAgJ3JpZ2h0JzogZmxleC1lbmQsXG4gICdjZW50ZXInOiBjZW50ZXIsXG4gICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbik7XG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4kLXpmLWZsZXgtZGlyZWN0aW9uOiAoXG4gICdyb3cnOiByb3csXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxuICAnY29sdW1uJzogY29sdW1uLFxuICAnY29sdW1uLXJldmVyc2UnOiBjb2x1bW4tcmV2ZXJzZSxcbik7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggYnkgYWRkaW5nIGBkaXNwbGF5OiBmbGV4YCB0byB0aGUgZWxlbWVudC5cbkBtaXhpbiBmbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgaXRlbXMgd2l0aGluIGEgZmxleCBjb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQGlmICR4IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWp1c3RpZnksICR4KSB7XG4gICAgICAkeDogbWFwLWdldCgkLXpmLWZsZXgtanVzdGlmeSwgJHgpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR4fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgaG9yaXpvbnRhbCBhbGlnbm1lbnQuIFVzZSBsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5LCBvciBzcGFjZWQuJztcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBhbGlnbi1zZWxmOiAkeTtcbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggY2hpbGQuIENoaWxkcmVuIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG4vLy8gQ2hhbmdlIGZsZXgtZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcbi8vLyAgIC0gcm93IChkZWZhdWx0KTogc2FtZSBhcyB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSByb3ctcmV2ZXJzZTogb3Bwb3NpdGUgdG8gdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxuLy8vICAgLSBjb2x1bW4tcmV2ZXJzZTogc2FtZSBhcyByb3ctcmV2ZXJzZSB0b3AgdG8gYm90dG9tXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCAna2V5cycpO1xuXG5AaWYgbnRoKG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzKSwgMSkgIT0gMCB7XG4gIEBlcnJvciAnWW91ciBzbWFsbGVzdCBicmVha3BvaW50IChkZWZpbmVkIGluICRicmVha3BvaW50cykgbXVzdCBiZSBzZXQgdG8gXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgIH1cblxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcbiAgICAgICRuYW1lZDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJwOiAwO1xuICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogXCIjeyR2YWx9XCIgaXMgbm90IGRlZmluZWQgaW4geW91ciAkYnJlYWtwb2ludHMgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXG4gICRicDogLXpmLWJwLXRvLWVtKCRicCk7XG4gIEBpZiAkYnAtbWF4IHtcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XG4gIH1cblxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cbiAgLy8gLSBJdCdzIGEgbmFtZWQgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBkb3duXCIgb3IgXCIwIHVwXCJcbiAgLy8gLSBJdCdzIGEgbnVtZXJpYyBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIFwiICsgYW55dGhpbmdcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gYG9ubHlgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pYFxuICAgIEBpZiAkZGlyID09ICdvbmx5JyB7XG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcbiAgICAgIEBpZiAkbmFtZWQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWluLXdpZHRoXCIgaWYgdGhlIGZsb29yIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG5cbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JGJwLW1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYGRvd25gIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1heC13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xuXG4gICAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIGlucHV0IHZhbHVlIGlzIGV4YWN0bHkgXCIwIGRvd25cIixcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcbiAgICAgIEBpZiAkbmFtZWQgb3IgJGJwID4gMGVtIHtcbiAgICAgICAgQGlmICRtYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgdXBgIHJhbmdlcyB1c2UgdGhlIGZvcm1hdCBgKG1pbi13aWR0aDogbilgXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcbiAgICAgICRzdHI6ICRzdHIgKyAnKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gV3JhcHMgYSBtZWRpYSBxdWVyeSBhcm91bmQgdGhlIGNvbnRlbnQgeW91IHB1dCBpbnNpZGUgdGhlIG1peGluLiBUaGlzIG1peGluIGFjY2VwdHMgYSBudW1iZXIgb2YgdmFsdWVzOlxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vL1xuLy8vIEBvdXRwdXQgSWYgdGhlIGJyZWFrcG9pbnQgaXMgXCIwcHggYW5kIGxhcmdlclwiLCBvdXRwdXRzIHRoZSBjb250ZW50IGFzLWlzLiBPdGhlcndpc2UsIG91dHB1dHMgdGhlIGNvbnRlbnQgd3JhcHBlZCBpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICR2YWx1ZSk7XG4gICRwYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHByaW50LWJyZWFrcG9pbnQpO1xuXG4gICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICB9XG4gICQtemYtc2l6ZTogbnRoKCR2YWx1ZSwgMSkgIWdsb2JhbDsgLy8gZ2V0IHRoZSBmaXJzdCB2YWx1ZSB0byBhY2NvdW50IGZvciBgb25seWAgYW5kIGBkb3duYCBrZXl3b3Jkc1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICBAaWYgJGJwICE9IG51bGwgYW5kICRicCA8PSAkcGJwIHtcbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRvbGQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICAvLyBSZXN0b3JlIHRoZSBvbGQgYnJlYWtwb2ludCBzaXplXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJC16Zi1zaXplOiBudWxsICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleSAtIEtleSB0byB1c2UgYXMgbGFzdCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJGtleSkge1xuICAkbGlzdDogKCk7XG4gICRmb3VuZF9rZXk6IGZhbHNlO1xuXG4gIEBlYWNoICRuYW1lIGluICQtemYtYnJlYWtwb2ludHMta2V5cyB7XG4gICAgQGlmICgkbmFtZSA9PSAka2V5KSB7XG4gICAgICAkZm91bmRfa2V5OiB0cnVlO1xuICAgIH1cbiAgICBAaWYgbm90ICRmb3VuZF9rZXkge1xuICAgICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJG5hbWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2luZyAtIGEgbmFtZWQgb3Igbm9uLW5hbWVkIGJyZWFrcG9pbmcuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAkbGFzdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICRmb3VuZDogZmFsc2U7XG5cbiAgJHZhbHVlOiB1bml0bGVzcy1jYWxjKCRicmVha3BvaW50LCAxcHgpO1xuICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgQGlmIHVuaXRsZXNzLWNhbGMoJHZhbCkgPiAkdmFsdWUge1xuICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGxhc3Q6ICRrZXk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbGFzdDtcbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcbiAgfVxuICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG4gIEBlbHNlIHtcbiAgICAkYW5jaG9yOiBudWxsO1xuICAgICRmb3VuZDogZmFsc2U7XG5cbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcbiAgICAgICAgfVxuICAgICAgICBAaWYgJGtleSA9PSAkdmFsdWUge1xuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcbiAgfVxufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuICAkeGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2UpfScpO1xuICAkeGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vIFxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpZGUgLSBTaWRlIHRoZSBzaGFkb3cgaXMgc3VwcG9zZWQgdG8gYXBwZWFyLiBDYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCBvciBgYm90dG9tYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgLSBXaWR0aCBmb3IgdGhlIHRhcmdldCBzaWRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBzaGFkb3cuXG5AbWl4aW4gaW5uZXItc2lkZS1zaGFkb3coXG4gICRzaWRlOiBib3R0b20sXG4gICRzaXplOiAyMHB4LFxuICAkY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KVxuKSB7XG5cbiAgJGhlbHBlcjogcm91bmQoJHNpemUgKiAwLjY1KTtcblxuICBAaWYgKCRzaWRlID09IHRvcCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBsZWZ0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IHJpZ2h0KSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgKC0xKSokaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gYm90dG9tKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAoLTEpKiRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBib3JkZXI6IDA7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgY2xpcC1wYXRoOiBub25lO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogdHJ1ZSwgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGlmICRhdXRvLWluc2VydC1icmVha3BvaW50cyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiQtemYtZm9udC1zdGFjazogKFxuICAnZ2VvcmdpYSc6IChHZW9yZ2lhLCBcIlVSVyBCb29rbWFuIExcIiwgc2VyaWYpLFxuICAnaGVsdmV0aWNhJzogKEhlbHZldGljYSwgQXJpYWwsIFwiTmltYnVzIFNhbnMgTFwiLCBzYW5zLXNlcmlmKSxcbiAgJ2x1Y2lkYS1ncmFuZGUnOiAoXCJMdWNpZGEgR3JhbmRlXCIsIFwiTHVjaWRhIFNhbnMgVW5pY29kZVwiLCBcIkJpdHN0cmVhbSBWZXJhIFNhbnNcIiwgc2Fucy1zZXJpZiksXG4gICdtb25vc3BhY2UnOiAoXCJDb3VyaWVyIE5ld1wiLCBDb3VyaWVyLCBcIk5pbWJ1cyBTYW5zIExcIiwgbW9ub3NwYWNlKSxcbiAgJ3N5c3RlbSc6ICgtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkNhbnRhcmVsbFwiLCBcIkZpcmEgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYpLFxuICAndmVyZGFuYSc6IChWZXJkYW5hLCBHZW5ldmEsIFwiRGVqYVZ1IFNhbnNcIiwgc2Fucy1zZXJpZiksXG4pO1xuXG4vLy8gUmV0dXJuIGEgZm9udCBzdGFjayBsaXN0IGZyb20gYSBtYXAuIEVxdWl2YWxlbnQgdG8gYG1hcC1zYWZlLWdldCgkbmFtZSwgJC16Zi1mb250LXN0YWNrKWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0YWNrIC0gTmFtZSBvZiB0aGUgZm9udCBzdGFjay5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCBbJC16Zi1mb250LXN0YWNrXSAtIE1hcCBvZiBmb250IHN0YWNrcyB0byByZXRyaWV2ZSBhIGxpc3QgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBGb3VuZCBmb250IHN0YWNrLlxuQGZ1bmN0aW9uIGZvbnQtc3RhY2soJHN0YWNrLCAkbWFwOiAkLXpmLWZvbnQtc3RhY2spIHtcbiAgQHJldHVybiBtYXAtc2FmZS1nZXQoJG1hcCwgJHN0YWNrKTtcbn1cbiIsIi8qICBDT0xPUlNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblsgbW9kaWZ5aW5nIGZvdW5kYXRpb25zIGRlZmF1bHQgcGFsZXR0ZSBdXHJcblxyXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXHJcbiAgcHJpbWFyeTogI0U0NDM0NyxcclxuICBtYXJzOiAjRDc1MjVDLFxyXG4gIHNhdHVybjogI0U0Qjg4NCxcclxuICBuZXB0dW5lOiAjNTE0N0Q3LFxyXG4pXHJcblxyXG5Vc2luZyB0aGUgYWJvdmUgcGFsZXR0ZSwgd2UgY2FuIGFkZCB0aGUgLm1hcnMsIC5zYXR1cm4sIG9yIC5uZXB0dW5lIGNsYXNzZXMgdG8gYnV0dG9ucywgbGFiZWxzLCBiYWRnZXMsIGFuZCBtb3JlLlxyXG5cclxuVG8gYWNjZXNzIHRoZSBjb2xvcnMgaW4geW91ciBjb2RlLCB1c2UgU2FzcydzIG1hcC1nZXQoKSBmdW5jdGlvbjpcclxuXHJcbi5tYXJzIHtcclxuICBjb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBtYXJzKTtcclxufVxyXG5cclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbi8vIFNUQU5EQVJEIENPTE9SU1xyXG5cclxuJHdodDogICAgICAgI2ZhZmFmYTsgLy8gYnJpZ2h0ZXI6ICNmZWZlZmVcclxuJGJsazogICAgICAgIzAwMDIyMjsgLy8ganVzdCBhIHRvdWNoIGxpZ2h0ZXIgdGhhbiBibGs6ICMxMTFcclxuJGJsa2FsdDogICAgIzNjNDI0NTtcclxuJHdodGxpdGU6ICAgI2ZmZjsgLy8gcHVyZSB3aGl0ZVxyXG4kYmxrZHJrOiAgICAjMDAwMDAwOyAvLyBwdXJlIGJsYWNrXHJcblxyXG4kZ3J5OiAgICAgICAjZWJlYmViOyAvLyAjZTRlNGU0XHJcbiRncnlsaXRlOiAgICNlMWUxZTE7IC8vICNlZWVcclxuJGdyeXNsdnI6ICAgI2RhZGFkYTtcclxuJGdyeV9tdXRlZDogI2I4YjdiNDtcclxuJHNsYXRlOiAgICAgZGFya2VuKCM1OTU5NTksIDEwJSk7IC8vIGFsbW9zdC1ibGFjayBncmV5LCBmb3IgdGV4dFxyXG4kZ3J5ZHJrOiAgICAjNDY0NjQ2OyAvLyM3NzdcclxuXHJcbiRiYXNlOiAjQUFBQUFBO1xyXG4kZ29sZDogcmdiKDIwMCwgMTQ2LCA0Myk7XHJcbiRnb2xkLWxpZ2h0OiByZ2IoMjIzLCAxNzgsIDk4KTtcclxuJG5hdnk6IHJnYigyNSwgNDAsIDg3KTtcclxuJGJsdWUtYnJpZ2h0OiByZ2IoMCwgMTc4LCAyMjYpO1xyXG4kcmVkLWJyaWdodDogcmdiKDIzOSwgNTgsIDc2KTtcclxuXHJcbi8vIEJSQU5EIENPTE9SU1xyXG4kYmx1ZHJrOiAgIzI5NGM2NTsgLy8gIzAyODhEMSAtIDcwMCAgfCAjMDE1NzliIC0gOTAwICB8IGJsdWUgLSAjMGQ0N2ExIC0gOTAwXHJcbiRibHU6ICAgICAjNTk4ZGIyOyAvLyAjMDNBOUY0IC0gNTAwICB8ICMwMjc3QkQgLSA4MDAgIHwgYmx1ZSAtICMxNTY1YzAgLSA4MDAgIHwgb2xkOiAjMGQ0N2ExOyBvbGQ6ICM1OThkYjI7IC8vICM3NDk1YWY7PVxyXG4kYmx1ZXI6ICAgIzExNTVjYztcclxuJGdsZDogICAgICNmZmI3NGQ7IC8vICNGRkNDODAgLSAyMDAgIHwgI2ZmYTcyNiAtIDQwMCAgfCBvbGQ6ICNmZjk4MDA7IC8vICNjYjliMjE7XHJcbiRwY2g6ICAgICAjZmZlMGIyOyAvLyAxMDAgIHwgI2ZmYjc0ZCAtIDMwMCAvIGFsdCA9ICNGRkMxNjUgIHwgb2xkOiAjZWFkNmE0O1xyXG4kdHJxOiAgICAgIzAwNjA2NDsgLy8gODAwIC0gMDA4MzhmIHwgOTAwIC0gMDA2MDY0IHwgb2xkID0gNGU2NDc2O1xyXG5cclxuLy8gTkVXIEJSQU5ESU5HXHJcbiR3aGl0ZTogJHdodDtcclxuJGdyZXk6ICRncnk7XHJcbiRncmF5OiAkZ3JleTtcclxuXHJcbi8vUEEuR09WXHJcbiR0ZWFsOiAgICAjMUNCMEI1O1xyXG4kZ3JlZW46ICAgIzY0QTcwQjtcclxuJGdyZXlkYXJrOiAkZ3J5ZHJrO1xyXG4kYmx1ZTogICAgIzAwMzE0NjtcclxuJHJlZDogICAgICNDNjBGMTM7XHJcbiR3aGl0ZS10cnVlOiAjZmZmO1xyXG5cclxuLy9FTlRFUlBSSVNFXHJcbiRncmF5LWVudGVycHJpc2U6ICMyZTJlMmU7XHJcblxyXG4vLyBTT0NJQUwgTUVESUEgQ09MT1JTXHJcblxyXG4kZmFjZWJvb2s6ICAjM2I1OTk4O1xyXG4kdHdpdHRlcjogICAjMDBhY2VkO1xyXG4kbGlua2VkaW46ICAjMDA3N2I1O1xyXG4kZ29vZ2xlOiAgICAjZGQ0YjM5O1xyXG4kaW5zdGFncmFtOiAjNTE3ZmE0O1xyXG4kcGludGVyZXN0OiAjY2IyMDI3O1xyXG4kZmxpY2tyOiAgICAjZmYwMDg0O1xyXG4kdmltZW86ICAgICAjMWFiN2FlO1xyXG4keW91dHViZTogICAjYmIwMDAwO1xyXG5cclxuXHJcbi8vIEJHIENPTE9SU1xyXG5cclxuLmJnLXdodCAgICAgICAgIHsgYmFja2dyb3VuZDokd2h0O31cclxuLmJnLWJsayAgICAgICAgIHsgYmFja2dyb3VuZDokYmxrO31cclxuLmJnLWJsa2FsdCAgICAgIHsgYmFja2dyb3VuZDokYmxrYWx0O31cclxuLmJnLWJsa2RyayAgICAgIHsgYmFja2dyb3VuZDokYmxrZHJrO31cclxuLmJnLXdodGxpdGUgICAgIHsgYmFja2dyb3VuZDokd2h0bGl0ZTt9XHJcblxyXG4uYmctZ3J5ICAgICAgICAgeyBiYWNrZ3JvdW5kOiRncnk7fVxyXG4uYmctZ3JheSAgICAgICAgeyBiYWNrZ3JvdW5kOiAkZ3JheTsgfVxyXG4uYmctZ3J5bGl0ZSAgICAgeyBiYWNrZ3JvdW5kOiRncnlsaXRlOyB9XHJcbi5iZy1ncnlzbHZyICAgICB7IGJhY2tncm91bmQ6JGdyeXNsdnI7IH1cclxuLmJnLWdyeV9tdXRlZCAgIHsgYmFja2dyb3VuZDokZ3J5X211dGVkOyB9XHJcbi5iZy1ncnlkcmsgICAgICB7IGJhY2tncm91bmQ6JGdyeWRyazsgfVxyXG4uYmctc2xhdGUgICAgICAgeyBiYWNrZ3JvdW5kOiRzbGF0ZTsgfVxyXG5cclxuLmJnLWJsdSAgICAgICAgIHsgYmFja2dyb3VuZDokYmx1O31cclxuLmJnLWJsdWUgICAgICAgIHsgYmFja2dyb3VuZDogJGJsdWU7IH1cclxuLmJnLWJsdWUtYnJpZ2h0IHsgYmFja2dyb3VuZDogJGJsdWUtYnJpZ2h0OyB9XHJcbi5iZy1ibHVkcmsgICAgICB7IGJhY2tncm91bmQ6JGJsdWRyazsgfVxyXG4uYmctcGNoICAgICAgICAgeyBiYWNrZ3JvdW5kOiRwY2g7IH1cclxuLmJnLWdsZCAgICAgICAgIHsgYmFja2dyb3VuZDokZ2xkOyB9XHJcbi5iZy10cnEgICAgICAgICB7IGJhY2tncm91bmQ6JHRycTsgfVxyXG4uYmctdGVhbCAgICAgICAgeyBiYWNrZ3JvdW5kOiAkdGVhbDsgfVxyXG4uYmctbmF2eSAgICAgICAgeyBiYWNrZ3JvdW5kOiAkbmF2eTsgfVxyXG4uYmctZ3JlZW4gICAgICAgeyBiYWNrZ3JvdW5kOiAkZ3JlZW47IH1cclxuXHJcbi8vIFRFWFQgQ09MT1JTXHJcblxyXG4udHh0LXdodCAgICAgICAge2NvbG9yOiR3aHQ7fVxyXG4udHh0LXdodC1ob3Zlcjpob3ZlciAgeyBjb2xvcjogJHdodDsgfVxyXG4udHh0LWJsayAgICAgICAge2NvbG9yOiRibGs7fVxyXG4udHh0LWJsa2FsdCAgICAge2NvbG9yOiRibGthbHQ7fVxyXG4udHh0LWJsa2RyayAgICAge2NvbG9yOiRibGtkcms7fVxyXG4udHh0LXNsYXRlICAgICAge2NvbG9yOiRzbGF0ZTt9XHJcblxyXG4udHh0LWdyeSAgICAgICAge2NvbG9yOiRncnk7fVxyXG4udHh0LWdyeWxpdGUgICAge2NvbG9yOiRncnlsaXRlICFpbXBvcnRhbnQ7fVxyXG4udHh0LWdyeXNsdnIgICAge2NvbG9yOiRncnlzbHZyO31cclxuLnR4dC1ncnlkcmsgICAgIHtjb2xvcjokZ3J5ZHJrO31cclxuLnR4dC1ncnlfbXV0ZWQgIHtjb2xvcjokZ3J5X211dGVkO31cclxuXHJcbi50eHQtYmx1ICAgICAgICB7Y29sb3I6JGJsdTt9XHJcbi50eHQtYmx1ZSAgICAgICB7IGNvbG9yOiAkYmx1ZTsgfVxyXG4udHh0LW5hdnkgICAgICAgeyBjb2xvcjogJG5hdnk7IH1cclxuLnR4dC1ibHVkcmsgICAgIHtjb2xvcjokYmx1O31cclxuLnR4dC1wY2ggICAgICAgIHtjb2xvcjokcGNoO31cclxuLnR4dC1nbGQgICAgICAgIHtjb2xvcjokZ2xkO31cclxuLnR4dC10cnEgICAgICAgIHtjb2xvcjokdHJxO31cclxuIiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNC4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJy4uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5AaW1wb3J0ICdwcm90b3R5cGUvcHJvdG90eXBlJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxuXG4gIEBpZiAkcHJvdG90eXBlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzO1xuICB9XG59XG4iLCJAaW1wb3J0ICdub3JtYWxpemUvdmFyaWFibGVzJztcbkBpbXBvcnQgJ25vcm1hbGl6ZS92ZXJ0aWNhbC1yaHl0aG0nO1xuQGltcG9ydCAnbm9ybWFsaXplL25vcm1hbGl6ZS1taXhpbic7XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLy9cbi8vLyBDaGVja3Mgd2hldGhlciBgJGZ1bmN0aW9uc2AgZXhpc3QgaW4gZ2xvYmFsIHNjb3BlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ0xpc3R9ICRmdW5jdGlvbnMgLSBsaXN0IG9mIGZ1bmN0aW9ucyB0byBjaGVjayBmb3Jcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9IFdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBtaXNzaW5nIGRlcGVuZGVuY2llc1xuLy8vXG4gXG5AZnVuY3Rpb24gc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJGZ1bmN0aW9ucy4uLikge1xuICAkbWlzc2luZy1kZXBlbmRlbmNpZXM6ICgpO1xuICBcbiAgQGVhY2ggJGZ1bmN0aW9uIGluICRmdW5jdGlvbnMge1xuICAgIEBpZiBub3QgZnVuY3Rpb24tZXhpc3RzKCRmdW5jdGlvbikge1xuICAgICAgJG1pc3NpbmctZGVwZW5kZW5jaWVzOiBhcHBlbmQoJG1pc3NpbmctZGVwZW5kZW5jaWVzLCAkZnVuY3Rpb24sIGNvbW1hKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBpZiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDAge1xuICAgIEBlcnJvciAnVW5tZXQgZGVwZW5kZW5jaWVzISBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQ6ICN7JG1pc3NpbmctZGVwZW5kZW5jaWVzfS4nO1xuICB9XG5cbiAgQHJldHVybiBsZW5ndGgoJG1pc3NpbmctZGVwZW5kZW5jaWVzKSA+IDA7XG59XG4iLCIvLy9cbi8vLyBSZXR1cm5zIHRydXRoaW5lc3Mgb2YgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2hlY2tcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1pcy10cnVlKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSA9PSBudWxsLCBmYWxzZSwgJHZhbHVlIGFuZCAkdmFsdWUgIT0gbnVsbCBhbmQgJHZhbHVlICE9ICcnIGFuZCAkdmFsdWUgIT0gKCkpO1xufVxuIiwiLy8vXG4vLy8gUmV0dXJucyB3aGV0aGVyIGAkbGlzdGAgY29udGFpbnMgYCR2YWx1ZWAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtY29udGFpblxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICAkbGlzdCAgLSBsaXN0IHRvIGNoZWNrXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSB2YWx1ZSB0byBsb29rIGZvclxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1jb250YWluKGEgYiBjLCBhKVxuLy8vIC8vIHRydWVcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtY29udGFpbihhIGIgYywgeilcbi8vLyAvLyBmYWxzZVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gbm90IG5vdCBpbmRleCgkbGlzdCwgJHZhbHVlKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLWNvbnRhaW5cbi8vLyBAYWxpYXMgc2wtY29udGFpblxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtaW5jbHVkZSgkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gc2wtY29udGFpbigkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vLyBSZW1vdmVzIGFsbCBmYWxzZSBhbmQgbnVsbCB2YWx1ZXMgZnJvbSBgJGxpc3RgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXB1cmdlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gbGlzdCB0byBwdXJnZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1wdXJnZShudWxsIGEgZmFsc2UgYilcbi8vLyAvLyBhIGJcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXB1cmdlKCRsaXN0KSB7XG4gICRfOiBzbC1taXNzaW5nLWRlcGVuZGVuY2llcygnc2wtaXMtdHJ1ZScsICdzbC10by1saXN0Jyk7XG4gIFxuICAkcmVzdWx0OiAoKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIHNsLWlzLXRydWUoJGl0ZW0pIHtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkaXRlbSwgbGlzdC1zZXBhcmF0b3IoJGxpc3QpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEBhbGlhcyBzbC1wdXJnZVxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtY2xlYW4oJGxpc3QpIHtcbiAgQHJldHVybiBzbC1wdXJnZSgkbGlzdCk7XG59XG4iLCIvLy9cbi8vLyBSZW1vdmVzIHZhbHVlKHMpIGAkdmFsdWVgIGZyb20gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZW1vdmVcbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZXBsYWNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAgICAgLSBsaXN0IHRvIHVwZGF0ZVxuLy8vIEBwYXJhbSB7Kn0gICAgICAgJHZhbHVlICAgICAtIHZhbHVlIHRvIHJlbW92ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZW1vdmUoYSBiIGMsIGEpXG4vLy8gLy8gYiBjXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG5cbkBmdW5jdGlvbiBzbC1yZW1vdmUoJGxpc3QsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLXJlcGxhY2UnKTtcblxuICBAcmV0dXJuIHNsLXJlcGxhY2UoJGxpc3QsICR2YWx1ZSwgbnVsbCk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1yZW1vdmVcbi8vLyBAYWxpYXMgc2wtcmVtb3ZlXG4vLy9cblxuQGZ1bmN0aW9uIHNsLXdpdGhvdXQoJGxpc3QsICR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXJlbW92ZSgkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vL1xuLy8vIFJlcGxhY2VzIGAkb2xkYCBieSBgJG5ld2AgaW4gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1yZXBsYWNlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtaXMtdHJ1ZVxuLy8vIEByZXF1aXJlcyBzbC1wdXJnZVxuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICAgICRsaXN0ICAtIGxpc3QgdG8gdXBkYXRlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkb2xkICAgLSB2YWx1ZSB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHsqfSAgICAgICAkdmFsdWUgLSBuZXcgdmFsdWUgZm9yICRvbGRcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcmVwbGFjZShhIGIgYywgYiwgeilcbi8vLyAvLyBhIHogY1xuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBzbC1yZXBsYWNlKGEgYiBjLCB5LCB6KVxuLy8vIC8vIGEgYiBjXG4vLy8gXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLXJlcGxhY2UoJGxpc3QsICRvbGQsICR2YWx1ZSkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLWlzLXRydWUnLCAnc2wtcHVyZ2UnLCAnc2wtdG8tbGlzdCcpO1xuXG4gICRydW5uaW5nOiB0cnVlO1xuXG4gIEB3aGlsZSAkcnVubmluZyB7XG4gICAgJGluZGV4OiBpbmRleCgkbGlzdCwgJG9sZCk7XG5cbiAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAkcnVubmluZzogZmFsc2U7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJGxpc3Q6IHNldC1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKTtcbiAgICB9XG5cbiAgfVxuXG4gICRsaXN0OiBpZihzbC1pcy10cnVlKCR2YWx1ZSksICRsaXN0LCBzbC1wdXJnZSgkbGlzdCkpO1xuICBcbiAgQHJldHVybiBzbC10by1saXN0KCRsaXN0KTtcbn1cbiIsIi8vL1xuLy8vIENhc3RzIGAkdmFsdWVgIGludG8gYSBsaXN0LlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLXRvLWxpc3Rcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlIC0gdmFsdWUgdG8gY2FzdCB0byBsaXN0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZXBhcmF0b3IgW3NwYWNlXSAtIHNlcGFyYXRvciB0byB1c2Vcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtdG8tbGlzdChhIGIgYywgY29tbWEpXG4vLy8gLy8gYSwgYiwgY1xuLy8vIFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLXRvLWxpc3QoJHZhbHVlLCAkc2VwYXJhdG9yOiBsaXN0LXNlcGFyYXRvcigkdmFsdWUpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJHZhbHVlLCAkc2VwYXJhdG9yKTtcbn1cblxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLXRvLWxpc3Rcbi8vLyBAYWxpYXMgc2wtdG8tbGlzdFxuLy8vXG5cbkBmdW5jdGlvbiBzbC1saXN0aWZ5KCR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLXRvLWxpc3QoJHZhbHVlKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcbkBpbXBvcnQgJ3VuaXQnO1xuQGltcG9ydCAndmFsdWUnO1xuQGltcG9ydCAnZGlyZWN0aW9uJztcbkBpbXBvcnQgJ2NvbG9yJztcbkBpbXBvcnQgJ3NlbGVjdG9yJztcbkBpbXBvcnQgJ2ZsZXgnO1xuQGltcG9ydCAnYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtYXR0cmlidXRlLW5lc3RpbmcsIGZvcmNlLXBzZXVkby1uZXN0aW5nLCBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgcHJpbWFyeTogIzE3NzliYSxcbiAgc2Vjb25kYXJ5OiAjNzY3Njc2LFxuICBzdWNjZXNzOiAjM2FkYjc2LFxuICB3YXJuaW5nOiAjZmZhZTAwLFxuICBhbGVydDogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIGFudGlhbGlhc2VkIHR5cGUsIHVzaW5nIHRoZSBgLXdlYmtpdC1mb250LXNtb290aGluZ2AgYW5kIGAtbW96LW9zeC1mb250LXNtb290aGluZ2AgQ1NTIHByb3BlcnRpZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwYWRkaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcG9zaXRpb25pbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcG9zaXRpb246IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3Igbm9ybWFsIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIENhbiBiZSBvdmVyd3JpdHRlbiBhdCBpbmRpdmlkdWFsIG1lbnUgY29tcG9uZW50IGxldmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gTmVzdGVkIG1hcmdpbiBmb3Igc3VibWVudS5cbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZWQgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcHJvdG90eXBlcyBpZiBhcHBsaWNhYmxlXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnV0dG9uIGN1cnNvcidzIHZhbHVlLCBgYXV0b2AgYnkgZGVmYXVsdFxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtYnV0dG9uLWN1cnNvcjogYXV0byAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG4kcHJpbWFyeS1jb2xvcjogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogZ2V0LWNvbG9yKHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogZ2V0LWNvbG9yKHN1Y2Nlc3MpO1xuJHdhcm5pbmctY29sb3I6IGdldC1jb2xvcih3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcblxuQG1peGluIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcyB7XG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuICBAaW5jbHVkZSBub3JtYWxpemUoKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIG9mIGEgcm93LlxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gVGhlIGRlZmF1bHQgY29sdW1uIGNvdW50IG9mIGEgZ3JpZC4gQ2hhbmdpbmcgdGhpcyB2YWx1ZSBhZmZlY3RzIHRoZSBsb2dpYyBvZiB0aGUgZ3JpZCBtaXhpbnMsIGFuZCB0aGUgbnVtYmVyIG9mIENTUyBjbGFzc2VzIG91dHB1dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbHVtbi1jb3VudDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gY29sdW1ucyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLiBUbyB1c2UganVzdCBvbmUgc2l6ZSwgc2V0IHRoZSB2YXJpYWJsZSB0byBhIG51bWJlciBpbnN0ZWFkIG9mIGEgbWFwLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuLy8vIEBzaW5jZSA2LjEuMFxuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IHdpbGwgYWxpZ24gdG8gdGhlIG9wcG9zaXRlIGVkZ2Ugb2YgdGhlIHJvdy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNlbGVjdG9yIHVzZWQgZm9yIGFuIGFsaWFzIG9mIGNvbHVtbiAod2l0aCBAZXh0ZW5kKS4gSWYgYGZhbHNlYCwgbm8gYWxpYXMgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRncmlkLWNvbHVtbi1hbGlhczogJ2NvbHVtbnMnICFkZWZhdWx0O1xuXG4vLy8gVGhlIGhpZ2hlc3QgbnVtYmVyIG9mIGAueC11cGAgY2xhc3NlcyBhdmFpbGFibGUgd2hlbiB1c2luZyB0aGUgYmxvY2sgZ3JpZCBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmxvY2stZ3JpZC1tYXg6IDggIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhbHVlIHRvIHN0b3JlIHRoZSBlbmQgY29sdW1uIGZsb2F0IGRpcmVjdGlvblxuJC16Zi1lbmQtZmxvYXQ6IGlmKCRncmlkLWNvbHVtbi1hbGlnbi1lZGdlLCAkZ2xvYmFsLXJpZ2h0LCAkZ2xvYmFsLWxlZnQpO1xuXG5AaW1wb3J0ICdyb3cnO1xuQGltcG9ydCAnY29sdW1uJztcbkBpbXBvcnQgJ3NpemUnO1xuQGltcG9ydCAncG9zaXRpb24nO1xuQGltcG9ydCAnZ3V0dGVyJztcbkBpbXBvcnQgJ2NsYXNzZXMnO1xuQGltcG9ydCAnbGF5b3V0JztcblxuQGltcG9ydCAnZmxleC1ncmlkJztcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAvIDIgKiAtMTtcblxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0IGEgZ3JpZCByb3cgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuQG1peGluIGdyaWQtcm93LXNpemUoJHNpemU6ICRncmlkLXJvdy13aWR0aCkge1xuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcbiAgICAkc2l6ZTogbm9uZTtcbiAgfVxuXG4gIG1heC13aWR0aDogJHNpemU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIGxpc3Qgb2YgdGhlIGZvcm1hdCBcInggb2YgeVwiICh3aXRob3V0IHF1b3Rlcykgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIGNhbGN1bGF0ZWQgcGVyY2VudGFnZSB2YWx1ZS5cbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xuICAkd2lkdGg6IDAlO1xuXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xuICBAaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRjb2x1bW5zKSA9PSAnJScge1xuICAgICAgJHdpZHRoOiAkY29sdW1ucztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGNvbHVtbnMgPCAxIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdsaXN0JyB7XG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XG4gICAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIi4nO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UobnRoKCRjb2x1bW5zLCAxKSAvIG50aCgkY29sdW1ucywgMykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFueXRoaW5nIGVsc2UgaXMgaW5jb3JyZWN0XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4oKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiLic7XG4gIH1cblxuICBAcmV0dXJuICR3aWR0aDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLXJvdztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVycyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC4gU2V0IHRvIGNlbnRlciB0byBjZW50ZXIgdGhlIGNvbHVtbi5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgb3IgY2VudGVyLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sdW1uLWd1dHRlcigpLiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2wtZ3V0dGVyKCkuIGdyaWQtY29sLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gT3V0cHV0cyBDU1MgY2xhc3NlcyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gZm91bmRhdGlvbi1ncmlkKFxuICAkcm93OiAncm93JyxcbiAgJGNvbHVtbjogJ2NvbHVtbicsXG4gICRjb2x1bW4tcm93OiAnY29sdW1uLXJvdycsXG4gICRndXR0ZXI6ICdndXR0ZXInLFxuICAkcHVzaDogJ3B1c2gnLFxuICAkcHVsbDogJ3B1bGwnLFxuICAkY2VudGVyOiAnY2VudGVyZWQnLFxuICAkdW5jZW50ZXI6ICd1bmNlbnRlcmVkJyxcbiAgJGNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAkdW5jb2xsYXBzZTogJ3VuY29sbGFwc2UnLFxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgJGVuZDogJ2VuZCcsXG4gICRleHBhbmRlZDogJ2V4cGFuZGVkJyxcbiAgJGJsb2NrOiAnYmxvY2snXG4pIHtcbiAgLy8gUm93XG4gIC4jeyRyb3d9IHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgIC8vIENvbGxhcHNpbmdcbiAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3JpZC1jb2x1bW4tZ3V0dGVyKTtcblxuICAgICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIChmdWxsLXdpZHRoKSByb3dcbiAgICAmLiN7JGV4cGFuZGVkfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguI3skZXhwYW5kZWR9KSAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJGdyaWQtY29sdW1uLWd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgLy8gU3RhdGljICh1bnJlc3BvbnNpdmUpIHJvdyBndXR0ZXJzXG4gICAgICAvL1xuICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHtcbiAgICAgICAgJi4jeyRndXR0ZXJ9LSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICA+IC4jeyRjb2x1bW59IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuI3skY29sdW1ufSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2w7XG5cbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJi4jeyRlbmR9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC4jeyRyb3d9IC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gQ29sdW1uIHdpZHRoXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtc2l6ZSgkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgICAgQGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygtJGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skb2Zmc2V0fS0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSwgJy4jeyRjb2x1bW59Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG5cbiAgICAgIC4jeyRyb3d9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skZXhwYW5kZWR9LiN7JHJvd30gLiN7JC16Zi1zaXplfS0jeyRjb2xsYXBzZX0uI3skcm93fSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LSN7JHVuY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cblxuICAgIC8vIFBvc2l0aW9uaW5nXG4gICAgLiN7JC16Zi1zaXplfS0jeyRjZW50ZXJ9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcyhjZW50ZXIpO1xuICAgIH1cblxuICAgIC8vIEd1dHRlciBhZGp1c3RtZW50XG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNlbnRlcn0sXG4gICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0wLFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tMCB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC11bnBvcztcbiAgICB9XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLiN7JGNvbHVtbn0tI3skYmxvY2t9IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICBAaWYgJGNvbHVtbiA9PSAnY29sdW1uJyBhbmQgaGFzLXZhbHVlKCRncmlkLWNvbHVtbi1hbGlhcykge1xuICAgIC4jeyRncmlkLWNvbHVtbi1hbGlhc30ge1xuICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUtYmxvY2sgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG4gICAgICBAZXh0ZW5kIC5jb2x1bW47XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTaXplcyBjaGlsZCBlbGVtZW50cyBzbyB0aGF0IGAkbmAgbnVtYmVyIG9mIGl0ZW1zIGFwcGVhciBvbiBlYWNoIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBlbGVtZW50cyB0byBkaXNwbGF5IHBlciByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJy5jb2x1bW4nXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGd1dHRlclxuLy8vICAgVGhlIGd1dHRlciB0byBhcHBseSB0byBjaGlsZCBlbGVtZW50cy4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtICRncmlkLWNvbHVtbi1ndXR0ZXIgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiB0aGUgJGdyaWQtY29sdW1uLWd1dHRlciBtYXAsIGluY2x1ZGluZyBicmVha3BvaW50IHNpemVzLlxuLy8vICAgLSBBIGZpeGVkIG51bWVyaWMgdmFsdWUgd2lsbCBhcHBseSB0aGlzIGd1dHRlciB0byBhbGwgYnJlYWtwb2ludHMuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJyxcbiAgJGd1dHRlcjogbnVsbFxuKSB7XG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICAvLyBJZiBhICRndXR0ZXIgdmFsdWUgaXMgcGFzc2VkXG4gICAgQGlmKCRndXR0ZXIpIHtcbiAgICAgIC8vIEd1dHRlcnNcbiAgICAgIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YWx1ZSBpbiAkZ3V0dGVyIHtcbiAgICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJHZhbHVlKSAvIDI7XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBleHRyYSBDU1MgdG8gYmxvY2sgZ3JpZCBjaGlsZHJlbiBzbyB0aGUgbGFzdCBpdGVtcyBpbiB0aGUgcm93IGNlbnRlciBhdXRvbWF0aWNhbGx5LiBBcHBseSB0aGlzIHRvIHRoZSBjb2x1bW5zLCBub3QgdGhlIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBpdGVtcyB0aGF0IGFwcGVhciBpbiBlYWNoIHJvdy5cbkBtaXhpbiBncmlkLWxheW91dC1jZW50ZXItbGFzdCgkbikge1xuICBAZm9yICRpIGZyb20gMSB0byAkbiB7XG4gICAgQGlmICRpID09IDEge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjpudGgtY2hpbGQoI3skbn1uKzEpOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgYmFzaWMgc3R5bGVzIGZyb20gYmVpbmcgb3V0cHV0LiBVc2VmdWwgaWYgeW91J3JlIGNhbGxpbmcgdGhpcyBtaXhpbiBvbiB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLCBhcyBpdCBwcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIG91dHB1dC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGZsZXgtZ3JpZC1yb3coXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiYXNlOiB0cnVlLFxuICAkd3JhcDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkYmFzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyAkd3JhcDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMsICRiYXNlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGBmbGV4YCBwcm9wZXJ0eSBmb3IgYSBmbGV4IGdyaWQgY29sdW1uLiBJdCBhY2NlcHRzIGFsbCBvZiB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJhc2ljIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0d28gZXh0cmFzOlxuLy8vICAgLSBgZXhwYW5kYCAodGhlIGRlZmF1bHQpIHdpbGwgbWFrZSB0aGUgY29sdW1uIGV4cGFuZCB0byBmaWxsIHNwYWNlLlxuLy8vICAgLSBgc2hyaW5rYCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBjb250cmFjdCwgc28gaXQgb25seSB0YWtlcyB1cCB0aGUgaG9yaXpvbnRhbCBzcGFjZSBpdCBuZWVkcy5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi5cbkBmdW5jdGlvbiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zOiBleHBhbmQpIHtcbiAgJGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG5cbiAgQGlmICRjb2x1bW5zID09IHNocmluayB7XG4gICAgJGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICRjb2x1bW5zICE9IGV4cGFuZCB7XG4gICAgJGZsZXg6IDAgMCBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cblxuICBAcmV0dXJuICRmbGV4O1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbHVtbiBmb3IgYSBmbGV4IGdyaWQuIEJ5IGRlZmF1bHQsIHRoZSBjb2x1bW4gd2lsbCBzdHJldGNoIHRvIHRoZSBmdWxsIHdpZHRoIG9mIGl0cyBjb250YWluZXIsIGJ1dCB0aGlzIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggc2l6aW5nIGNsYXNzZXMsIG9yIGJ5IHVzaW5nIHRoZSBgdW5zdGFja2AgY2xhc3Mgb24gdGhlIHBhcmVudCBmbGV4IHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzIHdpZHRoLiBTZWUgdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXJgIG1peGluLlxuQG1peGluIGZsZXgtZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiBleHBhbmQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgLy8gQmFzZSBwcm9wZXJ0aWVzXG4gIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKCRjb2x1bW5zKTtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIGZpeGVzIHJlY2VudCBDaHJvbWUgdmVyc2lvbiBub3QgbGltaXRpbmcgY2hpbGQgd2lkdGhcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ5MzQ1ODYvd2hpdGUtc3BhY2Utbm93cmFwLWFuZC1mbGV4Ym94LWRpZC1ub3Qtd29yay1pbi1jaHJvbWVcbiAgQGlmICRjb2x1bW5zID09IGV4cGFuZCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgYmxvY2sgZ3JpZCBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gZGlzcGxheSBvbiBlYWNoIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIC0gU2VsZWN0b3IgdG8gdXNlIHRvIHRhcmdldCBjb2x1bW5zIHdpdGhpbiB0aGUgcm93LlxuQG1peGluIGZsZXgtZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJ1xuKSB7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgJHBjdDogcGVyY2VudGFnZSgxLyRuKTtcblxuICAgIGZsZXg6IDAgMCAkcGN0O1xuICAgIG1heC13aWR0aDogJHBjdDtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgd2lkdGggZmxleCBncmlkIGNvbHVtbi5cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuQG1peGluIGZsZXgtZ3JpZC1zaXplKCRjb2x1bW5zOiBudWxsKSB7XG4gICRjb2x1bW5zOiAkY29sdW1ucyBvciBleHBhbmQ7XG5cbiAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkY29sdW1ucyk7XG5cbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XG4gIEBpZiAkY29sdW1ucyAhPSBleHBhbmQgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xuICAvLyBSb3dcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcbiAgICAmIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCByb3dcbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcblxuICAgICAgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVuZG8gbmVnYXRpdmUgbWFyZ2luc1xuICAgIC8vIEZyb20gY29sbGFwc2VkIGNoaWxkXG4gICAgJi5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgICAmLmNvbGxhcHNlID4gLmNvbHVtbiA+IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC5jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLmNvbHVtbi5yb3cucm93IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAucm93IC5jb2x1bW4ucm93LnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWxheW91dCgkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAvLyBTaXppbmcgKGV4cGFuZClcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcbiAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXV0by1zdGFja2luZy91bnN0YWNraW5nXG4gICAgICBAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcbiAgICAgICAgLnJvdy4jeyQtemYtc2l6ZX0tdW5zdGFjayB7XG4gICAgICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LWNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS11bmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6aW5nIChzaHJpbmspXG4gIC5zaHJpbmsge1xuICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLmNvbHVtbi1ibG9jayB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgIEBleHRlbmQgLmNvbHVtbjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBwbGFjZWhvbGRlci1pbi1leHRlbmRcblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBFbmFibGVzIHRoZSBYWSBncmlkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR4eS1ncmlkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gVGhlIG1heGltdW0gd2lkdGggb2YgYSBncmlkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGluIHRoZSBncmlkLlxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIG1hcmdpbiBiZXR3ZWVuIGNlbGxzIGF0IGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMgd2hlbiB1c2luZyB0aGUgbWFyZ2luIGdyaWQuIFRvIHVzZSBqdXN0IG9uZSBzaXplLCBzZXQgdGhlIHZhcmlhYmxlIHRvIGEgbnVtYmVyIGluc3RlYWQgb2YgYSBtYXAuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4kZ3JpZC1tYXJnaW4tZ3V0dGVyczogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4XG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBwYWRkaW5nIGluIGNlbGxzIGF0IGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMgd2hlbiB1c2luZyB0aGUgcGFkZGluZyBncmlkLiBUbyB1c2UganVzdCBvbmUgc2l6ZSwgc2V0IHRoZSB2YXJpYWJsZSB0byBhIG51bWJlciBpbnN0ZWFkIG9mIGEgbWFwLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuJGdyaWQtcGFkZGluZy1ndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2YgcGFkZGluZyB0byB1c2Ugd2hlbiBwYWRkaW5nIHRoZSBncmlkLWNvbnRhaW5lci5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbiRncmlkLWNvbnRhaW5lci1wYWRkaW5nOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCB0byBhcHBseSB0byBhIGdyaWQgY29udGFpbmVyXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb250YWluZXItbWF4OiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNlbGxzIGluIGFuIFhZIGJsb2NrIGdyaWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4keHktYmxvY2stZ3JpZC1tYXg6IDggIWRlZmF1bHQ7XG5cbkBpbXBvcnQgJ2d1dHRlcnMnO1xuQGltcG9ydCAnZ3JpZCc7XG5AaW1wb3J0ICdjZWxsJztcbkBpbXBvcnQgJ2ZyYW1lJztcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcbkBpbXBvcnQgJ2xheW91dCc7XG5AaW1wb3J0ICdjb2xsYXBzZSc7XG5AaW1wb3J0ICdjbGFzc2VzJztcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZSBndXR0ZXJzIGZvciBhIGNlbGwvY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBlaXRoZXIgbWFyZ2luIG9yIHBhZGRpbmcuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZWdhdGl2ZSBbZmFsc2VdIC0gV2hldGhlciB0byBhcHBseSB0aGUgZ3V0dGVyIGFzIGEgbmVnYXRpdmUgdmFsdWUuIENvbW1vbmx5IHVzZWQgZm9yIG5lc3RlZCBncmlkcy5cbkBtaXhpbiB4eS1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbmVnYXRpdmU6IGZhbHNlXG4pIHtcbiAgJG9wZXJhdG9yOiBpZigkbmVnYXRpdmUsICctJywgJycpO1xuXG4gIC8vIElmIHdlIGhhdmUgZGVjbGFyZWQgbmVnYXRpdmUgZ3V0dGVycywgZm9yY2UgdHlwZSB0byBgbWFyZ2luLlxuICAkZ3V0dGVyLXR5cGU6IGlmKCRuZWdhdGl2ZSwgJ21hcmdpbicsICRndXR0ZXItdHlwZSk7XG5cbiAgLy8gT3V0cHV0IG91ciBtYXJnaW4gZ3V0dGVycy5cbiAgQGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJykge1xuICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRndXR0ZXJzKSB7XG4gICAgICAkZ3V0dGVyOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiAjeyRvcGVyYXRvcn0kZ3V0dGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZWlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXJzKSAvIDI7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiAjeyRvcGVyYXRvcn0kZ3V0dGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIG1heCB3aWR0aCBjb250YWluZXIsIGRlc2lnbmVkIHRvIGhvdXNlIHlvdXIgZ3JpZCBjb250ZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtY29udGFpbmVyXSAtIGEgd2lkdGggdG8gbGltaXQgdGhlIGNvbnRhaW5lciB0by5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIHlvdXIgZmxleCBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbaG9yaXpvbnRhbF0gLSBFaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBkaXJlY3Rpb24gb2YgY2VsbHMgd2l0aGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gSWYgdGhlIGNlbGxzIHdpdGhpbiBzaG91bGQgd3JhcCBvciBub3QuXG5AbWl4aW4geHktZ3JpZChcbiAgJGRpcmVjdGlvbjogaG9yaXpvbnRhbCxcbiAgJHdyYXA6IHRydWVcbikge1xuICAkZGlyZWN0aW9uOiBpZigkZGlyZWN0aW9uID09ICdob3Jpem9udGFsJywgcm93LCBjb2x1bW4pO1xuICAkd3JhcDogaWYoJHdyYXAsIHdyYXAsIG5vd3JhcCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlIHNpemUgb2YgYSBjZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHNpemUgWyRncmlkLWNvbHVtbnNdIC0gU2l6ZSB0byBtYWtlIHRoZSBjZWxsLiBZb3UgY2FuIHBhc3MgYSB2YWx1ZSBpbiBtdWx0aXBsZSBmb3JtYXRzLCBzdWNoIGFzIGA2YCwgYDUwJWAsIGAxIG9mIDIgb3IgMS8zLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgbiBvZiBuIGFuZCBudW1iZXIgY291bnRzXG4gIEBpZiB0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJHNpemUpID09ICclJyB7XG4gICAgICAkc2l6ZTogJHNpemU7XG4gICAgfVxuICAgIEBlbHNlIGlmICRzaXplIDwgMSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKCRzaXplIC8gJGdyaWQtY29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2luZyBcIm4gb2YgblwiIG9yIFwibi9uXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2VpZiB0eXBlLW9mKCRzaXplKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJHNpemUpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIHh5LWNlbGwtc2l6ZSgpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiIG9yIFwibi9uXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UobnRoKCRzaXplLCAxKSAvIG50aCgkc2l6ZSwgMykpO1xuICAgIH1cbiAgfVxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIHh5LWNlbGwtc2l6ZSgpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIgLyBcIm4vblwiLic7XG4gIH1cblxuICBAcmV0dXJuICRzaXplO1xufVxuXG4vLy8gU2V0cyBiYXNlIGZsZXggcHJvcGVydGllcyBmb3IgY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCBvciBgc2hyaW5rYC5cbkBtaXhpbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIC8vIFRoaXMgaXMgdGhlIGJhc2Ugc3R5bGUsIGFsbCBvdGhlcnMgaW5oZXJpdCBmcm9tIGl0XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gIH1cbiAgQGVsc2VpZiAoJHNpemUgPT0gJ3NocmluaycpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxufVxuXG4vLy8gUmVzZXRzIGEgY2VsbHMgd2lkdGggKG9yIGhlaWdodCBpZiB2ZXJ0aWNhbCBpcyB0cnVlKSBhcyB3ZWxsIGFzIHN0cmlwcyBpdHMgZ3V0dGVycy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXJlc2V0KCR2ZXJ0aWNhbDogdHJ1ZSkge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgd2lkdGgsIGhlaWdodCk7XG4gICN7JGRpcmVjdGlvbn06IGF1dG87XG59XG5cbi8vIFNldHMgb3VyIGNlbGwgd2lkdGhzIG9yIGhlaWdodHMgZGVwZW5kaW5nIG9uIGd1dHRlciB0eXBlLlxuQG1peGluIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRtYXJnaW4tZ3V0dGVyLCAkdmVydGljYWwpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIGhlaWdodCwgd2lkdGgpO1xuICBAaWYoJHNpemUgPT0gJ2Z1bGwnKSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgMTAwJSwgY2FsYygxMDAlIC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICAjeyRkaXJlY3Rpb259OiBhdXRvO1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbDogaWYoJG1hcmdpbi1ndXR0ZXIgPT0gMCwgI3t4eS1jZWxsLXNpemUoJHNpemUpfSwgY2FsYygje3h5LWNlbGwtc2l6ZSgkc2l6ZSl9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgI3skZGlyZWN0aW9ufTogJHZhbDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGNlbGwgZm9yIHlvdXIgZ3JpZC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICBAaWYoJGJyZWFrcG9pbnQgPT0gbnVsbCkge1xuICAgIC8vIElmIGAkYnAtc2l6ZWAgaXMgYXZhaWxhYmxlIHRoZW4gdXNlIHRoaXMsIG90aGVyd2lzZSByZXZlcnQgdG8gdGhlIHNtYWxsZXN0IGJwLlxuICAgIEBpZih2YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIGFuZCB0eXBlLW9mKCQtemYtc2l6ZSkgIT0gJ251bWJlcicpIGFuZCAkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi1zaXplO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IG91ciBndXR0ZXJzIGZyb20gbWFwIGlmIGF2YWlsYWJsZSwgaWYgbm90IG1hcCBqdXN0IHJldHVybiB0aGUgdmFsdWUuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgLy8gQmFzZSBmbGV4IHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBpZiAkZ3V0dGVyLW91dHB1dCB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgIChkZWZhdWx0KSBmb3IgMTAwJSB3aWR0aCwgYGF1dG9gIHRvIHVzZSB1cCBhdmFpbGFibGUgc3BhY2UgYW5kIGBzaHJpbmtgIHRvIHVzZSB1cCBvbmx5IHJlcXVpcmVkIHNwYWNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGd1dHRlci1vdXRwdXQgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG5cbiAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgJGd1dHRlci1wb3NpdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHRvcCBib3R0b20sIGxlZnQgcmlnaHQpO1xuXG4gIEBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcbiAgICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkZ3V0dGVyLCAkdmVydGljYWwpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAwLCAkdmVydGljYWwpO1xuICB9XG5cbiAgLy8gSWYgd2Ugd2FudCB0byBvdXRwdXQgdGhlIGd1dHRlcnNcbiAgQGlmKCRndXR0ZXItb3V0cHV0KSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIHBhc3MgYnJlYWtwb2ludCBpbiBoZXJlIHRvby5cbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi8vLyBNb2RpZmllcyBhIGdyaWQgdG8gZ2l2ZSBpdCBcImZyYW1lXCIgYmVoYXZpb3IgKG5vIG92ZXJmbG93LCBubyB3cmFwLCBzdHJldGNoIGJlaGF2aW9yKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVzdGVkIFtmYWxzZV0gLSBJcyBncmlkIG5lc3RlZCBvciBub3QuIElmIG5lc3RlZCBpcyB0cnVlIHRoaXMgc2V0cyB0aGUgZnJhbWUgdG8gMTAwJSBoZWlnaHQsIG90aGVyd2lzZSB3aWxsIGJlIDEwMHZoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgW251bGxdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGluY2x1ZGUtYmFzZSBbdHJ1ZV0gLSBJbmNsdWRlIHRoZSBiYXNlIHN0eWxlcyB0aGF0IGRvbid0IHZhcnkgcGVyIGJyZWFrcG9pbnQuXG5AbWl4aW4geHktZ3JpZC1mcmFtZShcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG5lc3RlZDogZmFsc2UsXG4gICRndXR0ZXJzOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJGluY2x1ZGUtYmFzZTogdHJ1ZVxuKSB7XG5cbiAgQGlmICRpbmNsdWRlLWJhc2Uge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgQGlmICRicmVha3BvaW50ID09IG51bGwgYW5kIHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSgkdmVydGljYWwsICRuZXN0ZWQsICRndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC8vIEdldCBvdXIgZ3V0dGVycyBpZiBhcHBsaWNhYmxlXG4gICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICRicmVha3BvaW50KTtcblxuICAgIC8vIElmIHdlIGhhdmUgYSBndXR0ZXIsIGFkZCBpdCB0byB0aGUgd2lkdGgvaGVpZ2h0XG4gICAgQGlmICRndXR0ZXIge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHVuaXQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICAgICAgaGVpZ2h0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB3aWR0aDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBNb2RpZmllcyBhIGNlbGwgdG8gZ2l2ZSBpdCBcImJsb2NrXCIgYmVoYXZpb3IgKG92ZXJmbG93IGF1dG8sIGluZXJ0aWFsIHNjcm9sbGluZylcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuQG1peGluIHh5LWNlbGwtYmxvY2soXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkcHJvcGVydHk6IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCAnb3ZlcmZsb3cteScsICdvdmVyZmxvdy14Jyk7XG5cbiAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH0gQGVsc2Uge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5cGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbn1cblxuLy8vIENvbnRhaW5lciBmb3IgaW5zaWRlIGEgZ3JpZCBmcmFtZSBjb250YWluaW5nIG11bHRpcGxlIGJsb2Nrcy4gVHlwaWNhbGx5IHVzZWRcbi8vLyBhcyBhIG1vZGlmaWVyIGZvciBhIGAuY2VsbGAgdG8gYWxsb3cgdGhlIGNlbGwgdG8gcGFzcyBhbG9uZyBmbGV4IHNpemluZ1xuLy8vIGNvbnN0cmFpbnRzIC8gZnJvbSBwYXJlbnRzIHRvIGNoaWxkcmVuLlxuQG1peGluIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gID4gLmdyaWQteCB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQvYm90dG9tIGJ5IGAkbmAgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB6Zi1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBvZmZzZXQuIElmIHNldCB0byB0cnVlIHdpbGwgYXBwbHkgbWFyZ2luLXRvcCBpbnN0ZWFkLlxuQG1peGluIHh5LWNlbGwtb2Zmc2V0KFxuICRuLFxuICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCwgJ3RvcCcsICRnbG9iYWwtbGVmdCk7XG5cbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGJyZWFrcG9pbnQsICRndXR0ZXJzKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuICAgICRzaXplOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIGNhbGMoI3t4eS1jZWxsLXNpemUoJG4pfSArICN7JGd1dHRlcn0pLCAje3h5LWNlbGwtc2l6ZSgkbil9KTtcblxuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAjeyRzaXplfTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY2VsbCddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCBvciBgcGFkZGluZ2AuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtyaWdodCBsZWZ0XSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkc2l6ZTogcGVyY2VudGFnZSgxLyRuKTtcblxuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsKCRzaXplLCAkZ3V0dGVyLW91dHB1dCwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbiwgJGJyZWFrcG9pbnQsICR2ZXJ0aWNhbCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlcyB0aGUgZ3JpZCBhIGNlbGxzIHdpdGhpbiBpdC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWy5jZWxsXSAtIFRoZSBjaGlsZCBlbGVtZW50IHRvIHJlbW92ZSB0aGUgZ3V0dGVyIGZyb20uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gcmVtb3ZlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb25zIHRvIHJlbW92ZSBndXR0ZXJzIGZyb20uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuQG1peGluIHh5LWdyaWQtY29sbGFwc2UoXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRtaW4tYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnRcbikge1xuICAvLyBGaXJzdCwgbGV0cyBuZWdhdGUgYW55IG1hcmdpbnMgb24gdGhlIHRvcCBsZXZlbFxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRleGNsdWRlZC1icHM6IC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJG1pbi1icmVha3BvaW50KTtcblxuICAgIC8vIE91dHB1dCBuZXcgd2lkdGhzIHRvIG5vdCBpbmNsdWRlIGd1dHRlcnNcbiAgICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYoc2wtY29udGFpbigkZXhjbHVkZWQtYnBzLCAkYnApKSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCAkZ3V0dGVyLW91dHB1dDogZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICAgICAgPiAuI3skYnB9LSN7JGl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksICRndXR0ZXItb3V0cHV0OiBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgfVxuICB9XG4gIEBlbHNlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIHBhZGRpbmctI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1iYXNlLWdyaWQtY2xhc3NlcyB7XG5cbiAgLy8gR3JpZCBDb250YWluZXJcbiAgLmdyaWQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcjtcblxuICAgICYuZmx1aWQge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSk7XG4gICAgfVxuXG4gICAgJi5mdWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgLmdyaWQteCB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgfVxuXG4gIC5jZWxsIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoKTtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkZ3JpZC1jb2x1bW5zLCBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICAgICYuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgfVxuXG4gICAgJi5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gIH1cbiAgLmdyaWQteCB7XG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhhdXRvLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gd2lkdGhcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjay93b3JrYXJvdW5kLCBzZWUgdGhlc2UgaXNzdWVzICYgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9wdWxsLzEwMjIyIGFuZFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgIC5ncmlkLXgge1xuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShhdXRvKTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1zaHJpbmsge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHdpZHRoIHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi14YCBub3Qgb24gYC5ncmlkLXhgXG4gIC5ncmlkLW1hcmdpbi14Om5vdCguZ3JpZC14KSA+IC5jZWxsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teWAgbm90IG9uIGAuZ3JpZC15YFxuICAuZ3JpZC1tYXJnaW4teTpub3QoLmdyaWQteSkgPiAuY2VsbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGNsYXNzLWJyZWFrcG9pbnQsICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsKSB7XG4gICRwcmVmaXg6IGlmKCRjbGFzcy1icmVha3BvaW50ID09ICQtemYtemVyby1icmVha3BvaW50LCAnJywgJyN7JGNsYXNzLWJyZWFrcG9pbnR9LScpO1xuICA+IC4jeyRwcmVmaXh9YXV0byB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gID4gLiN7JHByZWZpeH1zaHJpbmsge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICRjbGFzc25hbWU6IGlmKCR2ZXJ0aWNhbCwgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nKTtcblxuICAgID4gI3skY2xhc3NuYW1lfSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICRicmVha3BvaW50OiAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoXG4gICRndXR0ZXItcG9zaXRpb246IGxlZnQgcmlnaHQsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICR3cmFwcGluZy1zZWxlY3RvcjogJy5ncmlkLW1hcmdpbi14J1xuKXtcbiAgI3skd3JhcHBpbmctc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogJGd1dHRlci1wb3NpdGlvbik7XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gYmFzZSBzdHlsZXMgbmVlZCB0byBhbGwgYmUgYmVmb3JlIHRoZSBhdXRvIGFuZCBzaHJpbmsgc3R5bGVzXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkgYW5kICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC5jZWxsIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuXG4gICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgLy8gZm9yIHByaW9yIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSByZXNwb25zaXZlIGd1dHRlci5cbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgQGVhY2ggJGJwIGluIC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJC16Zi1zaXplKSB7XG4gICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkYnApKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGJwLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC14eS1icmVha3BvaW50LWNlbGwtY2xhc3NlcygkLXpmLXNpemUsICQtemYtc2l6ZSwgJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUGFkZGluZyBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1wYWRkaW5nLWdyaWQtY2xhc3NlcyB7XG4gIC5ncmlkLXBhZGRpbmcteCB7XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgIC5ncmlkLXBhZGRpbmcteCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBncmlkcyB3aXRoaW4gYGdyaWQtY29udGFpbmVyL2dyaWQtY29udGFpbmVyLmZsdWlkYFxuICAgIC8vIFRoaXMgYWxsb3dzIG1hcmdpbiBhbmQgcGFkZGluZyBncmlkcyB0byBsaW5lIHVwIHdpdGggZWFjaG90aGVyXG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAmIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEJsb2NrIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkeHktYmxvY2stZ3JpZC1tYXgge1xuICAgICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkaSwgJy5jZWxsJywgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgICAgLy8gZm9yIHByaW9yIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSByZXNwb25zaXZlIGd1dHRlci5cbiAgICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkYnApKSB7XG4gICAgICAgICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JGJwfS11cC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuY2VsbCcsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJGJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLmdyaWQtbWFyZ2luLXguI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWxheW91dCgkaSwgJy5jZWxsJywgZmFsc2UsICRndXR0ZXItdHlwZTogbWFyZ2luLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDb2xsYXBzZSBjbGFzc2VzXG5AbWl4aW4geHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgICAuI3skYnB9LW1hcmdpbi1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBtYXJnaW4sICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgICAuI3skYnB9LXBhZGRpbmctY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogcGFkZGluZywgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBPZmZzZXQgY2xhc3Nlc1xuQG1peGluIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQtbWFyZ2luLXggPiAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvLCAkYnJlYWtwb2ludDogJC16Zi1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVmVydGljYWwgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWVcbikge1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICB9XG4gIH1cblxuICAuZ3JpZC15IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkKHZlcnRpY2FsLCBmYWxzZSk7XG5cblxuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1yZXNldCgpO1xuICAgIH1cblxuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG4gICAgPiAuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyBhbmQgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTAyNDRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgICAgID4gLiN7JC16Zi1zaXplfS1hdXRvIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UsICRicmVha3BvaW50OiAkLXpmLXNpemUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCBmYWxzZSwgJHZlcnRpY2FsOiB0cnVlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgICAuZ3JpZC1wYWRkaW5nLXkge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICAgID4gLmNlbGwge1xuICAgICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGd1dHRlci1wb3NpdGlvbjogdG9wIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3Nlcyh0b3AgYm90dG9tLCB0cnVlLCAnLmdyaWQtbWFyZ2luLXknKTtcbiAgfVxuXG59XG5cbkBtaXhpbiB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQ6IHRydWUsICRtYXJnaW4tZ3JpZDogdHJ1ZSkge1xuICAvLyBGcmFtZWQgZ3JpZCBzdHlsZXNcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gIH1cblxuICAuY2VsbCAuZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gIH1cblxuICAuY2VsbC1ibG9jayB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jaygpO1xuICB9XG5cbiAgLmNlbGwtYmxvY2steSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgfVxuXG5cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICB9XG5cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG5cbiAgICAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZTtcbiAgICB9XG5cbiAgICAuY2VsbCAuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LWNlbGwtYmxvY2stY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2stY29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLXkge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jayh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZlcnRpY2FsLWdyaWQge1xuICAgIC5ncmlkLXkge1xuICAgICAgJi5ncmlkLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgJi4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoZmFsc2UpIHtcbiAgICAgICAgLmdyaWQteS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gICAgLmdyaWQtZnJhbWUuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGluY2x1ZGUtYmFzZTogZmFsc2UpO1xuICAgIH1cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAuZ3JpZC1tYXJnaW4teS4jeyQtemYtc2l6ZX0tZ3JpZC1mcmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSwgZmFsc2UsICRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRmluYWwgY2xhc3Nlc1xuQG1peGluIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzKFxuICAkYmFzZS1ncmlkOiB0cnVlLFxuICAkbWFyZ2luLWdyaWQ6IHRydWUsXG4gICRwYWRkaW5nLWdyaWQ6IHRydWUsXG4gICRibG9jay1ncmlkOiB0cnVlLFxuICAkY29sbGFwc2U6IHRydWUsXG4gICRvZmZzZXQ6IHRydWUsXG4gICR2ZXJ0aWNhbC1ncmlkOiB0cnVlLFxuICAkZnJhbWUtZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICBAaWYoJGJhc2UtZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJhc2UtZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBNYXJnaW4gZ3JpZFxuICBAaWYoJG1hcmdpbi1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktbWFyZ2luLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBncmlkXG4gIEBpZigkcGFkZGluZy1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktcGFkZGluZy1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWRcbiAgQGlmKCRibG9jay1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBDb2xsYXBzZSBndXR0ZXJzXG4gIEBpZigkY29sbGFwc2UpIHtcbiAgICBAaW5jbHVkZSB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIC8vIE9mZnNldCBndXR0ZXJzXG4gIEBpZigkb2Zmc2V0KSB7XG4gICAgQGluY2x1ZGUgeHktb2Zmc2V0LWNlbGwtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JpZFxuICBAaWYoJHZlcnRpY2FsLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkLCAkcGFkZGluZy1ncmlkKTtcbiAgfVxuXG4gIEBpZiAoJGZyYW1lLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1mcmFtZS1ncmlkLWNsYXNzZXMoJHZlcnRpY2FsLWdyaWQsICRtYXJnaW4tZ3JpZClcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeVxuLy8vL1xuXG4vLyBCYXNlIHR5cG9ncmFwaHkgc3R5bGVzICh0YWdzIG9ubHkpXG5AaW1wb3J0ICdiYXNlJztcblxuLy8gVHlwb2dyYXBoeSBoZWxwZXIgY2xhc3NlcyAoY2xhc3NlcyBvbmx5KVxuQGltcG9ydCAnaGVscGVycyc7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzZXNcbkBpbXBvcnQgJ2FsaWdubWVudCc7XG5cbi8vIFByaW50IHN0eWxlc1xuQGltcG9ydCAncHJpbnQnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5IHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByaW50LXN0eWxlcztcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpOyAgXG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBcbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuXG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gR2xvYmFsIHNwYWNpbmcgZm9yIGZvcm0gZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgJ3RleHQnO1xuQGltcG9ydCAnY2hlY2tib3gnO1xuQGltcG9ydCAnbGFiZWwnO1xuQGltcG9ydCAnaGVscC10ZXh0JztcbkBpbXBvcnQgJ2lucHV0LWdyb3VwJztcbkBpbXBvcnQgJ2ZpZWxkc2V0JztcbkBpbXBvcnQgJ3NlbGVjdCc7XG5AaW1wb3J0ICdyYW5nZSc7XG5AaW1wb3J0ICdwcm9ncmVzcyc7XG5AaW1wb3J0ICdtZXRlcic7XG5AaW1wb3J0ICdlcnJvcic7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm1zIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLXRleHQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1lcnJvcjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGJldHdlZW4gdGhlIGxlZ2VuZCB0ZXh0IGFuZCBmaWVsZHNldCBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZHNldCB7XG4gIG1hcmdpbjogJGZpZWxkc2V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcblxuICBsZWdlbmQge1xuICAgIC8vIENvdmVycyB1cCB0aGUgZmllbGRzZXQncyBib3JkZXIgdG8gY3JlYXRlIGFydGlmaWNpYWwgcGFkZGluZ1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKiB1bml0bGVzcy1jYWxjKCRpbnB1dC1saW5lLWhlaWdodCkpICsgKGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAndG9wJykgKyBnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ2JvdHRvbScpKSAtIHJlbS1jYWxjKDEpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoLSRmb3JtLXNwYWNpbmcpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcblxuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhlaWdodDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzbGlkZXIncyB0cmFjay5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGFjdGl2ZSBmaWxsIGNvbG9yIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGhhbmRsZSBmb3IgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgYW1vdW50IG9mIGEgZGlzYWJsZWQgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQge1xuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl0geyAgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJG1hcmdpbjogKCRzbGlkZXItaGFuZGxlLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAvIDI7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAvLyBDaHJvbWUvU2FmYXJpXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci1oYW5kbGUge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tdG9wOiAtJG1hcmdpbjtcblxuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaXJlZm94XG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tdG9wOiAtJG1hcmdpbjtcblxuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlclxuICAgICY6Oi1tcy10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItdG9wOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgICBib3JkZXItYm90dG9tOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBhdC1yb290IHtcbiAgICAgIG91dHB1dCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb2dyZXNzLWJhclxuLy8vL1xuXG4vLy8gSGVpZ2h0IG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLWhlaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHByb2dyZXNzIGJhcidzIG1ldGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1lbGVtZW50IHtcbiAgcHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBGb3IgRmlyZWZveFxuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcblxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciBzZXRzIHRoZSBmaWxsIHdpdGggY29sb3JcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yIElFIGFuZCBFZGdlXG4gICAgJjo6LW1zLWZpbGwge1xuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWV0ZXJcbi8vLy9cblxuLy8vIEhlaWdodCBvZiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIExlbmd0aFxuJG1ldGVyLWhlaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWV0ZXIgZmlsbCBmb3IgYW4gb3B0aW1hbCB2YWx1ZSBpbiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGFuIGF2ZXJhZ2UgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvciAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGEgc3Vib3B0aW1hbCB2YWx1ZSBpbiBhIGA8bWV0ZXI+YCBlbGVtZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tbWV0ZXItZWxlbWVudCB7XG4gIG1ldGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRtZXRlci1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIC8vIERpc2FibGUgYC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZWAgZnJvbSBnZXR0aW5nIHByZWZpeGVkLFxuICAgIC8vIFdlIGhhdmUgZGlzYWJsZWQgYXV0b3ByZWZpeGVyIGZpcnN0IGFuZCBhcmUganVzdCBvbmx5IHVzaW5nIFxuICAgIC8vIGAtbW96LWFwcGVhcmFuY2U6IG5vbmVgIGFzIGEgcHJlZml4IGFuZCBuZWdsZWN0aW5nIHRoZSB3ZWJraXQuXG4gICAgXG4gICAgLyohIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBGb3IgRmlyZWZveFxuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcblxuICAgIC8vIENocm9tZS9TYWZhcmkvRWRnZVxuICAgICY6Oi13ZWJraXQtbWV0ZXItYmFyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQge1xuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWdvb2Q7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1tZWRpdW07XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItZXZlbi1sZXNzLWdvb2QtdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtYmFkO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbW96LW1ldGVyLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjotbW96LW1ldGVyLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1wc2V1ZG8tbmVzdGluZ1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtZ29vZDtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1wc2V1ZG8tbmVzdGluZ1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbWVkaXVtO1xuICAgIH1cblxuICAgICY6LW1vei1tZXRlci1zdWItc3ViLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1wc2V1ZG8tbmVzdGluZ1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtYmFkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG5cbiAgQGlmICh0eXBlLW9mKCRidXR0b24tcGFkZGluZykgPT0gJ21hcCcpIHtcbiAgICBAZWFjaCAkc2l6ZSwgJHBhZGRpbmcgaW4gJGJ1dHRvbi1wYWRkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG4gIH1cblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgdHJhbnNpdGlvbjogJGJ1dHRvbi10cmFuc2l0aW9uO1xuXG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLFxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICAmLFxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRidXR0b24tY29sb3Jcbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSBbMC40ZW1dIC0gU2l6ZSBvZiB0aGUgYXJyb3cuIFdlIHJlY29tbWVuZCB1c2luZyBhbiBgZW1gIHZhbHVlIHNvIHRoZSB0cmlhbmdsZSBzY2FsZXMgd2hlbiB1c2VkIGluc2lkZSBkaWZmZXJlbnQgc2l6ZXMgb2YgYnV0dG9ucy5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgW3doaXRlXSAtIENvbG9yIG9mIHRoZSBhcnJvdy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cbkBtaXhpbiBidXR0b24tZHJvcGRvd24oXG4gICRzaXplOiAwLjRlbSxcbiAgJGNvbG9yOiAkd2hpdGUsXG4gICRvZmZzZXQ6IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpXG4pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogI3skZ2xvYmFsLXJpZ2h0fTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdHlsZVxuICAgICYuZGlzYWJsZWQsXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3IsIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhciBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gY2xlYXIge1xuICAgICAgJi5jbGVhciB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgJiwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG5cbiAgICAgICAgICAgICYsICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgdG9wOiAtMC4xZW07XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG4gIGEuYnV0dG9uIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAoXG4gICRjaGlsZC1zZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yLFxuICAkc3BhY2luZzogJGJ1dHRvbmdyb3VwLXNwYWNpbmdcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtd2lkdGggYnV0dG9uIGdyb3VwLCBtYWtpbmcgZWFjaCBidXR0b24gZXF1YWwgd2lkdGguXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzcGFjaW5nIFskYnV0dG9uZ3JvdXAtc3BhY2luZ10gLSBTcGFjaW5nIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nLFxuICAkY291bnQ6IG51bGxcbikge1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IC0kc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBPbmUgY2hpbGRcbiAgICAgICY6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAvLyBUd28gb3IgbW9yZSBjaGlsZHJlZW5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXgge1xuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKDEgLyAkaSl9IC0gI3skc3BhY2luZ30pO1xuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1lbGVtZW50LW5lc3RpbmdcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBib3JkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTGlzdFxuJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI6ICRhY2NvcmRpb25tZW51LWJvcmRlciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoOiA0MHB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHRvZ2dsZSBiYWNrZ3JvdW5kIGhlaWdodC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRhY2NvcmRpb25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgIH1cbiAgfVxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxcmVtO1xuICB9XG4gICYuYWxpZ24tcmlnaHQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxcmVtO1xuICB9XG59XG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG5cbiAgLmFjY29yZGlvbi1tZW51IHtcbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmc7XG4gICAgfVxuICAgIFxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudSBhIHtcbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGFjY29yZGlvbm1lbnUtbmVzdGVkLW1hcmdpbiwgcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtYWNjb3JkaW9uLW1lbnUtbGVmdC1yaWdodC1hcnJvd3M7XG5cbiAgICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudSBsaSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICB9XG5cbiAgLy8gU3VibWVudSB0b2dnbGVcbiAgLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcblxuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJvdGF0ZSB0aGUgYXJyb3cgd2hlbiBtZW51IGlzIG9wZW5cbiAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICB9XG5cbiAgLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGFjY29yZGlvbiB0aXRsZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGFuIGFjY29yZGlvbiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cbkBtaXhpbiBhY2NvcmRpb24tY29udGFpbmVyIChcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZFxuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICZbZGlzYWJsZWRdIHtcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaXN0IGl0ZW0gd2l0aGluIGFuIGFjY29yZGlvbiB1bC5cbkBtaXhpbiBhY2NvcmRpb24taXRlbSB7XG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAgMDtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJGFjY29yZGlvbi10aXRsZS1mb250LXNpemUsXG4gICRjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yLFxuICAkYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAmIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTMnO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCAoXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyxcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1jb2xvclxuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgY29sb3I6ICRjb2xvcjtcblxuICA6bGFzdC1jaGlsZCA+ICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tY29udGFpbmVyO1xuICB9XG5cbiAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJhZGdlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBhIGJhZGdlLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLW1pbndpZHRoOiAyLjFlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIGJhZGdlLlxuQG1peGluIGJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGZvbnQtc2l6ZTogJGJhZGdlLWZvbnQtc2l6ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1iYWRnZSB7XG4gIC5iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2U7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYmFkZ2UtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkYmFkZ2UtY29sb3IsICRiYWRnZS1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFkY3J1bWJzXG4vLy8vXG5cbi8vLyBNYXJnaW4gYXJvdW5kIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGFjdGl2ZSBicmVhZGNydW1iIGxpbmsuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBtYWtlcyBicmVhZGNydW1iIGxpbmtzIHVwcGVyY2FzZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzZXBlcmF0b3IgYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDtcbn1cblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJyAhZGVmYXVsdDtcblxuLy8vIFVzZWQgY2hhcmFjdGVyIGZvciB0aGUgYnJlYWRjcnVtYiBzZXBhcmF0b3IgaW4gcnRsIG1vZGUuXG4vLy8gQHR5cGUgQ29udGVudFxuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCcgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBJZiBpdCBleGlzdHMgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IgaXMgdXNlZCB0byBidWlsZCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3IuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcikge1xuICAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2Uge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzZXBhcmF0b3I6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbS1ydGwpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb250ZW50OiAkc2VwYXJhdG9yO1xuICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRjYWxsb3V0LW1hcmdpbjtcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcblxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGNhbGxvdXQtcmFkaXVzO1xuXG4gIC8vIFJlc3BlY3QgdGhlIHBhZGRpbmcsIGZvb2wuXG4gID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQtc3R5bGUoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGNhbGxvdXQtZm9udC1jb2xvciwgJGNhbGxvdXQtZm9udC1jb2xvci1hbHQpKTtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhcmRcbi8vLy9cblxuLy8vIERlZnVhbHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYXJkcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjYXJkIHNoYWRvdy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4uXG4vLy8gQHR5cGUgbnVtYmVyXG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBmb250IGNvbG9yIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIC0gQm90dG9tIG1hcmdpbiBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRib3JkZXIgLSBCb3JkZXIgYXJvdW5kIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhZGl1cyAtIGJvcmRlciByYWRpdXMgb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hhZG93IC0gYm94IHNoYWRvdyBvZiB0aGUgY2FyZC5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtZm9udC1jb2xvcixcbiAgJG1hcmdpbjogJGNhcmQtbWFyZ2luLWJvdHRvbSxcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgZGl2aWRlci5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxuXG4gIC8vIEZvciBJRSAxMSAtIEZsZXhidWdcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvNzVcbiAgLmNhcmQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBpdGVtIHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gbWVudSBuZXN0ZWQgbWFyZ2luXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJpbGxkb3duLW5lc3RlZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nIGluIHRoZSBzdWJtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcmlsbGRvd24tbGVmdC1yaWdodC1hcnJvd3Mge1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJpbGxkb3duLWFycm93LXNpemU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMXJlbTtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSB0b3AgbGV2ZWwgPHVsPlxuICAuZHJpbGxkb3duIHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBcHBsaWVkIHRvIHN1Ym1lbnUgPHVsPnNcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJtZW51IGl0ZW0gcGFkZGluZ1xuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuXG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHBhZGRpbmcgZm9yIGFsaWduaW5nIHRoZSBhcnJvdyBjb3JyZWN0bHkuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXBhZGRpbmc6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdG9wIGxldmVsIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3Igc3ViLW1lbnUgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudSB7XG4gIC5kcm9wZG93bi5tZW51IHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAuZHJvcGRvd24gJiBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICBAaW5jbHVkZSB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gW1RPRE9dIEN1dCBiYWNrIHNwZWNpZmljaXR5XG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcblxuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG5cbiAgLy8gQWxsb3cgYW4gaW50ZXJtaXR0ZW50IHN0YXRlIHRvIGRvIHBvc2l0aW9uaW5nIGJlZm9yZSBtYWtpbmcgdmlzaWJsZS5cbiAgJi5pcy1vcGVuaW5nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBGbGV4Ym94IFV0aWxpdGllc1xuLy8vL1xuLy9cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgY291bnQgb2Ygc291cmNlIG9yZGVyaW5nYFxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2ICFkZWZhdWx0O1xuXG4vLy8gUXVpY2tseSBkaXNhYmxlL2VuYWJsZSBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBWYW5pbGxhIEZsZXggSGVscGVycy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmxleC1oZWxwZXJzIHtcbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAgICAgLiN7JHNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2xlZnQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IFNwZWNpZmljYWxseSBmb3IgVmVydGljYWwgTWVudVxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2xlZnQnLCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwubWVudSA+IGxpID4gYSB7IFxuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJhbCBhbGlnbm1lbnQgb2YgY29udGVudFxuICAuYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogbWlkZGxlKTtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbmlsbGEgRmxleGJveCBIZWxwZXJzXG4gIEBpbmNsdWRlIGZsZXgtaGVscGVycztcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8gV0FSTklORzogV2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gNi40XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbzogZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xuXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGxhYmVsLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGxhYmVsLWNvbG9yLCAkbGFiZWwtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJi5ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBwaWxsIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBzaW1wbGUgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYW4gaG92ZXJlZCBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IHN0YXRlLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgYWN0aXZlYCB3aXRoIGBpcy1hY3RpdmVgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYG1lbnUtY2VudGVyZWRgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHVzaW5nIGBpY29uLSpgIGNsYXNzZXMgd2l0aG91dCBgLmljb25zYCBjbGFzc2VzXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgdGhpcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1pY29ucy1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXG5AbWl4aW4gbWVudS1iYXNlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICBsaSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG5cbiAgYSxcbiAgLmJ1dHRvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW1zLXBhZGRpbmc7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXG5AbWl4aW4gbWVudS1leHBhbmQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWxpZ24gbWVudSBpdGVtcy5cbkBtaXhpbiBtZW51LWFsaWduKCRhbGlnbm1lbnQpIHtcbiAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGNlbnRlciB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gVGhpcyBlZmZlY3RzIHRoZSBzaWRlIG9mIHRoZSBgPGxpPmAgdGhhdCByZWNlaXZlcyB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWFyZ2luIFskbWVudS1zaW1wbGUtbWFyZ2luXSAtIFRoZSBtYXJnaW4gdG8gYXBwbHkgdG8gZWFjaCBgPGxpPmAuXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0LCAkbWFyZ2luOiAkbWVudS1zaW1wbGUtbWFyZ2luKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tI3skZGlyfTogJG1hcmdpbjtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG5lc3RlZCBNZW51LCBieSBhZGRpbmcgYG1hcmdpbi1sZWZ0YCB0byB0aGUgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkbWFyZ2luIFskbWVudS1uZXN0ZWQtbWFyZ2luXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG5lc3RlZC1hbGlnbm1lbnQgW2xlZnRdIC0gQWxpZ25tZW50IG9mIHRoZSBuZXN0ZWQgY2xhc3NcbkBtaXhpbiBtZW51LW5lc3RlZChcbiAgJG1hcmdpbjogJG1lbnUtbmVzdGVkLW1hcmdpbixcbiAgJG5lc3RlZC1hbGlnbm1lbnQ6IGxlZnRcbikge1xuICBAaWYgJG5lc3RlZC1hbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWFyZ2luO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRtYXJnaW47XG4gIH1cblxufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGljb25zIGluIG1lbnVzLlxuQG1peGluIG1lbnUtaWNvbnMoKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGltZyxcbiAgICBpLFxuICAgIHN2ZyB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICArIHNwYW4ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBMZWZ0XG4gICAgJi5pY29uLWxlZnQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEljb24gUmlnaHRcbiAgICAmLmljb24tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFRvcFxuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCb3R0b21cbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cbiAgICBcbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIFRyYW5zZm9ybSBzY29wZSB1bnRpbCB0aGUgZWxlbWVudCBpcyBjbG9zZWQgKG1ha2VzIHN1cmUgdHJhbnNpdGlvbmVuZCBnZXRzIHRyaWdnZXJlZClcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIGVsZW1lbnQgJiBjb250ZW50LCBuZXN0ZWQgaW4gYW5vdGhlciBjb250ZW50XG4gIC5vZmYtY2FudmFzLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzcyxcbiRicmVha3BvaW50OiBzbWFsbFxuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgcmV2ZWFsZWQgZWxlbWVudCBpcyBuZXN0ZWQgaW4gY29udGVudFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIEBhdC1yb290IC4jeyRjb250ZW50fS5oYXMtcmV2ZWFsLSN7JHBvc2l0aW9ufSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKHByaW9yIHRvIHY2LjQpXG4gICYgfiAuI3skY29udGVudH0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxufVxuXG4vLy8gT3ZlcnJpZGVzIHRoZSBvZmYtY2FudmFzIHN0eWxlc1xuQG1peGluIGluLWNhbnZhcygpIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDtcbiAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IGluaGVyaXQ7XG5cbiAgLy8gSW5jcmVhc2UgQ1NTIHNwZWNpZmljaXR5XG4gICYucG9zaXRpb24tbGVmdCxcbiAgJi5wb3NpdGlvbi1yaWdodCxcbiAgJi5wb3NpdGlvbi10b3AsXG4gICYucG9zaXRpb24tYm90dG9tIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgLy8gRm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgZm9yIG5lc3RlZCBvZmYtY2FudmFzIGJlY2F1c2UgZml4ZWQgZG9lc24ndCB3b3JrIGZvciBwdXNoIHRyYW5zaXRpb24gd2l0aGluIHRoZSB0cmFuc2Zvcm0gc2NvcGUuXG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICAgIC8vIE5PVEU6IHNpbmNlIG92ZXJsYXAgdHJhbnNpdGlvbiBpcyBjdXJyZW50bHkgZm9yY2VkIGlmIG5lc3RlZCwgdGhlcmUncyBubyBuZWVkIHRvIGZvcmNlIHBvc2l0aW9uIGFic29sdXRlIHVudGlsIG5lc3RlZCBwdXNoIHRyYW5zaXRpb24gaXMgc3VwcG9ydGVkLlxuICAgICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0LCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbCh0b3AsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1vdmUgaW4tY2FudmFzIGZvciBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGluLWNhbnZhcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkYmFja2dyb3VuZC1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCxcbiAgJGNvbG9yLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJGNvbG9yLWN1cnJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29sb3I6ICRjb2xvcjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3Jcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgY29udGVudDogJ1xcMjAyNic7XG4gIGNvbG9yOiAkY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xuICAucGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXI7XG5cbiAgICAuY3VycmVudCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudDtcbiAgICB9XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1lbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICBAaWYgJHBhZ2luYXRpb24tYXJyb3dzIHtcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBhYic7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbiAgICAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcHJvZ3Jlc3MgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgbWV0ZXIgb2YgYSBwcm9ncmVzcyBiYXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0ZXh0IGluIHRoZSBwcm9ncmVzcyBtZXRlci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWJhciB7XG4gIC8vIFByb2dyZXNzIGJhclxuICAucHJvZ3Jlc3Mge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJbm5lciBtZXRlclxuICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyO1xuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXIgdGV4dFxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmV2ZWFsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXhpbXVtIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIG1vZGFscy4gVGhlIG92ZXJsYXkgdXNlcyB0aGlzIHZhbHVlLCB3aGlsZSB0aGUgbW9kYWwgaXRzZWxmIHVzZXMgdGhpcyB2YWx1ZSBwbHVzIG9uZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtemluZGV4OiAxMDA1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cbi8vLyBAdHlwZSBDb2xvclxuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KSAhZGVmYXVsdDtcblxuXG4vLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbi8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICVyZXZlYWwtY2VudGVyZWQge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleCArIDE7XG4gIC8vIFdvcmthcm91bmQgYW5kcm9pZCBicm93c2VyIHotaW5kZXggYnVnXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICBib2R5LmlzLXJldmVhbC1vcGVuIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHN3aXRjaFxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2gsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnRpbnkgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5sYXJnZSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2hcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyIGFuZCBwYWRkbGUuXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIHN3aXRjaCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBtYWtlIHRoZW0gdmFyaWFibGVzXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxuLy8gY2hhbmdlIGNsYXNzIG5hbWUgZm9yIHRleHRcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXG5AbWl4aW4gc3dpdGNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogJHN3aXRjaC1tYXJnaW47XG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtcGFkZGxlIHtcbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG5cbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1wYWRkbGUtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgICB9XG4gIH1cblxuICBpbnB1dDpmb2N1cyB+ICYge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYWN0aXZlL2luYWN0aXZlIHRleHQgaW5zaWRlIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIHRleHQgZWxlbWVudHMgaW5zaWRlIHRoZSBzd2l0Y2ggYDxsYWJlbD5gLlxuQG1peGluIHN3aXRjaC10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiA4JTtcbiAgZGlzcGxheTogbm9uZTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1pbmFjdGl2ZSB7XG4gICN7JGdsb2JhbC1yaWdodH06IDE1JTtcblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZvbnQtc2l6ZSBbMXJlbV0gLSBGb250IHNpemUgb2YgbGFiZWwgdGV4dCB3aXRoaW4gdGhlIHN3aXRjaC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHN3aXRjaC1oZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICRzd2l0Y2gtaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG5cbiAgJHN3aXRjaC13aWR0aDogJHN3aXRjaC1oZWlnaHQgKiAyO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAkc3dpdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6ICRwYWRkbGUtb2Zmc2V0O1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1vZmZzZXQ7XG4gICAgd2lkdGg6ICRwYWRkbGUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgJHN3aXRjaC1oZWlnaHQtc21hbGwsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLmxhcmdlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxNiksICRzd2l0Y2gtaGVpZ2h0LWxhcmdlLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgZm9yY2UtZWxlbWVudC1uZXN0aW5nLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFibGVcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSBzdHJpcGVkIHRhYmxlIHJvd3MgYW5kIHRoZSB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzdHlsZSBmb3IgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdGFuZGFyZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRhYmxlcyBhcmUgc3RyaXBlZCBieSBkZWZhdWx0IGFuZCBhbiAudW5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuIElmIGBmYWxzZWAsIGEgLnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHN0YWNrZWQgdGFibGUgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdHIge1xuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gZXZlbiwgZGFya2VuIHRoZSBldmVuIHJvd3MuXG4gICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXG4gICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtdW5zdHJpcGUoKSB7XG4gIHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSwgJGlzLXN0cmlwZWQ6ICR0YWJsZS1pcy1zdHJpcGVkKSB7XG4gIHRoZWFkLFxuICB0Ym9keSxcbiAgdGZvb3Qge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENhcHRpb25cbiAgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkXG4gIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgZm9vdFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgdGhlYWQsXG4gIHRmb290IHtcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdHIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2VsbHMgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgdGV4dC1hbGlnbjogI3skZ2xvYmFsLWxlZnR9O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRhYmxlIHJvd3NcbiAgdGJvZHkge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgc3RyaXBlZFxuICBAaWYgJGlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICB9XG5cbiAgICAmLnVuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIG5vdCBzdHJpcGVkXG4gIEBlbHNlIGlmICRpcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICB9XG5cbiAgICAmLnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRhYmxlcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxuQG1peGluIHRhYmxlKFxuICAkc3RyaXBlOiAkdGFibGUtc3RyaXBlLFxuICAkbmVzdDogZmFsc2Vcbikge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBpZiAkbmVzdCB7XG4gICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGFiaWxpdHkgdG8gaG9yaXpvbnRhbGx5IHNjcm9sbCB0aGUgdGFibGUgd2hlbiB0aGUgY29udGVudCBvdmVyZmxvd3MgaG9yaXpvbnRhbGx5LlxuQG1peGluIHRhYmxlLXNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLy8vIFNsaWdodGx5IGRhcmtlbnMgdGhlIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG5AbWl4aW4gdGFibGUtaG92ZXIge1xuICB0aGVhZCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBoZWFkZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSB0YWJsZSBmb290ZXIgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1mb290LXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgLy9EYXJrZW5zIHRoZSBub24tc3RyaXBlZCB0YWJsZSByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gdHJ1ZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgLy8gRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0YWJsZS1zdGFjay1icmVha3BvaW50IGRvd24pIHtcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlLnNjcm9sbCB7XG4gICAgQGluY2x1ZGUgdGFibGUtc2Nyb2xsO1xuICB9XG5cbiAgdGFibGUuaG92ZXIge1xuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xuICB9XG5cbiAgLnRhYmxlLXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIHRhYmxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFic1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiB0YWIgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBBY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0YWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYSB0YWIgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIChcbiAgJG1hcmdpbjogJHRhYi1tYXJnaW4sXG4gICRiYWNrZ3JvdW5kOiAkdGFiLWJhY2tncm91bmQsXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkbWFyZ2luO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXG5AbWl4aW4gdGFicy1jb250YWluZXItdmVydGljYWwge1xuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXRpdGxlIChcbiAgJHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nLFxuICAkZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplLFxuICAkY29sb3I6ICR0YWItY29sb3IsXG4gICRjb2xvci1hY3RpdmU6ICR0YWItYWN0aXZlLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXIsXG4gICRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZVxuKSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIHRoYXQgc3Vycm91bmRzIGEgdGFiIGdyb3VwJ3MgY29udGVudCBwYW5lcy5cbkBtaXhpbiB0YWJzLWNvbnRlbnQgKFxuICAkYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQsXG4gICRjb2xvcjogJHRhYi1jb250ZW50LWNvbG9yLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIChcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gaW5kaXZpZHVhbCB0YWIgY29udGVudCBwYW5lbCB3aXRoaW4gdGhlIHRhYiBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiB0YWJzLXBhbmVsIChcbiAgJHBhZGRpbmc6ICR0YWItY29udGVudC1wYWRkaW5nXG4pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXI7XG4gIH1cblxuICAvLyBWZXJ0aWNhbFxuICAudGFicy52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBTaW1wbGVcbiAgLnRhYnMuc2ltcGxlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpbWFyeSBjb2xvclxuICAudGFicy5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkcHJpbWFyeS1jb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIEBpbmNsdWRlIHRhYnMtdGl0bGU7XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XG4gIH1cblxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQtdmVydGljYWw7XG4gIH1cblxuICAudGFicy1wYW5lbCB7XG4gICAgQGluY2x1ZGUgdGFicy1wYW5lbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjdXJzb3Igb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGFzLXRpcC1jdXJzb3I6IGhlbHAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4IHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLW1heC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6ICRoYXMtdGlwLWN1cnNvcjtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi50b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLmxlZnQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5yaWdodCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGxlZnQpO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi10b3A6OmJlZm9yZSB7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRvcDogMTAlO1xuICB9XG5cbiAgJi5hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gICAgYm90dG9tOiAxMCU7XG4gICAgdG9wOiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1sZWZ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tcmlnaHQ6OmJlZm9yZSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGVcbi8vLy9cblxuLy8gUmVsYXRpb25hbCBNaXhpbnNcbkBpbXBvcnQgJ3JlbGF0aW9uJztcblxuLy8gQm94IE1peGluXG5AaW1wb3J0ICdib3gnO1xuXG4vLyBSb3RhdGUgTWl4aW5cbkBpbXBvcnQgJ3JvdGF0ZSc7XG5cbi8vIFRleHQgdXRpbGl0aWVzXG5AaW1wb3J0ICd0ZXh0LXV0aWxpdGllcyc7XG5cbi8vIFRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuQGltcG9ydCAndGV4dC10cmFuc2Zvcm1hdGlvbic7XG5cbi8vIFRleHQgRGVjb3JhdGlvbiBjbGFzc2VzXG5AaW1wb3J0ICd0ZXh0LWRlY29yYXRpb24nO1xuXG4vLyBGb250IFN0eWxpbmdcbkBpbXBvcnQgJ2ZvbnQtc3R5bGluZyc7XG5cbi8vIExpc3QgU3R5bGUgdHlwZVxuQGltcG9ydCAnbGlzdC1zdHlsZS10eXBlJztcblxuLy8gUm91bmRlZCBVdGlsaXR5XG5AaW1wb3J0ICdyb3VuZGVkJztcblxuLy8gQm9yZGVyZWQgVXRpbGl0eVxuQGltcG9ydCAnYm9yZGVyZWQnO1xuXG4vLyBTaGFkb3cgVXRpbGl0eVxuQGltcG9ydCAnc2hhZG93JztcblxuLy8gQXJyb3cgVXRpbGl0eVxuQGltcG9ydCAnYXJyb3cnO1xuXG4vLyBTZXBhcmF0b3IgVXRpbGl0eVxuQGltcG9ydCAnc2VwYXJhdG9yJztcblxuLy8gT3ZlcmZsb3cgaGVscGVyIGNsYXNzZXNcbkBpbXBvcnQgJ292ZXJmbG93JztcblxuLy8gRGlzcGxheSBjbGFzc2VzXG5AaW1wb3J0ICdkaXNwbGF5JztcblxuLy8gUG9zaXRpb24gSGVscGVyc1xuQGltcG9ydCAncG9zaXRpb24nO1xuXG4vLyBCb3JkZXIgYm94XG5AaW1wb3J0ICdib3JkZXItYm94JztcblxuLy8gQm9yZGVyIG5vbmUgVXRpbHR5XG5AaW1wb3J0ICdib3JkZXItbm9uZSc7XG5cbi8vIFNpemluZyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3NpemluZyc7XG5cbi8vIFNwYWNpbmcgVXRpbGl0aWVzXG5AaW1wb3J0ICdzcGFjaW5nJztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXV0aWxpdGllcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmc7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNoYWRvdztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYXJyb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtb3ZlcmZsb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWRpc3BsYXk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXBvc2l0aW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItbm9uZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtc2l6aW5nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nO1xufVxuIiwiLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gZnJvbSB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRmlyc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gZmlyc3QoJG51bSkge1xuICBAaWYgJG51bSA9PSAxIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJjpudGgtY2hpbGQoLW4gKyAjeyRudW19KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgZmlyc3QgZXhhY3QgY2hpbGRcbkBtaXhpbiBmaXJzdC1jaGlsZCB7XG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gZnJvbSB0aGUgbGFzdCB0byBgJG51bWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBMYXN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGxhc3QoJG51bSkge1xuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGxhc3QgZXhhY3QgY2hpbGRcbkBtaXhpbiBsYXN0LWNoaWxkIHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgY2hpbGRyZW4gZXZlcnkgYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRXZlcnkgYG5gIG51bWJlciBvZiBhbGwgY2hpbGRyZW5cbkBtaXhpbiBldmVyeSgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBvbmx5IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGlsZC5cbkBtaXhpbiBmaXJzdC1sYXN0IHtcbiAgJjpmaXJzdC1jaGlsZCxcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBhZnRlciB0aGUgZmlyc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gQWZ0ZXIgRmlyc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gYWZ0ZXItZmlyc3QoJG51bSkge1xuICAmOm50aC1jaGlsZChuICsgI3skbnVtICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZWZvcmUgYCRudW1gIGZyb20gdGhlIGxhc3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBGcm9tIExhc3QgYG5gIG51bWJlcnMgb2YgdG90YWwgY2hpbGRyZW4gXG5AbWl4aW4gZnJvbS1sYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGZpcnN0IGFuZCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGxhc3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBgbmAgbnVtYmVyIGNhbGxlZCBmcm9tIGZpcnN0IGFuZCBsYXN0IFxuQG1peGluIGZyb20tZmlyc3QtbGFzdCgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX0pLFxuICAmOm50aC1sYXN0LWNoaWxkKCN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBidXQgYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIGFsbCBvdGhlciBjaGlsZHJlbiBcbkBtaXhpbiBhbGwtYnV0KCRudW0pIHtcbiAgJjpub3QoOm50aC1jaGlsZCgjeyRudW19KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJldHdlZW4gdGhlIGAkbnVtYCBmaXJzdCBhbmQgdGhlIGAkbnVtYCBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciBleGNsdWRlZCBmcm9tIGZpcnN0IGFuZCBsYXN0IGZyb20gYWxsIG90aGVyIGNoaWxkcmVuXG5AbWl4aW4gYWxsLWJ1dC1maXJzdC1sYXN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bX0pOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgdGhlIGNoaWxkIGlmIGl04oCZcyB1bmlxdWUuIFRoYXQgbWVhbnMgdGhhdCBpZiB0aGVyZSBhcmUgYXQgbGVhc3QgMiBjaGlsZHJlbiwgdGhlIHN0eWxlIHdpbGwgbm90IGJlIGFwcGxpZWQuXG5AbWl4aW4gdW5pcXVlIHtcbiAgJjpvbmx5LWNoaWxkIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gV2lsbCBvbmx5IHNlbGVjdCBjaGlsZHJlbiBpZiB0aGV5IGFyZSBub3QgdW5pcXVlLiBUaGF0IG1lYW5zIHRoYXQgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDIgY2hpbGRyZW4sIHRoZSBzdHlsZSB3aWxsIGJlIGFwcGxpZWQuXG5AbWl4aW4gbm90LXVuaXF1ZSgpIHtcbiAgJjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbnRoYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBudGhgIG51bWJlclxuQG1peGluIGJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xuICAmOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGV2ZW4gY2hpbGRyZW4uXG5AbWl4aW4gZXZlbiB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBldmVuIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBudGhgIG51bWJlclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGFzdFtdIExhc3QgYG50aGAgbnVtYmVyXG5AbWl4aW4gZXZlbi1iZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQoZXZlbik6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgb2RkIGNoaWxkcmVuLlxuQG1peGluIG9kZCB7XG4gICY6bnRoLWNoaWxkKG9kZCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIG9kZCBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbnRoYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBudGhgIG51bWJlclxuQG1peGluIG9kZC1iZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQob2RkKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBgJG51bWAgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEV2ZXJ5IGBuYCBudW1iZXIgYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG5gIG51bWJlclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGFzdFtdIExhc3QgYG5gIG51bWJlclxuQG1peGluIG51bWJlci1iZXR3ZWVuKCRudW0sICRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQoI3skbnVtfW4pOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtYm94XG4vLy8vXG5cbi8vLyBCb3ggTWl4aW46IEVhc2lseSBjcmVhdGUgYSBzcXVhcmUsIHJlY3RhbmdsZSBvciBhIGNpcmNsZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGhbXSBXaWR0aCBvZiB0aGUgYm94XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHRbJHdpZHRoXSBIZWlnaHQgb2YgdGhlIGJveCwgZGVmYXVsdHMgdG8gYCR3aWR0aGAgdG8gZWFzaWx5IG1ha2UgYSBzcXVhcmVcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjaXJjbGVbZmFsc2VdIE1ha2VzIHRoZSBib3ggYSBjaXJjbGUsIGJ5IGRlZmF1bHQgYGZhbHNlYC5cbkBtaXhpbiBib3goXG4gICR3aWR0aCwgXG4gICRoZWlnaHQ6ICR3aWR0aCwgXG4gICRjaXJjbGU6IGZhbHNlXG4pIHtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBAaWYgJGNpcmNsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1yb3RhdGVcbi8vLy9cblxuLy8vIFJvdGF0ZSBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZ1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZSgkZGVnICsgZGVnKTtcbn1cblxuLy8vIFJvdGF0ZVggTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWcgb24gWC1BeGlzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGVYKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZVgoJGRlZyArIGRlZyk7XG59XG5cbi8vLyBSb3RhdGVZIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnIG9uIFktQXhpc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlWSgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGVZKCRkZWcgKyBkZWcpO1xufVxuXG4vLy8gUm90YXRlWiBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZyBvbiBaLUF4aXNcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZVooJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlWigkZGVnICsgZGVnKTtcbn0iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtdGV4dC11dGlsaXRpZXNcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHRleHQgdXRpbGl0aWVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBWYWx1ZSBmb3IgYHRleHQtb3ZlcmZsb3dgIHZhcmlhYmxlXG4vLy8gQHR5cGUgU3RyaW5nXG4kcHJvdG90eXBlLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzICFkZWZhdWx0O1xuXG4vLy8gSW1hZ2UgUmVwbGFjZW1lbnQgdXRpbGl0eS4gYHRleHQtaGlkZWBcbkBtaXhpbiB0ZXh0LWhpZGUge1xuICBmb250OiAwLzAgYSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBUcnVuY2F0aW5nIHRoZSB0ZXh0LCBlbGlwc2lzIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93XSBUZXh0IFRydW5jYXRlXG5AbWl4aW4gdGV4dC10cnVuY2F0ZShcbiAgJG92ZXJmbG93OiAkcHJvdG90eXBlLXRleHQtb3ZlcmZsb3dcbikge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB0ZXh0LW92ZXJmbG93OiAkb3ZlcmZsb3c7IFxuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBObyB3cmFwcGluZyBvZiB0aGUgdGV4dC4gYHRleHQtbm93cmFwYFxuQG1peGluIHRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vLy8gV3JhcHBpbmcgb2YgdGhlIHRleHQuIGB0ZXh0LXdyYXBgXG5AbWl4aW4gdGV4dC13cmFwIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXV0aWxpdGllcyB7XG4gIC50ZXh0LWhpZGUge1xuICAgIEBpbmNsdWRlIHRleHQtaGlkZTtcbiAgfVxuXG4gIC50ZXh0LXRydW5jYXRlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xuICB9XG5cbiAgLnRleHQtbm93cmFwIHtcbiAgICBAaW5jbHVkZSB0ZXh0LW5vd3JhcDtcbiAgfVxuXG4gIC50ZXh0LXdyYXAge1xuICAgIEBpbmNsdWRlIHRleHQtd3JhcDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LWhpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1oaWRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LXRydW5jYXRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtdHJ1bmNhdGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtbm93cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtbm93cmFwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC13cmFwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHRleHQgdHJhbnNmb3JtYXRpb24gY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC10cmFuc2Zvcm1hdGlvbmAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBUcmFuc2Zvcm1hdGlvbiwgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHJhbnNmb3JtYXRpb24gW10gVGV4dCBUcmFuc2Zvcm1hdGlvblxuQG1peGluIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbikge1xuICB0ZXh0LXRyYW5zZm9ybTogJHRyYW5zZm9ybWF0aW9uICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uIHtcbiAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgLnRleHQtI3skdHJhbnNmb3JtYXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgXHRAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHRyYW5zZm9ybWF0aW9uIGluICRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gIFx0XHRcdCAgICAgIEBpbmNsdWRlIHRleHQtdHJhbnNmb3JtKCR0cmFuc2Zvcm1hdGlvbik7XG4gIFx0XHRcdCAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IGRlY29yYXRpb24gY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtZGVjb3JhdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGB0ZXh0LWRlY29yYXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uOiAoXG4gIG92ZXJsaW5lLFxuICB1bmRlcmxpbmUsXG4gIGxpbmUtdGhyb3VnaCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IERlY29yYXRpb24sIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVjb3JhdGlvbiBbXSBUZXh0IERlY29yYXRpb25cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbiAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgIC50ZXh0LSN7JGRlY29yYXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkZGVjb3JhdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGRlY29yYXRpb259IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1mb250LXN0eWxpbmdcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGZvbnQgc3R5bGluZyB0eXBlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBMZXR0ZXIgc3BhY2luZyBmb3IgYC5mb250LXdpZGVgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3ZWlnaHQgZm9yIGAuZm9udC1ub3JtYWxgLCBkZWZhdWx0ZWQgdG8gYGdsb2JhbC13ZWlnaHQtbm9ybWFsYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1mb250LW5vcm1hbDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3ZWlnaHQgZm9yIGAuZm9udC1ib2xkYCwgZGVmYXVsdGVkIHRvIGBnbG9iYWwtd2VpZ2h0LWJvbGRgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2lkZSBsZXR0ZXIgc3BhY2luZyFcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxldHRlci1zcGFjaW5nIFskcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmddIFdpZGUgbGV0dGVyIHNwYWNpbmcgZm9yIHRoZSBmb250XG5AbWl4aW4gZm9udC13aWRlKFxuICAkbGV0dGVyLXNwYWNpbmc6ICRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZ1xuKSB7XG4gIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmc7XG59XG5cbi8vLyBGb250IFdlaWdodCBOb3JtYWwsIGRlZmF1bHQgdmFsdWUgY29taW5nIHRocm91Z2ggYGdsb2JhbC13ZWlnaHQtbm9ybWFsYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFskcHJvdG90eXBlLWZvbnQtbm9ybWFsXSBXZWlnaHQgb2YgdGhlIGZvbnQgKG5vcm1hbClcbkBtaXhpbiBmb250LW5vcm1hbChcbiAgJHdlaWdodDogJHByb3RvdHlwZS1mb250LW5vcm1hbFxuKSB7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuXG4vLy8gRm9udCBXZWlnaHQgQm9sZCwgZGVmYXVsdCB2YWx1ZSBjb21pbmcgdGhyb3VnaCBgZ2xvYmFsLXdlaWdodC1ib2xkYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFskcHJvdG90eXBlLWZvbnQtYm9sZF0gV2VpZ2h0IG9mIHRoZSBmb250IChib2xkKVxuQG1peGluIGZvbnQtYm9sZChcbiAgJHdlaWdodDogJHByb3RvdHlwZS1mb250LWJvbGRcbikge1xuICBmb250LXdlaWdodDogJHdlaWdodDtcbn1cblxuLy8vIEZvbnQgU3R5bGUgSXRhbGljXG5AbWl4aW4gZm9udC1pdGFsaWMge1xuICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWZvbnQtc3R5bGluZyB7XG4gIC5mb250LXdpZGV7XG4gICAgQGluY2x1ZGUgZm9udC13aWRlO1xuICB9XG5cbiAgLmZvbnQtbm9ybWFsIHtcbiAgICBAaW5jbHVkZSBmb250LW5vcm1hbDtcbiAgfVxuXG4gIC5mb250LWJvbGQge1xuICAgIEBpbmNsdWRlIGZvbnQtYm9sZDtcbiAgfVxuXG4gIC5mb250LWl0YWxpYyB7XG4gICAgQGluY2x1ZGUgZm9udC1pdGFsaWM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtZm9udC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtd2lkZXtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtd2lkZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZm9udC1ub3JtYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1ub3JtYWw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LWJvbGQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtaXRhbGljIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtaXRhbGljO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgbGlzdCBzdHlsaW5nIHR5cGVzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHN0eWxlLXR5cGUtdW5vcmRlcmVkYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc3R5bGUtdHlwZS1vcmRlcmVkYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZDogKFxuICBkZWNpbWFsLFxuICBsb3dlci1hbHBoYSxcbiAgbG93ZXItbGF0aW4sXG4gIGxvd2VyLXJvbWFuLFxuICB1cHBlci1hbHBoYSxcbiAgdXBwZXItbGF0aW4sXG4gIHVwcGVyLXJvbWFuXG4pICFkZWZhdWx0O1xuXG5cbi8vLyBTdHlsZSB0eXBlIGZvciB1bm9yZGVyZWQgTGlzdHMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWRgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHlsZS10eXBlLXVub3JkZXJlZCBbXSBTdHlsZSB0eXBlIGZvciB1bm9yZGVyZWQgTGlzdHNcbkBtaXhpbiBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiAkc3R5bGUtdHlwZS11bm9yZGVyZWQgIWltcG9ydGFudDtcbn1cblxuLy8vIFN0eWxlIHR5cGUgZm9yIG9yZGVyZWQgTGlzdHMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUtdHlwZS1vcmRlcmVkIFtdIFN0eWxlIHR5cGUgZm9yIG9yZGVyZWQgTGlzdHNcbkBtaXhpbiBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCkge1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzdHlsZS10eXBlLW9yZGVyZWQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGxpc3QtdW5vcmRlcmVkIHtcbiAgQGVhY2ggJHN0eWxlLXR5cGUtdW5vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQge1xuICAgIHVsLmxpc3QtI3skc3R5bGUtdHlwZS11bm9yZGVyZWR9IHtcbiAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkc3R5bGUtdHlwZS11bm9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZCB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIHVsLiN7JHNpemV9LWxpc3QtI3skc3R5bGUtdHlwZS11bm9yZGVyZWR9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGxpc3Qtb3JkZXJlZCB7XG4gIEBlYWNoICRzdHlsZS10eXBlLW9yZGVyZWQgaW4gJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQge1xuICAgIG9sLmxpc3QtI3skc3R5bGUtdHlwZS1vcmRlcmVkfSB7XG4gICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLW9yZGVyZWQoJHN0eWxlLXR5cGUtb3JkZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkc3R5bGUtdHlwZS1vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgb2wuI3skc2l6ZX0tbGlzdC0jeyRzdHlsZS10eXBlLW9yZGVyZWR9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtbGlzdC1zdHlsZS10eXBlIHtcbiAgQGluY2x1ZGUgbGlzdC11bm9yZGVyZWQ7XG4gIEBpbmNsdWRlIGxpc3Qtb3JkZXJlZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1yb3VuZGVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciByb3VuZGVkIHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXJhZGl1c2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMykgIWRlZmF1bHQ7XG5cbi8vLyBSb3VuZGVkIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogQWRkcyByYWRpdXMgY29ybmVycyAoYWxsIGNvcm5lcnMpIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGl1cyBbJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXSBCb3JkZXIgcmFkaXVzIChhbGwgY29ybmVycylcbkBtaXhpbiBib3JkZXItcmFkaXVzKFxuICAkcmFkaXVzOiAkcHJvdG90eXBlLWJvcmRlci1yYWRpdXNcbikge1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vLy8gUm91bmRlZCBzcXVhcmUgdXRpbGl0eSBvciByZWN0YW5nbGUgdXRpbGl0eSAoYWxsIGNvcm5lcnMpOiBSb3VuZHMgYWxsIGNvcm5lcnMgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0IHRvIG1ha2UgYSBwaWxsIHNoYXBlLlxuQG1peGluIGJvcmRlci1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogNTAwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1yb3VuZGVkIHtcbiAgLnJvdW5kZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yb3VuZGVkO1xuICB9XG5cbiAgLnJhZGl1cyB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tcm91bmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLiN7JHNpemV9LXJhZGl1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlcmVkXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXJlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtYm9yZGVyZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItd2lkdGhgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci10eXBlYFxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1jb2xvcmAgZGVmYXVsdGVkIHRvIGBtZWRpdW0tZ3JheWBcbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlcmVkIFV0aWxpdHk6IEFkZHMgYSBsaWdodCBib3JkZXIgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtYm9yZGVyLXdpZHRoXSBXaWR0aCBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR0eXBlIFskcHJvdG90eXBlLWJvcmRlci10eXBlXSBUeXBlIG9mIHRoZSBib3JkZXJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXSBDb2xvciBvZiB0aGUgYm9yZGVyXG5AbWl4aW4gYm9yZGVyZWQoXG4gICR3aWR0aDogJHByb3RvdHlwZS1ib3JkZXItd2lkdGgsXG4gICR0eXBlOiAkcHJvdG90eXBlLWJvcmRlci10eXBlLFxuICAkY29sb3I6ICRwcm90b3R5cGUtYm9yZGVyLWNvbG9yXG4pIHtcbiAgYm9yZGVyOiAkd2lkdGggJHR5cGUgJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyZWQge1xuICAuYm9yZGVyZWQge1xuICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2hhZG93XG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzaGFkb3cgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNoYWRvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJveC1zaGFkb3dgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsLjE2KSxcbiAgICAgICAgICAgICAgICAgICAgICAgMCAycHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKSAhZGVmYXVsdDtcblxuLy8vIFNoYWRvdyBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm94IHNoYWRvdyB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaGFkb3cgWyRwcm90b3R5cGUtYm94LXNoYWRvd10gQm94IFNoYWRvdyBvZiBhIGNvbXBvbmVudFxuQG1peGluIHNoYWRvdyhcbiAgJHNoYWRvdzogJHByb3RvdHlwZS1ib3gtc2hhZG93XG4pIHtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNoYWRvdyB7XG4gIC5zaGFkb3cge1xuICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zaGFkb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hhZG93O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWFycm93XG4vLy8vXG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBhcnJvd2AgZGlyZWN0aW9uXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgdGhlIEFycm93LCBgMC40Mzc1cmVtYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG5cbi8vLyBDb2xvciBvZiB0aGUgQXJyb3csIGAkYmxhY2tgIGJ5IGRlZmF1bHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93IHtcbiAgQGVhY2ggJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb24gaW4gJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zIHtcbiAgICAuYXJyb3ctI3skcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbn0ge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LXNpemUsIFxuICAgICAgICAkcHJvdG90eXBlLWFycm93LWNvbG9yLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2VwYXJhdG9yXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhbGlnbm1lbnQgb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRvcCBNYXJnaW4gb2YgYSBzZXBhcmF0b3IuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRpdGxlIHNlcGFyYXRvciBVdGlsaXR5LCBtb3N0bHkgdXNlZCB0byBzdHlsZSB0aGUgbWFpbiBoZWFkaW5nIG9mIGEgc2VjdGlvblxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYWxpZ24gWyRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduXSAtIHNlcGFyYXRvciBBbGlnbm1lbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0XSAtIFdpZHRoXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGhdIC0gSGVpZ2h0XG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFskcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wXSAtIE1hcmdpbiBUb3BcbkBtaXhpbiBzZXBhcmF0b3IgKFxuICAkYWxpZ246ICRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduLFxuICAkaGVpZ2h0OiAkcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQsXG4gICR3aWR0aDogJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGgsXG4gICRiYWNrZ3JvdW5kOiAkcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kLFxuICAkdG9wOiAkcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wXG4pIHtcbiAgdGV4dC1hbGlnbjogJGFsaWduICFpbXBvcnRhbnQ7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSk7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIG1hcmdpbjogJHRvcCBhdXRvIDA7XG5cbiAgICBAaWYgJGFsaWduID09IGxlZnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaWYgJGFsaWduID09IHJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtc2VwYXJhdG9yIHtcblx0LnNlcGFyYXRvci1jZW50ZXIge1xuXHRcdEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuXHR9XG5cbiAgLnNlcGFyYXRvci1sZWZ0IHtcbiAgICBAaW5jbHVkZSBzZXBhcmF0b3IobGVmdCk7XG4gIH1cblxuICAuc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBzZXBhcmF0b3IocmlnaHQpO1xuICB9XG5cblx0QGlmICgkcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXNlcGFyYXRvci1jZW50ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGNlbnRlcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItbGVmdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzZXBhcmF0b3IobGVmdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItcmlnaHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1vdmVyZmxvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igb3ZlcmZsb3cgaGVscGVyIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYG92ZXJmbG93YCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLW92ZXJmbG93OiAoXG4gIHZpc2libGUsXG4gIGhpZGRlbixcbiAgc2Nyb2xsXG4pICFkZWZhdWx0O1xuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1vdmVyZmxvd2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG92ZXJmbG93IFtdIE92ZXJmbG93IGNsYXNzZXNcbkBtaXhpbiBvdmVyZmxvdygkb3ZlcmZsb3cpIHtcbiAgb3ZlcmZsb3c6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiBob3Jpem9udGFsIGF4aXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzIChob3Jpem9udGFsIGF4aXMpXG5AbWl4aW4gb3ZlcmZsb3cteCgkb3ZlcmZsb3cpIHtcbiAgb3ZlcmZsb3cteDogJG92ZXJmbG93ICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBPdmVyZmxvdyBjbGFzc2VzIG9uIHZlcnRpY2FsIGF4aXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzICh2ZXJ0aWNhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXkoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXk6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtb3ZlcmZsb3cge1xuICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgLm92ZXJmbG93LSN7JG92ZXJmbG93fSB7XG4gICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgIH1cbiAgICAub3ZlcmZsb3cteC0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgIH1cbiAgICAub3ZlcmZsb3cteS0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRvdmVyZmxvdyBpbiAkcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LSN7JG92ZXJmbG93fSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG92ZXJmbG93KCRvdmVyZmxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skc2l6ZX0tb3ZlcmZsb3cteC0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdy14KCRvdmVyZmxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skc2l6ZX0tb3ZlcmZsb3cteS0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdy15KCRvdmVyZmxvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZGlzcGxheVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgZGlzcGxheSBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYGRpc3BsYXlgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGlzcGxheSBjbGFzc2VzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLWRpc3BsYXlgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtdIERpc3BsYXkgY2xhc3Nlc1xuQG1peGluIGRpc3BsYXkoJGRpc3BsYXkpIHtcbiAgZGlzcGxheTogJGRpc3BsYXkgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWRpc3BsYXkge1xuICBAZWFjaCAkZGlzcGxheSBpbiAkcHJvdG90eXBlLWRpc3BsYXkge1xuICAgIC5kaXNwbGF5LSN7JGRpc3BsYXl9IHtcbiAgICAgIEBpbmNsdWRlIGRpc3BsYXkoJGRpc3BsYXkpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRpc3BsYXkgaW4gJHByb3RvdHlwZS1kaXNwbGF5IHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LWRpc3BsYXktI3skZGlzcGxheX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KCRkaXNwbGF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1wb3NpdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgcG9zaXRpb24gaGVscGVyc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgcG9zaXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtcG9zaXRpb246IChcbiAgc3RhdGljLFxuICByZWxhdGl2ZSxcbiAgYWJzb2x1dGUsXG4gIGZpeGVkXG4pICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgZml4ZWQgcG9zaXRpb25pbmdcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1ICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb24gY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1wb3NpdGlvbmAsIHdoZXJlYXMgYWxsIHRoZSBvZmZzZXQgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLXBvc2l0aW9uYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHBvc2l0aW9uIFtdIFBvc2l0aW9uIGNsYXNzZXMsIEVpdGhlciBgc3RhdGljYCwgYHJlbGF0aXZlYCwgYGFic29sdXRlYCBvciBgZml4ZWRgXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gVG9wIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUmlnaHQgb2Zmc2V0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gQm90dG9tIG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBMZWZ0IG9mZnNldFxuQG1peGluIHBvc2l0aW9uKFxuICAkcG9zaXRpb24sXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHRvcDogJHRvcCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJHJpZ2h0ICE9IG51bGwge1xuICAgIHJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgYm90dG9tOiAkYm90dG9tICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBsZWZ0OiAkbGVmdCAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gdG9wIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLXRvcGBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC10b3AoXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCwgMCwgbnVsbCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG4vLy8gUG9zaXRpb24gRml4ZWQgb24gYm90dG9tIGNvcm5lcnNcbi8vLyBAcGFyYW0ge051bWJlcn0gJHotaW5kZXggWyRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleF0gei1pbmRleCBmb3IgYHBvc2l0aW9uLWZpeGVkLWJvdHRvbWBcbkBtaXhpbiBwb3NpdGlvbi1maXhlZC1ib3R0b20oXG4gICR6LWluZGV4OiAkcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhcbikge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgbnVsbCwgMCwgMCwgMCk7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcG9zaXRpb24ge1xuICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gIC5wb3NpdGlvbi1maXhlZC10b3Age1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uLWZpeGVkLXRvcDtcbiAgfVxuICAucG9zaXRpb24tZml4ZWQtYm90dG9tIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAvLyBQb3NpdGlvbjogU3RhdGljLCBSZWxhdGl2ZSwgRml4ZWQsIEFic29sdXRlXG4gICAgICAgIEBlYWNoICRwb3NpdGlvbiBpbiAkcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCRwb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUG9zaXRpb246IEZpeGVkIFRvcCwgRml4ZWQgQm90dG9tXG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LXBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC1ib3R0b207XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtYm9yZGVyLWJveFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIGJveC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ib3gtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGJveCB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLWJveCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ib3gge1xuICAuYm9yZGVyLWJveCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLWJveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItYm94O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ub25lXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBib3JkZXIgbm9uZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBub25lIHV0aWxpdHlcbkBtaXhpbiBib3JkZXItbm9uZSB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmUge1xuICAuYm9yZGVyLW5vbmUge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tYm9yZGVyLW5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLW5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc2l6aW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBzcGFjaW5nIGNsYXNzZXMgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzaXppbmdgIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6aW5nOiAoXG4gIHdpZHRoLFxuICBoZWlnaHRcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIHNpemVzLlxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbikgIWRlZmF1bHQ7XG5cbi8vLyBNYXggV2lkdGggMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LXdpZHRoLTEwMCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vLy8gTWF4IEhlaWdodCAxMDAgdXRpbGl0eS5cbkBtaXhpbiBtYXgtaGVpZ2h0LTEwMCB7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNpemluZyB7XG4gIC8vIEVsZW1lbnQgU2l6aW5nXG4gIEBlYWNoICRzaXppbmcgaW4gJHByb3RvdHlwZS1zaXppbmcge1xuICAgIEBlYWNoICRsZW5ndGgsICRwZXJjZW50YWdlIGluICRwcm90b3R5cGUtc2l6ZXMge1xuICAgICAgLiN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICN7JHNpemluZ306ICRwZXJjZW50YWdlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTWF4IHdpZHRoICYgaGVpZ2h0XG4gIC5tYXgtd2lkdGgtMTAwIHtcbiAgICBAaW5jbHVkZSBtYXgtd2lkdGgtMTAwO1xuICB9XG4gIC5tYXgtaGVpZ2h0LTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LWhlaWdodC0xMDA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2l6aW5nLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICAgICAgICAgIEBlYWNoICRsZW5ndGgsICRwZXJjZW50YWdlIGluICRwcm90b3R5cGUtc2l6ZXMge1xuICAgICAgICAgICAgICAuI3skc2l6ZX0tI3skc2l6aW5nfS0jeyRsZW5ndGh9IHtcbiAgICAgICAgICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtc3BhY2luZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbnVtYmVyIG9mIHNwYWNlcnMgY291bnQgKG1hcmdpbiBhbmQgcGFkZGluZylcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc3BhY2Vycy1jb3VudDogMyAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBoZWxwZXIgbWl4aW4sIGFsbCB0aGUgdmFsdWVzIGFyZSBtdWx0aXBsaWVkIGJ5IGAkZ2xvYmFsLW1hcmdpbmAgd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBNYXJnaW4gVG9wXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBNYXJnaW4gUmlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJvdHRvbSBbbnVsbF0gLSBNYXJnaW4gQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIE1hcmdpbiBMZWZ0XG5AbWl4aW4gbWFyZ2luKFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgQGlmICR0b3AgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXRvcDogJHRvcCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRyaWdodCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRsZWZ0ICE9IG51bGwge1xuICAgIG1hcmdpbi1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtbWFyZ2luICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFBhZGRpbmcgaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1wYWRkaW5nYCB3aGljaCBieSBkZWZhdWx0IGlzIGVxdWFsIHRvIGAxcmVtYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIFBhZGRpbmcgVG9wXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyaWdodCBbbnVsbF0gLSBQYWRkaW5nIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gUGFkZGluZyBCb3R0b21cbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gUGFkZGluZyBMZWZ0XG5AbWl4aW4gcGFkZGluZyhcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIHBhZGRpbmctdG9wOiAkdG9wICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGJvdHRvbSAhPSBudWxsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRsZWZ0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNwYWNpbmcge1xuICBAZm9yICRzcGFjZXIgZnJvbSAwIHRocm91Z2ggJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50IHtcbiAgICAvLyBBbGwgU2lkZXNcbiAgICAubWFyZ2luLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAvLyBUb3AgU2lkZVxuICAgIC5tYXJnaW4tdG9wLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsIG51bGwsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLXRvcC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJHNwYWNlciwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgfVxuXG4gICAgLy8gUmlnaHQgU2lkZVxuICAgIC5tYXJnaW4tcmlnaHQtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgJHNwYWNlciwgbnVsbCwgbnVsbCk7XG4gICAgfVxuXG4gICAgLnBhZGRpbmctcmlnaHQtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsICRzcGFjZXIsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC8vIEJvdHRvbSBTaWRlXG4gICAgLm1hcmdpbi1ib3R0b20tI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgbnVsbCwgJHNwYWNlciwgbnVsbCk7XG4gICAgfVxuXG4gICAgLnBhZGRpbmctYm90dG9tLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCBudWxsLCAkc3BhY2VyLCBudWxsKTtcbiAgICB9XG5cbiAgICAvLyBMZWZ0IFNpZGVcbiAgICAubWFyZ2luLWxlZnQtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgbnVsbCwgbnVsbCwgJHNwYWNlcik7XG4gICAgfVxuXG4gICAgLnBhZGRpbmctbGVmdC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCwgbnVsbCwgbnVsbCwgJHNwYWNlcik7XG4gICAgfVxuXG4gICAgLy8gSG9yaXpvbnRhbCBBeGVzXG4gICAgLm1hcmdpbi1ob3Jpem9udGFsLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsICRzcGFjZXIsIG51bGwsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLWhvcml6b250YWwtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsICRzcGFjZXIsIG51bGwsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIEF4ZXNcbiAgICAubWFyZ2luLXZlcnRpY2FsLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsIG51bGwsICRzcGFjZXIsIG51bGwpXG4gICAgfVxuXG4gICAgLnBhZGRpbmctdmVydGljYWwtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsIG51bGwsICRzcGFjZXIsIG51bGwpXG4gICAgfVxuXG4gICAgQGlmICgkcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgLy8gQWxsIFNpZGVzXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUb3AgU2lkZVxuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi10b3AtI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctdG9wLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsIG51bGwsIG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSaWdodCBTaWRlXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLXJpZ2h0LSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgJHNwYWNlciwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLXJpZ2h0LSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsICRzcGFjZXIsIG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBCb3R0b20gU2lkZVxuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi1ib3R0b20tI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCBudWxsLCAkc3BhY2VyLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctYm90dG9tLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsIG51bGwsICRzcGFjZXIsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBMZWZ0IFNpZGVcbiAgICAgICAgICAgIC4jeyRzaXplfS1tYXJnaW4tbGVmdC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsIG51bGwsIG51bGwsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skc2l6ZX0tcGFkZGluZy1sZWZ0LSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsIG51bGwsIG51bGwsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIb3Jpem9udGFsIEF4ZXNcbiAgICAgICAgICAgIC4jeyRzaXplfS1tYXJnaW4taG9yaXpvbnRhbC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsICRzcGFjZXIsIG51bGwsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skc2l6ZX0tcGFkZGluZy1ob3Jpem9udGFsLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsICRzcGFjZXIsIG51bGwsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBWZXJ0aWNhbCBBeGVzXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLXZlcnRpY2FsLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oJHNwYWNlciwgbnVsbCwgJHNwYWNlciwgbnVsbClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctdmVydGljYWwtI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJHNwYWNlciwgbnVsbCwgJHNwYWNlciwgbnVsbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIE1vdGlvbiBVSSBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tL21vdGlvbi11aVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ3NldHRpbmdzJztcblxuQGltcG9ydCAndXRpbC9hbmltYXRpb24nO1xuQGltcG9ydCAndXRpbC9hcmdzJztcbkBpbXBvcnQgJ3V0aWwva2V5ZnJhbWUnO1xuQGltcG9ydCAndXRpbC9zZWxlY3Rvcic7XG5AaW1wb3J0ICd1dGlsL3Nlcmllcyc7XG5AaW1wb3J0ICd1dGlsL3RyYW5zaXRpb24nO1xuQGltcG9ydCAndXRpbC91bml0JztcblxuQGltcG9ydCAnZWZmZWN0cy9mYWRlJztcbkBpbXBvcnQgJ2VmZmVjdHMvaGluZ2UnO1xuQGltcG9ydCAnZWZmZWN0cy9zcGluJztcbkBpbXBvcnQgJ2VmZmVjdHMvem9vbSc7XG5AaW1wb3J0ICdlZmZlY3RzL3NoYWtlJztcbkBpbXBvcnQgJ2VmZmVjdHMvc2xpZGUnO1xuQGltcG9ydCAnZWZmZWN0cy93aWdnbGUnO1xuXG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9mYWRlJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL2hpbmdlJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL3pvb20nO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc2xpZGUnO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc3Bpbic7XG5cbkBpbXBvcnQgJ2NsYXNzZXMnO1xuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gYXBwZW5kIFt0cnVlXSAtIERlZmluZXMgaWYgc2VsZWN0b3JzIGFyZSBjaGFpbmVkIHRvIHRoZSBzZWxlY3RvciAoYC5jbGFzcy5lbnRlcmApLCBvciBhcHBlbmRlZCBhcyBhIG5ldyBjbGFzcyAoYC5jbGFzcy1lbnRlcmApLlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWyctYWN0aXZlJ10gLSBTdWZmaXggdG8gYWRkIHRvIHRoZSBhY3RpdmUgc3RhdGUgY2xhc3MuXG4kbW90aW9uLXVpLWNsYXNzZXM6IChcbiAgY2hhaW46IHRydWUsXG4gIHByZWZpeDogJ211aS0nLFxuICBhY3RpdmU6ICctYWN0aXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0ZSBuYW1lcyB0byByZWZlcmVuY2Ugd2hlbiB3cml0aW5nIG1vdGlvbiBjbGFzc2VzLiBUbyB1c2UgbXVsdGlwbGUgY2xhc3MgbmFtZXMgZm9yIG9uZSBzdGF0ZSwgZW50ZXIgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBvbmUgc3RyaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zdGF0ZXM6IChcbiAgaW46ICdlbnRlcicsXG4gIG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG4gIGRlZmF1bHQ6IDUwMG1zLFxuICBzbG93OiA3NTBtcyxcbiAgZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG4gIGRlZmF1bHQ6IDAsXG4gIHNob3J0OiAzMDBtcyxcbiAgbG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuICBkZWZhdWx0OiBsaW5lYXIsXG4gIGxpbmVhcjogbGluZWFyLFxuICBlYXNlOiBlYXNlLFxuICBlYXNlLWluOiBlYXNlLWluLFxuICBlYXNlLW91dDogZWFzZS1vdXQsXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcbiAgYm91bmNlLWluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSksXG4gIGJvdW5jZS1vdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG4gIHNsaWRlLWFuZC1mYWRlOiBmYWxzZSxcbiAgaGluZ2UtYW5kLWZhZGU6IHRydWUsXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuICBzcGluLWFuZC1mYWRlOiB0cnVlLFxuICBhY3RpdmF0ZS1xdWV1ZS1jbGFzczogJ2lzLWFuaW1hdGluZycsXG4pICFkZWZhdWx0O1xuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIiwiLy8vIFByb2Nlc3NlcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBmdW5jdGlvbiBhcmd1bWVudHMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkYXJncykgPT0gMSB7XG4gICAgJGFyZzogbnRoKCRhcmdzLCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRhcmcpID09ICdzdHJpbmcnIHtcbiAgICAgIEByZXR1cm4gY2FsbCgkYXJnKTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJGFyZykgPT0gJ21hcCcge1xuICAgICAgQHJldHVybiAkYXJnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gLW11aS1rZXlmcmFtZS1jb21iaW5lKCRhcmdzLi4uKTtcbn1cbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbWFwOiBjYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBCdWlsZHMgYSBzZWxlY3RvciBmb3IgYSBtb3Rpb24gY2xhc3MsIHVzaW5nIHRoZSBzZXR0aW5ncyBkZWZpbmVkIGluIHRoZSBgJG1vdGlvbi11aS1jbGFzc2VzYCBhbmQgYCRtb3Rpb24tdWktc3RhdGVzYCBtYXBzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRzdGF0ZXMgLSBPbmUgb3IgbW9yZSBzdHJpbmdzIHRoYXQgY29ycmVsYXRlIHRvIGEgc3RhdGUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWN0aXZlIC0gRGVmaW5lcyBpZiB0aGUgc2VsZWN0b3IgaXMgZm9yIHRoZSBzZXR1cCBvciBhY3RpdmUgY2xhc3MuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNlbGVjdG9yIHRoYXQgY2FuIGJlIGludGVycG9sYXRlZCBpbnRvIHlvdXIgU2FzcyBjb2RlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktYnVpbGQtc2VsZWN0b3IoJHN0YXRlcywgJGFjdGl2ZTogZmFsc2UpIHtcbiAgJHJldHVybjogJyc7XG4gICRjaGFpbjogbWFwLWdldCgkbW90aW9uLXVpLWNsYXNzZXMsIGNoYWluKTtcbiAgJHByZWZpeDogbWFwLWdldCgkbW90aW9uLXVpLWNsYXNzZXMsIHByZWZpeCk7XG4gICRzdWZmaXg6IG1hcC1nZXQoJG1vdGlvbi11aS1jbGFzc2VzLCBhY3RpdmUpO1xuXG4gIEBlYWNoICRzZWwgaW4gJHN0YXRlcyB7XG4gICAgJHJldHVybjogJHJldHVybiArIGlmKCRjaGFpbiwgJyYuJywgJyN7Jn0tJykgKyAkcHJlZml4ICsgJHNlbDtcblxuICAgIEBpZiAkYWN0aXZlIHtcbiAgICAgICRyZXR1cm46ICRyZXR1cm4gKyBpZigkY2hhaW4sICcuJywgJyN7Jn0tJykgKyAkcHJlZml4ICsgJHNlbCArICRzdWZmaXg7XG4gICAgfVxuXG4gICAgJHJldHVybjogJHJldHVybiArICcsICc7XG4gIH1cblxuICBAcmV0dXJuIHN0ci1zbGljZSgkcmV0dXJuLCAxLCAtMyk7XG59XG4iLCIkLW11aS1xdWV1ZTogKCk7XG5cbi8vLyBQYXVzZXMgdGhlIGFuaW1hdGlvbiBvbiBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCB0aGVuIHBsYXlzIGl0IHdoZW4gYW4gYWN0aXZlIGNsYXNzIGlzIGFkZGVkIHRvIGEgcGFyZW50LiBBbHNvIHNldHMgdGhlIGZpbGwgbW9kZSBvZiB0aGUgYW5pbWF0aW9uIHRvIGBib3RoYC4gVGhpcyBwYXVzZXMgdGhlIGVsZW1lbnQgYXQgdGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBhbmltYXRpb24sIGFuZCBob2xkcyBpdCBpbiBwbGFjZSBhdCB0aGUgZW5kLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuJWFuaW1hdGVkLWVsZW1lbnQge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuXG4gIC4je21hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgYWN0aXZhdGUtcXVldWUtY2xhc3MpfSAmIHtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG5ldyBhbmltYXRpb24gcXVldWUuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFswc10gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyB0byBwbGFjZSBhdCB0aGUgZnJvbnQgb2YgdGhlIGFuaW1hdGlvbiBxdWV1ZS5cbkBtaXhpbiBtdWktc2VyaWVzKCRkZWxheTogMHMpIHtcbiAgJC1tdWktcXVldWU6ICgpICFnbG9iYWw7XG5cbiAgQGlmICRkZWxheSA+IDAge1xuICAgICRpdGVtOiAoJGRlbGF5LCAwcyk7XG4gICAgJC1tdWktcXVldWU6IGFwcGVuZCgkLW11aS1xdWV1ZSwgJGl0ZW0pICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuLy8vIEFkZHMgYW4gYW5pbWF0aW9uIHRvIGFuIGFuaW1hdGlvbiBxdWV1ZS4gT25seSB1c2UgdGhpcyBtaXhpbiBpbnNpZGUgb2YgYG11aS1zZXJpZXMoKWAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFsxc10gLSBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZ2FwIFswc10gLSBBbW91bnQgb2YgdGltZSB0byBwYXVzZSBiZWZvcmUgcGxheWluZyB0aGUgYW5pbWF0aW9uIGFmdGVyIHRoaXMgb25lLiBVc2UgYSBuZWdhdGl2ZSB2YWx1ZSB0byBtYWtlIHRoZSBuZXh0IGVmZmVjdCBvdmVybGFwIHdpdGggdGhlIGN1cnJlbnQgb25lLlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRrZXlmcmFtZXMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1xdWV1ZShcbiAgJGR1cmF0aW9uOiAxcyxcbiAgJGdhcDogMHMsXG4gICRrZXlmcmFtZXMuLi5cbikge1xuICAvLyBCdWlsZCB0aGUgYW5pbWF0aW9uXG4gICRrZjogLW11aS1wcm9jZXNzLWFyZ3MoJGtleWZyYW1lcy4uLik7XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBkZWxheSBmb3IgdGhpcyBhbmltYXRpb24gYmFzZWQgb24gaG93IGxvbmcgdGhlIHByZXZpb3VzIG9uZXMgdGFrZVxuICAkYWN0dWFsLWRlbGF5OiAwcztcbiAgQGVhY2ggJGFuaW0gaW4gJC1tdWktcXVldWUge1xuICAgICRhY3R1YWwtZGVsYXk6ICRhY3R1YWwtZGVsYXkgKyBudGgoJGFuaW0sIDEpICsgbnRoKCRhbmltLCAyKTtcbiAgfVxuXG4gIC8vIEFwcGVuZCB0aGlzIGFuaW1hdGlvbidzIGxlbmd0aCBhbmQgZ2FwIHRvIHRoZSBlbmQgb2YgdGhlIHF1ZXVlXG4gICRpdGVtOiAoJGR1cmF0aW9uLCAkZ2FwKTtcbiAgJC1tdWktcXVldWU6IGFwcGVuZCgkLW11aS1xdWV1ZSwgJGl0ZW0pICFnbG9iYWw7XG5cbiAgLy8gQ1NTIG91dHB1dFxuICBAZXh0ZW5kICVhbmltYXRlZC1lbGVtZW50O1xuICBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKCRrZik7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICBhbmltYXRpb24tZGVsYXk6ICRhY3R1YWwtZGVsYXk7XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbMV0gLSBPcGFjaXR5IHRvIGVuZCBhdC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEga2V5ZnJhbWVzIG1hcCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGBnZW5lcmF0ZS1rZXlmcmFtZXMoKWAgbWl4aW4uXG5AZnVuY3Rpb24gZmFkZShcbiAgJGZyb206IDAsXG4gICR0bzogMVxuKSB7XG4gICR0eXBlOiB0eXBlLW9mKCRmcm9tKTtcbiAgJGtleWZyYW1lczogKCk7XG5cbiAgQGlmICR0eXBlID09ICdzdHJpbmcnIHtcbiAgICBAaWYgJGZyb20gPT0gaW4ge1xuICAgICAgJGZyb206IDA7XG4gICAgICAkdG86IDE7XG4gICAgfSBAZWxzZSBpZiAkZnJvbSA9PSBvdXQge1xuICAgICAgJGZyb206IDE7XG4gICAgICAkdG86IDA7XG4gICAgfVxuICB9XG5cbiAgJGZyb21OYW1lOiAkZnJvbSAqIDEwMDtcbiAgJHRvTmFtZTogICAkdG8gICAqIDEwMDtcblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2ZhZGUtI3skZnJvbU5hbWV9LXRvLSN7JHRvTmFtZX0nLFxuICAgIDA6IChvcGFjaXR5OiAkZnJvbSksXG4gICAgMTAwOiAob3BhY2l0eTogJHRvKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIGVmZmVjdCBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXG5AZnVuY3Rpb24gaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFja1xuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICRyb3RhdGlvbjogJyc7XG4gIEBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1mcm9udCB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtZnJvbSwgJGZyb20pO1xuICB9IEBlbHNlIGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWJhY2sge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWJhY2ssICRmcm9tKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJyR0dXJuLW9yaWdpbiBtdXN0IGJlIGVpdGhlciBcImZyb20tYmFja1wiIG9yIFwiZnJvbS1mcm9udFwiJztcbiAgfVxuXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG4gIEBpZiAkc3RhdGUgPT0gaW4ge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gIH1cblxuICAvLyBUdXJuIGF4aXNcbiAgJG9yaWdpbjogJyc7XG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcbiAgICAkb3JpZ2luOiAkZnJvbTtcbiAgfSBAZWxzZSB7XG4gICAgJG9yaWdpbjogY2VudGVyO1xuICB9XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdoaW5nZS0jeyRzdGF0ZX0tI3skZnJvbX0tI3skYXhpc30tI3skdHVybi1vcmlnaW59JyxcbiAgICAwOiAodHJhbnNmb3JtOiAkc3RhcnQsIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW4pLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJGVuZCksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzcGlubmluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFszNjBkZWddIC0gQW1vdW50IHRvIHNwaW4uIENhbiBiZSBhbnkgQ1NTIGFuZ2xlIHVuaXQuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIHNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAxdHVyblxuKSB7XG4gICRzdGFydDogMDtcbiAgJGVuZDogMDtcblxuICBAaWYgJHN0YXRlID09IGluIHtcbiAgICAkc3RhcnQ6IGlmKCRkaXJlY3Rpb24gPT0gY2N3LCAkYW1vdW50LCAkYW1vdW50ICogLTEpO1xuICAgICRlbmQ6IDA7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogMDtcbiAgICAkZW5kOiBpZigkZGlyZWN0aW9uID09IGNjdywgJGFtb3VudCAqIC0xLCAkYW1vdW50KTtcbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc3Bpbi0jeyRkaXJlY3Rpb259LSN7JGFtb3VudH0nLFxuICAgIDA6ICh0cmFuc2Zvcm06IHJvdGF0ZSgkc3RhcnQpKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06IHJvdGF0ZSgkZW5kKSksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzEuNV0gLSBTaXplIHRvIHN0YXJ0IGF0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gU2l6ZSB0byBlbmQgYXQuXG5AZnVuY3Rpb24gem9vbShcbiAgJGZyb206IDAsXG4gICR0bzogMVxuKSB7XG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc2NhbGUtI3skdG99LXRvLSN7JGZyb219JyxcbiAgICAwOiAodHJhbnNmb3JtOiBzY2FsZSgkZnJvbSkpLFxuICAgIDEwMDogKHRyYW5zZm9ybTogc2NhbGUoJHRvKSksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBzaGFraW5nIGFuaW1hdGlvbi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRpbnRlbnNpdHkgWzclXSAtIEludGVuc2l0eSBvZiB0aGUgc2hha2UsIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcmV0dXJuIHtNYXB9IEEga2V5ZnJhbWVzIG1hcCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGBnZW5lcmF0ZS1rZXlmcmFtZXMoKWAgbWl4aW4uXG5AZnVuY3Rpb24gc2hha2UoJGludGVuc2l0eTogNyUpIHtcbiAgJHJpZ2h0OiAoMCwgMTAsIDIwLCAzMCwgNDAsIDUwLCA2MCwgNzAsIDgwLCA5MCk7XG4gICRsZWZ0OiAoNSwgMTUsIDI1LCAzNSwgNDUsIDU1LCA2NSwgNzUsIDg1LCA5NSk7XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdzaGFrZS0jeygkaW50ZW5zaXR5IC8gMSUpfScsXG4gICAgJHJpZ2h0OiAodHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRpbnRlbnNpdHkpKSxcbiAgICAkbGVmdDogKHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJGludGVuc2l0eSkpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFdoZXRoZXIgdG8gbW92ZSB0byAoYGluYCkgb3IgZnJvbSAoYG91dGApIHRoZSBlbGVtZW50J3MgZGVmYXVsdCBwb3NpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3VwXSAtIERpcmVjdGlvbiB0byBtb3ZlLiBDYW4gYmUgYHVwYCwgYGRvd25gLCBgbGVmdGAsIG9yIGByaWdodGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzEwMCVdIC0gRGlzdGFuY2UgdG8gbW92ZS4gQ2FuIGJlIGFueSBDU1MgbGVuZ3RoIHVuaXQuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIHNsaWRlKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiB1cCxcbiAgJGFtb3VudDogMTAwJVxuKSB7XG4gICRmcm9tOiAkYW1vdW50O1xuICAkdG86IDA7XG4gICRmdW5jOiAndHJhbnNsYXRlWSc7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCBvciAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAkZnVuYzogJ3RyYW5zbGF0ZVgnO1xuICB9XG5cbiAgQGlmICRzdGF0ZSA9PSBvdXQge1xuICAgICRmcm9tOiAwO1xuICAgICR0bzogJGFtb3VudDtcbiAgfVxuXG4gIEBpZiAkZGlyZWN0aW9uID09IGRvd24gb3IgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgICAkZnJvbTogLSRmcm9tO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmICRzdGF0ZSA9PSBvdXQge1xuICAgICAgJHRvOiAtJHRvO1xuICAgIH1cbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc2xpZGUtI3skc3RhdGV9LSN7JGRpcmVjdGlvbn0tI3tzdHJpcC11bml0KCRhbW91bnQpfScsXG4gICAgMDogKHRyYW5zZm9ybTogJyN7JGZ1bmN9KCN7JGZyb219KScpLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJyN7JGZ1bmN9KCN7JHRvfSknKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHdpZ2dsaW5nIGFuaW1hdGlvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGludGVuc2l0eSBbN2RlZ10gLSBJbnRlbnNpdHkgb2YgdGhlIHdpZ2dsZS4gQ2FuIGJlIGFueSBDU1MgYW5nbGUgdW5pdC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEga2V5ZnJhbWVzIG1hcCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIGBnZW5lcmF0ZS1rZXlmcmFtZXMoKWAgbWl4aW4uXG5AZnVuY3Rpb24gd2lnZ2xlKCRpbnRlbnNpdHk6IDdkZWcpIHtcbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICd3aWdnbGUtI3skaW50ZW5zaXR5fScsXG4gICAgKDQwLCA1MCwgNjApOiAodHJhbnNmb3JtOiByb3RhdGUoJGludGVuc2l0eSkpLFxuICAgICgzNSwgNDUsIDU1LCA2NSk6ICh0cmFuc2Zvcm06IHJvdGF0ZSgtJGludGVuc2l0eSkpLFxuICAgICgwLCAzMCwgNzAsIDEwMCk6ICh0cmFuc2Zvcm06IHJvdGF0ZSgwKSksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBmYWRlIHRyYW5zaXRpb24gYnkgYWRqdXN0aW5nIHRoZSBvcGFjaXR5IG9mIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMF0gLSBPcGFjaXR5IHRvIHN0YXJ0IGF0LiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFsxXSAtIE9wYWNpdHkgdG8gZW5kIG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWZhZGUoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAwLFxuICAkdG86IDEsXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZhZGU6IGZhZGUoJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDApO1xuXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAxMDApO1xuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbGVmdF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGxlZnQsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFswLjc1dHVybl0gLSBBbW91bnQgdG8gZWxlbWVudCB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zcGluKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBjdyxcbiAgJGFtb3VudDogMC43NXR1cm4sXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNwaW4tYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzcGluOiBzcGluKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHNjc3MtbGludDpkaXNhYmxlIEltcG9ydGFudFJ1bGUsIFNwYWNlQWZ0ZXJDb21tYSwgU2luZ2xlTGluZVBlclByb3BlcnR5XG5cbkBtaXhpbiAtbW90aW9uLXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cbiAgLnNsaWRlLWluLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBsZWZ0KTsgfVxuICAuc2xpZGUtb3V0LWRvd24gICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGRvd24pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdXApOyB9XG4gIC5zbGlkZS1vdXQtbGVmdCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgbGVmdCk7IH1cblxuICAvLyBGYWRlXG4gIC5mYWRlLWluICB7IEBpbmNsdWRlIG11aS1mYWRlKGluLCAgMCwgMSk7IH1cbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxuXG4gIC8vIEhpbmdlXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1yaWdodCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1ib3R0b20gICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGJvdHRvbSk7IH1cbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteCAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1taWRkbGUteSAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCwgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXJpZ2h0ICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWJvdHRvbSAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBib3R0b20pOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15IHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQsIGNlbnRlcik7IH1cblxuICAvLyBTY2FsZVxuICAuc2NhbGUtaW4tdXAgICAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDAuNSwgMSk7IH1cbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XG4gIC5zY2FsZS1vdXQtdXAgICB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMS41KTsgfVxuICAuc2NhbGUtb3V0LWRvd24geyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDAuNSk7IH1cblxuICAvLyBTcGluXG4gIC5zcGluLWluICAgICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY3cpOyB9XG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XG4gIC5zcGluLWluLWNjdyAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGNjdyk7IH1cbiAgLnNwaW4tb3V0LWNjdyB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY2N3KTsgfVxuXG4gIC8vIFRyYW5zaXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktYW5pbWF0aW9ucyB7XG4gIC5zaGFrZSAgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cbiAgLnNwaW4tY2N3IHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKGNjdykpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24od2lnZ2xlKTsgfVxuXG4gIC5zaGFrZSxcbiAgLnNwaW4tY3csXG4gIC5zcGluLWNjdyxcbiAgLndpZ2dsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgfVxuXG4gIC8vIEFuaW1hdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiAgLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgYW5pbWF0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vLyBcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUsICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICAgICAgICAgICAgICAgICBNSVhJTlNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vKiAuY2xlYXJmaXggeyAqem9vbTogMTsgfVxyXG4uY2xlYXJmaXg6YmVmb3JlLCAuY2xlYXJmaXg6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBkaXNwbGF5OiB0YWJsZTsgfVxyXG4uY2xlYXJmaXg6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfSovXHJcblxyXG5AbWl4aW4gY2xlYXIoKSB7XHJcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcXDAwMjBcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge2NsZWFyOiBib3RoO31cclxufVxyXG5cclxuLy8gVFJBTlNJVElPTlNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIG9uZSB0cmFuc2l0aW9uIFxyXG5AbWl4aW4gYW5pbSgkYW5pbWF0aW9uKSB7XHJcbiAgIC13ZWJraXQtdHJhbnNpdGlvbjogJGFuaW1hdGlvbjtcclxuICAgICAgLW1vei10cmFuc2l0aW9uOiAkYW5pbWF0aW9uO1xyXG4gICAgICAgIC1vLXRyYW5zaXRpb246ICRhbmltYXRpb247XHJcbiAgICAgICAgICAgdHJhbnNpdGlvbjogJGFuaW1hdGlvbjtcclxufVxyXG5cclxuLy8gdHdvIHRyYW5zaXRpb25zXHJcbkBtaXhpbiBhbmltX211bHRpKCRhbmltYXRpb24sICRhbmltYXRpb25fMikge1xyXG4gICAtd2Via2l0LXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMjtcclxuICAgICAgLW1vei10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzI7XHJcbiAgICAgICAgLW8tdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yO1xyXG4gICAgICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMjtcclxufSBcclxuXHJcbi8vIDMgdHJhbnNpdGlvbnMgXHJcbkBtaXhpbiBhbmltX211bHRpXzMoJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzMpIHtcclxuICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMztcclxuICAgICAgLW1vei10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMztcclxuICAgICAgICAtby10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMztcclxuICAgICAgICAgICB0cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMztcclxufSAgICBcclxuXHJcbi8vIDQgdHJhbnNpdGlvbnMgXHJcbkBtaXhpbiBhbmltX211bHRpXzQoJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzMsICRhbmltYXRpb25fNCkge1xyXG4gICAtd2Via2l0LXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zLCAkYW5pbWF0aW9uXzQ7XHJcbiAgICAgIC1tb3otdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzMsICRhbmltYXRpb25fNDtcclxuICAgICAgICAtby10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMywgJGFuaW1hdGlvbl80O1xyXG4gICAgICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zLCAkYW5pbWF0aW9uXzQ7XHJcbn0gICAgXHJcbiAgICBcclxuLy8gVFJBTlNGT1JNUyBcclxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3JtKSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcclxuICAgICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG4gICAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcbiAgICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG59XHJcblxyXG4vLyBBTklNQVRJT05TXHJcbkBtaXhpbiBhbmltYXRpb24oJGNvbnRlbnQpIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogJGNvbnRlbnQ7XHJcbiAgICAgLW1vei1hbmltYXRpb246ICRjb250ZW50O1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiAkY29udGVudDtcclxufVxyXG5cclxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xyXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0geyBAY29udGVudDsgfVxyXG4gIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7IEBjb250ZW50OyB9XHJcbiAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHsgQGNvbnRlbnQ7IH1cclxufVxyXG5cclxuXHJcbi8vIEZJTFRFUlNcclxuQG1peGluIGZpbHRlcigkZmlsdGVyKSB7XHJcbiAgICB3ZWJraXQtZmlsdGVyOiRmaWx0ZXI7XHJcbiAgICAgIC1tb3otZmlsdGVyOiRmaWx0ZXI7XHJcbiAgICAgICAtbXMtZmlsdGVyOiRmaWx0ZXI7XHJcbiAgICAgICAgLW8tZmlsdGVyOiRmaWx0ZXI7XHJcbiAgICAgICAgICAgZmlsdGVyOiRmaWx0ZXI7XHJcbn1cclxuXHJcbi8vIEhZUEVSTElOS1MgXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIE1PQklMRSBOTy1IT1ZFUiBNSVhJTiBcclxuQG1peGluIGhvdmVyKCkge1xyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gJjpmb2N1cywgXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAmOmFjdGl2ZSxcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6Zm9jdXMsIFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjphY3RpdmUsXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmhvdmVyLFxyXG4gICAgJjpob3ZlcixcclxuICAgICY6YWN0aXZlIFxyXG4gICAge0Bjb250ZW50O31cclxufVxyXG5cclxuLy8gTU9CSUxFIE5PLUhPVkVSIE1JWElOIC0gSlVTVCA6SE9WRVIgXHJcbkBtaXhpbiBob3Zlcl9vbmx5KCkgeyBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmhvdmVyIHtAY29udGVudDt9IH1cclxuXHJcblxyXG4vLyBNT0JJTEUgTk8tSE9WRVIgTUlYSU4gLSBXLyBWSVNJVEVEIFxyXG5AbWl4aW4gaG92ZXJfdmlzaXRlZCgpIHtcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICY6dmlzaXRlZCwgXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAmOmZvY3VzLCBcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICY6YWN0aXZlLFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjp2aXNpdGVkLCBcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6Zm9jdXMsIFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjphY3RpdmUsXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmhvdmVyIHtAY29udGVudDt9XHJcbn1cclxuXHJcbi8vIExJTktTIFxyXG5AbWl4aW4gbGlua3MgKCRsaW5rLCAkdmlzaXQsICRob3ZlciwgJGFjdGl2ZSkge1xyXG4gIGEge1xyXG4gICAgY29sb3I6ICRsaW5rO1xyXG4gICAgJjp2aXNpdGVkIHtjb2xvcjogJHZpc2l0O31cclxuICAgICY6aG92ZXIge2NvbG9yOiAkaG92ZXI7fVxyXG4gICAgJjphY3RpdmUge2NvbG9yOiAkYWN0aXZlO31cclxuICB9XHJcbn1cclxuXHJcbi8vIEEgVEFHUyAtIFZBUklBQkxFUyBBUyBTRUxFQ1RPUlNcclxuJGEtdGFnczogJ2EsIGE6YWN0aXZlLCBhOmhvdmVyLCBhOnZpc2l0ZWQnO1xyXG4kYS10YWdzLWhvdmVyOiAnYTphY3RpdmUsIGE6aG92ZXInO1xyXG5cclxuLy8gdXNhZ2UgIFxyXG4vLyAuY2xhc3MgeyBcclxuLy8gICAjeyRhLXRhZ3N9IHsgY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XHJcbi8vIH1cclxuLy8gI3skYS10YWdzLWhvdmVyfSB7IGNvbG9yOiBibHVlOyB9XHJcblxyXG4vLyBIT1ZFUiBTVFlMRVxyXG5AbWl4aW4gaG92ZXItc3R5bGUoJGNvbG9yKSB7XHJcbiAgJjpob3ZlciB7IGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLCAzJSk7IH1cclxufVxyXG5cclxuXHJcbi8vIEJPWCBTSVpJTkdcclxuQG1peGluIGJveC1zaXppbmcoJGJveC1zaXplKSB7XHJcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRib3gtc2l6ZTtcclxuICAgICAgIC1tb3otYm94LXNpemluZzogJGJveC1zaXplO1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiAkYm94LXNpemU7XHJcbn1cclxuXHJcbi8vIEJPWCBTSEFET1cgXHJcbkBtaXhpbiBib3gtc2hhZG93KCRib3hzaGFkb3cpIHtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogJGJveHNoYWRvdztcclxuICAgICAgIC1tb3otYm94LXNoYWRvdzogJGJveHNoYWRvdztcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogJGJveHNoYWRvdztcclxufVxyXG5cclxuLy8gQ0VOVEVSRURcclxuQG1peGluIGNvbnRlbnQtY250cmQge2Rpc3BsYXk6IGJsb2NrOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87fVxyXG4uY29udGVudC1jbnRyZCB7IEBpbmNsdWRlIGNvbnRlbnQtY250cmQgfVxyXG5cclxuXHJcbi8vIE5BViBNRU5VIFxyXG5AbWl4aW4gbmF2aWdhdGlvbi1saXN0IHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lO1xyXG4gICAgcGFkZGluZzowO1xyXG4gICAgbWFyZ2luOjA7XHJcbiAgICBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICA+IGxpe1xyXG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICAmOmxhc3QtY2hpbGR7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDowcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBCQUNLR1JPVU5EUyBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vKiBiYWNrZ3JvdW5kIG1peGluICh3aXApXHJcbkBtaXhpbiBiYWNrZ3JvdW5kKCRiZy1jb2xvciAkYmctaW1nX3VybCAkYmctYXR0YWNobWVudCAkYmctcG9zaXRpb25feCAkYmctcG9zaXRpb25feSAkYmctcmVwZWF0ICRiZy1zaXplKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgJGJnLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKCRiZy1pbWdfdXJsKTtcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogICAgICAkYmctYXR0YWNobWVudDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICAgICAgICAkYmctcG9zaXRpb25feFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRiZy1wb3NpdGlvbl95O1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6ICAgICAgICAgICRiZy1yZXBlYXQ7XHJcbiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbiAgICAgICAtbW96LWJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbiAgICAgICAgIC1vLWJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbn1cclxuKi9cclxuXHJcbi8vIHJnYmFcclxuQG1peGluIHJnYmEoJHIsJGcsJGIsJGEpe2JhY2tncm91bmQ6IHJnYmEoJHIsJGcsJGIsJGEpO31cclxuXHJcbi8vIGxpbmVhciBncmFkaWVudFxyXG5AbWl4aW4gbGluZWFyLWdyYWRpZW50KCRyLCRnLCRiLCRhLCAkcl8yLCAkZ18yLCAkYl8yLCAkYV8yKXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2JhKCRyLCRnLCRiLCRhKSwgcmdiYSgkcl8yLCRnXzIsJGJfMiwkYV8yKSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogICAgLW1vei1saW5lYXItZ3JhZGllbnQocmdiYSgkciwkZywkYiwkYSksIHJnYmEoJHJfMiwkZ18yLCRiXzIsJGFfMikpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICAgICAgLW8tbGluZWFyLWdyYWRpZW50KHJnYmEoJHIsJGcsJGIsJGEpLCByZ2JhKCRyXzIsJGdfMiwkYl8yLCRhXzIpKTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICAgIGxpbmVhci1ncmFkaWVudChyZ2JhKCRyLCRnLCRiLCRhKSwgcmdiYSgkcl8yLCRnXzIsJGJfMiwkYV8yKSk7XHJcbn1cclxuXHJcbi8vIGJnIC0gYWxsXHJcbkBtaXhpbiBiZy1hbGwoJHVybCwgJHBvc2l0aW9uLCAkcmVwZWF0LCAkYXR0YWNobWVudCkge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR1cmwpO1xyXG4gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiAkYXR0YWNobWVudDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiAkcmVwZWF0O1xyXG59XHJcblxyXG4vLyBiZyAtIGp1c3QgdXJsXHJcbkBtaXhpbiBiZy11cmwoJHVybCkge2JhY2tncm91bmQtaW1hZ2U6IHVybCgkdXJsKTt9XHJcblxyXG4vLyBiZyAtIG5vIHVybFxyXG5AbWl4aW4gYmctbm9fdXJsKCRwb3NpdGlvbiwgJHJlcGVhdCwgJGF0dGFjaG1lbnQpIHtcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogJGF0dGFjaG1lbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zaXRpb247XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogJHJlcGVhdDtcclxufVxyXG5cclxuLy8gYmcgLSBzaXplXHJcbkBtaXhpbiBiZy1zaXplKCRiZy1zaXplKSB7XHJcbiAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbiAgICAgICAtbW96LWJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbiAgICAgICAgIC1vLWJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogICAgJGJnLXNpemU7XHJcbn1cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kLWdyYWRpZW50KCRncmFkaWVudC1jb2xvciwgJHN0YXJ0LWdyYWRpZW50OiAwJSwgJHN0b3AtZ3JhZGllbnQ6IDEwMCUsICRzdGFydC1wb3M6IHRvcCwgJHN0b3AtcG9zOiBib3R0b20pIHtcclxuXHRiYWNrZ3JvdW5kOiAkZ3JhZGllbnQtY29sb3I7IC8qIE9sZCBicm93c2VycyAqL1xyXG5cdC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xyXG5cdGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQS9QZ284YzNabklIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2QybGtkR2c5SWpFd01DVWlJR2hsYVdkb2REMGlNVEF3SlNJZ2RtbGxkMEp2ZUQwaU1DQXdJREVnTVNJZ2NISmxjMlZ5ZG1WQmMzQmxZM1JTWVhScGJ6MGlibTl1WlNJK0NpQWdQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0puY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrSWlCbmNtRmthV1Z1ZEZWdWFYUnpQU0oxYzJWeVUzQmhZMlZQYmxWelpTSWdlREU5SWpBbElpQjVNVDBpTUNVaUlIZ3lQU0l3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnUEhOMGIzQWdiMlptYzJWMFBTSXdKU0lnYzNSdmNDMWpiMnh2Y2owaUl6RmxOVGM1T1NJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqRXdNQ1VpSUhOMGIzQXRZMjlzYjNJOUlpTTNaR0k1WlRnaUlITjBiM0F0YjNCaFkybDBlVDBpTVNJdlBnb2dJRHd2YkdsdVpXRnlSM0poWkdsbGJuUStDaUFnUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakVpSUdobGFXZG9kRDBpTVNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtLU0lnTHo0S1BDOXpkbWMrKTtcclxuXHRiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgkc3RhcnQtcG9zLCAkZ3JhZGllbnQtY29sb3IgJHN0YXJ0LWdyYWRpZW50LCBkYXJrZW4oJGdyYWRpZW50LWNvbG9yLCA2JSkgJHN0b3AtZ3JhZGllbnQpOyAvKiBGRjMuNisgKi9cclxuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCAkc3RhcnQtcG9zLCBsZWZ0ICRzdG9wLXBvcywgY29sb3Itc3RvcCgwJSwkZ3JhZGllbnQtY29sb3IpLCBjb2xvci1zdG9wKCRzdG9wLWdyYWRpZW50LGRhcmtlbigkZ3JhZGllbnQtY29sb3IsIDYlKSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cclxuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkc3RhcnQtcG9zLCAkZ3JhZGllbnQtY29sb3IgJHN0YXJ0LWdyYWRpZW50LGRhcmtlbigkZ3JhZGllbnQtY29sb3IsIDYlKSAkc3RvcC1ncmFkaWVudCk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXHJcblx0YmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCRzdGFydC1wb3MsICRncmFkaWVudC1jb2xvciAkc3RhcnQtZ3JhZGllbnQsZGFya2VuKCRncmFkaWVudC1jb2xvciwgNiUpICRzdG9wLWdyYWRpZW50KTsgLyogT3BlcmEgMTEuMTArICovXHJcblx0YmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCgkc3RhcnQtcG9zLCAkZ3JhZGllbnQtY29sb3IgJHN0YXJ0LWdyYWRpZW50LGRhcmtlbigkZ3JhZGllbnQtY29sb3IsIDYlKSAkc3RvcC1ncmFkaWVudCk7IC8qIElFMTArICovXHJcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvICRzdG9wLXBvcywgJGdyYWRpZW50LWNvbG9yICRzdGFydC1ncmFkaWVudCwgZGFya2VuKCRncmFkaWVudC1jb2xvciwgNiUpICRzdG9wLWdyYWRpZW50KTsgLyogVzNDICovXHJcblx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMxZTU3OTknLCBlbmRDb2xvcnN0cj0nIzdkYjllOCcsR3JhZGllbnRUeXBlPTAgKTsgLyogSUU2LTggKi9cclxuXHR0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2U7XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LXdlaWdodC1ub3JtYWwge1xyXG5cdGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiB9XHJcbiBAbWl4aW4gZm9udC13ZWlnaHQtbGlnaHQge1xyXG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHQ7XHJcbiB9XHJcbiAgQG1peGluIGZvbnQtd2VpZ2h0LWJvbGQge1xyXG5cdGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gfVxyXG5cclxuQG1peGluIHNwcml0ZSgkd2lkdGgsICRoZWlnaHQsICR4LXBvcywgJHktcG9zKSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdCY6YmVmb3Jle1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvc3ByaXRlLnBuZycpO1xyXG5cdFx0d2lkdGg6ICR3aWR0aDtcclxuXHRcdGhlaWdodDogJGhlaWdodDtcclxuXHRcdGJhY2tncm91bmQtcG9zaXRpb246ICR4LXBvcyAkeS1wb3M7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6ICRzcHJpdGUtdyAkc3ByaXRlLWg7XHJcblx0XHRAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMSksICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzIC8gMiksIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBweCkge1xyXG5cdCAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvc3ByaXRlQDJ4LnBuZycpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHZlbmRvci1wcmVmaXgoJHZlbmRvci1zdHlsZSwgJHZlbmRvci1hcmd1bWVudCl7XHJcblx0LXdlYmtpdC0jeyR2ZW5kb3Itc3R5bGV9OiN7JHZlbmRvci1hcmd1bWVudH07XHJcblx0LW1vei0jeyR2ZW5kb3Itc3R5bGV9OiN7JHZlbmRvci1hcmd1bWVudH07XHJcblx0LW1zLSN7JHZlbmRvci1zdHlsZX06I3skdmVuZG9yLWFyZ3VtZW50fTtcclxuXHQtby0jeyR2ZW5kb3Itc3R5bGV9OiN7JHZlbmRvci1hcmd1bWVudH07XHJcblx0I3skdmVuZG9yLXN0eWxlfTojeyR2ZW5kb3ItYXJndW1lbnR9O1xyXG59XHJcblxyXG4vLyB0cmFuc2l0aW9uc1xyXG4gXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCR2YWx1ZXMuLi4pIHsgXHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR2YWx1ZXM7XHJcbiAgICAtbW96LXRyYW5zaXRpb246ICR2YWx1ZXM7XHJcbiAgICAtby10cmFuc2l0aW9uOiAkdmFsdWVzO1xyXG4gICAgdHJhbnNpdGlvbjogJHZhbHVlcztcclxufVxyXG5cclxuLy8gZm9udGF3ZXNvbWUgd2l0aG91dCB0aGUgY2xhc3NcclxuXHJcbkBtaXhpbiBmb250YXdlc29tZSgpIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTtcclxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xyXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcbiIsIi8qIEJSRUFLUE9JTlRTICYgRU0gUVVJQ0tWSUVXXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbjFlbSA9IDE2cHhcclxuMmVtID0gMzJweFxyXG4zZW0gPSA0OHB4XHJcbjRlbSA9IDY0cHhcclxuXHJcbjAuMDYyNWVtICAgPSAgICAgICAxcHhcclxuMC4xMjVlbSAgICA9ICAgICAgIDJweFxyXG4wLjE1NjI1ZW0gID0gICAgICAgMi41cHhcclxuMC4xODc1ZW0gICA9ICAgICAgIDNweFxyXG4wLjMxMjVlbSAgID0gICAgICAgNXB4IFxyXG4wLjYyNWVtICAgID0gICAgICAxMHB4XHJcbjAuOTM3NWVtICAgPSAgICAgIDE1cHhcclxuMS4yNWVtICAgICA9ICAgICAgMjBweFxyXG4xLjU2MjVlbSAgID0gICAgICAyNXB4XHJcbjIuNWVtICAgICAgPSAgICAgIDQwcHhcclxuMy4xMjVlbSAgICA9ICAgICAgNTBweFxyXG4zLjM3NWVtOyAgID0gICAgICA1NHB4IC0gYmFjay10by10b3AgYm90dG9tICsgYm90dG9tIG5hdmJhciBoZWlnaHRcclxuNC42ODc1ZW0gICA9ICAgICAgNzVweFxyXG42LjI1ZW0gICAgID0gICAgIDEwMHB4XHJcblxyXG4yMGVtID0gIDMyMHB4IC0gaVBob25lIDVcclxuMzBlbSA9ICA0ODBweFxyXG40MGVtID0gIDY0MHB4IC0gZm91bmRhdGlvbiBtZWRpdW1cclxuNTBlbSA9ICA4MDBweFxyXG42MGVtID0gIDk2MHB4XHJcbjY0ZW0gPSAxMDI0cHggLSBpUGFkIC8gZm91bmRhdGlvbiBsYXJnZVxyXG43MGVtID0gMTEyMHB4XHJcbjgwZW0gPSAxMjgwcHhcclxuXHJcbjYzLjkzNzVlbSA9ICAgIDEwMjNweCAtIHNpbmdsZSBwYWdlIC0gZ29hbCB0aXRsZSBzd2l0Y2ggdG8gdGFibGV0IHZpZXdcclxuODEuMjVlbSAgID0gICAgMTMwMHB4XHJcbjg3LjVlbSAgICA9ICAgIDE0MDBweCAtIHdoZXJlIEdPVkVSTk1FTlQgb3ZlcmxhcHMgZWRnZVxyXG5cclxuKi9cclxuXHJcbi8vIEZPVU5EQVRJT04gQlJFQUtQT0lOVFNcclxuXHJcbiRzbWFsbC10b3AtYnJlYWtwb2ludDogMzkuOTM3NWVtO1xyXG4kbWVkaXVtLWJvdHRvbS1icmVha3BvaW50OiA0MGVtO1xyXG4kbWVkaXVtLXRvcC1icmVha3BvaW50OiA2My45Mzc1ZW07XHJcbiRsYXJnZS1ib3R0b20tYnJlYWtwb2ludDogNjRlbTtcclxuJGxhcmdlLXRvcC1icmVha3BvaW50OiA3NC45Mzc1ZW07XHJcblxyXG4vLyBtZWRpYSBxdWVyeSB2YXJpYWJsZXNcclxuXHJcbi8vIFVzYWdlOiAgQG1lZGlhICN7JHNtYWxsLW9ubHl9XHJcbi8vIG91dHB1dDogXCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pXHJcbiRzbWFsbC1vbmx5OiBcInNjcmVlbiBhbmQgKG1heC13aWR0aDogI3sgJHNtYWxsLXRvcC1icmVha3BvaW50IH0pXCI7XHJcbiRtZWRpdW0tdXA6IFwic2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyAkbWVkaXVtLWJvdHRvbS1icmVha3BvaW50IH0pXCI7XHJcbiRtZWRpdW0tZG93bjogXCJzY3JlZW4gYW5kIChtYXgtd2lkdGggOiAjeyAkbWVkaXVtLXRvcC1icmVha3BvaW50IH0pXCI7XHJcbiRtZWRpdW0tb25seTogXCJzY3JlZW4gYW5kIChtaW4td2lkdGg6ICN7ICRtZWRpdW0tYm90dG9tLWJyZWFrcG9pbnQgfSkgYW5kIChtYXgtd2lkdGg6ICN7JG1lZGl1bS10b3AtYnJlYWtwb2ludH0pXCI7XHJcbiRsYXJnZS1kb3duOiBcInNjcmVlbiBhbmQgKG1heC13aWR0aCA6ICN7ICRsYXJnZS10b3AtYnJlYWtwb2ludCB9KVwiO1xyXG4kbGFyZ2UtdXA6IFwic2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyAkbGFyZ2UtYm90dG9tLWJyZWFrcG9pbnQgfSlcIjtcclxuJGxhcmdlLW9ubHk6IFwic2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyAkbGFyZ2UtYm90dG9tLWJyZWFrcG9pbnQgfSkgYW5kIChtYXgtd2lkdGg6ICN7ICRsYXJnZS10b3AtYnJlYWtwb2ludCB9KVwiO1xyXG5cclxuXHJcbi8qIFNtYWxsIG9ubHkgKi9cclxuLy9AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkc21hbGwtdG9wLWJyZWFrcG9pbnQpIHt9XHJcblxyXG4vKiBNZWRpdW0gYW5kIHVwICovXHJcbi8vQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge31cclxuXHJcbi8qIE1lZGl1bSBvbmx5ICovXHJcbi8vQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge31cclxuXHJcbi8qIExhcmdlIGFuZCB1cCAqL1xyXG4vL0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHt9XHJcblxyXG4vKiBMYXJnZSBvbmx5ICovXHJcbi8vQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge31cclxuXHJcblxyXG4vLyBGT1VOREFUSU9OIEJSRUFLUE9JTlQgTUlYSU5cclxuXHJcbi5lbGVtZW50IHtcclxuICAgIC8vIE9ubHkgYWZmZWN0cyBtZWRpdW0gc2NyZWVucyBhbmQgbGFyZ2VyXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgLy8gQWxsIENTUyBpbiBoZXJlIGdvZXMgaW5zaWRlIHRoZSBtZWRpYSBxdWVyeVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqIERlZmluZSB3aWR0aCBWYWx1ZXMgZm9yIEpTIHJlZmVyZW5jZSAqKi9cclxuLndpZHRoLWRlZmluaXRpb25zIHtcclxuICAgIHZpc2liaWxpdHkgOiBoaWRkZW47XHJcbiAgICBkaXYge3Zpc2liaWxpdHkgOiBoaWRkZW47fVxyXG4gICAgLndpZHRoLXNtYWxsIHt3aWR0aCA6ICRzbWFsbC10b3AtYnJlYWtwb2ludDt9XHJcbiAgICAud2lkdGgtbWVkaXVtIHt3aWR0aCA6ICRtZWRpdW0tdG9wLWJyZWFrcG9pbnQ7fVxyXG4gICAgLndpZHRoLWxhcmdlIHt3aWR0aCA6ICRsYXJnZS10b3AtYnJlYWtwb2ludDt9XHJcbn1cclxuXHJcblxyXG4vLyBNT0JJTEVaRSAtIHF1aWNrIG4gZGlydHlcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vIGV4dHJhIHNtYWxsIC0gaVBob25lNVxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyMGVtKSB7XHJcbiAgICAud3JhcHAtMTAwICAgICAgICB7IHBhZGRpbmc6IDAuOTM3NWVtIDAuNjI1ZW07IH0gLy8gPSAxNXB4IDEwcHhcclxuICAgIC8vIC5yb3cgICAgICAgICAgICAgIHsgcGFkZGluZy1sZWZ0OiAwLjVlbTsgcGFkZGluZy1yaWdodDogMC41ZW07IH1cclxuICAgIC8vIC5jb2x1bW4sIC5jb2x1bW5zIHsgcGFkZGluZy1sZWZ0OiAwOyAgICAgcGFkZGluZy1yaWdodDogMDsgfVxyXG4gICAgLy8gLnJvdyAucm93ICAgICAgICAgeyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAwOyB9XHJcbn1cclxuLy8gc21hbGwgb25seVxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjIwLjAxZW0pIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcclxuICAgIC53cmFwcC0xMDAgICAgICAgIHsgcGFkZGluZzogMS4yNWVtIDAuNjI1ZW07IH0gLy8gPSAyMHB4IDEwcHhcclxuICAgIC8vIC5yb3cgICAgICAgICAgICAgIHsgcGFkZGluZy1sZWZ0OiAxLjVlbTsgcGFkZGluZy1yaWdodDogMS41ZW07IH1cclxuICAgIC8vIC5jb2x1bW4sIC5jb2x1bW5zIHsgcGFkZGluZy1sZWZ0OiAwOyAgICAgcGFkZGluZy1yaWdodDogMDsgfVxyXG59XHJcbi8vIG1lZGl1bSBvbmx5XHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcclxuICAgIC8vIC5yb3cgICAgICAgICAgICAgIHsgcGFkZGluZy1sZWZ0OiAyZW07IHBhZGRpbmctcmlnaHQ6IDJlbTsgfVxyXG59XHJcbi8vIGxhcmdlIG9ubHlcclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xyXG4gICAgLy8gLnJvdyAgICAgICAgICAgICAgeyBwYWRkaW5nLWxlZnQ6IDJlbTsgcGFkZGluZy1yaWdodDogMmVtOyB9XHJcbn0iLCIvLyBIRUxQRVJTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFxyXG5cclxuLy8gUEFERElORyArIE1BUkdJTiBIRUxQRVIgQ0xBU1NFU1xyXG5cclxuLm10MjUge21hcmdpbi10b3A6IDI1cHg7fVxyXG4ubWIyNSB7bWFyZ2luLWJvdHRvbTogMjVweDt9XHJcbi5tYjc1IHttYXJnaW4tYm90dG9tOiA3NXB4O31cclxuLm10Yjc1IHttYXJnaW4tdG9wOiA3NXB4OyBtYXJnaW4tYm90dG9tOiA3NXB4O31cclxuXHJcbi5wdDAge3BhZGRpbmctdG9wOjBweCAhaW1wb3J0YW50O31cclxuLnAxMCB7cGFkZGluZzoxMHB4O31cclxuLnAxNSB7cGFkZGluZzoxNXB4O31cclxuLnAyNSB7cGFkZGluZzoyNXB4O31cclxuLnA1MCB7cGFkZGluZzogNTBweDt9XHJcblxyXG4ucHQxMCB7cGFkZGluZy10b3A6IDEwcHg7fVxyXG4ucGIxMCB7cGFkZGluZy1ib3R0b206IDEwcHg7fVxyXG4ucHRiMTAge3BhZGRpbmctdG9wOjEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4O31cclxuXHJcbi5wdDE1IHtwYWRkaW5nLXRvcDoxNXB4O31cclxuLnBiMTUge3BhZGRpbmctYm90dG9tOjE1cHg7fVxyXG4ucHIxNSB7cGFkZGluZy1yaWdodDoxNXB4O31cclxuLnB0YjE1IHtwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbTogMTVweDt9XHJcblxyXG4ucHQyNSB7cGFkZGluZy10b3A6MjVweDt9XHJcbi5wYjI1IHtwYWRkaW5nLWJvdHRvbToyNXB4O31cclxuLnB0YjI1IHtwYWRkaW5nLXRvcDoyNXB4OyBwYWRkaW5nLWJvdHRvbToyNXB4O31cclxuXHJcbi5wdDUwIHtwYWRkaW5nLXRvcDo1MHB4O31cclxuLnBiNTAge3BhZGRpbmctYm90dG9tOjUwcHg7fVxyXG4ucHRiNTAge3BhZGRpbmctdG9wOjUwcHg7IHBhZGRpbmctYm90dG9tOjUwcHg7fVxyXG4ucHRscjUwIHtwYWRkaW5nLXRvcDogNTBweDsgcGFkZGluZy1sZWZ0OiA1MHB4OyBwYWRkaW5nLXJpZ2h0OiA1MHB4O31cclxuLnB0Ymw1MCB7cGFkZGluZy10b3A6NTBweDsgcGFkZGluZy1ib3R0b206NTBweDsgcGFkZGluZy1sZWZ0OiA1MHB4O31cclxuXHJcbi5wdDc1IHtwYWRkaW5nLXRvcDo3NXB4O31cclxuLnB0Yjc1IHtwYWRkaW5nLXRvcDo3NXB4OyBwYWRkaW5nLWJvdHRvbTo3NXB4O31cclxuXHJcbi5wdDEwMCB7cGFkZGluZy10b3A6MTAwcHg7fVxyXG4ucGIxMDAge3BhZGRpbmctYm90dG9tOjEwMHB4ICFpbXBvcnRhbnQ7fVxyXG4ucHRiMTAwIHtwYWRkaW5nLXRvcDoxMDBweDsgcGFkZGluZy1ib3R0b206MTAwcHg7fVxyXG5cclxuLnBhZHdyYXAge3BhZGRpbmc6IDEwcHg7fVxyXG5cclxuXHJcbi8vIENFTlRFUklORyBcclxuLnR4dC1jbnRyIHt0ZXh0LWFsaWduOiBjZW50ZXI7fSAvL21heWJlIHVzZSBmb3VuZGF0aW9ucz8gdGV4dC1jZW50ZXJcclxuLmNlbnRlcmVkIHtkaXNwbGF5OmJsb2NrOyBtYXJnaW46IDAgYXV0bzt9XHJcblxyXG4vLyBQT1NJVElPTjogUkVMQVRJVkVcclxuLnJlbGF0aXZlIHtwb3NpdGlvbjogcmVsYXRpdmU7fVxyXG5cclxuLy8gSElERVxyXG4uZGlzcGxheS1ub25lIHtkaXNwbGF5OiBub25lO31cclxuXHJcbi8vIElNRyAtIFJFU1BPTlNJVkVcclxuaW1nIHtcclxuICAgICYucmVzcG9uc2l2ZSB7IGRpc3BsYXk6IGJsb2NrOyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxyXG4gICAgJi5hbGlnbnJpZ2h0IHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHhcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vIHotaW5kZXhcclxuLnotdG9wIHtwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6Mzsgb3BhY2l0eTogMC45OTt9XHJcbi56NTAwIHt6LWluZGV4OiA1MDA7fVxyXG5cclxuLy8gIFBJUEUgKGllLiBcInxcIiApXHJcbi5waXBlIHtmb250LXNpemU6MS41NjI1ZW07IHBhZGRpbmc6MCAwLjkzNzVlbTsgdmVydGljYWwtYWxpZ246IG1pZGRsZTt9XHJcbnNtYWxsIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAucGlwZSB7Zm9udC1zaXplOjEuNWVtOyBwYWRkaW5nOjAgMC45Mzc1ZW07IHZlcnRpY2FsLWFsaWduOiB0b3A7IGxpbmUtaGVpZ2h0OiAxLjVlbTt9XHJcbn1cclxuXHJcbi8vIGZpeCBvdmVybGF5XHJcbi5zZWFyY2gtb3ZlcmxheSB7ei1pbmRleDogMTt9XHJcblxyXG4vLyBGT1VOREFUSU9OIFRPR0dMRVNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLmlzLWhpZGRlbiB7ZGlzcGxheTogbm9uZTt9XHJcbi5pcy1mb3VuZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIC8qIHRyYW5zaXRpb24gdmlzaWJpbGl0eSAqL1xyXG4gICAgQGluY2x1ZGUgYW5pbSh2aXNpYmlsaXR5IDBzKTtcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbn1cclxuLnJlYWRtb3JlIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmctdG9wOjI1cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbToyNXB4O1xyXG4gICAgYSB7Y29sb3I6ICR3aGl0ZTsgQGluY2x1ZGUgYW5pbShjb2xvciAwLjNzIGVhc2UpOyBAaW5jbHVkZSBob3ZlcigpIHtjb2xvcjokc2xhdGU7fSB9XHJcbn1cclxuXHJcbi8vIEVYVEVSTkFMIExJTksgSUNPTiAgXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi5leHRlcm5hbF9saW5rIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OlwiXFxmMDhlXCI7IC8vIFxcZjE0YyA9IGV4dGVybmFsIGxpbmsgc3F1YXJlIHwgXFxmMDhlID0gZXh0ZXJuYWwgbGluayBvdXRsaW5lXHJcbiAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcclxuICAgICAgICBjb2xvcjogJGdyeXNsdnI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDBweDsgcmlnaHQ6MHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDdweCAyNXB4O1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubmF2LWlzLW9wZW4ge1xyXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG59IiwiLy8gQ09OVEVOVCBXUkFQUEVSU1xyXG4ud3JhcCB7XHJcbiAgICAgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTtcclxufVxyXG5cclxuLndyYXBwIHtwYWRkaW5nLXRvcDogNTBweDsgcGFkZGluZy1ib3R0b206IDUwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG4ud3JhcHAtMTAwIHtwYWRkaW5nLXRvcDogMTAwcHg7IHBhZGRpbmctYm90dG9tOiAxMDBweDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcbi53cmFwcC0xNTAge3BhZGRpbmctdG9wOiAxNTBweDsgcGFkZGluZy1ib3R0b206IDE1MHB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO31cclxuLndyYXBwLTIwMCB7cGFkZGluZy10b3A6IDIwMHB4OyBwYWRkaW5nLWJvdHRvbTogMjAwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG4ud3JhcG0ge21hcmdpbi10b3A6IDEwMHB4OyBtYXJnaW4tYm90dG9tOiAxNTBweDsgZGlzcGxheTpibG9jazsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcbi53cmFwcC1ub3BhZCB7cGFkZGluZy10b3A6IDBweDsgcGFkZGluZy1ib3R0b206IDBweDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcbi53cmFwcC1ub3BhZC0xNTAge3BhZGRpbmctdG9wOiAwcHg7IHBhZGRpbmctYm90dG9tOiAxNTBweDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcblxyXG4vLyBtdXN0IGFwcGVhciBiZWZvcmUgYmFja2dyb3VuZCBzdHVmZlxyXG4ud3JhcHAtc2VhcmNoIHtcclxuICAgIHBhZGRpbmc6IDYuMjVlbSAxNSUgNmVtO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgQGluY2x1ZGUgY2xlYXIoKTtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcclxuICAgIH1cclxufVxyXG4ud3JhcHAtbG9jYXRpb24ge1xyXG4gICAgcGFkZGluZy10b3A6IDBweDsgLy8gMTU1cHg7IC8vIDIzNSAtIG5vdzogMjM1IC0gNjIobG9jIGhlaWdodClcclxuICAgIHBhZGRpbmctYm90dG9tOjBweDtcclxuICAgIGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEuMjVlbTsgcmlnaHQ6IDBweDtcclxufVxyXG5cclxuLndyYXBwX2dvZXNfc3F1aXNoIHtcclxuICAgIHBhZGRpbmc6IDQuNjg3NWVtIDA7IC8vID0gNzVweFxyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBAaW5jbHVkZSBjbGVhcigpO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC40NXJlbTtcclxuICAgIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICAgU2hhZG93c1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLnNoYWRvdyB7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDFweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuODMpO1xyXG4gICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCAxcHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjgzKTtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDJweCAycHggMXB4IHJnYmEoMTUzLCAxNTMsIDE1MywgMC44Myk7XHJcbn1cclxuLnNoYWRvdy1pbnNldCB7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMTJweCAjMDAwMDAwO1xyXG4gICAgIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDEycHggIzAwMDAwMDtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxMnB4ICMwMDAwMDA7XHJcbn1cclxuLnNoYWRvdy1jZW50ZXIge1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCA2cHggLTZweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuODMpO1xyXG4gICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDhweCA2cHggLTZweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuODMpO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCA2cHggLTZweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuODMpO1xyXG59XHJcblxyXG4uc2hhZG93LWNlbnRlci0yIHtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCA2cHggLTZweCAjNzc3O1xyXG4gICAgIC1tb3otYm94LXNoYWRvdzogMCAxMHB4IDZweCAtNnB4ICM3Nzc7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNnB4IC02cHggIzc3NztcclxufVxyXG5cclxuXHJcbi5zaGFkb3ctdGIge1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcclxuICAgICAgIC1tb3otYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAwIDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xyXG59XHJcbi5zaGFkb3ctdGI6YmVmb3JlLCAuc2hhZG93LXRiOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6XCJcIjtcclxuICAgIHotaW5kZXg6LTE7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDIwcHggcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIGJveC1zaGFkb3c6MCAwIDIwcHggcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgdG9wOjA7XHJcbiAgICBib3R0b206MDtcclxuICAgIGxlZnQ6MTBweDtcclxuICAgIHJpZ2h0OjEwcHg7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6MTAwcHggLyAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czoxMDBweCAvIDEwcHg7XHJcbn1cclxuLnNoYWRvdy10YjphZnRlciB7XHJcbiAgcmlnaHQ6MTBweDtcclxuICAgIGxlZnQ6YXV0bztcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOnNrZXcoOGRlZykgcm90YXRlKDNkZWcpO1xyXG4gICAgICAgLW1vei10cmFuc2Zvcm06c2tldyg4ZGVnKSByb3RhdGUoM2RlZyk7XHJcbiAgICAgICAgLW1zLXRyYW5zZm9ybTpza2V3KDhkZWcpIHJvdGF0ZSgzZGVnKTtcclxuICAgICAgICAgLW8tdHJhbnNmb3JtOnNrZXcoOGRlZykgcm90YXRlKDNkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06c2tldyg4ZGVnKSByb3RhdGUoM2RlZyk7XHJcbn1cclxuXHJcbi5zaGFkb3ctcGFnZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcbi5zaGFkb3ctcGFnZTphZnRlciB7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgYm90dG9tOiAxNXB4O1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG4gIGxlZnQ6IGF1dG87XHJcbiAgd2lkdGg6IDUwJTtcclxuICB0b3A6IDgwJTtcclxuICBtYXgtd2lkdGg6MzAwcHg7XHJcbiAgYmFja2dyb3VuZDogIzc3NztcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTVweCAxMHB4ICM3Nzc7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAwIDE1cHggMTBweCAjNzc3O1xyXG4gIGJveC1zaGFkb3c6IDAgMTVweCAxMHB4ICM3Nzc7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcclxufVxyXG5cclxuLnNoYWRvdy1jdXJ2ZSB7XHJcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XHJcbiAgICAgICAtbW96LWJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAwIDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcclxufVxyXG4uc2hhZG93LWN1cnZlOmJlZm9yZSwgLnNoYWRvdy1jdXJ2ZTphZnRlciB7XHJcbiAgICBjb250ZW50OlwiXCI7XHJcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6LTE7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDIwcHggcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIGJveC1zaGFkb3c6MCAwIDIwcHggcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgdG9wOjUwJTtcclxuICAgIGJvdHRvbTowO1xyXG4gICAgbGVmdDoxMHB4O1xyXG4gICAgcmlnaHQ6MTBweDtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czoxMDBweCAvIDEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOjEwMHB4IC8gMTBweDtcclxufSIsIi8qIEJBQ0tHUk9VTkRTXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vLyBiYWNrZ3JvdW5kOiBjb2xvciBpbWFnZSBwb3NpdGlvbi9zaXplIHJlcGVhdCBvcmlnaW4gY2xpcCBhdHRhY2htZW50IGluaXRpYWx8aW5oZXJpdDtcclxuXHJcbi5iZyB7XHJcbiAgICAvLyBhbGxvd3MgOmJlZm9yZSB0byBoYXZlIGZ1bGwgc2NyZWVuIGJnXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvLyB6LWluZGV4OiAyO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgcGFkZGluZzogOTBweCAwO1xyXG5cclxuICAgIEBpbmNsdWRlIGJnLW5vX3VybChjZW50ZXIgY2VudGVyLCBuby1yZXBlYXQsIHNjcm9sbCk7XHJcbiAgICBAaW5jbHVkZSBiZy1zaXplKGNvdmVyKTtcclxuICAgIEBpbmNsdWRlIGZpbHRlcihjb250cmFzdCgxLjEpKTtcclxuICAgIEBpbmNsdWRlIGFuaW0oYWxsIGVhc2UgMXMpO1xyXG5cclxuICAgICYud3JhcHAtc2VhcmNoIHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO30gLy8gZW5zdXJlIGhlYWRlciBpbWFnZXMgYXJlIGZpeGVkXHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAvLyBhbGxvd3MgbXVsdGktYmdcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyBib3R0b206IDA7IHJpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMCksIHJnYmEoMCwwLDAsMCksIHJnYmEoMCwwLDAsMC40MCksIHJnYmEoMCwwLDAsMC42MCkpO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmctb3ZlcmxheSB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjc1KSwgcmdiYSgwLDAsMCwwLjc1KSksXHJcbiAgICAgICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC43NSksIHJnYmEoMjU1LDIyNCwxNzgsMC4yNSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbCAhaW1wb3J0YW50OyBcclxuICAgICAgICAud3JhcHAtc2VhcmNoIHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbCAhaW1wb3J0YW50O31cclxuICAgIH1cclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbCAhaW1wb3J0YW50OyBcclxuICAgICAgICAud3JhcHAtc2VhcmNoIHtiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbCAhaW1wb3J0YW50O31cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7YmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGwgIWltcG9ydGFudDt9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgICAgICA+IC5yb3cge1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gIE9VVExJTkVTIC0gVEVYVCBPVkVSIElNQUdFIFNUWUxFU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi5vdXRsaW5lIHtcclxuICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICBib3JkZXI6IDAuMTI1ZW0gc29saWQgJHdodDsgLy8gPSAycHhcclxuICAgIHBhZGRpbmc6IDMuMTI1ZW07IC8vID0gNTBweFxyXG4gICAgY29sb3I6ICR3aHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTc1KTtcclxuICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgcCB7IGNvbG9yOiAkd2h0OyBmb250LXdlaWdodDogNzAwO31cclxuICAgIEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgJi5vdXRsaW5lX3dodCB7XHJcbiAgICAgICAgaDEsIHAge2NvbG9yOiAkd2h0OyBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7IGJhY2tncm91bmQ6ICR3aHQ7ICBoMSwgcCB7Y29sb3I6ICRzbGF0ZTt9IH1cclxuICAgIH1cclxuICAgICYub3V0bGluZV93aHRfdGl0bGUge1xyXG4gICAgICAgIGgxLCBwIHtjb2xvcjogJHdodDsgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlLWluLW91dCk7fVxyXG4gICAgfVxyXG4gICAgJi5vdXRsaW5lX3NsYXRlIHtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkc2xhdGU7XHJcbiAgICAgICAgaDEsIHAgeyBjb2xvcjogJHNsYXRlOyBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7IGJhY2tncm91bmQ6ICR3aHQ7IH1cclxuICAgIH1cclxuICAgICYub3V0bGluZV9zbGF0ZWFsdCB7XHJcbiAgICAgICAgaDEsIHAgeyBjb2xvcjogJHdodDsgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlLWluLW91dCk7fVxyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkgeyBiYWNrZ3JvdW5kOiAkc2xhdGU7IGJvcmRlcjogMC4xMjVlbSBzb2xpZCAkc2xhdGU7IH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuMjVlbTtcclxuICAgICAgICAmLm91dGxpbmVfd2h0IHtcclxuICAgICAgICAgICAgcCB7IG1hcmdpbi1ib3R0b206IDAuMjVlbTsgc21hbGwge2ZvbnQtc2l6ZTogMC44NXJlbTt9IH1cclxuICAgICAgICAgICAgaDEge2ZvbnQtc2l6ZTogMS4yNXJlbTt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7cGFkZGluZzogMi41ZW07fVxyXG59XHJcblxyXG4vLyBGdWxsc2NyZWVuIGJnXHJcbi5mdWxsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7IC8qIDEwMHZoICovXHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnJldmVhbC5mdWxsIHtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxufSIsIi8vVE9ETyBNYWtlIHRoZXNlIC40MDQtIGV4dGVudGlvbnNcclxuJV80MDQtc2VhcmNoIHtcclxuICAgIGNvbG9yOiAkbmF2eTtcclxuICAgIG1pbi1oZWlnaHQ6IDE2ZW07XHJcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG5cclxuICAgIC8vIHNwZWNpYWwgdHJlYXRtZW50IGZvciA0MDQgc2VhcmNoXHJcbiAgICAuc2VhcmNoLWlucHV0IHtcclxuICAgICAgICAmLmhpZGUtZm9yLWxhcmdlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLnNob3ctZm9yLWxhcmdlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4lXzQwNC1oZWFkZXIge1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4lXzQwNC13cmFwcCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjJ2aCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uXzQwNCB7XHJcbiAgICAmX19oZWFkZXIge1xyXG4gICAgICAgIEBleHRlbmQgJV80MDQtaGVhZGVyO1xyXG4gICAgfVxyXG4gICAgJl9fc2VhcmNoIHtcclxuICAgICAgICBAZXh0ZW5kICVfNDA0LXNlYXJjaDtcclxuICAgIH1cclxuICAgICZfX3dyYXBwIHtcclxuICAgICAgICBAZXh0ZW5kICVfNDA0LXdyYXBwO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICBUb3BpY3MgLyBDb2xsZWN0aW9ucyAvIEd1aWRlcyAvIEFDRiBDdXN0b20gUGFnZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLnRlbXBsYXRlX19hY2YtcGFnZSB7XHJcbiAgICAjY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vICBBUlRJQ0xFIC0gdXNlZCBpbiBzaW5nbGUsIHRvcGljcywgJiBwYWdlIHRlbXBsYXRlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4uYXJ0aWNsZSB7XHJcbiAgICBoMiB7cGFkZGluZy10b3A6IDIuNXJlbTt9IC8vID0gNDBweFxyXG4gICAgaDMsIGg0IHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTowLjYyNXJlbTtcclxuICAgIH1cclxuICAgIHVsIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBkaXNjICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVlbTtcclxuICAgIH0gLy8gMy4xMjVlbSA9IDUwcHhcclxuICAgIC8vIGEge1xyXG4gICAgLy8gICAgIGNvbG9yOiAkbmF2eTtcclxuICAgIC8vICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIC8vICAgICBAaW5jbHVkZSBob3ZlcigpIHsgY29sb3I6ICRibHVlLWJyaWdodDsgfVxyXG4gICAgLy8gfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBoMiB7cGFkZGluZy10b3A6IDEuNHJlbTsgcGFkZGluZy1ib3R0b206IC4yNXJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAvLyBtYXJnaW4tbGVmdDogMS4ycmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJvdyxcclxuICAgICAgICAucm93IC5yb3cge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5hbGVydF9pY29uIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICBmb250LXNpemU6IDVlbTtcclxuICAgICAgICBwYWRkaW5nOiAwLjYyNXJlbTtcclxuICAgIH1cclxufVxyXG4uZmVhdHVyZWQge1xyXG4gICAgJi10aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgdWwgbGkge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICAvLyBOT1RFIG1pZ3JhdGVkIGxpbmsgc3R5bGVzIHRvIF9hbmNob3JcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICAgIGNvbG9yOiAkd2h0O1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdodDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gaG9tZXBhZ2UgZmVhdHVyZWQgdG9waWNzXHJcblxyXG4lZmVhdHVyZWQtd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IC0xMHB4O1xyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgICY6aG92ZXIgJWZlYXR1cmVkLWl0ZW0taW5uZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNzUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS1pbm5lciB7XHJcbiAgICBwYWRkaW5nOiAzLjEyNWVtO1xyXG4gICAgY29sb3I6ICNmYWZhZmE7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcclxuICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nOiAxLjVlbTtcclxuICAgICAgICBtaW4taGVpZ2h0OiAyNTBweDtcclxuICAgIH1cclxuICAgIC5iZyAmIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjc1KTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcclxuICAgIH1cclxuICAgIHNtYWxsIHtcclxuICAgICAgICBmb250LXNpemU6IDUwJTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS1oYWxmIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIC8vIG1pbi1oZWlnaHQ6IDYzMHB4O1xyXG5cclxuICAgIC8vIFRPRE8gUmV3cml0ZSBtZWRpYSBxdWVyeSBzbyBAZXh0ZW5kIGNhbiBiZSB1c2VkXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS10aGlyZHMge1xyXG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgLy8gbWluLWhlaWdodDogNzMwcHg7XHJcblxyXG4gICAgLy8gVE9ETyBSZXdyaXRlIG1lZGlhIHF1ZXJ5IHNvIEBleHRlbmQgY2FuIGJlIHVzZWRcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtLWZ1bGwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1pbi1oZWlnaHQ6IG5vbmU7XHJcbn1cclxuXHJcbi8vIGFsbCBmZWF0dXJlZCB0b3BpY3MgcGFydGlhbHNcclxuLmZlYXR1cmVkIHtcclxuICAgICZfX3dyYXBwZXIge1xyXG4gICAgICAgIEBleHRlbmQgJWZlYXR1cmVkLXdyYXBwZXI7XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbTtcclxuICAgICAgICAmLS1pbm5lciB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZlYXR1cmVkLWl0ZW0taW5uZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtLXRpdGxlIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbS10aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLi1jb2wtMiAmIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbS1oYWxmO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuLWNvbC0zICYge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmZWF0dXJlZC1pdGVtLXRoaXJkcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLyBtb2JpbGUgdG9waWNzIGxheW91dFxyXG4udG9waWNzX2hlYWRlcl9tb2JpbGUge1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtaW4taGVpZ2h0OjEyLjM3NXJlbTsgLy8gPSAxOThweFxyXG4gICAgICAgIC8vIG1heC1oZWlnaHQ6MTIuMzc1cmVtOyAvLyA9IDE5OHB4XHJcbiAgICB9XHJcbn1cclxuLnRvcGljc19oZWFkZXIge1xyXG4gICAgQGV4dGVuZCAud3JhcHBfZ29lc19zcXVpc2g7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIC5yb3cge3BhZGRpbmc6IDA7IG1hcmdpbjogMDt9XHJcbiAgICAgICAgJi5yb3csIC5yb3cgLnJvdyB7cGFkZGluZzowOyBtYXJnaW46MDt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFNVTU1BUllcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLnRvcGljc19oZWFkZXJcclxuLnRvcGljX3N1bW1hcnlfd3JhcHAge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEuNTYyNWVtO1xyXG4gICAgICAgIC5hcnRpY2xlIHttYXJnaW4tYm90dG9tOiAxLjI1ZW07fVxyXG4gICAgfVxyXG59XHJcbi50b3BpY19zdW1tYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6ICR3aHQ7XHJcbiAgICBwYWRkaW5nOiAzLjEyNWVtO1xyXG4gICAgaDEge2ZvbnQtd2VpZ2h0OiA3MDA7fVxyXG4gICAgLnRvcGljX21lbnVfdGl0bGUge21hcmdpbi10b3A6MXJlbTt9XHJcbiAgICAudG9waWNfbWVudSB7IFxyXG4gICAgICAgIGxpID4gYSB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgY29sb3I6ICRibHVlLWJyaWdodDsgfVxyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLmJhY2stdG8ge1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgY29sb3I6ICRuYXZ5OyB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XHJcbiAgICAgICAgLmNvbHVtbnMge21hcmdpbjogMDsgcGFkZGluZzogMDt9XHJcbiAgICAgICAgLmFydGljbGUge21hcmdpbi1ib3R0b206IDEuMjVlbTt9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAuN2VtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMCAxLjI1ZW0gMDtcclxuICAgICAgICBoMSB7Zm9udC1zaXplOiAxLjRlbTsgcGFkZGluZy1ib3R0b206IDFyZW07fVxyXG4gICAgICAgIC50b3BpY19zdW1tYXJ5X3RpdGxlIHtmb250LXNpemU6IDAuOTVyZW07IG1hcmdpbi1ib3R0b206IDEuMjVyZW07fVxyXG4gICAgICAgIC8vIC50b3BpY19tZW51IHsgbGkgPiBhIHtmb250LXNpemU6MC45NWVtO30gfVxyXG4gICAgICAgIC5hcnRpY2xlIHttYXJnaW4tYm90dG9tOiAxLjI1ZW07fVxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLy8gLnRvcGljX3NlY3Rpb25zX3dyYXBwLFxyXG4ud3JhcHBfZmVhdHVyZWRfc2VjdGlvbiB7XHJcbiAgICBAZXh0ZW5kIC53cmFwcF9nb2VzX3NxdWlzaDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICBoMiB7cGFkZGluZy1ib3R0b206IDAuMnJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC40NXJlbTtcclxuICAgICAgICBwIHtwYWRkaW5nOiAwfVxyXG4gICAgICAgIGgyLCBoNCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwIDAuMnJlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5hcnRpY2xlX3dyYXBwIHtcclxuICAgIGgyIHtwYWRkaW5nOiAxLjVyZW0gMHJlbSAwLjJyZW07IG1hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgaDQge3BhZGRpbmc6IDAuNXJlbSAwcmVtIDAuMnJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHAge3BhZGRpbmc6IDB9XHJcbiAgICAgICAgaDIsIGg0LCBoNSB7cGFkZGluZzogMS41cmVtIDAgMC4ycmVtOyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgICAgICAmLnJvdywgJi5yb3cgLnJvdywge21hcmdpbjogMCBhdXRvO31cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi53cmFwcF9hY3Rpb25zIHtcclxuICAgIEBleHRlbmQgLndyYXBwX2dvZXNfc3F1aXNoO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtwYWRkaW5nLXRvcDogMS43NXJlbTt9XHJcbn1cclxuXHJcbi5ndWlkZXNfd3JhcHBlciB7XHJcbiAgICBtYXgtd2lkdGg6IDU3cmVtO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAmLi1hY3Rpb25zIHtcclxuICAgICAgICBAZXh0ZW5kIC53cmFwcF9nb2VzX3NxdWlzaDtcclxuICAgICAgICBwYWRkaW5nOiAyLjVlbSAwIDA7XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuNzVyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaDIge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yZWxhdGVkLWxpbmtzIHtcclxuICAgIHBhZGRpbmc6IDkwcHggMDtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgcGFkZGluZzogMS4yNWVtIDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIEFDVElPTiBJVEVNU1xyXG4uYWN0aW9uaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmctYm90dG9tOiAxZW0gIWltcG9ydGFudDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIFxyXG4gICAgLmFjdGlvbml0ZW0tdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAmLmNvbHVtbnMge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gZm9yIHJvd3MgbW9yZSB0aGFuIDRcclxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRncnk7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDIxMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuXHJcbiAgICAgICAgLy8gY3VzdG9tIHNpemluZ1xyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDExNjBweCkge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyMzVweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlKTtcclxuICAgICAgICBpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgICAgZm9udC1zaXplOiA0ZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIC8vc21hbGwgKyBtZWRpdW0gb25seVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtmb250LXNpemU6IDJlbTsgfVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7Zm9udC1zaXplOiAzZW07IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgICYuZXh0ZXJuYWwtaWNvbjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6XCJcXGYwOGVcIjtcclxuICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBmb250LXNpemU6IDEuMTI1ZW07IC8vID0gMThweFxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDBweDsgcmlnaHQ6MHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNDM3NWVtIDEuNTYyNWVtOyAvLyA9IDdweCAyNXB4XHJcbiAgICB9XHJcblxyXG4gICAgJi5ub19leHQgeyAmOmJlZm9yZSB7Y29udGVudDpcIlwiO30gfVxyXG4gICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJG5hdnk7XHJcbiAgICAgICAgICAgIC5hY3Rpb25pdGVtLXRpdGxlIHsgY29sb3I6ICR3aGl0ZTsgfVxyXG4gICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpiZWZvcmUge2NvbG9yOiAkd2hpdGU7fVxyXG4gICAgfVxyXG59XHJcbiIsIi8vIFNFQVJDSCBXUkFQUEVSXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi5zZWFyY2gtZm9ybSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTs7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIC5yZXN1bHRzIC5yb3cgLnJvdyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoLWlucHV0IHtcclxuICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgLjI1ZW07XHJcbiAgICAgICAgd2lkdGg6IDkwJTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgLjNzO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IC0xcHg7XHJcbiAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICBoZWlnaHQ6IDQycHg7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgICAgIGhlaWdodDogMzhweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBjb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLm1vcmUtcmVzdWx0cyB7XHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBjdXN0b20gc2VhcmNoIGJyZWFkY3J1bWJzXHJcbiNicmVhZGNydW1iRXh0ZW5zaW9uIHtcclxuICAgIHBhZGRpbmctbGVmdDogNHB4O1xyXG5cclxuICAgIHAge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGZpeCBmb3IgRkYgYW5kIG5vIHRleHQgc2hvd2luZyB1cCBpbiBpbnB1dFxyXG4uc2VhcmNoLWlucHV0IHtcclxuICAgIC8vIGZvbGxvd2luZyBjb2RlIGNvdWxkIGJlIG1vdmVkIGludG8gZ2VuZXJhbCBpbnB1dFxyXG4gICAgcGFkZGluZzogMCAxLjVlbTtcclxufVxyXG5cclxuLnNlYXJjaC1iYXItd3JhcHBlciB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZS1icmlnaHQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICBwYWRkaW5nOiAycHggMTVweDtcclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgcGFkZGluZzogLjVlbSAxLjVlbSAuNWVtIC41ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbW9kYWwncyBzZWFyY2ggaWNvblxyXG4gICAgLm1vZGFsaWNvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHBhZ2Ugc2VhcmNoIGljb25cclxuICAgIC5wYWdlaWNvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtaGVscGVyIHtcclxuICAgIG1hcmdpbjogNDBweCAwIDAgMjBweDtcclxufVxyXG4uc2VhcmNoLXdyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGlucHV0IHtcclxuICAgICAgICBmb250LXNpemUgOiAxcmVtO1xyXG5cclxuICAgICAgICArIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMjBweDtcclxuICAgIFxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxufVxyXG5cclxuQG1peGluIG11bHRpTGluZUVsbGlwc2lzKCRsaW5lSGVpZ2h0OiAxLjJlbSwgJGxpbmVDb3VudDogMSwgJGJnQ29sb3I6ICR3aGl0ZSkge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZUhlaWdodDtcclxuICAgIG1heC1oZWlnaHQ6ICRsaW5lSGVpZ2h0ICogJGxpbmVDb3VudDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNTVweDtcclxuICAgIHdvcmQtc3BhY2luZzogLTFweDtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJy4uLic7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAxZW07XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMWVtO1xyXG4gICAgICAgIHdpZHRoOiAxZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yZW07XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJnQ29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuJXJlc3VsdHMtcmVndWxhciB7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBtYXJnaW4tYm90dG9tIDogMDtcclxuXHJcbiAgICAvL2ZvciBlbGxpcHNpc1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjc1ZW07XHJcblxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbiVyZXN1bHRzLXNtYWxsIHtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgIGZvbnQtc2l6ZTogLjdyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxufVxyXG5cclxuJXJlc3VsdHMtbGFyZ2Uge1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1ib3R0b206IC42NjY3ZW07XHJcbn1cclxuXHJcblxyXG4ucmVzdWx0cyB7XHJcblxyXG4gICAgLnNvcnQtd3JhcHBlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VsZWN0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtcmV1bHRzLXdyYXBwZXIge1xyXG5cclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG5cclxuICAgICAgICAvLyBwcmUtc2VhcmNoIG1lc3NhZ2VcclxuICAgICAgICAucHJlcmVzdWx0cyB7XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC43NWVtO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHt0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkge3RleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHRzLXRpdGxlIHtcclxuICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLWxhcmdlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdHMtdXJsLFxyXG4gICAgLnJlc3VsdHMtY2F0ZWdvcmllcyB7XHJcbiAgICAgICAgQGV4dGVuZCAlcmVzdWx0cy1zbWFsbDtcclxuICAgIH1cclxuXHJcbiAgICAucmVzdWx0LWRlc2NyaXB0aW9uIHtcclxuICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLXJlZ3VsYXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnF1aWNrLWxpbmtzIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgLy8gc21hbGwgb25seSArIG1lZGl1bSBvbmx5XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGxlZnQ7XHJcbiAgICAgICAgICAgIHVsIHtwYWRkaW5nLXJpZ2h0IDogMCAhaW1wb3J0YW50O31cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIC8vIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNWVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMyB7cGFkZGluZy1yaWdodDo1MHB4O31cclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAvLyBzbWFsbCBvbmx5ICsgbWVkaXVtIG9ubHlcclxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MS4yNWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpIHtwYWRkaW5nLWJvdHRvbTogMWVtO31cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgcGFkZGluZyA6IDFlbTtcclxuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGdyZWVuO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgICAvLyBAaW5jbHVkZSBhbmltKGFsbCAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgICAgICAgICAvLyAmOjphZnRlciB7QGluY2x1ZGUgYW5pbShhbGwgLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyX29ubHkoKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiRncmVlbjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIHAge2NvbG9yOiAkd2hpdGU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgICAgICY6YWN0aXZlLFxyXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoLXJlc3VsdHMge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5O1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC4xODc1ZW0gc29saWQgJGJsdWUtYnJpZ2h0O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHsgbWFyZ2luLWJvdHRvbTogMmVtOyB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAucG9zdC1kYXRlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAuNWVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6MTVweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5yZXN1bHRzLXRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLWxhcmdlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgaDQsIHAsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGg0LCBwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRpbWUgey8qZm9udC1zaXplOiAxLjJyZW07Ki8gY29sb3I6ICM3MDcyN2Q7fVxyXG5cclxuICAgIC8vIC5wYWdpbmF0aW9uIHtcclxuICAgIC8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAvLyAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAvLyAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG5cclxuICAgIC8vICAgICBsaSB7XHJcbiAgICAvLyAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuXHJcbiAgICAvLyAgICAgICAgIGEsIHNwYW4ge1xyXG4gICAgLy8gICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAvLyAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvLyAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIC8vICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgLy8gICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgLy8gICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAvLyAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICAgIC8vICAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODVyZW07XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIH1cclxuXHJcbiAgICAvLyAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICBhLCBhOmZvY3VzLCBhOmhvdmVyLCBzcGFuLCBzcGFuOmZvY3VzLCBzcGFuOmhvdmVyIHtcclxuICAgIC8vICAgICAgICAgICYuY3VycmVudHtcclxuICAgIC8vICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAvLyAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XHJcbiAgICAvLyAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlO1xyXG4gICAgLy8gICAgICAgICB9XHJcblxyXG4gICAgLy8gICAgICAgICAmLmRvdHMge1xyXG4gICAgLy8gICAgICAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAvLyAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JleTtcclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxufVxyXG5cclxuLnJlc3VsdHN3cmFwIHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICAucGFnaW5hdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcbiAgICAubm8tcmVzdWx0cyB7XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyZW07XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdHMge1xyXG4gICAgICAgID4gaDQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZhOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwidGFibGUuY2FiVHJhdmVsXHJcbntcclxuXHRtYXJnaW4tbGVmdDogYXV0bztcclxuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7IFxyXG5cdFx0Zm9udC1zaXplOiAuOHJlbTtcclxuXHR9XHJcbn1cclxuXHJcbnRhYmxlLmNhYlRyYXZlbCB0ciB0ZDpudGgtY2hpbGQoNCkgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxyXG5cclxudGFibGUuY2FiVHJhdmVsIHRyIHRoIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxyXG5cclxuLmxlZ2VuZFRleHRcclxue1xyXG5cdGZvbnQtc2l6ZTogLjg4ZW07XHJcblx0bGluZS1oZWlnaHQ6IDMycHg7XHJcbn1cclxuXHJcbi50YWJDb2xvcjEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzQjY2OyB9XHJcblxyXG4udGFiQ29sb3IyIHsgYmFja2dyb3VuZC1jb2xvcjogIzhkOGMzNTsgfVxyXG5cclxuLnRhYkNvbG9yMyB7IGJhY2tncm91bmQtY29sb3I6ICNDQTlBMzE7IH1cclxuXHJcbi50YWJDb2xvcjQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2E3MTMxOyB9XHJcblxyXG4udGFiQ29sb3I1IHsgYmFja2dyb3VuZC1jb2xvcjogI2NjM2MyZjsgfVxyXG5cclxuLmxlZ2VuZEJsb2NrXHJcbntcclxuXHR3aWR0aDogMThweDtcclxuXHRoZWlnaHQ6IDIycHg7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0bWFyZ2luLXRvcDogNHB4O1xyXG5cdGZsb2F0OiBsZWZ0O1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmhpZGVNZWQgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG5kaXYuZ3JpZC1jZWxsXHJcbntcclxuXHR3aWR0aDogMjAlO1xyXG5cdGhlaWdodDogMTZweDtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRmbG9hdDogbGVmdDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbmRpdi5ncmlkLWxhYmVsXHJcbntcclxuXHR3aWR0aDogNTBweDtcclxuXHRoZWlnaHQ6IDE2cHg7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IC0yNXB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRmb250LXNpemU6IDExcHg7XHJcblx0cGFkZGluZy10b3A6IDRweDtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3dwLWNvbnRlbnQvdGhlbWVzL2JvbmVzL3RyYXZlbC9zdGVtLmdpZik7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdCAyNXB4XHJcbn1cclxuXHJcbmRpdi5iYXItY29udGFpbmVyXHJcbntcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAyNXB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5kaXYuYmFyLWJsb2NrXHJcbntcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAyMHB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGZsb2F0OiBsZWZ0XHJcbn1cclxuXHJcbmRpdi5iYXItc2VnbWVudFxyXG57XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGJvdHRvbTogMjVweDtcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0bGluZS1oZWlnaHQ6IDEzcHg7XHJcblx0d2lkdGg6IDEwMHB4O1xyXG5cdGxlZnQ6IC01MHB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRwYWRkaW5nOiA0cHg7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuZGl2LmJhci1ibG9jazpob3Zlcj5kaXYuYmFyLXNlZ21lbnQgeyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuLmljb24tcG5nXHJcbntcclxuXHR3aWR0aDogMjhweDtcclxuXHRoZWlnaHQ6IDI4cHg7XHJcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuXHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiAwIDEycHggMCAwO1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQ4MHB4KSB7XHJcblxyXG50YWJsZS5jYWJUcmF2ZWwgdHIgdGQ6bnRoLWNoaWxkKDIpIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxudGFibGUuY2FiVHJhdmVsIHRyIHRoOm50aC1jaGlsZCgyKSB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5oaWRlTWVkIHsgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcbi5oaWRlU21hbGwgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4uZG93bkxhYmVse21hcmdpbi10b3A6MTZweDt9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjQwcHgpIHtcclxuXHJcbi5zbWFsbGVyLXRleHQgeyBmb250LXNpemU6IC44NWVtICFpbXBvcnRhbnQ7IH1cclxuLnNtYWxsLWRvd257bWFyZ2luLXRvcDoxNnB4ICFpbXBvcnRhbnQ7fVxyXG5cclxuLmljb24tcG5nXHJcbntcclxuXHR3aWR0aDogMTZweDtcclxuXHRoZWlnaHQ6IDE2cHg7XHJcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuXHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiAwIDEycHggMCAwO1xyXG59XHJcbn1cclxuXHJcbi5leHRyYVBhZC1ib3R0b20geyBcclxuXHRwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZXh0cmFQYWQtdG9wIHsgXHJcblx0cGFkZGluZy10b3A6IDEuMjVyZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLndhaXRpbmctb3ZlcmxheSB7IFxyXG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXkgOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdG9wIDogMDtcclxuICAgIGxlZnQgOiAwO1xyXG4gICAgd2lkdGggOiAxMDAlO1xyXG4gICAgaGVpZ2h0IDogMTAwJTtcclxuICAgIGJhY2tncm91bmQgOiAjRkZGRkZGO1xyXG4gICAgb3BhY2l0eSA6IC42OyBcclxufVxyXG5cclxuLndhaXRpbmctb3ZlcmxheSBpbWcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG59IiwiQGltcG9ydCBcclxuJ2JhY2tUb1RvcCcsXHJcbidicmVhZGNydW1icycsXHJcbidjYWxsb3V0cycsXHJcbidnb29nbGUtbWFwcycsXHJcbiduZXdzbGV0dGVyQ1RBJyxcclxuJ25ld3NsZXR0ZXJNb2RhbCcsXHJcbidwYWdpbmF0aW9uJyxcclxuJ3BhbmVscycsXHJcbidjYXJkcycsXHJcbid0b3BuYXYnLFxyXG4nc2VhcmNoTW9kYWwnLFxyXG4nc2hvcnRjb2RlRXhwYW5kJztcclxuIiwiLyogQkFDSyBUTyBUT1BcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLmJhY2stdG8tdG9wIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogM3JlbTsgLy8gPSA1NHB4XHJcbiAgICByaWdodDogMWVtOyAvLyAwLjkzNzVyZW07IC8vID0gMTVweFxyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBwYWRkaW5nOiAxLjI1cmVtOyAvLyAwLjkzNzVyZW0gMC45NzVyZW1cclxuICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cclxuICAgIC8vIGJveC1zaGFkb3c6IDBweCAwcHggN3B4IHJnYmEoJHdoaXRlLCAuNCk7XHJcblxyXG4gICAgQGluY2x1ZGUgYW5pbV9tdWx0aShvcGFjaXR5IC4zcyAwcywgdmlzaWJpbGl0eSAwcyAuM3MpO1xyXG5cclxuICAgIGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgfVxyXG5cclxuICAgIHAgeyBcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC40NWVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjdlbTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjdlbTsgLy8gY291bnRlcnMgZXh0cmEgbGV0dGVyLXNwYWNlIFxyXG4gICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFjay10by10b3AtaXMtdmlzaWJsZSxcclxuICAgICYuYmFjay10by10b3AtZmFkZS1vdXQgeyBAaW5jbHVkZSBhbmltX211bHRpKG9wYWNpdHkgMC4zcyAwcywgdmlzaWJpbGl0eSAwcyAwcyk7IH1cclxuICAgICYuYmFjay10by10b3AtaXMtdmlzaWJsZSB7dmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMTt9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICByaWdodDogMXJlbTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG4gICAgICAgIHJpZ2h0OiAxLjFlbTtcclxuICAgIH1cclxufSIsIiNicmVhZGNydW1icywgI2JyZWFkY3J1bWJFeHRlbnNpb24ge1xyXG4gICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC43cmVtO1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYnJlYWRjcnVtYl9sYXN0IHtcclxuICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgfVxyXG59IiwiLy8gQ0FMTE9VVFNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4uYWxlcnQtdG9wLmNhbGxvdXQge1xyXG4gICAgYmFja2dyb3VuZDogJHNsYXRlO1xyXG4gICAgcGFkZGluZzogLjVyZW0gMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICBoNSwgaDYsIHAge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZmEgeyBwYWRkaW5nOiAwIDNweDsgfVxyXG4gICAgfVxyXG4gICAgJi4taGlnaC1wcmlvcml0eSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHJlZDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkcmVkLCAuMjUpO1xyXG4gICAgfVxyXG4gICAgJi4tbG93LXByaW9yaXR5IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbigkYmx1ZSwgLjI1KTtcclxuICAgIH1cclxuICAgIC5jbG9zZS1idXR0b24geyBcclxuICAgICAgICByaWdodDogMiU7IFxyXG4gICAgICAgIHRvcDogNHB4O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBob3Zlcigpe1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgLnJvdyB7IFxyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41ZW07IFxyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC5jb2x1bW5zIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTsgLy8gY2xvc2UgYnV0dG9uIHNpemVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBoNSxcclxuICAgICAgICBoNixcclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuN2VtO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY2xvc2UtYnV0dG9uICAgICB7IHRvcDogMDsgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY2xvc2UtYnV0dG9uIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIEBpbmNsdWRlIGFuaW0oYWxsIC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi53YXJuLmNhbGxvdXQge1xyXG4gICAgYmFja2dyb3VuZDogJHJlZDtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgLnJvdyB7XHJcbiAgICAgICAgcGFkZGluZzogMy4xMjVlbTtcclxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLy8gbWFwIGxpbmtcclxuLm1lZGlhLW9iamVjdCB7XHJcblx0Ji5tYXAge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cdFx0cGFkZGluZzogMjBweDtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogaW5pdGlhbDtcclxuXHRcdH1cclxuXHRcdGgxLCBoMiwgaDMsIGg0IHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHR9XHJcblx0XHQuYnV0dG9uIHtcclxuXHRcdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRcdGZsb2F0OiByaWdodDtcclxuXHRcdH1cclxuXHRcdC50aHVtYm5haWwge1xyXG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xyXG5cdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRcdGZvbnQtc2l6ZTogNDBweDtcclxuXHRcdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0XHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vLyBVc2luZyBGbGV4IHRvIGZpeCBhIGRpc3BsYXkgaXNzdWUuIFRPRE8sIGZpeCB0aGUgcmVmZXJlbmNlLCBwb3NzaWJseSBGb3VuZGF0aW9uIFhZIGlzIG5vdCBpbXBvcnRlZCBwcm9wZXJseVxyXG4uYnV0dG9uIHtcclxuXHQmLm1hcCB7XHJcblx0XHQuYWxpZ24tbWlkZGxlIHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0LXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHQtbXMtZmxleC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0fVxyXG5cdFx0LnNocmluayB7XHJcblx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0XHQmLmZpcnN0IHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdCYubGFzdCB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jbWFwIHtcclxuICAgIGhlaWdodDogNzV2aDtcclxuICAgIG1heC1oZWlnaHQ6IDgwMHB4O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHRtaW4taGVpZ2h0OiAwO1xyXG5cdFx0aGVpZ2h0OiAzMDBweDtcclxuXHR9XHJcbiAgICBoMSxcclxuICAgIHAsXHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogIzBhMGEwYTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbiNtYXAtY2FudmFzIGltZyB7XHJcblx0bWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nbS1zdHlsZSAuZ20tc3R5bGUtaXcge1xyXG5cdHdpZHRoOiAzNTBweCAhaW1wb3J0YW50O1xyXG5cdHRvcDogMTVweCAhaW1wb3J0YW50O1xyXG5cdGxlZnQ6IDBweCAhaW1wb3J0YW50O1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0Ym94LXNoYWRvdzogMCAxcHggNnB4IHJnYmEoMTc4LCAxNzgsIDE3OCwgMC42KTtcclxuXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDcyLCAxODEsIDIzMywgMC42KTtcclxuXHRib3JkZXItcmFkaXVzOiAwO1xyXG5cdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHR3aWR0aDogMjUwcHggIWltcG9ydGFudDtcclxuXHR9XHJcbn1cclxuXHJcbiNpdy1jb250YWluZXIge1xyXG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0QG1lZGlhICN7JG1lZGl1bS1kb3dufXtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0fVxyXG5cdC5pdy10aXRsZSB7XHJcblx0XHRmb250LWZhbWlseTogJ09wZW4gU2FucyBDb25kZW5zZWQnLCBzYW5zLXNlcmlmO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdHBhZGRpbmc6IDEwcHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNDhiNWU5O1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7XHJcblx0XHRAbWVkaWEgI3skbWVkaXVtLWRvd259e1xyXG5cdFx0XHRmb250LXNpemU6IDEycHg7XHJcblx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQuaXctY29udGVudCB7XHJcblx0XHRmb250LXNpemU6IDEzcHg7XHJcblx0XHRsaW5lLWhlaWdodDogMThweDtcclxuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDFweDtcclxuXHRcdHBhZGRpbmc6IDE1cHggNXB4IDAgMTVweDtcclxuXHRcdG1heC1oZWlnaHQ6IDE0MHB4O1xyXG5cdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xyXG5cdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xyXG5cdFx0QG1lZGlhICN7JG1lZGl1bS1kb3dufXtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHRwYWRkaW5nOiA1cHggMTBweDtcclxuXHRcdFx0bWF4LWhlaWdodDogMTAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbi5pdy1jb250ZW50IHtcclxuXHRpbWcge1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0bWFyZ2luOiAwIDVweCA1cHggMTBweDtcclxuXHR9XHJcblx0cCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdH1cclxufVxyXG4uaXctc3ViVGl0bGUge1xyXG5cdGZvbnQtc2l6ZTogMTZweDtcclxuXHRmb250LXdlaWdodDogNzAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0QG1lZGlhICN7JG1lZGl1bS1kb3dufXtcclxuXHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHR9XHJcbn1cclxuIiwiQGltcG9ydCAnaGVscGVycy9taXhpbnMnO1xyXG5cclxuI25ld3NsZXR0ZXIge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRnb2xkO1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2NvYS5wbmcnKTtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAtMjUwcHg7XHJcblx0Y29sb3I6ICR3aGl0ZTtcclxuXHRwYWRkaW5nOiA0ZW0gMDtcclxuXHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuXHRcdHBhZGRpbmc6IDJlbSAwO1xyXG5cdH1cclxuXHJcblx0LnNpZGViYXItbmF2aWdhdGlvbi10ZXh0IHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0fVxyXG5cdFxyXG5cdC5mbGFpciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAuNWVtO1xyXG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0cGFkZGluZzogMTVweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDQ1cHg7XHJcblx0XHRmb250LXNpemU6IDEuNXJlbTtcclxuXHRcdGNvbG9yOiAkZ29sZDtcclxuXHR9XHJcblxyXG5cdGgxIHtcclxuXHRcdGZvbnQtc2l6ZTogMTQuNHB4ICFpbXBvcnRhbnQ7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHR9XHJcblxyXG5cdHAgeyBjb2xvcjogJHdoaXRlOyB9XHJcblxyXG5cdGEge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHJcblx0XHQmOmhvdmVye1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QG1lZGlhICN7JG1lZGl1bS11cH17XHJcblx0XHQuZmllbGQtd3JhcHtcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdHdpZHRoOiAyNSU7XHJcblx0XHRcdHBhZGRpbmc6IDAgNXB4O1xyXG5cdFx0fVxyXG5cdFx0Lm5pbmphLWZvcm1zLWFsbC1maWVsZHMtd3JhcCB7XHJcblx0XHRcdCNuaW5qYV9mb3Jtc19maWVsZF82X2Rpdl93cmFwLFxyXG5cdFx0XHQjbmluamFfZm9ybXNfZmllbGRfMTFfZGl2X3dyYXAge1xyXG5cdFx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgaW5wdXQge1xyXG5cdFx0Ym9yZGVyOiA1cHggc29saWQgZGFya2VuKCRnb2xkLCAuNjUpO1xyXG5cdFx0b3V0bGluZTogMDtcclxuXHRcdHBhZGRpbmc6IDAgMjVweDtcclxuXHRcdG1pbi1oZWlnaHQ6IDYwcHg7XHJcblx0XHRmb250LXdlaWdodDogMTAwO1xyXG5cdFx0Zm9udC1zaXplOiAxZW07XHJcblx0XHRsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuXHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XHJcblx0XHRib3gtc2hhZG93OiBub25lO1xyXG5cdFx0QGluY2x1ZGUgaG92ZXIge1xyXG5cdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJveC1zaGFkb3csIDAgMCA4cHggM3B4IGRhcmtlbigkZ29sZCwgOCUpKTtcclxuXHRcdH1cclxuXHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiAxMDA7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG5cdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRcdHBhZGRpbmc6IDIwcHggMDtcclxuXHRcdH1cclxuXHR9XHJcbn0iLCIjbmV3c2xldHRlck1vZGFsLCAjbmV3c2xldHRlck1vZGFsMiB7XHJcblx0ei1pbmRleDogMTA7XHJcblx0Y29sb3I6ICR3aGl0ZTtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuXHJcblx0aDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdH1cclxuXHJcblx0LmZsYWlyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDFlbTtcclxuXHJcblx0XHQuZmEtaW52ZXJzZSB7XHJcblx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5uaW5qYS1mb3Jtcy1jb250IHtcclxuXHRcdGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XHJcblx0XHRcdGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cdFx0XHRib3JkZXItY29sb3I6ICRnb2xkO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHRcdC5uaW5qYS1mb3Jtcy1maWVsZC1lcnJvciBwe1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkcmVkLWJyaWdodDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Jjpmb2N1cyB7XHJcblx0XHRvdXRsaW5lOiBub25lO1xyXG5cdH1cclxuXHJcblx0W3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSd0ZXh0J106Zm9jdXMge1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHR9XHJcblxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tdXB9e1xyXG5cdFx0Lm5pbmphLWZvcm1zLWFsbC1maWVsZHMtd3JhcHtcclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzZfZGl2X3dyYXB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdH1cclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzdfZGl2X3dyYXB7XHJcblx0XHRcdFx0d2lkdGg6IDYwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHQjbmluamFfZm9ybXNfZmllbGRfOF9kaXZfd3JhcHtcclxuXHRcdFx0XHR3aWR0aDogNDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG5cdFx0aGVpZ2h0OiBpbmhlcml0O1xyXG5cdFx0bWluLWhlaWdodDogaW5oZXJpdDtcclxuXHRcdHdpZHRoOiA5NSU7XHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHR9XHJcbn1cclxuXHJcbi8vIE5ld3NsZXR0ZXIgRm9ybVxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4ubmluamEtZm9ybXMtcmVxdWlyZWQtaXRlbXMsIC5pbnB1dC1jb3VudGVye1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5uaW5qYS1mb3Jtcy1yZXNwb25zZS1tc2cge1xyXG5cdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLm5pbmphLWZvcm1zLWZpZWxkLWVycm9yIHAge1xyXG5cdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMzIpO1xyXG5cdGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcblx0cGFkZGluZzogM3B4IDIwcHggMDtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi8vIGxhYmVsIHtcclxuLy8gXHQmI25pbmphX2Zvcm1zX2ZpZWxkXzZfbGFiZWwsXHJcbi8vIFx0JiNuaW5qYV9mb3Jtc19maWVsZF83X2xhYmVsLFxyXG4vLyBcdCYjbmluamFfZm9ybXNfZmllbGRfMTFfbGFiZWwsXHJcbi8vIFx0JiNuaW5qYV9mb3Jtc19maWVsZF8yMV9sYWJlbCxcclxuLy8gXHQmI25pbmphX2Zvcm1zX2ZpZWxkXzMxX2xhYmVsIHtcclxuLy8gXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4vLyBcdFx0dG9wOiAtOTk5OXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRsZWZ0OiAtOTk5OXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4ubmluamEtZm9ybXMtY29udCB7XHJcblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXdpZHRoOiAycHg7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAxcmVtO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4xMmVtO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcclxuXHRcdHBhZGRpbmc6IDIwcHggMDtcclxuXHR9XHJcbn0iLCIucGFnaW5hdGlvbiB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCxcclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhLCBzcGFuIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODVyZW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuY3VycmVudCB7XHJcbiAgICAgICAgICAgICAgICAvLyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gJjpudGgtY2hpbGQobis0KXtcclxuICAgICAgICAvLyAgICAgYSwgc3BhbiB7XHJcbiAgICAgICAgLy8gICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIC8vICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgLy8gICAgIGEsIHNwYW4ge1xyXG4gICAgICAgIC8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgLy8gICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC5kb3RzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGEsXHJcbiAgICAgICAgICAgIGE6Zm9jdXMsXHJcbiAgICAgICAgICAgIGE6aG92ZXIsXHJcbiAgICAgICAgICAgIHNwYW4sXHJcbiAgICAgICAgICAgIHNwYW46Zm9jdXMsXHJcbiAgICAgICAgICAgIHNwYW46aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAuZGlzYWJsZWQge1xyXG4gICAgICAgICAgICBhLFxyXG4gICAgICAgICAgICBhOmZvY3VzLFxyXG4gICAgICAgICAgICBhOmhvdmVyLFxyXG4gICAgICAgICAgICBzcGFuLFxyXG4gICAgICAgICAgICBzcGFuOmZvY3VzLFxyXG4gICAgICAgICAgICBzcGFuOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3J5X211dGVkO1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JleTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iLCIucGFuZWwge1xyXG4gICAgLndpZGdldCB7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRncmF5O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncnlsaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICRnb2xkO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4xcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDMsXHJcbiAgICAgICAgaDQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG5hdnk7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGg0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgICAgICBjb2xvcjogJGdyZXlkYXJrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGFjdC1wYW5lbCB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Zyb20gY29udmVyc2lvblxyXG4gICAgICAgICYuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCxcclxuICAgICAgICA+IDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoMS5zdWJoZWFkZXIsIGgyLnN1YmhlYWRlciwgaDMuc3ViaGVhZGVyLCBoNC5zdWJoZWFkZXIsIGg1LnN1YmhlYWRlciwgaDYuc3ViaGVhZGVyIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIENBUkQgU1RZTEVTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vIFRPRE8gUmV3b3JrIHRoaXMgYXMgYSBnZW5lcmljXHJcbi5jYXJkX2xpbmtzIHtcclxuICAgIC5kYXRhLWxpc3QtZWxlbWVudCB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVlbSAwLjVlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IC8vID0gMTVweFxyXG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyeWxpdGU7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwLjE4NzVlbSBzb2xpZCAkYmx1ZS1icmlnaHQ7IC8vID0gM3B4XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZSk7XHJcblxyXG4gICAgICAgICAgICBzcGFuIHttYXJnaW4tcmlnaHQ6IDFlbTt9XHJcblxyXG4gICAgICAgICAgICAmLm5vX2V4dCB7ICY6YmVmb3JlIHtjb250ZW50OlwiXCI7fSB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibHVlLWJyaWdodDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6MWVtO1xyXG4gICAgICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOjA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLy8gTkFWSUdBVElPTlxyXG4vLyBCb3Jyb3dlZCBmcm9tIFBBIEdPVlxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4vLyBmaWxlIHNwZWNpZmljIHZhcmlhYmxlc1xyXG4kbmF2WkluZGV4OiAzO1xyXG4kbGFuZ2JhckhlaWdodDogMzVweDtcclxuXHJcbi5uYXYtaXMtb3BlbiB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5uYXYge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB6LWluZGV4OiAkbmF2WkluZGV4O1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG5cclxuICAgIFxyXG5cclxuICAgIC5uYXYtY29udGFpbmVyIHtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoNzAsNzAsNzAsMC41KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBOQVY6IExpbmtzICsgTG9nb1xyXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbiAgICB1bCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgbWF4LWhlaWdodDogNjVweDtcclxuICAgICAgICBcclxuICAgICAgICAvLyBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHttaW4taGVpZ2h0OiA2NXB4O31cclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgICAgICAgICAgPiBhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCA1cHg7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgMTUwbXMgZWFzZSk7XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3Zlcigpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggMCAzcHggMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyKCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuOTUpKTtcclxuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVooMCkgc2NhbGUoMSwgMSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5sb2Mge1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA2MnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4sIGkge2Rpc3BsYXk6IGlubGluZS1ibG9jazt9XHJcbiAgICAgICAgICAgICAgICAgICAgaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuYWN0aXZlIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzbGF0ZTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncnk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIGFjdGl2YXRlIG5hdiBkcm9wZG93bnMgKi9cclxuICAgICAgICAgICAgJjpob3ZlciA+IHVsIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAuM3MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogTkFWOiBkcm9wZG93bnMgKi9cclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcclxuICAgICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDoxMDAlO1xyXG4gICAgICAgICAgICBsZWZ0OjA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6MDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZsb2F0Om5vbmU7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDoyMDBweDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncnlsaXRlO1xyXG4gICAgICAgICAgICAgICAgYSB7IGNvbG9yOiAkc2xhdGU7IH1cclxuICAgICAgICAgICAgICAgICYuYWN0aXZlIGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyeV9tdXRlZDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAuM3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjEyMCU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjEwcHggMTVweDtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246bGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmF2aXRlbSB7XHJcblxyXG4gICAgICAgIC5tZW51bGFiZWwge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEwLjUxMnB4O1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC43MnB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjczZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEzcHggNXB4O1xyXG5cclxuICAgICAgICAgICAgLmZhIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ29sZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZ29vZ2xlLXRyYW5zbGF0ZSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAucmlnaHQge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5uYXYtcmlnaHQtaGlkZGVuIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5sZWZ0IHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBtb2JpbGVcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIC5yb3cgeyBwYWRkaW5nLWxlZnQ6IDAuMjVlbTsgcGFkZGluZy1yaWdodDogMC4yNWVtOyB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tb2JpbGUtb25seSB7IFxyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcclxuICAgIH1cclxufVxyXG5cclxuLyogTkFWOiBNT0JJTEUgVFJJR0dFUlxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLy8gbm90ZTogcmVkZXNpZ25lZCBtYWRlIHRoaXMgYSB1bml2ZXJzYWwgc3R5bGVcclxuLm5hdi13cmFwcGVyIHtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ29sZDtcclxufVxyXG4ubmF2IC5uYXYtdHJpZ2dlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogNDVweDtcclxuICAgIGhlaWdodDogNDVweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgJi5uYXYtb3BlbiB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC5pbm5lciwgLmlubmVyOjpiZWZvcmUsIC5pbm5lcjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGhlaWdodDogM3B4O1xyXG4gICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pbm5lciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdG9wOiAxNXB4O1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgLmlubmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGxlZnQ6IDclO1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDRweDtcclxuICAgICAgICAgICAgICAgIC8vIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubWVudWxhYmVsIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbCgpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNTEycHg7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNzJweDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGJvdHRvbTogLTI1cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tZW51bGFiZWwge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbCgpO1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbn1cclxuXHJcbi8qIE5BVjogbW9iaWxlIGxlZnQgc2xpZGVvdXQgbWVudVxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuI25hdi1tZW51IHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgei1pbmRleDogJG5hdlpJbmRleCAtIDE7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICBjb2xvcjogJG5hdnk7XHJcbiAgICBAaW5jbHVkZSBhbmltKGFsbCAzMDVtcyBlYXNlKTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMzBweDsgLy8gc2l6ZSBvZiBmaXhlZCB0b3AgbmF2IHdpdGggbGFuZ3VhZ2UgYmFyXHJcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XHJcbiAgICAmLmFjdGl2ZSB7bGVmdDogMDt9XHJcbiAgICB1bCB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgMTUwbXMgZWFzZSk7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7Y29sb3I6ICRibHVlLWJyaWdodDt9XHJcbiAgICB9XHJcbiAgICBociB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgIH1cclxuICAgIC8qIFNPQ0lBTCBJQ09OUyAqL1xyXG4gICAgLnNvYyB7XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICBjb2xvcjogJGdyeWxpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVlbTtcclxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuODVlbTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEuODc1ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShlYXNlLWluLW91dCBhbGwgLjNzKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7Y29sb3I6ICRibHU7fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNlYXJjaC1hbHQgYSB7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyLjA1O1xyXG4gICAgZm9udC1zaXplOiAuNjVlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAuZmEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gdGhpcyBpcyBmb3IgdGhlIHNlYXJjaCBidXR0b25cclxuLm5hdmJhci10ZXh0IHtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMS4zMnB4O1xyXG4gICAgZm9udC1zaXplOiAxMC40cHg7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuMDRweDtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgIC1tb3otdGV4dC1zaXplLWFkanVzdDogMTAwJTtcclxufVxyXG5cclxuLm5hdml0ZW0tc2VhcmNoIHtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgY29sb3I6ICRncmVlbjtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XHJcbn1cclxuXHJcbi5kZXNrdG9wLXNlYXJjaC13cmFwIHtcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRibHVlLWJyaWdodDtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcclxuICAgIHBhZGRpbmc6IC4xZW0gLjVlbSAuMWVtIDFlbTtcclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjowO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogLjhlbTtcclxuICAgICAgICBwYWRkaW5nOjA7XHJcbiAgICAgICAgY29sb3I6ICRncmV5ZGFyaztcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgLjNzO1xyXG4gICAgICAgIFxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBidXR0b24uc2VhcmNoLWJ1dHRvbiB7XHJcbiAgICAgICAgaGVpZ2h0OiAxLjVlbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNWVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBMQU5HVUFHRSBCQVI6IGFib3ZlIHJlZ3VsYXIgbmF2aWdhdGlvblxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbiVsYW5nLWJhciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBoZWlnaHQ6ICRsYW5nYmFySGVpZ2h0O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHAge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBsaW5lLWhlaWdodDogJGxhbmdiYXJIZWlnaHQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5sYW5ndWFnZS1iYXIge1xyXG4gICAgQGV4dGVuZCAlbGFuZy1iYXI7XHJcbn1cclxuXHJcbi8qIExhbmd1YWdlIEJhciAqL1xyXG4vKioqKioqKioqKioqKioqKi9cclxuXHJcbi5sYW5ndWFnZS1iYXIge1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIHBhZGRpbmc6IDAuMjVyZW0gLjVyZW07XHJcbiAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQ6ICRncnk7XHJcbiAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNsYXRlO1xyXG4gICAgLmgzIHttYXJnaW4tYm90dG9tOiAwO31cclxuICAgICBkaXYge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjllbTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxufVxyXG4ubGFuZ3VhZ2UtYmFyLWxlZnQge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgLy8gcGFkZGluZy1sZWZ0OiAuMjVlbTtcclxuICAgIG1heC13aWR0aDogNjAlO1xyXG4gICAgYSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNWVtO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCl7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICBhLFxyXG4gICAgc3BhbiB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcclxuICAgIH1cclxufVxyXG4ubGFuZy1sb2dvLCAuYWdlbmN5LWxvZ28uaGlkZS1mb3ItbGFyZ2Uge1xyXG4gICAgaGVpZ2h0OiAyNXB4O1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbn1cclxuYSNidG4tbGFuZ3VhZ2Uge1xyXG4gICAgd29yZC1icmVhazogbm9ybWFsO1xyXG59XHJcbiNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiAuNWVtO1xyXG4gICAgaGVpZ2h0OiAyZW07XHJcbn0iLCIjc2VhcmNoTW9kYWwge1xyXG5cdHBhZGRpbmc6IDJlbTtcclxuXHR3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuXHJcblx0Lm1vZGFsV3JhcHBlciB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0YWxpZ24tY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAyZW07XHJcblxyXG5cdFx0LmZhIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxLjVyZW07XHJcblx0XHR9XHJcblxyXG5cdFx0Zm9ybSB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlucHV0IHtcclxuXHRcdFx0Zm9udC1zaXplOiAxZW07XHJcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHRwYWRkaW5nOiAwIC4yNWVtO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS4yNWVtO1xyXG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcblx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXI6IDA7XHJcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHRcdG91dGxpbmU6IDA7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gbW92ZSBpdCB1cCBvbiB0aGUgc2NyZWVuXHJcbiAgICAgICAgICAgIC5zZWFyY2gtYmFyLXdyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNmVtOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbW92ZSBpdCB1cCBvbiB0aGUgc2NyZWVuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICAgICAgICAuc2VhcmNoLWJhci13cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHR9XHJcbiAgICBcclxuICAgIGJ1dHRvbiB7XHJcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICB9XHJcbn0iLCIuc2hvcnRjb2RlLWV4cGFuZCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmUgIWltcG9ydGFudDtcclxuXHJcbiAgICAgICAgLy8gcmVzZXRpbmcgVUwgc3R5bGVzIGluc2lkZSBvdXIgZXhwYW5kIFVMXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBkaXNjO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNWVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGdvbGQ7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICBtYXJnaW46IDEuMjVlbSAwO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZSk7XHJcblxyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfSBcclxuICAgICAgICBcclxuICAgIC5hY2NvcmRpb24taXRlbS5pcy1hY3RpdmUge1xyXG4gICAgICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAgICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmFjY29yZGlvbi1jb250ZW50IHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBtYXJnaW46IDAgMCAxLjI1ZW07XHJcblxyXG4gICAgICAgIHA6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGRlZmF1bHQgZm91bmRhdGlvbiBzdHlsZVxyXG4gICAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRnb2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFub3RoZXIgZGVmYXVsdCBmb3VuZGF0aW9uIHN0eWxlXHJcbiAgICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlbW92ZSBmb3VuZGF0aW9ucyBwbHVzXHJcbiAgICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGZvciBhbiBleHBhbmQgaW4gdGhlIGZlYXR1cmVkIHNlY3Rpb25zXHJcbi53cmFwcF9mZWF0dXJlZF9zZWN0aW9uIC5zaG9ydGNvZGUtZXhwYW5kIHtcclxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbiAgICBcclxuICAgIC5hY2NvcmRpb24taXRlbSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmFjY29yZGlvbi1pdGVtIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn0iLCJAaW1wb3J0XHJcbi8vIFRPRE8gUkVNT1ZFIENPTlZFUlNJT04gQUZURVIgU1RZTEUgQVJFIE1JR1JBVEVEXHJcbi8vIFwidGhlbWUvY29udmVyc2lvblwiLFxyXG5cImFuY2hvcnNcIixcclxuXCJidXR0b25zXCIsXHJcblwiY29tbWVudHNcIixcclxuXCJldmVudHNcIixcclxuXCJmb290ZXJcIixcclxuXCJoZWFkZXJcIixcclxuXCJob21lXCIsXHJcblwibW9kYWxcIixcclxuXCJuZXdzcm9vbVwiLFxyXG5cInBhZ2VzXCIsXHJcblwicHJpb3JpdGllc1wiLFxyXG5cInNlbGVjdFwiLFxyXG5cInNpZGViYXJcIixcclxuXCJzaXRlbWFwXCIsXHJcblwidGFibGVzXCIsXHJcblwidHlwb2dyYXBoeVwiO1xyXG4iLCJhe1xyXG4gICAgY29sb3I6ICRibHVlLWJyaWdodDtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgLjJzIGVhc2UpO1xyXG4gICAgLmZlYXR1cmVkICYge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIE5PVEUgVGhpcyBtYXkgbm90IGJlIGEgMTAwJSBjb3JyZWN0IHNvbHV0aW9uXHJcbi5jb250ZW50IGE6bm90KFtjbGFzc10pLFxyXG4jY29udGVudCAjbWFpbiBhOm5vdChbY2xhc3NdKSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgfVxyXG59IiwiLy8gQlVUVE9OUy5zY3NzXHJcblxyXG4lYnV0dG9uLWRlZmF1bHQge1xyXG4gIGxldHRlci1zcGFjaW5nOiAuMTJlbTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogJGdvbGQ7XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgfVxyXG4gICYuc2Vjb25kYXJ5LFxyXG4gICYuc3VjY2VzcyxcclxuICAmLmFsZXJ0LFxyXG4gICYud2FybmluZyxcclxuICAmLmluZm8ge1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLmV4cGFuZCB7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDI1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4lYnV0dG9uLWdvbGQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNDQTlBMzEgIWltcG9ydGFudDtcclxuICBjb2xvcjogI0ZGRiAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDE1cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxufVxyXG5cclxuJWJ1dHRvbi13aGl0ZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuICAmOmhvdmVye1xyXG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwyMjUsMjI1LC4yKTtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbiVidXR0b24tYmx1ZS1icmlnaHQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWJyaWdodCAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjRkZGICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMTVweDtcclxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbiVidXR0b24tcmVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLWJyaWdodCAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjRkZGICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMTVweDtcclxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG59XHJcblxyXG4uYnV0dG9uIHtcclxuICBAZXh0ZW5kICVidXR0b24tZGVmYXVsdDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT0nYnV0dG9uJ10ge1xyXG4gIEBleHRlbmQgJWJ1dHRvbi1kZWZhdWx0O1xyXG4gIEBleHRlbmQgJWJ1dHRvbi1nb2xkO1xyXG59XHJcblxyXG4uYnRuIHtcclxuICAmLmJ0bi1zdWNjZXNzIHtcclxuICAgIEBleHRlbmQgJWJ1dHRvbi1kZWZhdWx0O1xyXG4gICAgQGV4dGVuZCAlYnV0dG9uLWdvbGQ7XHJcbiAgfVxyXG59XHJcblxyXG4uYnRuLXdoaXRle1xyXG4gIEBleHRlbmQgJWJ1dHRvbi13aGl0ZTtcclxufVxyXG5cclxuLmJ0bi1ibHVlLWJyaWdodCB7XHJcbiAgQGV4dGVuZCAlYnV0dG9uLWJsdWUtYnJpZ2h0O1xyXG59XHJcblxyXG4ubW9yZXtcclxuICB3aWR0aDogMzY4cHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctbGVmdDogMjVweDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIEBpbmNsdWRlIHNwcml0ZSgxNHB4LCAxOXB4LCAtNjBweCwgLTkwcHgpO1xyXG4gICY6YmVmb3Jle1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDIwcHg7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHJpZ2h0IDBzIGVhc2UsIHdpZHRoIC4wcyBlYXNlLCBvcGFjaXR5IC4ycyk7XHJcbiAgfVxyXG4gICY6aG92ZXJ7XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggLTYwcHg7XHJcbiAgICAgIHJpZ2h0OiAtMnB4O1xyXG4gICAgICB3aWR0aDogMXB4O1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHJpZ2h0IC4ycyBlYXNlLCB3aWR0aCAuMnMgLjFzIGVhc2UsIG9wYWNpdHkgMHMgLjNzKTtcclxuICAgIH1cclxuICB9XHJcbiAgJi53aGl0ZXtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtNjBweDtcclxuICAgIH1cclxuICAgICY6aG92ZXI6YmVmb3Jle1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtOTBweDtcclxuICAgIH1cclxuICB9XHJcbiAgJi53aGl0ZS1zbXtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzBweCAtOTBweDtcclxuICAgICAgd2lkdGg6IDhweDtcclxuICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAmLnRpbnl7XHJcbiAgICB3aWR0aDogMjA2cHg7XHJcbiAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwLjZyZW07XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICAgIHRvcDogOHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICBAbWVkaWEgI3skc21hbGwtb25seX17XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZpbGUgVXBsb2FkIFNwZWNpZmljc1xyXG4ubmYtZnUtcHJvZ3Jlc3MtYmFyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbn1cclxuXHJcbi5maWxlc191cGxvYWRlZCB7XHJcbiAgLmRlbGV0ZSB7XHJcbiAgICBAZXh0ZW5kICVidXR0b24tZGVmYXVsdDtcclxuICAgIEBleHRlbmQgJWJ1dHRvbi1yZWQ7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgY29sb3I6ICRyZWQtYnJpZ2h0ICFpbXBvcnRhbnQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogXCJSRU1PVkVcIjtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGxlZnQ6IDhweDtcclxuICAgICAgdG9wOiAzcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIENPTU1FTlRTLnNjc3NcclxuXHJcbiNyZXNwb25ke1xyXG5cdG1hcmdpbi10b3A6IDUwcHg7XHJcblx0cGFkZGluZy10b3A6IDUwcHg7XHJcblx0Ym9yZGVyLXRvcDogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0LmZvcm0tc3VibWl0e1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdGlucHV0e1xyXG5cdFx0XHRvdXRsaW5lOiBub25lO1xyXG5cdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgZWFzZSAuMnMpO1xyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufSIsIi8vIEV2ZW50cy5zY3NzXHJcblxyXG4ucHJldl9uZXh0X2xpbmtzIHtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX0geyBtYXJnaW4tYm90dG9tOiAyZW07IH1cclxufVxyXG5cclxuLnBhX2dvdl9ldmVudCB7XHJcblx0KyAucGFfZ292X2V2ZW50IHtcclxuXHRcdHBhZGRpbmctdG9wOiAyZW07XHJcblx0fVxyXG59XHJcblxyXG4udHJpYmUtZXZlbnRzLWxvb3AgLnR5cGUtdHJpYmVfZXZlbnRzLnRyaWJlLWV2ZW50cy1sYXN0LFxyXG4ucGFfZ292X2V2ZW50IHtcclxuXHRtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHQucm93IHtcclxuXHRcdHBhZGRpbmc6IDI1cHggMTBweDtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGJvcmRlcjogc29saWQgMXB4ICRibGFjaztcclxuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XHJcblx0fVxyXG5cdCYtZGF0ZXtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7IGZvbnQtc2l6ZTogLjhyZW07IH1cclxuXHRcdHNwYW57XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLW1vbnRoe1xyXG5cdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHR9XHJcblx0Ji1kYXl7XHJcblx0XHRmb250LXNpemU6IDMuNWVtO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuMWVtO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHR9XHJcblx0Ji15ZWFye1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdH1cclxuXHQmLXRpbWV7XHJcblx0XHRmb250LXNpemU6IC45ZW07XHJcblx0XHQuZmEge1xyXG5cdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdGZvbnQtc2l6ZTogMS4yNWVtO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLXRpdGxle1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdC5mYSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogNzUlO1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHRcdGEge1xyXG5cdFx0XHRAaW5jbHVkZSBob3ZlcigpIHtcclxuXHRcdFx0XHRjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdCYtc2hhcmVCYXJ7XHJcblx0XHRib3JkZXI6IHNvbGlkIDJweCAkZ29sZDtcclxuXHRcdHBhZGRpbmc6IDEwcHggMjBweDtcclxuXHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX0geyBcclxuXHRcdFx0cGFkZGluZzogMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuc2hhcmUtdGl0bGUge1xyXG5cdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHR9XHJcblx0XHQucHVsbC1yaWdodCB7XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiAzcHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDhweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuZmEge1xyXG5cdFx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblxyXG5cdFx0XHRAbWVkaWEgI3skc21hbGwtb25seX0geyBcclxuXHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7IFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuY2FsLWxpbmt7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0YXtcclxuXHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRmbG9hdDogbm9uZTtcclxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcclxuXHJcblx0XHRcdH1cclxuXHRcdFx0LmZhIHtcclxuXHRcdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5ldmVudHMtc2VhcmNoLWhlYWRlcntcclxuXHRwYWRkaW5nOiAyMHB4IDMwcHggMTVweDtcclxuXHRtYXJnaW46IDA7XHJcblx0Ym9yZGVyOiBzb2xpZCAxcHggJGJsYWNrO1xyXG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdGgxe1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHR9XHJcbn1cclxuXHJcbi50cmliZS1ldmVudHMtdmVudWUtZGV0YWlscyB7XHJcblx0cGFkZGluZy10b3A6IDNweDtcclxuXHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdC5mYSB7XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHR9XHJcblx0YWJicntcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHR9XHJcblx0YSB7XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRtYXJnaW46IC0ycHggMCAwIDVweDtcclxuXHRcdGFiYnIudHJpYmUtZXZlbnRzLWFiYnJ7XHJcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0fVxyXG5cdH1cdFxyXG59XHJcblxyXG4udHJpYmUtZXZlbnRzLXN1Yi1uYXZ7XHJcblx0bWFyZ2luLXRvcDogNDBweDtcclxuXHQudHJpYmUtZXZlbnRzLW5hdi1wcmV2aW91cywgLnRyaWJlLWV2ZW50cy1uYXYtbmV4dHtcclxuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRtYXJnaW46IDAgNXB4O1xyXG5cdFx0YXtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRjb2xvcjogIzAwMDtcclxuXHRcdFx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0XHRcdGhlaWdodDogMzVweDtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjhlbTtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0c3BhbntcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRhOmhvdmVye1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHdoaXRlLCA1JSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZmVhdHVyZWQtZXZlbnR7XHJcblx0LnRpdGxlLWNvbnRhaW5lcntcclxuXHRcdHBhZGRpbmc6IDAgMzBweDtcclxuXHR9XHJcblx0Lm5ld3MtcG9zdC10aXRsZXtcclxuXHRcdHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0XHQvLyBAaW5jbHVkZSBzcHJpdGUoMjZweCwgMjlweCwgLTE1MHB4LCAtMTgwcHgpO1xyXG5cdH1cclxuXHQucGFfZ292X2V2ZW50IHtcclxuXHRcdCYtc2hhcmVCYXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0LmZhIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdH1cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvLyBGT09URVIuc2Nzc1xyXG5mb290ZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdC8vIGJhY2tncm91bmQ6ICRibHVlO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR1bCB7IFxyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bGkgeyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cclxuXHR9XHJcbiAgICAuY29sdW1ucyB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cdH1cclxuXHQjc2l0ZS1mb290ZXItbmF2e1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0Ym9yZGVyLXRvcDogc29saWQgMnB4IGxpZ2h0ZW4oJGJhc2UsIDEwJSk7XHJcblx0XHRsaXtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOiA3cHggMHB4O1xyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdHBhZGRpbmc6IDdweCAxNHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDhlbTtcclxuXHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDVweCk7XHJcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kIC4ycyBlYXNlLCBjb2xvciAuMnMgZWFzZSk7XHJcblx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDYlKTtcclxuXHRcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNDAlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JjphY3RpdmV7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA4JSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcbiAgICB9XHJcblxyXG4gICAgI2NvcHlyaWdodCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYSxcclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuNjVlbTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IC43NWVtO1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhLFxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggIzY2NjtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICAgICAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCBhIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS1lbnRlcnByaXNlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDQwcHggNDBweCA0MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICBmb290ZXIge1xyXG4gICAgICAgICNjb3B5cmlnaHQge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBwIHsgXHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IFxyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgbGkgeyBcclxuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLW5hdi1zdGFja2VkIHtcclxuICAgIHBhZGRpbmc6IDUwcHggMDtcclxuICAgIC5yb3cge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm1lbnUtaXRlbSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgLmZvb3Rlci1tZW51IHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5mb290ZXItbGVmdCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzBweDtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIC5tZW51LWxpbmsge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2x1bW5zIHtcclxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmZvb3Rlci1yaWdodCB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR3aGl0ZTtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR3aGl0ZTtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29sdW1ucyB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmZvb3Rlci1pbWcge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI0MHB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsaSB7XHJcbiAgICAgICAgJi5zaG93LWZvci1zbWFsbC1vbmx5IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XHJcbiAgICB9XHJcbiAgICBhLCBwIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYW5pbShjb2xvciAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5mYSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogMnB4O1xyXG4gICAgICAgIGxlZnQ6IC0yNHB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcclxuICAgICAgICB3aWR0aDogMjNweDtcclxuICAgIH1cclxuICAgIC5tYWluLW1lbnUtbGluayB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMWVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICArIHVsIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjBweCAwIDIwcHg7XHJcbiAgICAgICAgdWwuZm9vdGVyLW1lbnUge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxLjU2MjVlbSAwIDEuNTYyNWVtIDFlbTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICB1bCB7IG1hcmdpbi1ib3R0b206IDEuMjVlbTsgfSAvLyB7b3ZlcmZsb3c6IGhpZGRlbjsgaGVpZ2h0OiAwO31cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICYubWFpbi1tZW51LWxpbmsge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGJvcmRlci10b3A6IHNvbGlkIDFweCAjOGM4YzhjO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5tYWluLW1lbnUtbGluayB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC05MHB4IC02MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjEwcHggNzYwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7dG9wOiAyNXB4OyByaWdodDogMjBweDt9XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmb290ZXItbmF2LXN0YWNrZWQtZ292IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgIGNvbG9yOiAkbmF2eTtcclxuXHJcbiAgICAubWVudS1saW5rIHtcclxuICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGEsIHAge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLXJpZ2h0IHtcclxuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJG5hdnk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmb290ZXItbmF2LXN0YWNrZWQtZW50ZXJwcmlzZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheS1lbnRlcnByaXNlO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIC5mb290ZXItcmlnaHQge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4uZm9vdGVyLW5hdiB7XHJcbiAgICAmLi1zdGFja2VkIHtcclxuICAgICAgICBAZXh0ZW5kICVmb290ZXItbmF2LXN0YWNrZWQ7XHJcbiAgICAgICAgJi4tZ292IHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZm9vdGVyLW5hdi1zdGFja2VkLWdvdjtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi4tZW50ZXJwcmlzZSB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZvb3Rlci1uYXYtc3RhY2tlZC1lbnRlcnByaXNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuJGFwLWxvZ28tc2l6ZTogMTUwcHg7XHJcbiRhcC1sb2dvLXBhZGRpbmctZGVncmVlOiAkYXAtbG9nby1zaXplLzIwO1xyXG5cclxuJWZvb3Rlci1hY3Rpb24tcGxhbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcblxyXG4gICAgaDEgeyBcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxpIHsgY29sb3I6ICR3aGl0ZTsgfVxyXG59XHJcblxyXG5cclxuJWZvb3Rlci1hY3Rpb24tcGxhbi1sb2dvIHtcclxuXHJcbiAgICBtYXJnaW4tdG9wOiAtKCgkYXAtbG9nby1zaXplKSArICgkYXAtbG9nby1wYWRkaW5nLWRlZ3JlZSoyKSkvMjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGltZyB7XHJcbiAgICAgICAgcGFkZGluZzogJGFwLWxvZ28tcGFkZGluZy1kZWdyZWU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogJGFwLWxvZ28tc2l6ZSArICgkYXAtbG9nby1zaXplLyRhcC1sb2dvLXBhZGRpbmctZGVncmVlKSoyO1xyXG4gICAgICAgIG1heC13aWR0aDogJGFwLWxvZ28tc2l6ZSArICgkYXAtbG9nby1zaXplLyRhcC1sb2dvLXBhZGRpbmctZGVncmVlKSoyO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlLWJyaWdodDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAkYXAtbG9nby1zaXplICsgKCRhcC1sb2dvLXNpemUvJGFwLWxvZ28tcGFkZGluZy1kZWdyZWUpKjI7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmb290ZXItYWN0aW9uLXBsYW4tbGluayB7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4lZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3Qge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmb290ZXItYWN0aW9uLXBsYW4tbGlzdC1pdGVtIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgfVxyXG4gICAgKyAlZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3QtaXRlbSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXDIwMjInO1xyXG4gICAgICAgICAgICBsZWZ0OiAtMjJweDtcclxuICAgICAgICAgICAgdG9wOiAtMTFweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gICAgJi1hY3Rpb24tcGxhbiB7XHJcbiAgICAgICAgQGV4dGVuZCAlZm9vdGVyLWFjdGlvbi1wbGFuO1xyXG4gICAgICAgICZfbG9nbyB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZvb3Rlci1hY3Rpb24tcGxhbi1sb2dvO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX2xpbmsge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmb290ZXItYWN0aW9uLXBsYW4tbGluaztcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9saXN0IHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3Q7XHJcbiAgICAgICAgICAgICYtaXRlbSB7XHJcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVmb290ZXItYWN0aW9uLXBsYW4tbGlzdC1pdGVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8vIC8vIEhFQURFUi5TQ1NTXHJcblxyXG5cclxuLy8gI21haW4taGVhZGVye1xyXG4vLyBcdHBvc2l0aW9uOiBmaXhlZDtcclxuLy8gXHR0b3A6IDA7XHJcbi8vIFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0ei1pbmRleDogOTEwMDtcclxuLy8gXHQuc2VhcmNoLWJveHtcclxuLy8gXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRcdHotaW5kZXg6IDUwMDtcclxuLy8gXHRcdG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4vLyBcdFx0LnNlYXJjaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyM3B4LCAyM3B4LCAtMTIwcHgsIC0zMHB4KTtcclxuLy8gXHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0bGVmdDogMTNweDtcclxuLy8gXHRcdFx0XHR0b3A6IDE3cHg7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRcdHotaW5kZXg6IDIwO1xyXG4vLyBcdFx0XHRtYXJnaW4tbGVmdDogMTkwcHg7XHJcbi8vIFx0XHRcdHBhZGRpbmctbGVmdDogNTBweDtcclxuLy8gXHRcdFx0aGVpZ2h0OiA1NXB4O1xyXG4vLyBcdFx0XHRvdmVyZmxvdzpoaWRkZW47XHJcbi8vIFx0XHRcdGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJGJhc2UsIDIwJSk7XHJcbi8vIFx0XHRcdGJvcmRlci10b3A6IG5vbmU7XHJcbi8vIFx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XHJcbi8vIFx0XHRcdHJpZ2h0OiA0MHB4O1xyXG4vLyBcdFx0XHR3aWR0aDogNDhweDtcclxuLy8gXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih3aWR0aCAuM3MgZWFzZSk7XHJcbi8vIFx0XHRcdC5zZWFyY2h7XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG4vLyBcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuLy8gXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4vLyBcdFx0XHRcdG91dGxpbmU6IG5vbmU7XHJcbi8vIFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdFx0XHRvdXRsaW5lOiBub25lO1xyXG4vLyBcdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuLy8gXHRcdFx0XHRcdHRvcDogMDtcclxuLy8gXHRcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuLy8gXHRcdFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4vLyBcdFx0XHRcdFx0Zm9udC1zaXplOiAxZW07XHJcbi8vIFx0XHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoIC4zcyBlYXNlKTtcclxuLy8gXHRcdFx0XHRcdCZbdHlwZT1cInRleHRcIl17XHJcbi8vIFx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0Jlt0eXBlPVwic3VibWl0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHR3aWR0aDogMCU7XHJcbi8vIFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDFweCBsaWdodGVuKCRiYXNlLCAyMCUpO1xyXG4vLyBcdFx0XHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbi8vIFx0XHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gXHRcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih3aWR0aCAuM3MgZWFzZSwgYmFja2dyb3VuZCAuMnMgZWFzZSk7XHJcbi8vIFx0XHRcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgMyUpO1xyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0XHRcdFx0LnNlYXJjaCB7XHJcbi8vIFx0XHRcdFx0XHRpbnB1dHtcclxuLy8gXHRcdFx0XHRcdFx0Jlt0eXBlPVwidGV4dFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHR3aWR0aDogNzAlO1xyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHR3aWR0aDogMzAlO1xyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcbi8vIFx0XHRcdG1hcmdpbi1sZWZ0OiAxMjVweDtcclxuLy8gXHRcdFx0LnNlYXJjaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDEzNXB4O1xyXG4vLyBcdFx0XHRcdHJpZ2h0OiAwO1xyXG4vLyBcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHQuc2VhcmNoe1xyXG4vLyBcdFx0XHRcdFx0XHRpbnB1dHtcclxuLy8gXHRcdFx0XHRcdFx0XHQmW3R5cGU9XCJ0ZXh0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDgwJTtcclxuLy8gXHRcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHRcdFx0Jlt0eXBlPVwic3VibWl0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDIwJTtcclxuLy8gXHRcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH0gLy8gRW5kIG1lZGl1bS11cFxyXG4vLyBcdFx0QG1lZGlhICN7JGxhcmdlLXVwfSB7XHJcbi8vIFx0XHRcdC5zZWFyY2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHQuc2VhcmNoe1xyXG4vLyBcdFx0XHRcdFx0XHRpbnB1dHtcclxuLy8gXHRcdFx0XHRcdFx0XHQmW3R5cGU9XCJ0ZXh0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDg4JTtcclxuLy8gXHRcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHRcdFx0Jlt0eXBlPVwic3VibWl0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDEyJTtcclxuLy8gXHRcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH0gLy8gRW5kIGxhcmdlLXVwXHJcbi8vIFx0fSAvLyBFbmQgc2VhcmNoLWJveFxyXG4vLyBcdC50b3AtYmFye1xyXG4vLyBcdFx0bWluLWhlaWdodDogNDVweDtcclxuLy8gXHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcbi8vIFx0XHRhe1xyXG4vLyBcdFx0XHRmb250LXNpemU6IDFlbTtcclxuLy8gXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wM2VtO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0QG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4vLyBcdFx0XHRtaW4taGVpZ2h0OiA1NXB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHQjc3RhdGUtbWFpbi1uYXZ7XHJcbi8vIFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHR6LWluZGV4OiA5OTk5O1xyXG4vLyBcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihtYXgtaGVpZ2h0IC4ycyBlYXNlKTtcclxuLy8gXHRcdG1heC1oZWlnaHQ6IDEwMHB4O1xyXG4vLyBcdFx0aGVpZ2h0OiBhdXRvO1xyXG4vLyBcdFx0LnRpdGxlLWFyZWF7XHJcbi8vIFx0XHRcdG1hcmdpbi10b3A6IDVweDtcclxuLy8gXHRcdFx0aDEgYXtcclxuLy8gXHRcdFx0XHRmb250LXNpemU6IDEuM2VtO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAuMnMgZWFzZSk7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDQycHgsIDM5cHgsIDAsIDApO1xyXG4vLyBcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0dG9wOiAycHg7XHJcbi8vIFx0XHRcdFx0XHRsZWZ0OiAxOHB4O1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRzcGFue1xyXG4vLyBcdFx0XHRcdFx0ICBjb2xvcjogJHdoaXRlO1xyXG4vLyBcdFx0XHRcdFx0ICBmb250LXNpemU6IDEuNHJlbTtcclxuLy8gXHRcdFx0XHRcdCAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyBcdFx0XHRcdFx0ICBsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuLy8gXHRcdFx0XHRcdCAgei1pbmRleDogMjA7XHJcbi8vIFx0XHRcdFx0XHQgIHBhZGRpbmc6IDAgNHB4IDAgMTBweDtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRcdGNvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3IsIDglKTtcclxuLy8gXHRcdFx0XHRcdCY6YmVmb3Jle2JhY2tncm91bmQtcG9zaXRpb246IC02MHB4IDA7fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQudXAtaWNvbntcclxuLy8gXHRcdFx0XHR3aWR0aDogNDBweDtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMThweCwgMTNweCwgLTkwcHgsIC05MHB4KTtcclxuLy8gXHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdGxlZnQ6IDEwcHg7XHJcbi8vICAgXHRcdFx0XHRcdHRvcDogMTZweDtcclxuLy8gICBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fSAvLyBFbmQgdGl0bGUtYXJlYVxyXG4vLyBcdFx0dWwgbGl7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuLy8gXHRcdFx0YXtcclxuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICRibGFjaztcclxuLy8gXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAuMnMgZWFzZSwgY29sb3IgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCAzJSk7XHJcbi8vIFx0XHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDQwJSk7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdGgxIGE6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQubGVmdHtcclxuLy8gXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xyXG4vLyBcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3JkZXItcmFkaXVzLCA1cHgpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQucmlnaHR7XHJcbi8vIFx0XHRcdGxpIGF7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4vLyBcdFx0XHRcdGxpbmUtaGVpZ2h0OiAzLjU7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcclxuLy8gXHRcdFx0cG9zaXRpb246IHN0YXRpYztcclxuLy8gXHRcdFx0Lm1vYmlsZS1wdXNoLWNvbnRhaW5lcntcclxuLy8gXHRcdFx0XHQudG9wLWJhci1zZWN0aW9uIGF7XHJcbi8vIFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMi41O1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuLy8gXHRcdFx0cGFkZGluZy1ib3R0b206IDQ1cHg7XHJcbi8vIFx0XHRcdC5tb2JpbGUtcHVzaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0XHRcdFx0Ym90dG9tOiAwO1xyXG4vLyBcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gXHRcdFx0XHQuc2VhcmNoLWNvbnRhaW5lcntcclxuLy8gXHRcdFx0XHRcdGhlaWdodDogNDVweDtcclxuLy8gXHRcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0XHR0b3A6IDEycHg7XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC50aXRsZS1hcmVhIGgxIGF7XHJcbi8vIFx0XHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcbi8vIFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vIFx0XHRcdFx0XHR3aWR0aDogYXV0bztcclxuLy8gXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogOHB4O1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI5cHgsIDI5cHgsIC0xMjBweCwgMCk7XHJcbi8vIFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdFx0dG9wOiA4cHg7XHJcbi8vIFx0XHRcdFx0XHRcdGxlZnQ6IDEwcHg7XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHRzcGFue1xyXG4vLyBcdFx0XHRcdFx0XHRmb250LXNpemU6IDFyZW07XHJcbi8vIFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMnB4IDAgN3B4O1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRcdFx0JjpiZWZvcmV7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAwOyB9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC50aXRsZS1hcmVhe1xyXG4vLyBcdFx0XHRcdG1hcmdpbi10b3A6IDA7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LnRvcC1iYXItc2VjdGlvbntcclxuLy8gXHRcdFx0XHRtYXgtaGVpZ2h0OiAwO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCAuMnMgZWFzZSk7XHJcbi8vIFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8gXHRcdFx0XHQubGVmdHtcclxuLy8gXHRcdFx0XHRcdG1hcmdpbjogMDtcclxuLy8gXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQ6IHJlZDtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0LnJpZ2h0e1xyXG4vLyBcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0YXtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgMCk7XHJcbi8vIFx0XHRcdFx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJGJhc2U7XHJcblx0XHRcdFx0XHRcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH0gLy8gRW5kIHNtYWxsLW9ubHlcclxuLy8gXHRcdCYudG9wLWJhci5leHBhbmRlZHtcclxuLy8gXHRcdFx0bWF4LWhlaWdodDogMTAwMHB4O1xyXG4vLyBcdFx0XHQudG9wLWJhci1zZWN0aW9ue1xyXG4vLyBcdFx0XHRcdG1heC1oZWlnaHQ6IDEwMDBweDtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG1heC1oZWlnaHQgLjhzIGVhc2UpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC5sZWZ0e1xyXG4vLyBcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQudXAtaWNvbjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC05MHB4O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAuc2l0ZS1tYWluLW5hdntcclxuLy8gXHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4vLyBcdHotaW5kZXg6IDk5OTk7XHJcbi8vIFx0I2dvdntcclxuLy8gXHRcdG1hcmdpbjogMCBhdXRvO1xyXG4vLyBcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuLy8gXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbi8vIFx0XHR3aWR0aDogMzAwcHg7XHJcbi8vIFx0XHRtYXgtd2lkdGg6IDg1JTtcclxuLy8gXHRcdGgye1xyXG4vLyBcdFx0XHRmb250LXNpemU6IDE5cHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHRoNHtcclxuLy8gXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xyXG4vLyBcdFx0XHRsaW5lLWhlaWdodDogMTZweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0dWx7XHJcbi8vIFx0XHRtYXJnaW46IDA7XHJcbi8vIFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbi8vIFx0fVxyXG4vLyBcdC50aXRsZS1hcmVhe1xyXG4vLyBcdFx0aGVpZ2h0OiA0NXB4O1xyXG4vLyBcdFx0bGl7XHJcbi8vIFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG4vLyBcdFx0XHRkaXZ7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0KntcclxuLy8gXHRcdFx0aGVpZ2h0OiA1NXB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHR1bCBsaSBhe1xyXG4vLyBcdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcclxuLy8gXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG4vLyBcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4vLyBcdFx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCAxMCUpO1xyXG4vLyBcdFx0cGFkZGluZzogMTBweCAyMHB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRsaW5lLWhlaWdodDogMi4ycmVtO1xyXG4vLyBcdFx0Zm9udC1zaXplOiAxZW07XHJcbi8vIFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjJzIGVhc2UpO1xyXG4vLyBcdFx0JjphZnRlcntcclxuLy8gXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdGRpdi5zaXRlLXN0YXRlLCAjbWVudS1zaXRlLW1lbnUgPiBsaTpmaXJzdC1jaGlsZCBhe1xyXG4vLyBcdFx0cGFkZGluZy1sZWZ0OiA3NXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRjb2xvcjogJHdoaXRlO1xyXG4vLyBcdFx0QGluY2x1ZGUgc3ByaXRlKDQycHgsIDI1cHgsIDBweCwgLTYwcHgpO1xyXG4vLyBcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdGxlZnQ6IDIwcHg7XHJcbi8vIFx0XHRcdHRvcDogMTZweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0I3NpdGUtbWVudXtcclxuLy8gXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuLy8gXHRcdC5zaXRlLXN0YXRle1xyXG4vLyBcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0PiB1bCA+IGxpe1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLjA3ZW07XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihub25lKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQuZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8gXHRcdFx0XHRoZWlnaHQ6IDA7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcbi8vIFx0XHRcdFx0YXtcclxuLy8gXHRcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRcdGNvbG9yOiBkYXJrZW4oJHdoaXRlLCAyNSUpO1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuXHJcblx0XHJcbi8vIFx0Lmhhcy1kcm9wZG93bntcclxuLy8gXHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcbi8vIFx0XHQuZHJvcGRvd24sIC5zdWItbWVudXtcclxuLy8gXHRcdFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdGxpe1xyXG4vLyBcdFx0XHRcdGxlZnQ6IGF1dG87XHJcbi8vIFx0XHRcdFx0d2lkdGg6IGF1dG87XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCRzZWNvbmRhcnktY29sb3IsIDglKTtcclxuLy8gXHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHRcdFxyXG4vLyBcdFx0XHRcdCYuanMtZ2VuZXJhdGVke1xyXG4vLyBcdFx0XHRcdFx0b3BhY2l0eTogMDtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0YXtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdFx0XHRwYWRkaW5nOiA0cHggMTBweCAhaW1wb3J0YW50O1xyXG4vLyBcdFx0XHRcdFx0Zm9udC1zaXplOiAuODc1ZW07XHJcbi8vIFx0XHRcdFx0XHRtYXJnaW46IDEwcHggMHB4O1xyXG4vLyBcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuM2VtO1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAuMnMgZWFzZSk7XHJcbi8vIFx0XHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgMjUlKTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCRzZWNvbmRhcnktY29sb3IsIDglKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcbi8vIFx0XHQjc2l0ZS1tZW51LCAuc2Itc2xpZGViYXJ7XHJcbi8vIFx0XHRcdHotaW5kZXg6IDIwMDtcclxuLy8gXHRcdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcclxuLy8gXHRcdFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0XHRcdGxpe1xyXG4vLyBcdFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG4vLyBcdFx0XHRcdC5kcm9wZG93bntcclxuLy8gXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gXHRcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0Jjpob3ZlciA+IC5kcm9wZG93bntcclxuLy8gXHRcdFx0XHRcdGhlaWdodDogYXV0bztcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdC5zaXRlLXN0YXRlID4gYSwgYS5zaXRlLXN0YXRle1xyXG4vLyBcdFx0XHRwYWRkaW5nLWxlZnQ6IDc1cHggIWltcG9ydGFudDtcclxuLy8gXHRcdFx0QGluY2x1ZGUgc3ByaXRlKDQycHgsIDI1cHgsIDBweCwgLTYwcHgpO1xyXG4vLyBcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRsZWZ0OiAyMHB4O1xyXG4vLyBcdFx0XHRcdHRvcDogMTdweDtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Lmhhcy1kcm9wZG93bntcclxuLy8gXHRcdFx0LmRyb3Bkb3duLCAuc3ViLW1lbnV7XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDIwMHB4O1xyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0fSAvLyBFbmQgbWVkaXVtLXVwXHJcbi8vIFx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuLy8gXHRcdCYuc2Itc2xpZGViYXJ7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIGJhY2tncm91bmQtZ3JhZGllbnQoJHNlY29uZGFyeS1jb2xvciwwJSwxMDAlLGxlZnQscmlnaHQpO1xyXG4vLyBcdFx0XHR6LWluZGV4OiAwO1xyXG4vLyBcdFx0XHRsaSwgYXtcclxuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuLy8gXHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Lmhhcy1kcm9wZG93bntcclxuLy8gXHRcdFx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0YXtcclxuLy8gXHRcdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XHJcbi8vIFx0XHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQjc2l0ZS1tZW51ID4gdWw+IGxpOmxhc3QtY2hpbGR7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0ZW4oJHNlY29uZGFyeS1jb2xvciwgMTAlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQubWVudS1pdGVtLWhhcy1jaGlsZHJlbntcclxuLy8gXHRcdFx0XHQmID4gYXtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgxOHB4LCAxM3B4LCAtOTBweCwgLTYwcHgpO1xyXG4vLyBcdFx0XHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gXHRcdFx0XHRcdFx0cmlnaHQ6IDEwcHg7XHJcbi8vIFx0XHRcdFx0XHRcdHRvcDogMTJweDtcclxuLy8gXHRcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihyaWdodCAwcyBlYXNlLCB3aWR0aCAuMHMgZWFzZSwgb3BhY2l0eSAuMnMpXHJcbi8vIFx0XHRcdFx0ICAgIH1cclxuLy8gXHRcdFx0XHQgICAgJjpob3ZlcntcclxuLy8gXHRcdFx0XHQgICAgXHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0XHRcdCAgICB9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdCY6bGFzdC1jaGlsZCA+IHVse1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0ZW4oJHNlY29uZGFyeS1jb2xvciwgMTAlKTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0LmRyb3Bkb3duIGxpLCAuc3ViLW1lbnUgbGl7XHJcbi8vIFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcclxuLy8gXHRcdFx0XHRcdHBhZGRpbmc6IDAgMTBweDtcclxuLy8gXHRcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogLjdlbTtcclxuXHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQudGl0bGUtYXJlYSB7XHJcbi8vIFx0XHRcdGhlaWdodDogNDVweDtcclxuLy8gXHRcdFx0KntcclxuLy8gXHRcdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LnNpdGUtc3RhdGV7XHJcbi8vIFx0XHRcdFx0cGFkZGluZzogNnB4IDIwcHggMHB4IDY1cHggIWltcG9ydGFudDtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoNDJweCwgMjVweCwgMHB4LCAtNjBweCk7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRsaW5lLWhlaWdodDogMi41O1xyXG4vLyBcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0dG9wOiAxMXB4O1xyXG4vLyBcdFx0XHRcdFx0bGVmdDogMTJweDtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdCNzaXRlLW1lbnV7XHJcbi8vIFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRcdFx0bGl7XHJcbi8vIFx0XHRcdFx0YXtcclxuLy8gXHRcdFx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdC5zYi10b2dnbGUtbGVmdHtcclxuLy8gXHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI1cHgsIDE3cHgsIC0xODBweCwgMHB4KTtcclxuLy8gXHRcdFx0d2lkdGg6IDQ4cHg7XHJcbi8vIFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdGxlZnQ6IDExcHg7XHJcbi8vIFx0XHRcdFx0dG9wOiAxNHB4O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHR1bCBsaSBhe1xyXG4vLyBcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fSAvLyBFbmQgc21hbGwtb25seVxyXG4vLyB9XHJcblxyXG4vLyAuc2Itc2xpZGViYXJ7XHJcbi8vIFx0b3BhY2l0eTogMDtcclxuLy8gfVxyXG5cclxuLy8gLnNiLWFjdGl2ZSAuc2Itc2xpZGViYXJ7XHJcbi8vIFx0b3BhY2l0eTogMTtcclxuLy8gfVxyXG5cclxuLy8gLnNiLXNsaWRlYmFyICNzaXRlLW1lbnV7XHJcbi8vIFx0XHQ+IHVsID4gbGl7XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obm9uZSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHQ+IGF7XHJcbi8vIFx0XHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihub25lKTtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4vLyBcdFx0XHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0LmRyb3Bkb3duLCAuc3ViLW1lbnV7XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG5cclxuLy8gLmFkbWluLWJhciAjbWFpbi1oZWFkZXJ7XHJcbi8vIFx0dG9wOiAzMnB4O1xyXG4vLyBcdEBtZWRpYSAobWF4LXdpZHRoOiA3ODJweCkgYW5kIChtaW4td2lkdGg6IDYwMXB4KXtcclxuLy8gXHRcdHRvcDogNDZweDtcclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KXtcclxuLy8gXHRcdHRvcDogMDtcclxuLy8gXHR9XHJcbi8vIH1cclxuIiwiLy8gSE9NRS5zY3NzXHJcblxyXG4jaGVybyB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdC8vIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAkd2hpdGU7XHJcblx0I3NvY2lhbC1uYXYge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHR6LWluZGV4OiA0MDtcclxuXHRcdG1hcmdpbi10b3A6IC0zN3B4O1xyXG5cdFx0dWwge1xyXG5cdFx0XHRsaSB7XHJcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cdFx0XHRcdHdpZHRoOiAoMTAwJSAvIDYpO1xyXG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRuYXZ5LCAuOCk7XHJcblx0XHRcdFx0XHRib3JkZXItY29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBob3ZlciB7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZ29sZCwgNyUpO1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4ocmdiYSgkZ29sZCwgLjcpLCA1JSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRcdFx0Ji5mYi1pY29uOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTUwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji50dy1pY29uOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggLTE1MHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdCYueXQtaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC05MHB4IC0xNTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQmLmZsay1pY29uOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTE1MHB4IC0xNTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQmLm1haWwtc21hbGwtaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xODBweCAtMTUwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JG1lZGl1bS1vbmx5fXtcclxuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IHRvcCAtMTAwcHg7XHJcblx0fVxyXG5cdEBtZWRpYSAobWluLXdpZHRoOiA1ODJweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcclxuXHRcdG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG5cdH1cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogMTMyMHB4KXtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogMTI1JSBhdXRvO1xyXG5cdH1cclxufVxyXG5cclxuLy9vdmVyIHdyaXRlcyBmb3IgdGhlIGFsZXJ0IGJhclxyXG4uZmlhdC1hbGVydCB7XHJcblx0bWFyZ2luOiAxMHB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRtYXJnaW4tdG9wOiA4cHg7XHJcblx0YmFja2dyb3VuZDogJHJlZC1icmlnaHQgIWltcG9ydGFudDtcclxuXHR0ZXh0LXNoYWRvdzogbm9uZTtcclxuXHRib3JkZXI6IDA7XHJcblx0bGV0dGVyLXNwYWNpbmc6IC4wOGVtO1xyXG5cdHAge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdH1cclxuXHRidXR0b24ge1xyXG5cdFx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXG5cdFx0d2lkdGg6IDMwcHg7XHJcblx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHRwYWRkaW5nLXRvcDogNHB4O1xyXG5cdFx0Y29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRvdXRsaW5lOiBub25lO1xyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Y29sb3I6ICRyZWQtYnJpZ2h0ICFpbXBvcnRhbnQ7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0YSB7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0QGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3JkZXItcmFkaXVzLCAzcHgpO1xyXG5cdFx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZC1icmlnaHQsIDIwJSk7XHJcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgZWFzZSAuM3MpO1xyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcmVkLWJyaWdodCwgMzAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0bWFyZ2luLXRvcDogMjBweDtcclxuXHR9XHJcbn1cclxuXHJcbiNwcmlvcml0aWVzIHtcclxuXHQudGFiLXRpdGxlIHtcclxuXHRcdHdpZHRoOiAzMy4zMzMzMzMzMzMlO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzZWNvbmRhcnktY29sb3IsIDYlKTtcclxuXHRcdGEge1xyXG5cdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyYWRpZW50KCRzZWNvbmRhcnktY29sb3IpO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAkd2hpdGU7XHJcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuXHRcdFx0cGFkZGluZzogNDBweCAwO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdFx0XHRvdXRsaW5lOiBub25lO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtcG9zaXRpb24gLjNzIGVhc2UpO1xyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IC0xMDZweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuc2Nob29scy10YWIge1xyXG5cdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg1NnB4LCA0MXB4LCAwLCAtMzMwcHgpO1xyXG5cdFx0XHRcdHdpZHRoOiA2MnB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC5qb2JzLXRhYiB7XHJcblx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDQwcHgsIDQycHgsIC02MHB4LCAtMzMwcHgpO1xyXG5cdFx0XHRcdHdpZHRoOiA1MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC5nb3YtdGFiIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoNTNweCwgNDVweCwgLTEyMHB4LCAtMzMwcHgpO1xyXG5cdFx0XHRcdHdpZHRoOiA2M3B4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC50YWItaWNvbiB7XHJcblx0XHRcdFx0aGVpZ2h0OiAxOHB4O1xyXG5cdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCYuYWN0aXZlIGEge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAuMnMgZWFzZSk7XHJcblx0XHRcdC5zY2hvb2xzLXRhYjpiZWZvcmUge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTI3MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC5qb2JzLXRhYjpiZWZvcmUge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC0yNzBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuZ292LXRhYjpiZWZvcmUge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtMjcwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0JjphY3RpdmUge1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0JjpsYXN0LWNoaWxkIGEge1xyXG5cdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdC50YWItdGV4dCB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHQudGFicy1jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6IDIwO1xyXG5cdFx0LmhvbWUtcHJpb3JpdGllcy1pbWFnZSB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6IDMwMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHQgIGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHQgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0ICB3aWR0aDogMTAwJTtcclxuXHRcdFx0ICBoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdCAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cdFx0XHQgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcblx0XHRcdCAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1hZ2VzL2NvYV94c21hbGwucG5nXCIpO1xyXG5cdFx0XHQgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuXHRcdFx0ICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdFx0XHQgIHotaW5kZXg6IC0xO1xyXG5cdFx0XHQgIGJvcmRlcjogc29saWQgMjBweCAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRoMiB7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0XHRcdG1hcmdpbi10b3A6IC0xMHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG5cdFx0XHRmb250LXNpemU6IDJyZW07XHJcblx0XHR9XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuXHRcdC50YWItdGl0bGUgYSB7XHJcblx0XHRcdGhlaWdodDogMTAwcHg7XHJcblx0XHRcdHBhZGRpbmc6IDI1cHggMDtcclxuXHRcdH1cclxuXHRcdC50YWJzLWNvbnRlbnQge1xyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdG1hcmdpbjogMjVweCAwIDUwcHggMCA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XHJcblx0XHQudGFiLXRpdGxlIHtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZzogMjBweCAwO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogLjg1ZW07XHJcblx0XHRcdFx0LnRhYi1pY29uIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0LnNjaG9vbHMtdGFiIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyOXB4LCAyMHB4LCAwLCAtNDgwcHgpOyAvLyBmaXgtc3ByaXRlXHJcblx0XHRcdFx0XHR3aWR0aDogMjJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0LmpvYnMtdGFiIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyMnB4LCAyNHB4LCAtMzBweCwgLTQ4MHB4KTsgLy8gZml4LXNwcml0ZVxyXG5cdFx0XHRcdFx0d2lkdGg6IDIycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5nb3YtdGFiIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyOXB4LCAyNXB4LCAtNjBweCwgLTQ4MHB4KTsgLy8gZml4LXNwcml0ZVxyXG5cdFx0XHRcdFx0d2lkdGg6IDI5cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCYuYWN0aXZlIGEge1xyXG5cdFx0XHRcdC5zY2hvb2xzLXRhYjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDUwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5qb2JzLXRhYjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTMwcHggLTQ1MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQuZ292LXRhYjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggLTQ1MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LnRhYi10ZXh0IHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcclxuXHRcdC50YWJzLWNvbnRlbnQge1xyXG5cdFx0XHRwYWRkaW5nOiA3NXB4IDA7XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiA5NSU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JGxhcmdlLXVwIH17XHJcblx0XHQudGFiLXRleHQge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHR9XHJcblx0XHQudGFiLXRpdGxlIGEgLnRhYi1pY29uOmJlZm9yZSB7XHJcblx0XHRcdHRvcDogLTEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jaG9tZUhlYWRsaW5lIHtcclxuXHRtYXJnaW4tdG9wOiAyMHB4O1xyXG5cdC5uZXdzLXBvc3QubmV3cy1wb3N0LWhlYWRsaW5lIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG59XHJcblxyXG4jZ292ZXJub3Ige1xyXG5cdEBpbmNsdWRlIGJhY2tncm91bmQtZ3JhZGllbnQoJG5hdnkpO1x0XHJcblx0dHJhbnNpdGlvbjogYWxsIC41cyBlYXNlO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0cGFkZGluZy10b3A6IDIuNWVtO1xyXG5cdCNnb3YtcGhvdG8ge1xyXG5cdFx0bWFyZ2luLXRvcDogMy41ZW07XHJcblx0XHRAbWVkaWEgI3skbGFyZ2UtdXB9e1xyXG5cdFx0XHRoZWlnaHQ6IDMwMHB4O1xyXG5cdFx0XHRtYXJnaW4tdG9wOiA2LjVlbTtcclxuXHRcdH1cclxuXHR9XHJcblx0I2dvdi1pbmZvIHtcclxuXHRcdG1hcmdpbjogMzBweCAwIDE0MHB4O1xyXG5cdFx0QG1lZGlhICN7JGxhcmdlLXVwfXtcclxuXHRcdFx0bWFyZ2luOiAxMDBweCAwIDE0MHB4O1xyXG5cdFx0fVxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuXHRcdH1cclxuXHRcdGgxIHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHRcdFx0bWFyZ2luLXRvcDogMDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcblx0XHR9XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHRcdC5idXR0b24ge1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0Lm5ld3MtaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRmb250LXNpemU6IDA7XHJcblx0XHRsaW5lLWhlaWdodDogMDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xyXG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvY29hX3hzbWFsbC5wbmcpO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHQjaW1hZ2UtaW5uZXIge1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0aGVpZ2h0OiAwO1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogNTguMyU7XHJcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbiNzb2NpYWwtbWVkaWF7XHJcblx0cGFkZGluZzogNTBweCAwO1xyXG5cdC5zb2NpYWwtbGlua3tcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG5cdFx0LnNvY2lhbC1pY29ue1xyXG5cdFx0XHR3aWR0aDogNjBweDtcclxuXHRcdFx0aGVpZ2h0OiA2MHB4O1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDJweCAkYmxhY2s7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdFx0Ji50dy1pY29uLCAmLmZsaWNrci1pY29ue1xyXG5cdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAxNXB4IDAgMCAxMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmLnR3LWljb257XHJcblx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDMycHgsIDI3cHgsIC0xNTBweCwgLTQ1MHB4KTtcclxuXHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMnB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmLmZsaWNrci1pY29ue1xyXG5cdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgzN3B4LCAxNXB4LCAtMTUwcHgsIC00ODBweCk7XHJcblx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHR0b3A6IDVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0JjphZnRlcntcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0XHR3aWR0aDogNjBweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDJweDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDogNTAlO1xyXG5cdFx0XHRcdHJpZ2h0OiAtNjJweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0YXtcclxuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDczcHg7XHJcblx0XHRcdG1hcmdpbi10b3A6IDExcHg7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcblx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0aGVpZ2h0OiAycHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogJGJsYWNrO1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAwcHg7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0cmlnaHQ6IC0xMDE1cHg7XHJcblx0XHRcdFx0dG9wOiAxOXB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0Y29sb3I6IGJsYWNrO1xyXG5cdFx0XHR9XHJcblx0XHRcdHNwYW57XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcblx0XHRcdC5zb2NpYWwtaWNvbntcclxuXHRcdFx0XHQmOmFmdGVye1xyXG5cdFx0XHRcdFx0d2lkdGg6IDUwMHB4O1xyXG5cdFx0XHRcdFx0cmlnaHQ6IC01MDJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0YXtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiAxOHB4O1xyXG5cdFx0XHRcdHBhZGRpbmc6IDAgMCAwIDEwcHg7XHJcblx0XHRcdFx0JjphZnRlcntcclxuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdGFydGljbGV7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAtN3B4O1xyXG5cdH1cclxuXHQubGF0ZXN0LXR3ZWV0e1xyXG5cdFx0aDJ7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHRcdH1cclxuXHRcdC50d2VldC1kYXRle1xyXG5cdFx0XHRjb2xvcjogJGJhc2U7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdFx0Zm9udC1zdHlsZTogaXRhbGljO1xyXG5cdFx0XHRmb250LXNpemU6IDEuMmVtO1xyXG5cdFx0fVxyXG5cdFx0dWx7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRsaXtcclxuXHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuXHRcdFx0XHRhe1xyXG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMTJweCA5cHggNjBweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgNXB4KTtcclxuXHRcdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRsZWZ0OiAxM3B4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ji5yZXBseS1pY29ue1xyXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjhweCwgMTZweCwgMCwgLTE4MHB4KTtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0dG9wOiA5cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCYucnQtaWNvbntcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI3cHgsIDI0cHgsIC0zMHB4LCAtMTgwcHgpO1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0XHR0b3A6IDVweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ji5mYXYtaWNvbntcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI1cHgsIDI0cHgsIC02MHB4LCAtMTgwcHgpO1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0XHR0b3A6IDZweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCAzJSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmOmFjdGl2ZXtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgNSUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQmOmxhc3QtY2hpbGQgYXtcclxuXHRcdFx0XHRcdG1hcmdpbjogMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfXtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdFx0XHRsaXtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZTtcclxuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xyXG5cdFx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDI1cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9IC8vIGVuZCB1bFxyXG5cdH1cclxuXHRkaXYuZmV0Y2gtdHdlZXRze1xyXG5cdFx0bWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50OyAvLyBmaXggb3ZlcmZsb3cgc2Nyb2xsaW5nIG9uIG1vYmlsZS4gT3ZlcndyaXRpbmcgcGx1Z2luIGlubGluZSBzdHlsZS5cclxuXHR9XHJcblx0LmxhdGVzdC1mbGlja3J7XHJcblx0XHQmOmFmdGVye1xyXG5cdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiA1MHB4O1xyXG5cdFx0fVxyXG5cdFx0LmZsaWNrci1waG90b3MgYXtcclxuXHRcdFx0aW1ne1xyXG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAuMnMgZWFzZSk7XHJcblx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgob3BhY2l0eSwgLjUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRwYWRkaW5nOiAxNXB4IDAgMCAwO1xyXG5cdFx0aDF7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0XHR9XHJcblx0XHQubGF0ZXN0LXR3ZWV0e1xyXG5cdFx0XHRoMntcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi5yZXZlYWwge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgIC5jbG9zZS1idXR0b24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87IC8vIHJlbW92ZSBnbG9iYWwgYnV0dG9uIHdpZHRoIDEwMCVcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgIC8vIHRoaXMgaXMgdGhlIFggZm9yIHRoZSBjbG9zZSBidXR0b24gLi4uIHdlIHdhbnRlZCB0aGUgc2FtZSBYIGFzIGluIHRoZSBtZW51XHJcbiAgICAgICAgLmlubmVyIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lbnVsYWJlbCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRib3R0b206IC0yMHB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xyXG5cdFx0XHRmb250LXNpemU6IDEwcHg7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gaGVscGVyIGZvciB3aGl0ZSBjbG9zZSBidXR0b25zXHJcbi5jbG9zZS1idXR0b24udGV4dC13aGl0ZSB7XHJcbiAgICAubWVudWxhYmVsIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gICAgLmlubmVyOmJlZm9yZSwgLmlubmVyOmFmdGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn0iLCIvLyBORVdTUk9PTS5zY3NzXHJcbiNuZXdzcm9vbSB7XHJcblx0Ly8gYm90dG9tIGlzIGJlY2F1c2Ugb2YgdGhlIGdvdmVybm9yIGFjdGlvbiBiYXJcclxuXHRwYWRkaW5nOiA0ZW0gMCA3ZW0gMDtcclxuXHJcblx0LnNlY3Rpb24tdGl0bGUge1xyXG5cdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0cGFkZGluZy1ib3R0b206IC41ZW07XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYmFubmVyLWltYWdlIHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0Lm5ld3Nyb29tLWRhdGUge1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XHJcblx0XHRmb250LXNpemU6IC45ZW07XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdG1hcmdpbjogMTBweCAwO1xyXG5cdH1cclxuXHQubmV3cy1wb3N0LWJ5bGluZSB7XHJcblx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW46IDEwcHggMDtcclxuXHR9XHJcbn1cclxuXHJcbi5uZXdzLXBvc3Qge1xyXG5cdCYtdGl0bGV7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuXHRcdHBhZGRpbmctbGVmdDogNTVweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHRcdHdpZHRoOiAzNjhweDtcclxuXHRcdGZvbnQtc2l6ZTogMXJlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjI1O1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDAuNjg3NXJlbTtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0QGluY2x1ZGUgc3ByaXRlKDI5cHgsIDI5cHgsIC05MHB4LCAtMTgwcHgpO1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdHRvcDogMnB4O1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLWNhdGVnb3J5e1xyXG5cdFx0Y29sb3I6ICRnb2xkICFpbXBvcnRhbnQ7XHJcblx0XHRmb250LXNpemU6IC42NXJlbSAhaW1wb3J0YW50O1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdG1hcmdpbjogMTBweCAwICFpbXBvcnRhbnQ7XHJcblx0XHQ+IGEge1xyXG5cdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLWltYWdle1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHR9XHJcblx0Ji1wb3N0LXRpdGxle1xyXG5cdFx0bWFyZ2luLXRvcDogMDtcclxuXHRcdGZvbnQtc2l6ZTogMS4yNWVtO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuM2VtO1xyXG5cdFx0YSB7XHJcblx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdCYtcG9zdC1kYXRle1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW46IDEwcHggMDtcclxuXHR9XHJcblx0LmJ1dHRvbntcclxuXHRcdG1hcmdpbjogMDtcclxuXHR9XHJcblx0YXJ0aWNsZS5yb3d7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XHJcblx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuXHRcdCY6bGFzdC1jaGlsZHtcclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLm5ld3MtcG9zdC1wcmlvcml0eXtcclxuXHRcdG1hcmdpbjogNTBweCAwIDA7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogNDBweDtcclxuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XHJcblx0fVxyXG5cdCYubmV3cy1wb3N0LWhlYWRsaW5le1xyXG5cdFx0cGFkZGluZzogMzBweCA0MHB4IDQwcHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdC5uZXdzLXBvc3R7IC8vICogRE8gTk9UIEFERCBTVFlMRVMgSEVSRSAqXHJcblx0XHRcdCYtdGl0bGV7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuXHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtMTgwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4udmlldy1hbGwtbmV3c3tcclxuXHRwYWRkaW5nOiAyNXB4IDUwcHg7XHJcblx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0Y29sb3I6ICR3aGl0ZTtcclxuXHRtYXJnaW4tYm90dG9tOiA3NXB4O1xyXG5cdGg1e1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0fVxyXG5cdC5idXR0b257XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRtYXJnaW4tdG9wOiA4cHg7XHJcblx0fVxyXG59XHJcblxyXG4jc29jaWFsLWFydGljbGUge1xyXG5cdGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0cGFkZGluZzogMTBweDtcclxuXHJcblx0c3BhbiB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcclxuXHR9XHJcblxyXG5cdGEge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0b3BhY2l0eTogLjc7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5zZWN0aW9uIHtcclxuXHQmI3JlbGF0ZWQtbmV3cywgJiNyZWxhdGVkLW1lZGlhIHtcclxuXHJcblx0XHRoMywgLmgzIHtcclxuXHRcdFx0cGFkZGluZy10b3A6IDFlbTtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IC4yNWVtO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jb2x1bW4tYmxvY2sge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLnByZXZfbmV4dF9saW5rc3tcclxuXHRtYXJnaW4tdG9wOiAyNXB4O1xyXG5cdHNwYW57XHJcblx0XHR3aWR0aDogMTUwcHg7XHJcblx0XHRtYXgtd2lkdGg6IDUwJTtcclxuXHR9XHJcblx0YXtcclxuXHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHQvLyB3aWR0aDogMTAwJTtcclxuXHRcdGNvbG9yOiAkZ29sZDtcclxuXHRcdGJvcmRlcjogc29saWQgMnB4ICRnb2xkO1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnRhd2Vzb21lO1xyXG5cdFx0XHRjb250ZW50OiBcIlxcZjA1M1wiO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0XHQmOmhvdmVye1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0LnByZXZpb3VzX3Bvc3QgYSB7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHR9XHJcblx0Lm5leHRfcG9zdCBhIHtcclxuXHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0cmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLy8gYm9keSB7XHJcbi8vIFx0bGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xyXG4vLyBcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuLy8gXHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdHBhZGRpbmc6IDA7XHJcbi8vIFx0bWFyZ2luLXRvcDogMTAwcHg7XHJcblx0XHJcbi8vIFx0I3NiLXNpdGUge1xyXG4vLyBcdFx0LXdlYmtpdC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbi8vIFx0XHQtbW96LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuLy8gXHRcdC1vLXRyYW5zZm9ybTogaW5pdGlhbDtcclxuLy8gXHRcdHRyYW5zZm9ybTogaW5pdGlhbDtcclxuLy8gXHRcdG1pbi1oZWlnaHQ6IDEwMCU7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyBpbnB1dHtcclxuLy8gXHQvLyBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XHJcbi8vIFx0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4vLyBcdFt0eXBlPVwic2VhcmNoXCJdIHtcclxuLy8gXHRcdGNvbG9yOiAkYmxhY2s7XHJcbi8vIFx0XHQmOmZvY3Vze1xyXG4vLyBcdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTUlKTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4vLyBcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xyXG4vLyBcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOjotbW96LXBsYWNlaG9sZGVyIHsgIC8qIEZpcmVmb3ggMTkrICovXHJcbi8vIFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNjAlKTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuLy8gXHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0Jjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntcclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjo6LW1vei1pbnB1dC1wbGFjZWhvbGRlcnsgLyogRmlyZWZveCAxOC0gKi9cclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjo6LW1vei1pbnB1dC1wbGFjZWhvbGRlcnsgLyogRmlyZWZveCAxOSsgKi9cclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjo6LW1zLWlucHV0LXBsYWNlaG9sZGVye1xyXG4vLyBcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNjAlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbi8vIFx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOmZvY3VzOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBGaXJlZm94IDE5KyAqL1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gLmVsbGlwIHtcclxuLy8gXHRkaXNwbGF5OiBibG9jaztcclxuLy8gXHRoZWlnaHQ6IDEwMCU7XHJcbi8vIH1cclxuXHJcbi8vIC5lbGxpcC1saW5lIHtcclxuLy8gXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vIFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbi8vIFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8gXHR3b3JkLXdyYXA6IG5vcm1hbDtcclxuLy8gXHRtYXgtd2lkdGg6IDEwMCU7XHJcbi8vIH1cclxuXHJcbi8vIC5lbGxpcCxcclxuLy8gLmVsbGlwLWxpbmUge1xyXG4vLyBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRvdmVyZmxvdzogaGlkZGVuO1xyXG4vLyB9XHJcblxyXG4vLyAuaW5uZXItd3JhcHtcclxuLy8gXHRtYXJnaW4tdG9wOiA0NXB4O1xyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDQ1cHg7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAjaW5uZXItY29udGVudHtcclxuLy8gXHRtYXJnaW4tdG9wOiA1MHB4O1xyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDA7XHJcbi8vIFx0fVxyXG4vLyB9XHJcbi8vICNpbm5lci1jb250ZW50LnB1c2gtY29udGVudC11cHtcclxuLy8gXHRtYXJnaW4tdG9wOiA1MHB4O1xyXG4vLyBcdEBtZWRpYSAjeyRsYXJnZS11cH17XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiAtMTAwcHg7XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDA7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAucm93IHtcclxuLy8gXHQvLyBtYXgtd2lkdGg6IDkyJTtcclxuLy8gXHRAbWVkaWEgI3skbGFyZ2UtdXB9e1xyXG4vLyBcdFx0bWF4LXdpZHRoOiA2OC43NXJlbTtcclxuLy8gXHR9XHJcbi8vIH1cclxuXHJcbiNjb250ZW50IHtcclxuXHRwYWRkaW5nOiA1MHB4IDAgMTQwcHg7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHRwYWRkaW5nOiAxNXB4IDAgMTQwcHg7XHJcblx0fVxyXG59XHJcblxyXG4vLyBCYW5uZXIgLSBIZWFkZXIgSW1hZ2VzXHJcblxyXG4vLyAjaGVhZGVyX2ltYWdle1xyXG4vLyBcdGhlaWdodDogMzA4cHg7XHJcbi8vIFx0bWFyZ2luLXRvcDogLTUwcHg7XHJcbi8vIFx0YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuLy8gXHRAbWVkaWEgI3skbWVkaXVtLXVwfXtcclxuLy8gXHRcdGhlaWdodDogNDIwcHg7XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhICN7JHhsYXJnZS11cH17XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IDExNSU7XHJcbi8vIFx0fVxyXG4vLyBcdGgxe1xyXG4vLyBcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdG1hcmdpbjogMTQwcHggMCAwIDA7XHJcbi8vIFx0XHQmLnNtYWxsLXRpdGxle1xyXG4vLyBcdFx0XHRmb250LXNpemU6IDIuNGVtO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0YXtcclxuLy8gXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcclxuLy8gXHRcdCYuTWlrZS5TdGFja3tcclxuLy8gXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTE4MHB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Ji5wcmlvcml0aWVzLWhlYWRlcntcclxuLy8gXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNjclO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Ji5uZXdzcm9vbS1oZWFkZXIsICYuZXhlY3V0aXZlX29yZGVyLWhlYWRlcntcclxuLy8gXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAjeyRtZWRpdW0tb25seX17XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcclxuLy8gXHRcdCYubmV3c3Jvb20taGVhZGVyLCAmLmV4ZWN1dGl2ZV9vcmRlci1oZWFkZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgKG1pbi13aWR0aDogMTAyMHB4KSBhbmQgKG1heC13aWR0aDogMTEzNnB4KXtcclxuLy8gXHRcdCYubmV3c3Jvb20taGVhZGVyLCAmLmV4ZWN1dGl2ZV9vcmRlci1oZWFkZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWw7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAucGFnZS10aXRsZXtcclxuLy8gXHRoMXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IC03cHg7XHJcbi8vIFx0fVxyXG4vLyBcdGF7XHJcbi8vIFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdH1cclxuLy8gICBAbWVkaWEgI3skbGFyZ2UtdXB9e1xyXG4vLyAgIFx0cGFkZGluZzogOHB4IDIwcHggNXB4O1xyXG4vLyBcdCAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcbi8vIFx0ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRuYXZ5LCAuOCk7XHJcbi8vIFx0ICBoMXtcclxuLy8gXHQgIFx0bWFyZ2luOiAwO1xyXG4vLyBcdCAgfVxyXG4vLyBcdCAgYXtcclxuLy8gXHQgIFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHQgIH1cclxuLy8gICB9XHJcbi8vICAgJi5uZXdzcm9vbS10aXRsZXtcclxuLy8gICBcdEBtZWRpYSAjeyRtZWRpdW0tdXB9e1xyXG4vLyAgIFx0XHRtYXJnaW4tbGVmdDogMjBweDtcclxuLy8gICBcdH1cclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi5wcmlvcml0aWVzLWNvbnRlbnR7XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0aDF7XHJcblx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jZ292e1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRwYWRkaW5nOiA5cHggMDtcclxuXHRwYWRkaW5nLXRvcDogMDtcclxuXHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHdoaXRlO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHQuc3RhdGV7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0LnN0YXRlLWljb257XHJcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cdFx0XHR3aWR0aDogMjlweDtcclxuXHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI4cHgsIDE3cHgsIDBweCwgLTkwcHgpO1xyXG5cdFx0fVxyXG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXJ7XHJcblx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICR3aGl0ZTtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiA4cHg7XHJcblx0XHR9XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0bGVmdDogNTUlO1xyXG5cdFx0fVxyXG5cdFx0JjphZnRlcntcclxuXHRcdFx0cmlnaHQ6IDU1JTtcclxuXHRcdH1cclxuXHR9XHJcblx0aDIsIGg0e1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAuMThlbTtcclxuXHRcdG1hcmdpbjogMHB4O1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHR9XHJcblx0aDJ7XHJcblx0XHRmb250LXNpemU6IDMwcHg7XHJcblx0fVxyXG5cdGg0e1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0Zm9udC1zaXplOiAxNXB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDIycHg7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogLjE0ZW07XHJcblx0fVxyXG59XHJcblxyXG4jaGVhZGVyX2ltYWdlIHtcclxuXHRoZWlnaHQ6IDQyMHB4O1xyXG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdGhlaWdodDogMjEwcHg7XHJcblx0fVxyXG59XHJcblxyXG4vLyBpY29uc1xyXG5cclxuLy8gLmZiLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDEwcHgsIDE5cHgsIDAsIC0xMjBweCk7XHJcbi8vIFx0d2lkdGg6IDEwcHg7XHJcbi8vIH1cclxuLy8gLm1haWwtaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMjNweCwgMTVweCwgLTMwcHgsIC0xMjBweCk7XHJcbi8vIFx0d2lkdGg6IDIzcHg7XHJcbi8vIH1cclxuLy8gLnR3LWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDE4cHgsIDE2cHgsIC02MHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAyM3B4O1xyXG4vLyB9XHJcbi8vIC55dC1pY29ue1xyXG4vLyBcdEBpbmNsdWRlIHNwcml0ZSgyMXB4LCAxNXB4LCAtOTBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMjJweDtcclxuLy8gfVxyXG4vLyAuaW5zdGEtaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMTVweCwgMTVweCwgLTEyMHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAxNXB4O1xyXG4vLyB9XHJcbi8vIC5mbGstaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMjNweCwgMTBweCwgLTE1MHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAyM3B4O1xyXG4vLyB9XHJcbi8vIC5tYWlsLXNtYWxsLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDIwcHgsIDEycHgsIC0xODBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMjBweDtcclxuLy8gfVxyXG5cclxuLy8gc29jaWFsIG5hdlxyXG5cclxuLy8gI3NvY2lhbC1uYXZ7XHJcbi8vIFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyBcdHotaW5kZXg6IDgwMDA7XHJcbi8vIFx0JjphZnRlcntcclxuLy8gXHRcdGNvbnRlbnQ6Jyc7XHJcbi8vIFx0XHRjbGVhcjogYm90aDtcclxuLy8gXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG4vLyBcdH1cclxuLy8gXHQuZmEge1xyXG4vLyBcdFx0ZGlzcGxheTogaW5oZXJpdDtcclxuLy8gXHRcdGZvbnQtc2l6ZTogMS41cmVtO1xyXG4vLyBcdFx0bGluZS1oZWlnaHQ6IDEuNTtcclxuLy8gXHRcdGNvbG9yOiAkZ29sZDtcclxuLy8gXHR9XHJcbi8vIFx0dWx7XHJcbi8vIFx0XHRtYXJnaW46IDBweDtcclxuLy8gXHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4vLyBcdFx0bGl7XHJcbi8vIFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuLy8gXHRcdFx0d2lkdGg6ICgxMDAlIC8gNik7XHJcbi8vIFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdHBhZGRpbmc6IDhweDtcclxuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuLy8gXHRcdFx0XHRib3JkZXItbGVmdDogbm9uZTtcclxuLy8gXHRcdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG4vLyBcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICMwMDA7XHJcbi8vIFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG4vLyBcdFx0XHRcdGZvbnQtc2l6ZTogLjdlbTtcclxuLy8gXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLjA4ZW07XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlKTtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR3aGl0ZSwgNSUpO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHQmOmFjdGl2ZXtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LDIyNSwyMjUsLjYpO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRzcGFue1xyXG4vLyBcdFx0XHRcdFx0aGVpZ2h0OiAxNXB4O1xyXG4vLyBcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcbi8vIFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vIFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vIFx0XHRcdFx0XHQmLnR3LWljb246YmVmb3JlLFxyXG4vLyBcdFx0XHRcdFx0Ji55dC1pY29uOmJlZm9yZSxcclxuLy8gXHRcdFx0XHRcdCYuaW5zdGEtaWNvbnsgdG9wOiA0cHg7IH1cclxuLy8gXHRcdFx0XHRcdCYuZmxrLWljb24geyB0b3A6IDZweDsgfVxyXG4vLyBcdFx0XHRcdFx0Ji5tYWlsLXNtYWxsLWljb24geyB0b3A6IDVweDsgfVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQmOmxhc3QtY2hpbGQgYXtcclxuLy8gXHRcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0Ji5tb2JpbGUge1xyXG4vLyBcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuLy8gXHRcdGJvdHRvbTogMTBweDtcclxuLy8gXHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0dWwge1xyXG4vLyBcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdGxpIHtcclxuLy8gXHRcdFx0XHR3aWR0aDogKDEwMCUgLyA2KTtcclxuLy8gXHRcdFx0XHRhIHtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQ6IDAgMDtcclxuLy8gXHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuLy8gXHRcdFx0XHRcdHNwYW4ge1xyXG4vLyBcdFx0XHRcdFx0XHRtYXJnaW46IDA7XHJcbi8vIFx0XHRcdFx0XHRcdCYubWFpbC1zbWFsbC1pY29uLFxyXG4vLyBcdFx0XHRcdFx0XHQmLmZsay1pY29uLFxyXG4vLyBcdFx0XHRcdFx0XHQmLnR3LWljb24sXHJcbi8vIFx0XHRcdFx0XHRcdCYuaW5zdGEtaWNvbixcclxuLy8gXHRcdFx0XHRcdFx0Ji55dC1pY29uIHtcclxuLy8gXHRcdFx0XHRcdFx0XHRsZWZ0OiAtMTBweDtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG4iLCIvLyBQUklPUklUSUVTLnNjc3NcclxuLy8gVE9ETyBUaGlzIGNhbiBsaWtlbHkgYmUgcmVtb3ZlZCBhcyBQcmlvcml0aWVzIHdpbGwgZm9sbG93IHRoZSBHdWlkZXMgbG9vayBhbmQgZmVlbCBmcm9tIFBBZ292XHJcbiNoZWFkZXJfaW1hZ2UucHJpb3JpdGllcy1oZWFkZXJ7XHJcblx0bWFyZ2luLXRvcDogMHB4O1xyXG5cdC8vIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHQvLyB9XHJcbn1cclxuXHJcbi8vIFByaW9yaXRpZXMgU2lkZWJhclxyXG5cclxuI3ByaW9yaXRpZXMtbmF2e1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuI3N0aWNreS1oZWFkZXJ7XHJcblx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0ei1pbmRleDogOTk5OTtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcblx0LnJpZ2h0e1xyXG5cdFx0bWFyZ2luLXRvcDogNXB4O1xyXG4gIFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgXHRcdC5zaGFyZS10aXRsZXtcclxuICBcdFx0XHRmb250LXNpemU6IC44ZW07XHJcbiAgXHRcdH1cclxuXHR9XHJcblx0aDMsIGF7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XHJcblx0fVxyXG5cdHNwYW57XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDogMTlweDtcclxuXHR9XHJcblx0LmZiLWljb257XHJcblx0XHR3aWR0aDogMTBweDtcclxuXHRcdGhlaWdodDogMTlweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IC0zcHg7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTUwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC50dy1pY29ue1xyXG5cdFx0d2lkdGg6IDIzcHg7XHJcblx0XHRoZWlnaHQ6IDE1cHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAtMnB4O1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC0xNTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0YTpob3ZlcntcclxuXHRcdG9wYWNpdHk6IC43O1xyXG5cdH1cclxufVxyXG4jcHJpb3JpdGllcy1zaWRlYmFye1xyXG5cdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAyMCUpO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0ei1pbmRleDogMjA7XHJcblx0d2lkdGg6IDI0M3B4O1xyXG5cdGg1e1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdHBhZGRpbmc6IDEwcHggMCAxMHB4IDQwcHg7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMTAlKTtcclxuXHRcdEBpbmNsdWRlIHNwcml0ZSgxOHB4LCAxOHB4LCAtMTgwcHgsIC0yNDBweCk7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0bGVmdDogMTVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0dWx7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGxpOmxhc3QtY2hpbGQgdWx7XHJcblx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgMzAlKTtcclxuXHRcdH1cclxuXHRcdGF7XHJcblx0XHRcdHBhZGRpbmc6IDE4cHggMjBweCAxMnB4O1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgMzAlKTtcclxuXHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XHJcblx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XHJcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAuMnMgZWFzZSk7XHJcblx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDE4JSk7XHJcblx0XHRcdH1cclxuXHRcdFx0c3BhbntcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMS40ZW07XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5hY3RpdmUgPiBhe1xyXG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHRcdCYgKyB1bHtcclxuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRcdFx0b3ZlcmZsb3c6IGluaXRpYWw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHVse1xyXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRoZWlnaHQ6IDA7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLW91dDtcclxuXHRcdFx0LW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHRsaXtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDE1cHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDEwJSk7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDEycHggMCA5cHggMDtcclxuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDhweCwgMTBweCwgLTMwcHgsIC05MHB4KTtcclxuXHRcdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IC01cHg7XHJcblx0XHRcdFx0XHRcdHRvcDogNTAlO1xyXG5cdFx0XHRcdFx0XHRyaWdodDogMDtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihyaWdodCAuMnMgZWFzZSwgd2lkdGggLjBzIGVhc2UsIG9wYWNpdHkgLjJzKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAxMCUpO1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0XHRyaWdodDogLTQwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiBkYXJrZW4oJHdoaXRlLCA0MCUpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCBhe1xyXG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogYXV0bztcclxuXHRcdHVse1xyXG5cdFx0XHQmI3ByaW9yaXRpZXMtbWFpbi1uYXZ7XHJcblx0XHRcdFx0LmFjdGl2ZXtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyMHB4LCAyMHB4LCAtMTgwcHgsIC0yNDBweCk7XHJcblx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0bGVmdDogMTVweDtcclxuXHRcdFx0XHRcdFx0dG9wOiAxNHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRsaXtcclxuXHRcdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0XHRcdGhlaWdodDogMHB4O1xyXG5cdFx0XHRcdCYuYWN0aXZle1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHRcdD4gYXtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAgNDVweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0YXtcclxuXHRcdFx0XHRwYWRkaW5nOiAxNHB4IDIwcHggMTBweDtcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMThweCwgMTNweCwgLTkwcHgsIC02MHB4KTtcclxuXHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdHJpZ2h0OiAxM3B4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRzcGFue1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCYubW9iaWxlLXByaW9yaXRpZXMtbWFpbi1uYXZ7XHJcblx0XHRcdFx0bGl7IGhlaWdodDogYXV0bzsgb3BhY2l0eTogMTt9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9IC8vIEVuZCBzbWFsbC1vbmx5XHJcbn1cclxuXHJcbi5maXhlZFByaW9OYXZ7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdHRvcDogMTA5cHg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0ei1pbmRleDogMzAwMDtcclxuXHQjcHJpb3JpdGllcy1zaWRlYmFye1xyXG5cdFx0bWFyZ2luLXRvcDogMDtcclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0dG9wOiA0NXB4O1xyXG5cdH1cclxufVxyXG5cclxuLnByaW9yaXRpZXMtbmF2LWJne1xyXG5cdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAyMCUpO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdHdpZHRoOiAyNDNweDtcclxuXHR6LWluZGV4OiAtMTtcclxuXHR0b3A6IDA7XHJcbn1cclxuXHJcbiNjb250ZW50LnByaW9yaXRpZXMtY29udGVudHtcclxuXHRtYXJnaW4tbGVmdDogMjc1cHg7XHJcblx0bWFyZ2luLXRvcDogMDtcclxuXHRwYWRkaW5nLXRvcDogMDtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRtYXJnaW4tdG9wOiA1MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLnByaW9yaXRpZXMtbmF2LWFycm93e1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDE3cHg7XHJcblx0cmlnaHQ6IC00MHB4O1xyXG5cdHdpZHRoOiAwO1xyXG5cdGhlaWdodDogMDtcclxuXHRib3JkZXItdG9wOiAxOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1ib3R0b206IDE4cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1sZWZ0OiAyMHB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCAyMCUpO1xyXG5cdG9wYWNpdHk6IDE7XHJcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7XHJcblx0QGluY2x1ZGUgdHJhbnNpdGlvbih0b3AgMC4zcyAwcyBlYXNlKTtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuLy8gUHJpb3JpdHkgQ29udGVudFxyXG5cclxuLnByaW9yaXR5e1xyXG5cdCYtc2VjdGlvbntcclxuXHRcdG1hcmdpbi10b3A6IDUwcHg7XHJcblx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuXHRcdCY6Zmlyc3QtY2hpbGR7XHJcblx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHR9XHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1wb3N0LXRpdGxle1xyXG5cdFx0cGFkZGluZy1sZWZ0OiA2NXB4O1xyXG5cdFx0Y29sb3I6ICRibGFjaztcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdCY6YmVmb3Jle1xyXG5cdFx0XHR0b3A6IDJweDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbiNzY2hvb2xzLXNlY3Rpb24gLnByaW9yaXR5LXBvc3QtdGl0bGV7XHJcblx0cGFkZGluZy1sZWZ0OiA3NXB4O1xyXG5cdEBpbmNsdWRlIHNwcml0ZSg1NnB4LCA0MXB4LCAwLCAtMzkwcHgpO1xyXG59XHJcbiNqb2JzLXNlY3Rpb24gLnByaW9yaXR5LXBvc3QtdGl0bGV7XHJcblx0QGluY2x1ZGUgc3ByaXRlKDQwcHgsIDQycHgsIC02MHB4LCAtMzkwcHgpO1xyXG59XHJcbiNnb3Zlcm5tZW50LXNlY3Rpb24gLnByaW9yaXR5LXBvc3QtdGl0bGV7XHJcblx0QGluY2x1ZGUgc3ByaXRlKDUzcHgsIDQ1cHgsIC0xMjBweCwgLTM5MHB4KTtcclxufVxyXG5cclxuLmFuY2hvciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4ucHJpb3JpdGllcy1tYWluLW5hdl9mYWRlLW91dHtcclxuXHRvcGFjaXR5OiAwLjA7XHJcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLW91dDtcclxuXHQtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHQtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG5cdC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcbn1cclxuIiwic2VsZWN0IHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbn0iLCIvLyBTSURFQkFSLnNjc3NcclxuLndpZGdldHtcclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gIGg1e1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweCAxM3B4IDI1cHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjA4ZW07XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIC5tZW51LWFib3V0LWNvbnRhaW5lciB7XHJcbiAgICB1bCB7XHJcbiAgICAgIGxpIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICB1bHtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgdWx7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgICBsaXtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgICAgYXtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6IDEuMWVtO1xyXG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCBlYXNlIC4ycyk7XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJjpsYXN0LWNoaWxke1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBkaXZ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgLy8gYm9yZGVyLXRvcDogMDtcclxuICAgIHVse1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC50ZXh0d2lkZ2V0IHtcclxuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS4yNXJlbSAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8gVE9ETyBDb25zb2xpZGF0ZSBhbGwgd2lkZ2V0IHN0eWxlc1xyXG4ucGFuZWwgLndpZGdldF90ZXh0IHtcclxuICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgLnRleHR3aWRnZXQge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gTkVXU1JPT00gU0lERUJBUlxyXG5cclxuLndpZGdldF9uYXZfbWVudSB7XHJcblxyXG4gICNuZXdzcm9vbS1zaWRlYmFye1xyXG4gICAgdWwjbWVudS1uZXdzcm9vbSB7XHJcbiAgICAgIGxpLmN1cnJlbnQtbWVudS1pdGVte1xyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHJcbiAgICB1bCNtZW51LW5ld3Nyb29te1xyXG4gICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgJi5tb2JpbGUtZHJvcGRvd257XHJcbiAgICAgICAgbGl7XHJcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gQVJDSElWRSBXSURHRVRcclxuXHJcbi53aWRnZXQge1xyXG4gICYtYXJjaGl2ZWxpc3QteWVhcixcclxuICAjbWVudS13ZWVrbHktcmVwb3J0cyB7XHJcbiAgICA+IGEsIFxyXG4gICAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcclxuICAgICAgZm9udC1zaXplOiAxLjFlbTtcclxuICAgICAgY29sb3I6ICRibGFjaztcclxuICAgIH1cclxuICAgIHVsIHtcclxuICAgICAgaGVpZ2h0OiAwcHg7XHJcbiAgICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBsaXtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYXtcclxuICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgIHBhZGRpbmc6IDVweCAzMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5jdXJyZW50LWFyY2hpdmUteWVhciwgLmN1cnJlbnQtcmVwb3J0e1xyXG4gICAgICA+IGEsIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYXtcclxuICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgdG9wOiAxMHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IC05MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB1bHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jdXJyZW50LXJlcG9ydHtcclxuICAgICAgPiBhLCAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGF7XHJcbiAgICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnR1dC10d2VldCB7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgZm9udC1zaXplOiAuOTVlbTtcclxuICAgIC50dXQtdXNlci1uYW1le1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgLnR1dC1zY3JlZW4tbmFtZXtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIGhlYWRlcntcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIH1cclxuICAgIC50dXQtcHJvZmlsZS1pbWFnZXtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG4gICAgbGksIC50dXQtdGV4dHtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgICAudHV0LXRleHR7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgd2lkdGg6IDgwJTtcclxuICAgIH1cclxuICAgIGF7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAvLyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgIGZvbnQtc2l6ZTogLjk1ZW07XHJcbiAgICB9XHJcbiAgICAmOjpiZWZvcmUsXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG4gIH1cclxuICAudHV0LXR3ZWV0cyBsaXtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG4gIC50dXQtZm9sbG93LWxpbmt7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMTVweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmctbGVmdDogMnB4O1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgfVxyXG4gIC8vIC50dXQtYWN0aW9ucyBhOmZpcnN0LWNoaWxkIHtcclxuICAvLyAgICAgbWFyZ2luOjBweDtcclxuICAvLyB9XHJcbiAgLnR1dC1hY3Rpb25ze1xyXG4gICAgZmxvYXQ6cmlnaHQ7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGUgIWltcG9ydGFudDtcclxuICAgIGF7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OjhweDtcclxuICAgICAgd2lkdGg6MTZweDtcclxuICAgICAgaGVpZ2h0OjE2cHg7XHJcbiAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9ldmVyeXRoaW5nLXNwcml0ZS1saWdodC5wbmcnKTtcclxuICAgIH1cclxuXHJcbiAgICAudHV0LXJlcGx5OmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1dC1yZXR3ZWV0IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MnB4IDA7XHJcbiAgICB9XHJcbiAgICAudHV0LXJldHdlZXQ6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246LTEwMXB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnR1dC1mYXZvcml0ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwO1xyXG4gICAgfVxyXG4gICAgLnR1dC1mYXZvcml0ZTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAudHV0LXRpbWV7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG59XHJcbi53aWRnZXRfbmV3c2xldHRlcl93aWRnZXR7XHJcbiAgLm5ld3NsZXR0ZXJfd2lkZ2V0X2NvbnRhaW5lcntcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgIGRpdntcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgfVxyXG4gICAgLm5pbmphLWZvcm1zLWNvbnR7XHJcbiAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGdvbGQ7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ29sZDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaDN7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gIH1cclxuICBmb3Jte1xyXG4gICAgaW5wdXR7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgIGJvcmRlcjogc29saWQgNHB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgICAgbWluLWhlaWdodDogNTBweDtcclxuICAgICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgICAmOmZvY3Vze1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5hdnk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5idXR0b24uc2Vjb25kYXJ5e1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAmOmhvdmVye1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkbmF2eSwgNSUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTY2hlZHVsZSBGaWx0ZXIgV2lkZ2V0XHJcblxyXG4ud2lkZ2V0X3NjaGVkdWxlX2ZpbHRlcl93aWRnZXR7XHJcbiAgI3RyaWJlLWV2ZW50cy1iYXJ7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgaDR7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG4gICAgfVxyXG4gICAgZGl2e1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBsYWJlbHtcclxuICAgICAgY29sb3I6IGRhcmtlbigkd2hpdGUsIDMwJSk7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgfVxyXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl17XHJcbiAgICAgIGJvcmRlcjogc29saWQgNXB4IGRhcmtlbigkd2hpdGUsIDglKTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogMCAxNXB4O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgfVxyXG4gICAgLnRyaWJlLWJhci1zZWFyY2gtY29udGFpbmVye1xyXG4gICAgICBpbnB1dHtcclxuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgNTAlKTtcclxuICAgICAgICBAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDUwcHgpO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcclxuICAgICAgICBjb2xvcjogZGFya2VuKCR3aGl0ZSwgMzAlKTtcclxuICAgICAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIHNwcml0ZSgxNXB4LCAxNXB4LCAtMTUwcHgsIC0zMHB4KTtcclxuICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgdG9wOiAxM3B4O1xyXG4gICAgICAgIGxlZnQ6IDE2cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5idXR0b24ucHJpbWFyeXtcclxuICAgICAgYmFja2dyb3VuZDogJGdvbGQ7XHJcbiAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgIHBhZGRpbmc6IDEycHggMjBweDtcclxuICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cdCNzY2hlZHVsZS13aWRnZXR7XHJcblx0XHRwYWRkaW5nOiAyMHB4O1xyXG5cdFx0aDR7XHJcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0fVxyXG5cdFx0ZGl2e1xyXG5cdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHR9XHJcblx0XHRsYWJlbHtcclxuXHRcdFx0Y29sb3I6IGRhcmtlbigkd2hpdGUsIDMwJSk7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xyXG5cdFx0fVxyXG5cdFx0aW5wdXRbdHlwZT1cInRleHRcIl17XHJcblx0XHRcdGJvcmRlcjogc29saWQgNXB4IGRhcmtlbigkd2hpdGUsIDglKTtcclxuXHRcdCAgb3V0bGluZTogbm9uZTtcclxuXHRcdCAgcGFkZGluZzogMCAxNXB4O1xyXG5cdFx0ICBkaXNwbGF5OiBibG9jaztcclxuXHRcdCAgaGVpZ2h0OiA1MHB4O1xyXG5cdFx0ICBib3gtc2hhZG93OiBub25lO1xyXG5cdFx0fVxyXG5cdFx0LnNjaGVkdWxlX3NlYXJjaHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG5cdFx0XHRpbnB1dFt0eXBlPVwic2VhcmNoXCJde1xyXG5cdFx0XHRcdGJvcmRlcjogc29saWQgMXB4ICRibHVlLWJyaWdodDtcclxuXHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDUwcHgpO1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMTVweDtcclxuXHRcdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaC1idXR0b24td3JhcHBlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcmlnaHQ6IDE1cHg7XHJcbiAgICAgIH1cclxuXHRcdH1cclxuXHRcdC5idXR0b24ucHJpbWFyeXtcclxuXHRcdFx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdHBhZGRpbmc6IDEycHggMjBweDtcclxuXHRcdFx0Zm9udC1zaXplOiAxZW07XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbi51aS1kYXRlcGlja2VyLWhlYWRlcntcclxuICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBib3JkZXI6IHNvbGlkIDJweCByZ2IoMjIxLCAyMjEsIDIyMSk7XHJcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAudWktZGF0ZXBpY2tlci1uZXh0e1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gIH1cclxuICAudWktZGF0ZXBpY2tlci1wcmV2e1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgfVxyXG4gIC51aS1kYXRlcGlja2VyLXRpdGxle1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLy8gTW9iaWxlIFNjaGVkdWxlIHNpZGViYXJcclxuXHJcbi5zY2hlZHVsZS1wYWdlIHtcclxuICBAbWVkaWEgI3skbWVkaXVtLWRvd259e1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uc2NoZWR1bGUtcGFnZXtcclxuICBAbWVkaWEgI3skc21hbGwtb25seX17XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcbiNzY2hlZHVsZS1zaWRlYmFye1xyXG4gIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuICAgIC53aWRnZXRfc2NoZWR1bGVfZmlsdGVyX3dpZGdldCAjc2NoZWR1bGUtd2lkZ2V0e1xyXG4gICAgICAuc2NoZWR1bGVfc2VhcmNoIHtcclxuICAgICAgICBpbnB1dFt0eXBlPXNlYXJjc2hde1xyXG4gICAgICAgICAgQGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3JkZXItcmFkaXVzLCAwKTtcclxuICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDIwcHggMDtcclxuICAgICAgfVxyXG4gICAgICBsYWJlbHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwYWRkaW5nOiAwIDVweDtcclxuICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZXtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpsYXN0LW9mLXR5cGV7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAuYnV0dG9uLnByaW1hcnl7XHJcbiAgICAgICAgd2lkdGg6IDIzMHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuI3VpLWRhdGVwaWNrZXItZGl2e1xyXG4gIHRhYmxle1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn0iLCIvLyBTSVRFTUFQLnNjc3NcclxuXHJcbnVsLnNpdGUtbWFwe1xyXG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRtYXJnaW46IDA7XHJcblx0bGl7XHJcblx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuXHRcdCYubWVudS1pdGVtLWRlcHRoLTB7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdG1hcmdpbi10b3A6MTVweDtcclxuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cdFx0XHRmb250LXNpemU6IDI1cHg7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQoKTtcclxuXHRcdFx0PiBhe1xyXG5cdFx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59IiwiJHJlc3BvbnNpdmUtY2FyZC10YWJsZS1ib3R0b20tZ2FwOiAxLjVyZW07XHJcbiRyZXNwb25zaXZlLWNhcmQtdGFibGUtc3RhY2stcG9pbnQ6IDYzLjkzNzVlbTtcclxuXHJcbnRhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1jYXJkLXRhYmxlLWJvdHRvbS1nYXA7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHJlc3BvbnNpdmUtY2FyZC10YWJsZS1zdGFjay1wb2ludCkge1xyXG4gICAgICAgIHRoZWFkIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtOTk5OWVtO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogLTk5OTllbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdHIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEdldCB0YWJsZSBjZWxscyB0byBhY3QgbGlrZSByb3dzICovXHJcblxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8vIHRleHR5IHRoaW5nc1xyXG4udGV4dC13ZWlnaHQtYm9sZCB7XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkKCk7XHJcbn1cclxuXHJcbi50ZXh0LXdlaWdodC1ub3JtYWwge1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsKCk7XHJcbn1cclxuXHJcbi50ZXh0LXdlaWdodC1saWdodCB7XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1saWdodCgpO1xyXG59XHJcblxyXG4udGV4dC11cHBlcmNhc2Uge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnRleHQtdW5kZXJsaW5lIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4udG9wLW5hdmlnYXRpb24tdGV4dCB7XHJcbiAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkKCk7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4uc2lkZWJhci1uYXZpZ2F0aW9uLXRleHQge1xyXG4gICAgZm9udC1zaXplOiAxLjc1ZW07XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkKCk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG59XHJcblxyXG4vLyBzdHlsZSBmcm9tIG9sZCB0aGVtZVxyXG5ibG9ja3F1b3RlIHtcclxuXHRtYXJnaW46IDMwcHggMDtcclxuXHRwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuNTg3NXJlbTtcclxuXHRwIHtcclxuXHRcdGZvbnQtc2l6ZTogMS41ZW07XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuMmVtO1xyXG5cdFx0Y29sb3I6ICRibGFjaztcclxuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8vIG1heWJlIHRoaXMgc2hvdWxkIGdvIGludG8gYSBjb21wb25lbnRzIC8gc2VjdGlvbiA/XHJcbiVoZWFkaW5nLWRlZmF1bHRzIHtcclxuICAgIGNvbG9yOiAkbmF2eTtcclxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1tb250c2VycmF0O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIH1cclxuICAgICYuaXRhbGljIHtcclxuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICB9XHJcbiAgICA+IGEgeyBjb2xvcjogaW5oZXJpdDt9XHJcbn1cclxuXHJcbiVoZWFkZXItdW5kZXJsaW5lIHtcclxuICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGZvbnQtc2l6ZTogMi41ZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCAkYmx1ZS1icmlnaHQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWN0aW9uLXRpdGxlIHtcclxuICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcblxyXG4uaDEsXHJcbmgxIHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkKCk7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xyXG4gICAgLy8gZG91YmxlIGNoZWNrIHRoZXJlIGlzIG5vdCBhdHRlbXB0ZWQgc3R5bGluZ1xyXG4gICAgJjpub3QoW2NsYXNzXSkge1xyXG4gICAgICAgIC5hcnRpY2xlICYsXHJcbiAgICAgICAgI2NvbnRlbnQgI21haW4gYXJ0aWNsZSAmIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlaGVhZGVyLXVuZGVybGluZTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xyXG4gICAgICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMS4yNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oZWFkZXIge1xyXG4gICAgJl9fc2VjdGlvbiB7XHJcbiAgICAgICAgQGV4dGVuZCAlaGVhZGVyLXVuZGVybGluZTtcclxuICAgIH1cclxufVxyXG5cclxuLmgyLFxyXG5oMiB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAyLjVyZW07XHJcblxyXG4gICAgLmFydGljbGUgJiB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTtcclxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmgzLFxyXG5oMyB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAxLjkzNzVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xyXG4gICAgLmFydGljbGUgJiB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC42MjVyZW07XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaDQsXHJcbmg0IHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcclxuICAgIC5hcnRpY2xlICYge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNjI1cmVtO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaDUsXHJcbmg1IHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaDYsXHJcbmg2IHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgICBQQUk6IGdvdmVybm9yLlBBLmdvdlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiVjb2x1bW4tZGVmYXVsdCB7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xyXG4gICAgfVxyXG4gICAgJWNvbHVtbi1kZWZhdWx0IHtcclxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4uY29sdW1uIHtcclxuICAgIEBleHRlbmQgJWNvbHVtbi1kZWZhdWx0O1xyXG59XHJcblxyXG4uY29sdW1ucyB7XHJcbiAgICBAZXh0ZW5kICVjb2x1bW4tZGVmYXVsdDtcclxufVxyXG5cclxuLmhlYWRlciB7XHJcbiAgICAmX19waG90by1jcmVkIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IDQwcHg7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBib3R0b206IDIwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIGluc2VydCBtYXAgbWFya2VyIGFmdGVyIGxvY2F0aW9uIHRleHRcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXGYwNDFcIjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjI1cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBUT0RPIE1pZ3JhdGUgdGhpcyB0byB3aGVyZSBpdHMgYXBwcm9wcmlhdGVcclxuLy8gQXJjaGl2ZSB3aWRnZXQsIGhpZGUgb24gbW9iaWxlXHJcbi53aWRnZXRfYXJjaGl2ZWxpc3Rfd2lkZ2V0LFxyXG4ud2lkZ2V0X29yZGVyc2FyY2hpdmVsaXN0X3dpZGdldCB7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX17XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gVE9ETyBNaWdyYXRlIHRoaXMgdG8gd2hlcmUgaXRzIGFwcHJvcHJpYXRlXHJcbi53aWRnZXRfbmV3c2xldHRlcl93aWRnZXQge1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuLy8gVE9ETyBNaWdyYXRlIHRoaXMgdG8gd2hlcmUgaXRzIGFwcHJvcHJpYXRlXHJcbiNzY2hlZHVsZS1zaWRlYmFyIC53aWRnZXRfc2NoZWR1bGVfZmlsdGVyX3dpZGdldCAjc2NoZWR1bGUtd2lkZ2V0IHtcclxuICAgIGxhYmVsIHtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuICAgIGlucHV0IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xyXG4gICAgfVxyXG59XHJcbi8vR29vZ2xlIFRyYW5zbGF0ZVxyXG4uZ29vZ2xlLXRyYW5zbGF0ZSB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGhlaWdodDogNDZweDtcclxuICAgID4gZGl2IHtcclxuICAgICAgICB0b3A6IDE2cHg7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAuZ29vZ2xlLWFsdCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICB3aWR0aDogOTBweDtcclxuICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG4gICAgICAgID4gZGl2IHtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuI2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudCB7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi5nb29nLXRlLWJhbm5lci1mcmFtZSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcclxuICAgIHRvcDogNjRweCAhaW1wb3J0YW50O1xyXG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHotaW5kZXg6IDEwMDQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmdvb2ctdGUtZ2FkZ2V0LWljb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmdvb2dsZS1hbHQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICByaWdodDogMTBweDtcclxuICAgIHRvcDogMDtcclxuICAgIHotaW5kZXg6IDAgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiByZWQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjFlbTtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2U7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZ3JpZDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICByaWdodDogMjBweDtcclxuICAgICAgICBsZWZ0OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjA1O1xyXG5cclxuICAgICAgICBmb250LXNpemU6IC42NWVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRibHVlO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiRibHVlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mYS1jYXJldC1kb3duIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5lbWJlZC1yZXNwb25zaXZlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8vIFtkYXRhLWFiaWRlXSB7XHJcbi8vICAgICAuZXJyb3Ige1xyXG4vLyAgICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xyXG4vLyAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICB9XHJcbi8vIH1cclxuXHJcbi8vIEZvciBKcXVlcnkgVmFsaWRhdGVcclxuW2RhdGEtYWJpZGVdIHtcclxuICAgIC5lcnJvciB7XHJcbiAgICAgICAgc21hbGwuZXJyb3IsIHNwYW4uZXJyb3Ige1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcclxuICAgICAgICBwYWRkaW5nOiAuMzc1cmVtIC41NjI1cmVtIC41NjI1cmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmMDQxMjQ7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzbWFsbC5lcnJvciwgc3Bhbi5lcnJvciB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XHJcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gLjU2MjVyZW0gLjU2MjVyZW07XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2YwNDEyNDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gICAgc21hbGwuZXJyb3IsIHNwYW4uZXJyb3Ige1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmVycm9yIHNtYWxsLmVycm9yLCBzbWFsbC5lcnJvciwgc3Bhbi5lcnJvciB7XHJcbiAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IC43NXJlbTtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICBwYWRkaW5nOiAuMzc1cmVtIC41NjI1cmVtIC41NjI1cmVtO1xyXG4gICAgYmFja2dyb3VuZDogI2YwNDEyNDtcclxuICAgIH1cclxuXHJcbiAgICBzbWFsbC5lcnJvciwgc3Bhbi5lcnJvciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAuZXJyb3Ige1xyXG4gICAgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgJlt0eXBlPWNoZWNrYm94XSwgJlt0eXBlPXJhZGlvXSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzbWFsbC5lcnJvciB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIH1cclxuICAgIGxhYmVsIHtcclxuICAgICAgICBjb2xvcjogI2YwNDEyNDtcclxuICAgICAgICAmLmVycm9yIHtcclxuICAgICAgICBjb2xvcjogI2YwNDEyNDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBzbWFsbC5lcnJvciB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgID4gbGFiZWwgPiBzbWFsbCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogMCAwO1xyXG4gICAgICAgIGNvbG9yOiAjNjc2NzY3O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBmb250LXNpemU6IDYwJTtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5lcnJvciBzcGFuLmVycm9yLW1lc3NhZ2Uge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbmlucHV0LmVycm9yLCBzZWxlY3QuZXJyb3IsIHRleHRhcmVhLmVycm9yIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn0iLCIvKlxyXG5cclxuICAgIEN1c3RvbSBQQS5Hb3Ygc3R5bGluZyBmb3IgTmluamEgRm9ybXMgZWxlbWVudHNcclxuXHJcbiovXHJcblxyXG5AaW1wb3J0ICdoZWxwZXJzL2NvbG9ycyc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcclxuXHJcbi5uZi1maWVsZC1sYWJlbCB7XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4yNWVtO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubmYtZm9ybS1maWVsZHMtcmVxdWlyZWQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBYUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5Q0FvQnlDO0FBK0R6QyxBQUFBLE9BQU8sQ0FBUztFQUFFLFVBQVUsRUEzRGhCLE9BQU87Q0EyRGlCOztBQUNwQyxBQUFBLE9BQU8sQ0FBUztFQUFFLFVBQVUsRUEzRGhCLE9BQU87Q0EyRGlCOztBQUNwQyxBQUFBLFVBQVUsQ0FBTTtFQUFFLFVBQVUsRUEzRGhCLE9BQU87Q0EyRG9COztBQUN2QyxBQUFBLFVBQVUsQ0FBTTtFQUFFLFVBQVUsRUExRGhCLE9BQU87Q0EwRG9COztBQUN2QyxBQUFBLFdBQVcsQ0FBSztFQUFFLFVBQVUsRUE1RGhCLElBQUk7Q0E0RHdCOztBQUV4QyxBQUFBLE9BQU8sQ0FBUztFQUFFLFVBQVUsRUEzRGhCLE9BQU87Q0EyRGlCOztBQUNwQyxBQUFBLFFBQVEsQ0FBUTtFQUFFLFVBQVUsRUE1RGhCLE9BQU87Q0E0RG9COztBQUN2QyxBQUFBLFdBQVcsQ0FBSztFQUFFLFVBQVUsRUE1RGhCLE9BQU87Q0E0RHNCOztBQUN6QyxBQUFBLFdBQVcsQ0FBSztFQUFFLFVBQVUsRUE1RGhCLE9BQU87Q0E0RHNCOztBQUN6QyxBQUFBLGFBQWEsQ0FBRztFQUFFLFVBQVUsRUE1RGhCLE9BQU87Q0E0RHdCOztB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 */
