@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-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-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 {
  padding: 4.6875em 0;
  display: block;
  width: 100%;
}

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

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

@media screen and (max-width: 39.9375em) {
  .wrapp_goes_squish, .topics_header, .wrapp_featured_section, .wrapp_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;
  }
}

.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-top: 1.5em;
    margin-bottom: 1.5em;
    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: $medium-top-breakpoint) {
  .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__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;
}

.article a {
  color: #003146 !important;
  text-decoration: underline;
}

[data-whatinput="touch"] .article a:focus,
[data-whatinput="touch"] .article a:active,
[data-whatinput="mouse"] .article a:focus,
[data-whatinput="mouse"] .article a:active,
[data-whatinput="mouse"] .article a:hover, .article a:hover, .article a:active {
  color: #192857 !important;
}

@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: #003146;
}

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

.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: $medium-top-breakpoint) {
  .topic_summary {
    padding: 1rem 0.5rem;
  }
  .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: 25px;
    padding: 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: 2em;
}

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

@media screen and (max-width: 39.9375em) {
  .wrapp_featured_section {
    margin-bottom: 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;
  }
}

.actionitem {
  display: block;
  padding-bottom: 1.9em;
  position: relative;
}

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

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

.actionitem div {
  padding: 1.5625em;
  text-align: center;
  background: #ebebeb;
  color: #003146;
  min-height: 180px;
  -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: 40em) and (max-width: $medium-top-breakpoint) {
  .actionitem div {
    min-height: 150px;
  }
}

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

.actionitem div i {
  display: block;
  margin: auto;
  font-size: 4em;
  padding-bottom: 10px;
  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 h5,
[data-whatinput="touch"] .actionitem:active div h5,
[data-whatinput="mouse"] .actionitem:focus div h5,
[data-whatinput="mouse"] .actionitem:active div h5,
[data-whatinput="mouse"] .actionitem:hover div h5, .actionitem:hover div h5, .actionitem:active div h5 {
  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 .75em;
  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: $medium-top-breakpoint) {
  .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: 25px;
  }
  #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;
  }
  .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;
  }
}

/* .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: .9em !important;
  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;
}

#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: #003146;
  background: #e1e1e1;
  border-left: 0.1875em solid #192857;
  -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: #192857;
  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;
}

@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: 10px;
  letter-spacing: 0;
  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;
}

.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: 5px;
  padding-left: .5em;
  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;
}

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

.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 {
  letter-spacing: .12em;
  position: relative;
  padding-bottom: 15px;
  text-transform: uppercase;
  color: #c8922b;
}

.button:hover {
  background-color: #c8922b;
  color: #fafafa;
}

.button.secondary, .button.success, .button.alert, .button.warning, .button.info {
  color: #fafafa;
  border: none;
}

.button.secondary:hover, .button.success:hover, .button.alert:hover, .button.warning:hover, .button.info:hover {
  color: #fafafa;
}

.button.expand {
  padding: 15px 25px;
}

.btn-white {
  border-color: #fafafa;
  color: #fafafa;
}

.btn-white:hover {
  background: #fafafa;
  color: #192857;
}

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

#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: #464646;
    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: #464646;
  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: $medium-top-breakpoint) {
  #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: $medium-top-breakpoint) {
  #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: $medium-top-breakpoint) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) 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: $medium-top-breakpoint) {
  #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: $medium-top-breakpoint) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) 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: $medium-top-breakpoint) {
  #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: $medium-top-breakpoint) and (-webkit-min-device-pixel-ratio: 1), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (-o-min-device-pixel-ratio: 3 / 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (min--moz-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) and (min-device-pixel-ratio: 2), screen and (min-width: 40em) and (max-width: $medium-top-breakpoint) 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: $medium-top-breakpoint) {
  #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-image #news-image {
  height: 235px;
  background-position: center;
  background-size: cover;
  position: relative;
}

.news-post-image #news-image.article-featured-image {
  height: 350px;
}

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

section#related-news .data-list-element a, section#related-media .data-list-element a {
  border-color: #c8922b;
  color: #0a0a0a;
}

section#related-news .data-list-element a:hover, section#related-media .data-list-element a:hover {
  background-color: #c8922b;
  color: #fafafa;
}

.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: 25px 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;
}

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

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

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

.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) {
  .h1,
  h1 {
    font-size: 1.5rem;
  }
}

.h2,
h2 {
  font-size: 2.5rem;
}

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

@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
   ====================================================== */
article section {
  margin-bottom: 1rem;
}

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

.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdXRpbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19tYXRoLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdmFsdWUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZGlyZWN0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdHlwb2dyYXBoeS5zY3NzIiwiaGVscGVycy9fY29sb3JzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9fbm9ybWFsaXplLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX3ZlcnRpY2FsLXJoeXRobS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX21pc3NpbmctZGVwZW5kZW5jaWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3RydWUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWluLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHVyZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19yZW1vdmUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19yZXBsYWNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdG8tbGlzdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191dGlsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY29sdW1uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fbGF5b3V0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL194eS1ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2d1dHRlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2ZyYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX3Bvc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2xheW91dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jb2xsYXBzZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jbGFzc2VzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3R5cG9ncmFwaHkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZm9ybXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19sYWJlbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZmllbGRzZXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcmFuZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3Byb2dyZXNzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19tZXRlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19iYWRnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFibGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3Byb3RvdHlwZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3JlbGF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYm94LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcm90YXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC11dGlsaXRpZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL190ZXh0LXRyYW5zZm9ybWF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fZm9udC1zdHlsaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fbGlzdC1zdHlsZS10eXBlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fcm91bmRlZC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlcmVkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fc2hhZG93LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3Byb3RvdHlwZS9fYXJyb3cuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19zZXBhcmF0b3Iuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19vdmVyZmxvdy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2Rpc3BsYXkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19wb3NpdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX2JvcmRlci1ib3guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvcHJvdG90eXBlL19ib3JkZXItbm9uZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NpemluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9wcm90b3R5cGUvX3NwYWNpbmcuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL21vdGlvbi11aS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX2FyZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3V0aWwvX2tleWZyYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19zZWxlY3Rvci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdXRpbC9fc2VyaWVzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL191bml0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19mYWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19oaW5nZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fc3Bpbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fem9vbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9fc2hha2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX3NsaWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL193aWdnbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19mYWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9faGluZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc2xpZGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsImhlbHBlcnMvX21peGlucy5zY3NzIiwiaGVscGVycy9fYnJlYWtwb2ludHMuc2NzcyIsImhlbHBlcnMvX2hlbHBlcnMuc2NzcyIsImhlbHBlcnMvX3dyYXBwZXJzLnNjc3MiLCJoZWxwZXJzL19zaGFkb3dzLnNjc3MiLCJiYXNlL19iYWNrZ3JvdW5kcy5zY3NzIiwicGFnZXMvXzQwNC5zY3NzIiwicGFnZXMvX3RvcGljcy5zY3NzIiwicGFnZXMvX3NlYXJjaC5zY3NzIiwicGFnZXMvX3RyYXZlbEV4cGVuc2VzLnNjc3MiLCJjb21wb25lbnRzL19jb21wb25lbnRzLnNjc3MiLCJjb21wb25lbnRzL19iYWNrVG9Ub3Auc2NzcyIsImNvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJjb21wb25lbnRzL19jYWxsb3V0cy5zY3NzIiwiY29tcG9uZW50cy9fbmV3c2xldHRlckNUQS5zY3NzIiwiY29tcG9uZW50cy9fbmV3c2xldHRlck1vZGFsLnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19wYW5lbHMuc2NzcyIsImNvbXBvbmVudHMvX2NhcmRzLnNjc3MiLCJjb21wb25lbnRzL190b3BuYXYuc2NzcyIsImNvbXBvbmVudHMvX3NlYXJjaE1vZGFsLnNjc3MiLCJjb21wb25lbnRzL19zaG9ydGNvZGVFeHBhbmQuc2NzcyIsInRoZW1lL190aGVtZS5zY3NzIiwidGhlbWUvX2FuY2hvcnMuc2NzcyIsInRoZW1lL19idXR0b25zLnNjc3MiLCJ0aGVtZS9fY29tbWVudHMuc2NzcyIsInRoZW1lL19ldmVudHMuc2NzcyIsInRoZW1lL19mb290ZXIuc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19ob21lLnNjc3MiLCJ0aGVtZS9fbW9kYWwuc2NzcyIsInRoZW1lL19uZXdzcm9vbS5zY3NzIiwidGhlbWUvX3BhZ2VzLnNjc3MiLCJ0aGVtZS9fcHJpb3JpdGllcy5zY3NzIiwidGhlbWUvX3NlbGVjdC5zY3NzIiwidGhlbWUvX3NpZGViYXIuc2NzcyIsInRoZW1lL19zaXRlbWFwLnNjc3MiLCJ0aGVtZS9fdHlwb2dyYXBoeS5zY3NzIiwiX2N1c3RvbS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ3NldHRpbmdzJztcclxuQGltcG9ydCAnZm91bmRhdGlvbic7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tZXZlcnl0aGluZygkZmxleDogZmFsc2UpO1xyXG5AaW1wb3J0ICdtb3Rpb24tdWknO1xyXG5AaW1wb3J0ICd1dGlsL21peGlucyc7XHJcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XHJcblxyXG4vLyBAaW5jbHVkZSBtb3Rpb24tdWktdHJhbnNpdGlvbnM7XHJcbi8vIEBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xyXG5cclxuLy8gQGltcG9ydCAnZm9udC1hd2Vzb21lJztcclxuXHJcbi8vIEhlbHBlcnNcclxuQGltcG9ydCAnaGVscGVycy9taXhpbnMnO1xyXG5AaW1wb3J0ICdoZWxwZXJzL2NvbG9ycyc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvYnJlYWtwb2ludHMnO1xyXG5AaW1wb3J0ICdoZWxwZXJzL2hlbHBlcnMnO1xyXG5AaW1wb3J0ICdoZWxwZXJzL3dyYXBwZXJzJztcclxuQGltcG9ydCAnaGVscGVycy9zaGFkb3dzJztcclxuXHJcbi8vIEJhc2VcclxuQGltcG9ydCAnYmFzZS9iYWNrZ3JvdW5kcyc7XHJcblxyXG4vLyBQYWdlc1xyXG5AaW1wb3J0ICdwYWdlcy80MDQnO1xyXG5AaW1wb3J0ICdwYWdlcy90b3BpY3MnO1xyXG5AaW1wb3J0ICdwYWdlcy9zZWFyY2gnO1xyXG5AaW1wb3J0ICdwYWdlcy90cmF2ZWxFeHBlbnNlcyc7XHJcblxyXG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbXBvbmVudHMnO1xyXG5AaW1wb3J0ICd0aGVtZS90aGVtZSc7XHJcbkBpbXBvcnQgJ2N1c3RvbSc7XHJcblxyXG4vLyBnbG9iYWwgc3R5bGVzXHJcblxyXG4vLyAjY29udGVudC5yb3cge1xyXG4vLyAgICAgbWF4LXdpZHRoOiAxMjAwcHg7IC8vIG1heGltdW0gc2l6ZSBvdXIgY29udGVudCBzaG91bGQgZ3Jvd1xyXG4vLyAgICAgcGFkZGluZzogNGVtIDAgOGVtIDA7IC8vIGJvdHRvbSBpcyBiZWNhdXNlIG9mIHRoZSBnb3Zlcm5vciBiYXJcclxuLy8gfVxyXG5cclxuLy8gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHBhZ2Ugc3RydWN0dXJlXHJcbi5pbm5lci13cmFwIHtcclxuICAgICNpbm5lci1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgOGVtIDA7XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBXUCdzIGVtYmVkZGVkIGZhY2Vib29rIHBvc3RzXHJcbi5mYi1wb3N0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxufVxyXG5cclxuLy8gc29tZSBraW5kYSBpc3N1ZSB3dGloIG91ciBzdGlja3kgbmF2IGFuZCBmdWxsIHNjcmVlbiByZXZlYWxzXHJcbi5yZXZlYWwuZnVsbCB7XHJcbiAgICB0b3A6IDAgIWltcG9ydGFudDtcclxufSIsIi8vIHp1cmIgZm91bmRhdGlvbiBvdmVyd3JpdGVzXHJcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XHJcbkBpbXBvcnQgJ2hlbHBlcnMvY29sb3JzJztcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHN0YWNrc1xyXG4kZm9udC1tb250c2VycmF0OidNb250c2VycmF0JywgJ0dvdGhhbScsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYgO1xyXG4kYm9keS1mb250LWZhbWlseTogJGZvbnQtbW9udHNlcnJhdDtcclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcblxyXG4vLyBkZWZhdWx0IGZvbnQgd2VpZ2h0cyBpbiBhZGRpdGlvbiB0byBmb3VuZGF0aW9uc1xyXG4vLyAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgYW5kICRnbG9iYWwtd2VpZ2h0LWJvbGRcclxuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAxMDA7XHJcblxyXG4vLyBkZWZhdWx0IGNvbG9yIHBhbGV0dGVcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICRuYXZ5LFxyXG4gIHNlY29uZGFyeTogJGdvbGQsXHJcbiAgc3VjY2VzczogIzNhZGI3NixcclxuICB3YXJuaW5nOiAjZmZhZTAwLFxyXG4gIGFsZXJ0OiAjY2M0YjM3LFxyXG4pO1xyXG5cclxuLy8gY3VzdG9tIHR5cG9ncmFwaHkgc2V0dGluZ3NcclxuJGhlYWRlci1zdHlsZXM6IChcclxuICBzbWFsbDogKFxyXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXHJcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcclxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxyXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXHJcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcclxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpXHJcbiAgKSxcclxuICBtZWRpdW06IChcclxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMzIpLFxyXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAzMCksXHJcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDI2KSxcclxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjApLFxyXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxOCksXHJcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KVxyXG4gICksXHJcbiAgbGFyZ2U6IChcclxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDApLFxyXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAzNiksXHJcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcclxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjQpLFxyXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXHJcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KVxyXG4gIClcclxuKTtcclxuXHJcbi8vIGkgZG9uJ3QgYmVsaWV2ZSB0aGlzIGlzIG5lY2Vzc2FyeVxyXG4vLyBXZWJmb250IHNtb290aGluZ1xyXG4vLyAqIHtcclxuLy8gICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuLy8gICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4vLyAgIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMDA0KTtcclxuLy8gfVxyXG5cclxuLy8gY3VzdG9tIHNwcml0ZSBzaXplc1xyXG4vLyBpIGRvbid0IGJlbGlldmUgd2UgYWN0dWFsbHkgdXNlIHNwcml0ZXNcclxuJHNwcml0ZS13OjIxMHB4OyAvLyBAMXhcclxuJHNwcml0ZS1oOjU3MHB4OyAvLyBAMXhcclxuXHJcbi8vIE1lZGlhIFF1ZXJ5IFJhbmdlc1xyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcblxyXG4vLyBmb3VuZGF0aW9ucyBkZWZpbmVkIGJyZWFrcG9pbnRzXHJcbi8vICRicmVha3BvaW50czogKFxyXG4vLyAgIHNtYWxsOiAwLFxyXG4vLyAgIG1lZGl1bTogNjQwcHgsXHJcbi8vICAgbGFyZ2U6IDEwMjRweCxcclxuLy8gICB4bGFyZ2U6IDEyMDBweCxcclxuLy8gICB4eGxhcmdlOiAxNDQwcHgsXHJcbi8vICk7XHJcblxyXG4vLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgLi4uIHdlIHNob3VsZCBjb25zaWRlciB1c2luZyBmb3VuZGF0aW9uc1xyXG4vLyBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSl7IGNvbG9yOiBncmVlbjsgfSBmb3IgZXhhbXBsZVxyXG4kc21hbGwtcmFuZ2U6ICgwLCA2MzlweCk7XHJcbiRtZWRpdW0tcmFuZ2U6ICg2NDBweCwgMTAyM3B4KTtcclxuJGxhcmdlLXJhbmdlOiAoMTAyNHB4LCAxMTk5cHgpO1xyXG4keGxhcmdlLXJhbmdlOiAoMTIwMHB4LCAxNDM5cHgpO1xyXG4keHhsYXJnZS1yYW5nZTogKDE0NDBweCk7XHJcblxyXG4kc2NyZWVuOiBcIm9ubHkgc2NyZWVuXCI7XHJcblxyXG4kbGFuZHNjYXBlOiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVwiO1xyXG4kcG9ydHJhaXQ6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcIjtcclxuXHJcbiRzbWFsbC11cDogJHNjcmVlbjtcclxuJHNtYWxsLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpfSlcIjtcclxuXHJcbiRtZWRpdW0tdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcclxuJG1lZGl1bS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiO1xyXG5cclxuJGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcclxuJGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiO1xyXG5cclxuJHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiO1xyXG4keGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCI7XHJcblxyXG4keHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7JHh4bGFyZ2UtcmFuZ2V9KVwiO1xyXG4keHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3skeHhsYXJnZS1yYW5nZX0pXCI7XHJcblxyXG5cclxuLy8gVmlzaWJpbGl0eSBDbGFzc2VzXHJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuXHJcbi5zaG93LWZvci1zciB7XHJcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDFweDtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5AaW1wb3J0ICd1bml0JztcbkBpbXBvcnQgJ3ZhbHVlJztcbkBpbXBvcnQgJ2RpcmVjdGlvbic7XG5AaW1wb3J0ICdjb2xvcic7XG5AaW1wb3J0ICdzZWxlY3Rvcic7XG5AaW1wb3J0ICdmbGV4JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0cyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXJuIHRoZW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgbm90IGZhbHNleSwgaW4gQ1NTIHRlcm1zLiBGYWxzZXkgdmFsdWVzIGFyZSBgbnVsbGAsIGBub25lYCwgYDBgIHdpdGggYW55IHVuaXQsIG9yIGFuIGVtcHR5IGxpc3QuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkdmFsIC0gVmFsdWUgdG8gY2hlY2suXG4vLy9cbi8vLyBAcmV0dXJucyB7Qm9vbGVhbn0gYHRydWVgIGlmIGAkdmFsYCBpcyBub3QgZmFsc2V5LlxuQGZ1bmN0aW9uIGhhcy12YWx1ZSgkdmFsKSB7XG4gIEBpZiAkdmFsID09IG51bGwgb3IgJHZhbCA9PSBub25lIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEBpZiB0eXBlLW9mKCR2YWwpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCR2YWwpID09IDAge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJHZhbCkgPT0gMCB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLyBEZXRlcm1pbmUgYSB0b3AvcmlnaHQvYm90dG9tL3JpZ2h0IHZhbHVlIG9uIGEgcGFkZGluZywgbWFyZ2luLCBldGMuIHByb3BlcnR5LCBubyBtYXR0ZXIgaG93IG1hbnkgdmFsdWVzIHdlcmUgcGFzc2VkIGluLiBVc2UgdGhpcyBmdW5jdGlvbiBpZiB5b3UgbmVlZCB0byBrbm93IHRoZSBzcGVjaWZpYyBzaWRlIG9mIGEgdmFsdWUsIGJ1dCBkb24ndCBrbm93IGlmIHRoZSB2YWx1ZSBpcyB1c2luZyBhIHNob3J0aGFuZCBmb3JtYXQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R8TnVtYmVyfSAkdmFsIC0gVmFsdWUgdG8gYW5hbHl6ZS4gU2hvdWxkIGJlIGEgc2hvcnRoYW5kIHNpemluZyBwcm9wZXJ0eSwgZS5nLiBcIjFlbSAyZW0gMWVtXCJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0byByZXR1cm4uIFNob3VsZCBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgc2luZ2xlIHZhbHVlIGJhc2VkIG9uIGAkdmFsYCBhbmQgYCRzaWRlYC5cbkBmdW5jdGlvbiBnZXQtc2lkZSgkdmFsLCAkc2lkZSkge1xuICAkbGVuZ3RoOiBsZW5ndGgoJHZhbCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMSB7XG4gICAgQHJldHVybiAkdmFsO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDEpLFxuICAgICAgbGVmdDogbnRoKCR2YWwsIDIpLFxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gMyB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgbGVmdDogbnRoKCR2YWwsIDIpLFxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDMpLFxuICAgICksICRzaWRlKTtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSA0IHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgNCksXG4gICAgKSwgJHNpZGUpO1xuICB9XG59XG5cbi8vLyBHaXZlbiBib3JkZXIgJHZhbCwgZmluZCBhIHNwZWNpZmljIGVsZW1lbnQgb2YgdGhlIGJvcmRlciwgd2hpY2ggaXMgJGVsZW0uIFRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yICRlbGVtIGFyZSB3aWR0aCwgc3R5bGUsIGFuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbCAtIEJvcmRlciB2YWx1ZSB0byBmaW5kIGEgdmFsdWUgaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSAtIEJvcmRlciBjb21wb25lbnQgdG8gZXh0cmFjdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gSWYgdGhlIHZhbHVlIGV4aXN0cywgcmV0dXJucyB0aGUgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBub3QgaW4gdGhlIGJvcmRlciBkZWZpbml0aW9uLCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSAwcHggd2lkdGgsIHNvbGlkIHN0eWxlLCBvciBibGFjayBib3JkZXIuXG5AZnVuY3Rpb24gZ2V0LWJvcmRlci12YWx1ZSgkdmFsLCAkZWxlbSkge1xuICAvLyBGaW5kIHRoZSB3aWR0aCwgc3R5bGUsIG9yIGNvbG9yIGFuZCByZXR1cm4gaXRcbiAgQGVhY2ggJHYgaW4gJHZhbCB7XG4gICAgJHR5cGU6IHR5cGUtb2YoJHYpO1xuICAgIEBpZiAkZWxlbSA9PSB3aWR0aCBhbmQgJHR5cGUgPT0gJ251bWJlcicge1xuICAgICAgQHJldHVybiAkdjtcbiAgICB9XG4gICAgQGlmICRlbGVtID09IHN0eWxlIGFuZCAkdHlwZSA9PSAnc3RyaW5nJyB7XG4gICAgICBAcmV0dXJuICR2O1xuICAgIH1cbiAgICBAaWYgJGVsZW0gPT0gY29sb3IgYW5kICR0eXBlID09ICdjb2xvcicge1xuICAgICAgQHJldHVybiAkdjtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZhdWx0c1xuICAkZGVmYXVsdHM6IChcbiAgICB3aWR0aDogMCxcbiAgICBzdHlsZTogc29saWQsXG4gICAgY29sb3I6ICMwMDAsXG4gICk7XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRkZWZhdWx0cywgJGVsZW0pO1xufVxuXG4vLy8gRmluZHMgYSB2YWx1ZSBpbiBhIG5lc3RlZCBtYXAuXG4vLy8gQGxpbmsgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL2RlZXAtZ2V0c2V0LW1hcHMvIERlZXAgR2V0L1NldCBpbiBNYXBzXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBwdWxsIGEgdmFsdWUgZnJvbS5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGtleXMuLi4gLSBLZXlzIHRvIHVzZSB3aGVuIGxvb2tpbmcgZm9yIGEgdmFsdWUuXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgfVxuICBAcmV0dXJuICRtYXA7XG59XG5cbi8vLyBDYXN0cyBhIG1hcCBpbnRvIGEgbGlzdC5cbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE0LzA0LzI4L2Nhc3RpbmctbWFwLWludG8tbGlzdC9cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHB1bGwgYSB2YWx1ZSBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IERlcGVuZGluZyBvbiB0aGUgZmxhZywgcmV0dXJucyBlaXRoZXIgJGtleXMgb3IgJHZhbHVlcyBvciBib3RoLlxuQGZ1bmN0aW9uIG1hcC10by1saXN0KCRtYXAsICRrZWVwOiAnYm90aCcpIHtcbiAgJGtlZXA6IGlmKGluZGV4KCdrZXlzJyAndmFsdWVzJywgJGtlZXApLCAka2VlcCwgJ2JvdGgnKTtcblxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgJGtleXM6ICgpO1xuICAgICR2YWx1ZXM6ICgpO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkbWFwIHtcbiAgICAgICRrZXlzOiBhcHBlbmQoJGtleXMsICRrZXkpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR2YWwpO1xuICAgIH1cblxuICAgIEBpZiAka2VlcCA9PSAna2V5cycge1xuICAgICAgQHJldHVybiAka2V5cztcbiAgICB9XG4gICAgQGVsc2UgaWYgJGtlZXAgPT0gJ3ZhbHVlcycge1xuICAgICAgQHJldHVybiAkdmFsdWVzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIHppcCgka2V5cywgJHZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZih0eXBlLW9mKCRtYXApICE9ICdsaXN0JywgKCR2YWx1ZSwpLCAkbWFwKTtcblxufVxuXG4vLy8gU2FmZWx5IHJldHVybiBhIHZhbHVlIGZyb20gYSBtYXAuXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byByZXRyaWV2ZSBhIHZhbHVlIGZyb20uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBOYW1lIG9mIHRoZSBtYXAga2V5LlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEZvdW5kIHZhbHVlLlxuQGZ1bmN0aW9uIG1hcC1zYWZlLWdldCgkbWFwLCAka2V5KSB7XG4gIEBpZiAodHlwZS1vZigkbWFwKSA9PSAnbWFwJyBvciAodHlwZS1vZigkbWFwKSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkbWFwKSA9PSAwKSkge1xuICAgIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGVycm9yICdLZXk6IGAjeyRrZXl9YCBpcyBub3QgYXZhaWxhYmxlIGluIGAjeyRtYXB9YCc7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2AjeyRtYXB9YCBpcyBub3QgYSB2YWxpZCBtYXAnO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIFJldHVybnMgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBvZiAkZGlyXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBVc2VkIGRpcmVjdGlvbiBiZXR3ZWVuIFwidG9wXCIsIFwicmlnaHRcIiwgXCJib3R0b21cIiBhbmQgXCJsZWZ0XCIuXG4vLy8gQHJldHVybiB7S2V5d29yZH0gT3Bwb3NpdGUgZGlyZWN0aW9uIG9mICRkaXJcbkBmdW5jdGlvbiBkaXJlY3Rpb24tb3Bwb3NpdGUoXG4gICRkaXJcbikge1xuICAkZGlyczogKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCk7XG4gICRwbGFjZTogaW5kZXgoJGRpcnMsICRkaXIpO1xuXG4gIEBpZiAkcGxhY2UgPT0gbnVsbCB7XG4gICAgQGVycm9yICdkaXJlY3Rpb24tb3Bwb3NpdGU6IEludmFsaWQgJGRpciBwYXJhbWV0ZXIsIGV4cGVjdGVkIGEgdmFsdWUgZnJvbSBcIiN7JGRpcnN9XCIsIGZvdW5kIFwiI3skZGlyfVwiLic7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQ2FsY3VsIHRoZSBvcHBvc2l0ZSBwbGFjZSBpbiBhIGNpcmNsZSwgd2l0aCBhIHN0YXJ0aW5nIGluZGV4IG9mIDFcbiAgJGxlbmd0aDogbGVuZ3RoKCRkaXJzKTtcbiAgJGRlbWk6ICRsZW5ndGggLyAyO1xuICAkb3Bwb3NpdGUtcGxhY2U6ICgoJHBsYWNlICsgJGRlbWkgLSAxKSAlICRsZW5ndGgpICsgMTtcblxuICBAcmV0dXJuIG50aCgkZGlycywgJG9wcG9zaXRlLXBsYWNlKTtcbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gR2VuZXJhdGVzIGEgc2VsZWN0b3Igd2l0aCBldmVyeSB0ZXh0IGlucHV0IHR5cGUuIFlvdSBjYW4gYWxzbyBmaWx0ZXIgdGhlIGxpc3QgdG8gb25seSBvdXRwdXQgYSBzdWJzZXQgb2YgdGhvc2Ugc2VsZWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fEtleXdvcmR9ICR0eXBlcyBbKCldIC0gQSBsaXN0IG9mIHRleHQgaW5wdXQgdHlwZXMgdG8gdXNlLiBMZWF2ZSBibGFuayB0byB1c2UgYWxsIG9mIHRoZW0uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbW9kaWZpZXIgWycnXSAtIEEgbW9kaWZpZXIgdG8gYmUgYXBwbGllZCB0byBlYWNoIHRleHQgaW5wdXQgdHlwZSAoZS5nLiBhIGNsYXNzIG9yIGEgcHNldWRvLWNsYXNzKS4gTGVhdmUgYmxhbmsgdG8gaWdub3JlLlxuQGZ1bmN0aW9uIHRleHQtaW5wdXRzKCR0eXBlczogKCksICRtb2RpZmllcjogJycpIHtcbiAgJHJldHVybjogKCk7XG5cbiAgJGFsbC10eXBlczpcbiAgICB0ZXh0XG4gICAgcGFzc3dvcmRcbiAgICBkYXRlXG4gICAgZGF0ZXRpbWVcbiAgICBkYXRldGltZS1sb2NhbFxuICAgIG1vbnRoXG4gICAgd2Vla1xuICAgIGVtYWlsXG4gICAgbnVtYmVyXG4gICAgc2VhcmNoXG4gICAgdGVsXG4gICAgdGltZVxuICAgIHVybFxuICAgIGNvbG9yO1xuXG4gIEBpZiBub3QgaGFzLXZhbHVlKCR0eXBlcykge1xuICAgICR0eXBlczogJGFsbC10eXBlcztcbiAgfVxuXG4gIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJ1t0eXBlPVxcJyN7JHR5cGV9XFwnXSN7JG1vZGlmaWVyfScpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgLy8gTWFrZSBicmVha3BvaW50IHNpemUgYXZhaWxhYmxlIGFzIGEgdmFyaWFibGVcbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgfVxuICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkb2xkLXpmLXNpemUgIT0gbnVsbCB7XG4gICAgLy8gUmVzdG9yZSB0aGUgb2xkIGJyZWFrcG9pbnQgc2l6ZVxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICQtemYtc2l6ZTogbnVsbCAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbmcgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW5nLlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGFuIGlubmVyIGJveC1zaGFkb3cgZm9yIG9ubHkgb25lIHNpZGVcbi8vLyBcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSkgLyAoJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUsICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZSkge1xuICAkbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcblxuICBAaWYgbm90ICRzbWFsbCB7XG4gICAgJGxpc3Q6IHNsLXJlbW92ZSgkbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUgaW4gJGxpc3Qge1xuICAgICQtemYtc2l6ZTogJG5hbWUgIWdsb2JhbDtcblxuICAgIEBpZiAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kLXpmLWZvbnQtc3RhY2s6IChcbiAgJ2dlb3JnaWEnOiAoR2VvcmdpYSwgXCJVUlcgQm9va21hbiBMXCIsIHNlcmlmKSxcbiAgJ2hlbHZldGljYSc6IChIZWx2ZXRpY2EsIEFyaWFsLCBcIk5pbWJ1cyBTYW5zIExcIiwgc2Fucy1zZXJpZiksXG4gICdsdWNpZGEtZ3JhbmRlJzogKFwiTHVjaWRhIEdyYW5kZVwiLCBcIkx1Y2lkYSBTYW5zIFVuaWNvZGVcIiwgXCJCaXRzdHJlYW0gVmVyYSBTYW5zXCIsIHNhbnMtc2VyaWYpLFxuICAnbW9ub3NwYWNlJzogKFwiQ291cmllciBOZXdcIiwgQ291cmllciwgXCJOaW1idXMgU2FucyBMXCIsIG1vbm9zcGFjZSksXG4gICdzeXN0ZW0nOiAoLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJPeHlnZW5cIiwgXCJVYnVudHVcIiwgXCJDYW50YXJlbGxcIiwgXCJGaXJhIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmKSxcbiAgJ3ZlcmRhbmEnOiAoVmVyZGFuYSwgR2VuZXZhLCBcIkRlamFWdSBTYW5zXCIsIHNhbnMtc2VyaWYpLFxuKTtcblxuLy8vIFJldHVybiBhIGZvbnQgc3RhY2sgbGlzdCBmcm9tIGEgbWFwLiBFcXVpdmFsZW50IHRvIGBtYXAtc2FmZS1nZXQoJG5hbWUsICQtemYtZm9udC1zdGFjaylgLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdGFjayAtIE5hbWUgb2YgdGhlIGZvbnQgc3RhY2suXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgWyQtemYtZm9udC1zdGFja10gLSBNYXAgb2YgZm9udCBzdGFja3MgdG8gcmV0cmlldmUgYSBsaXN0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gRm91bmQgZm9udCBzdGFjay5cbkBmdW5jdGlvbiBmb250LXN0YWNrKCRzdGFjaywgJG1hcDogJC16Zi1mb250LXN0YWNrKSB7XG4gIEByZXR1cm4gbWFwLXNhZmUtZ2V0KCRtYXAsICRzdGFjayk7XG59XG4iLCIvKiAgQ09MT1JTXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5bIG1vZGlmeWluZyBmb3VuZGF0aW9ucyBkZWZhdWx0IHBhbGV0dGUgXVxyXG5cclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICNFNDQzNDcsXHJcbiAgbWFyczogI0Q3NTI1QyxcclxuICBzYXR1cm46ICNFNEI4ODQsXHJcbiAgbmVwdHVuZTogIzUxNDdENyxcclxuKVxyXG5cclxuVXNpbmcgdGhlIGFib3ZlIHBhbGV0dGUsIHdlIGNhbiBhZGQgdGhlIC5tYXJzLCAuc2F0dXJuLCBvciAubmVwdHVuZSBjbGFzc2VzIHRvIGJ1dHRvbnMsIGxhYmVscywgYmFkZ2VzLCBhbmQgbW9yZS5cclxuXHJcblRvIGFjY2VzcyB0aGUgY29sb3JzIGluIHlvdXIgY29kZSwgdXNlIFNhc3MncyBtYXAtZ2V0KCkgZnVuY3Rpb246XHJcblxyXG4ubWFycyB7XHJcbiAgY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgbWFycyk7XHJcbn1cclxuXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4vLyBTVEFOREFSRCBDT0xPUlNcclxuXHJcbiR3aHQ6ICAgICAgICNmYWZhZmE7IC8vIGJyaWdodGVyOiAjZmVmZWZlXHJcbiRibGs6ICAgICAgICMwMDAyMjI7IC8vIGp1c3QgYSB0b3VjaCBsaWdodGVyIHRoYW4gYmxrOiAjMTExXHJcbiRibGthbHQ6ICAgICMzYzQyNDU7XHJcbiR3aHRsaXRlOiAgICNmZmY7IC8vIHB1cmUgd2hpdGVcclxuJGJsa2RyazogICAgIzAwMDAwMDsgLy8gcHVyZSBibGFja1xyXG5cclxuJGdyeTogICAgICAgI2ViZWJlYjsgLy8gI2U0ZTRlNFxyXG4kZ3J5bGl0ZTogICAjZTFlMWUxOyAvLyAjZWVlXHJcbiRncnlzbHZyOiAgICNkYWRhZGE7XHJcbiRncnlfbXV0ZWQ6ICNiOGI3YjQ7XHJcbiRzbGF0ZTogICAgIGRhcmtlbigjNTk1OTU5LCAxMCUpOyAvLyBhbG1vc3QtYmxhY2sgZ3JleSwgZm9yIHRleHRcclxuJGdyeWRyazogICAgIzQ2NDY0NjsgLy8jNzc3XHJcblxyXG4kYmFzZTogI0FBQUFBQTtcclxuJGdvbGQ6IHJnYigyMDAsIDE0NiwgNDMpO1xyXG4kZ29sZC1saWdodDogcmdiKDIyMywgMTc4LCA5OCk7XHJcbiRuYXZ5OiByZ2IoMjUsIDQwLCA4Nyk7XHJcbiRibHVlLWJyaWdodDogcmdiKDAsIDE3OCwgMjI2KTtcclxuJHJlZC1icmlnaHQ6IHJnYigyMzksIDU4LCA3Nik7XHJcblxyXG4vLyBCUkFORCBDT0xPUlNcclxuJGJsdWRyazogICMyOTRjNjU7IC8vICMwMjg4RDEgLSA3MDAgIHwgIzAxNTc5YiAtIDkwMCAgfCBibHVlIC0gIzBkNDdhMSAtIDkwMFxyXG4kYmx1OiAgICAgIzU5OGRiMjsgLy8gIzAzQTlGNCAtIDUwMCAgfCAjMDI3N0JEIC0gODAwICB8IGJsdWUgLSAjMTU2NWMwIC0gODAwICB8IG9sZDogIzBkNDdhMTsgb2xkOiAjNTk4ZGIyOyAvLyAjNzQ5NWFmOz1cclxuJGJsdWVyOiAgICMxMTU1Y2M7XHJcbiRnbGQ6ICAgICAjZmZiNzRkOyAvLyAjRkZDQzgwIC0gMjAwICB8ICNmZmE3MjYgLSA0MDAgIHwgb2xkOiAjZmY5ODAwOyAvLyAjY2I5YjIxO1xyXG4kcGNoOiAgICAgI2ZmZTBiMjsgLy8gMTAwICB8ICNmZmI3NGQgLSAzMDAgLyBhbHQgPSAjRkZDMTY1ICB8IG9sZDogI2VhZDZhNDtcclxuJHRycTogICAgICMwMDYwNjQ7IC8vIDgwMCAtIDAwODM4ZiB8IDkwMCAtIDAwNjA2NCB8IG9sZCA9IDRlNjQ3NjtcclxuXHJcbi8vIE5FVyBCUkFORElOR1xyXG4kd2hpdGU6ICR3aHQ7XHJcbiRncmV5OiAkZ3J5O1xyXG4kZ3JheTogJGdyZXk7XHJcblxyXG4vL1BBLkdPVlxyXG4kdGVhbDogICAgIzFDQjBCNTtcclxuJGdyZWVuOiAgICM2NEE3MEI7XHJcbiRncmV5ZGFyazogJGdyeWRyaztcclxuJGJsdWU6ICAgICMwMDMxNDY7XHJcbiRyZWQ6ICAgICAjQzYwRjEzO1xyXG4kd2hpdGUtdHJ1ZTogI2ZmZjtcclxuXHJcbi8vIFNPQ0lBTCBNRURJQSBDT0xPUlNcclxuXHJcbiRmYWNlYm9vazogICMzYjU5OTg7XHJcbiR0d2l0dGVyOiAgICMwMGFjZWQ7XHJcbiRsaW5rZWRpbjogICMwMDc3YjU7XHJcbiRnb29nbGU6ICAgICNkZDRiMzk7XHJcbiRpbnN0YWdyYW06ICM1MTdmYTQ7XHJcbiRwaW50ZXJlc3Q6ICNjYjIwMjc7XHJcbiRmbGlja3I6ICAgICNmZjAwODQ7XHJcbiR2aW1lbzogICAgICMxYWI3YWU7XHJcbiR5b3V0dWJlOiAgICNiYjAwMDA7XHJcblxyXG5cclxuLy8gQkcgQ09MT1JTXHJcblxyXG4uYmctd2h0ICAgICAgICAgeyBiYWNrZ3JvdW5kOiR3aHQ7fVxyXG4uYmctYmxrICAgICAgICAgeyBiYWNrZ3JvdW5kOiRibGs7fVxyXG4uYmctYmxrYWx0ICAgICAgeyBiYWNrZ3JvdW5kOiRibGthbHQ7fVxyXG4uYmctYmxrZHJrICAgICAgeyBiYWNrZ3JvdW5kOiRibGtkcms7fVxyXG4uYmctd2h0bGl0ZSAgICAgeyBiYWNrZ3JvdW5kOiR3aHRsaXRlO31cclxuXHJcbi5iZy1ncnkgICAgICAgICB7IGJhY2tncm91bmQ6JGdyeTt9XHJcbi5iZy1ncmF5ICAgICAgICB7IGJhY2tncm91bmQ6ICRncmF5OyB9XHJcbi5iZy1ncnlsaXRlICAgICB7IGJhY2tncm91bmQ6JGdyeWxpdGU7IH1cclxuLmJnLWdyeXNsdnIgICAgIHsgYmFja2dyb3VuZDokZ3J5c2x2cjsgfVxyXG4uYmctZ3J5X211dGVkICAgeyBiYWNrZ3JvdW5kOiRncnlfbXV0ZWQ7IH1cclxuLmJnLWdyeWRyayAgICAgIHsgYmFja2dyb3VuZDokZ3J5ZHJrOyB9XHJcbi5iZy1zbGF0ZSAgICAgICB7IGJhY2tncm91bmQ6JHNsYXRlOyB9XHJcblxyXG4uYmctYmx1ICAgICAgICAgeyBiYWNrZ3JvdW5kOiRibHU7fVxyXG4uYmctYmx1ZSAgICAgICAgeyBiYWNrZ3JvdW5kOiAkYmx1ZTsgfVxyXG4uYmctYmx1ZS1icmlnaHQgeyBiYWNrZ3JvdW5kOiAkYmx1ZS1icmlnaHQ7IH1cclxuLmJnLWJsdWRyayAgICAgIHsgYmFja2dyb3VuZDokYmx1ZHJrOyB9XHJcbi5iZy1wY2ggICAgICAgICB7IGJhY2tncm91bmQ6JHBjaDsgfVxyXG4uYmctZ2xkICAgICAgICAgeyBiYWNrZ3JvdW5kOiRnbGQ7IH1cclxuLmJnLXRycSAgICAgICAgIHsgYmFja2dyb3VuZDokdHJxOyB9XHJcbi5iZy10ZWFsICAgICAgICB7IGJhY2tncm91bmQ6ICR0ZWFsOyB9XHJcbi5iZy1uYXZ5ICAgICAgICB7IGJhY2tncm91bmQ6ICRuYXZ5OyB9XHJcbi5iZy1ncmVlbiAgICAgICB7IGJhY2tncm91bmQ6ICRncmVlbjsgfVxyXG5cclxuLy8gVEVYVCBDT0xPUlNcclxuXHJcbi50eHQtd2h0ICAgICAgICB7Y29sb3I6JHdodDt9XHJcbi50eHQtd2h0LWhvdmVyOmhvdmVyICB7IGNvbG9yOiAkd2h0OyB9XHJcbi50eHQtYmxrICAgICAgICB7Y29sb3I6JGJsazt9XHJcbi50eHQtYmxrYWx0ICAgICB7Y29sb3I6JGJsa2FsdDt9XHJcbi50eHQtYmxrZHJrICAgICB7Y29sb3I6JGJsa2Ryazt9XHJcbi50eHQtc2xhdGUgICAgICB7Y29sb3I6JHNsYXRlO31cclxuXHJcbi50eHQtZ3J5ICAgICAgICB7Y29sb3I6JGdyeTt9XHJcbi50eHQtZ3J5bGl0ZSAgICB7Y29sb3I6JGdyeWxpdGUgIWltcG9ydGFudDt9XHJcbi50eHQtZ3J5c2x2ciAgICB7Y29sb3I6JGdyeXNsdnI7fVxyXG4udHh0LWdyeWRyayAgICAge2NvbG9yOiRncnlkcms7fVxyXG4udHh0LWdyeV9tdXRlZCAge2NvbG9yOiRncnlfbXV0ZWQ7fVxyXG5cclxuLnR4dC1ibHUgICAgICAgIHtjb2xvcjokYmx1O31cclxuLnR4dC1ibHVlICAgICAgIHsgY29sb3I6ICRibHVlOyB9XHJcbi50eHQtYmx1ZHJrICAgICB7Y29sb3I6JGJsdTt9XHJcbi50eHQtcGNoICAgICAgICB7Y29sb3I6JHBjaDt9XHJcbi50eHQtZ2xkICAgICAgICB7Y29sb3I6JGdsZDt9XHJcbi50eHQtdHJxICAgICAgICB7Y29sb3I6JHRycTt9XHJcbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjQuM1xuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gRGVwZW5kZW5jaWVzXG5AaW1wb3J0ICcuLi9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuXG4vLyBTYXNzIHV0aWxpdGllc1xuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gR2xvYmFsIHZhcmlhYmxlcyBhbmQgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZVxuKSB7XG4gIEBpZiAkZmxleCB7XG4gICAgJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpZiBub3QgJGZsZXgge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICR4eS1ncmlkIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXG4gIEBpZiAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWNsYXNzZXM7XG4gIH1cblxuICBAaWYgJHByb3RvdHlwZSB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcbiAgfVxufVxuIiwiQGltcG9ydCAnbm9ybWFsaXplL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdub3JtYWxpemUvdmVydGljYWwtcmh5dGhtJztcbkBpbXBvcnQgJ25vcm1hbGl6ZS9ub3JtYWxpemUtbWl4aW4nO1xuIiwiLy9cbi8vIFZhcmlhYmxlc1xuLy9cbi8vIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgdmFsdWVzIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlcyBpbiB5b3VyIFNhc3Ncbi8vIGJlZm9yZSBpbXBvcnRpbmcgdGhlIG5vcm1hbGl6ZS1zY3NzIGxpYnJhcnkuXG5cbi8vIFRoZSBmb250IHNpemUgc2V0IG9uIHRoZSByb290IGh0bWwgZWxlbWVudC5cbiRiYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8gVGhlIGJhc2UgbGluZSBoZWlnaHQgZGV0ZXJtaW5lcyB0aGUgYmFzaWMgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0uXG4kYmFzZS1saW5lLWhlaWdodDogMjRweCAhZGVmYXVsdDtcblxuLy8gVGhlIGxlbmd0aCB1bml0IGluIHdoaWNoIHRvIG91dHB1dCB2ZXJ0aWNhbCByaHl0aG0gdmFsdWVzLlxuLy8gU3VwcG9ydGVkIHZhbHVlczogcHgsIGVtLCByZW0uXG4kYmFzZS11bml0OiAnZW0nICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBmb250IGZhbWlseS5cbiRiYXNlLWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLyBUaGUgZm9udCBzaXplcyBmb3IgaDEtaDYuXG4kaDEtZm9udC1zaXplOiAyICAgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogMS41ICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IDEuMTcgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiAxICAgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogMC44MyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IDAuNjcgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vIFRoZSBhbW91bnQgbGlzdHMgYW5kIGJsb2NrcXVvdGVzIGFyZSBpbmRlbnRlZC5cbiRpbmRlbnQtYW1vdW50OiA0MHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGNvbnRyb2xzIHdoZXRoZXIgbm9ybWFsaXplLXNjc3Mgd2lsbCBvdXRwdXRcbi8vIGZvbnQtc2l6ZXMsIGxpbmUtaGVpZ2h0cyBhbmQgYmxvY2stbGV2ZWwgdG9wL2JvdHRvbSBtYXJnaW5zIHRoYXQgZm9ybSBhIGJhc2ljXG4vLyB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHBhZ2UsIHdoaWNoIGRpZmZlcnMgZnJvbSB0aGUgb3JpZ2luYWwgTm9ybWFsaXplLmNzcy5cbi8vIEhvd2V2ZXIsIGNoYW5naW5nIGFueSBvZiB0aGUgdmFyaWFibGVzIGFib3ZlIHdpbGwgY2F1c2Vcbi8vICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHRvIGJlIGF1dG9tYXRpY2FsbHkgc2V0IHRvIHRydWUuXG4kbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogZmFsc2UgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gVmVydGljYWwgUmh5dGhtXG4vL1xuLy8gVGhpcyBpcyB0aGUgbWluaW1hbCBhbW91bnQgb2YgY29kZSBuZWVkZWQgdG8gY3JlYXRlIHZlcnRpY2FsIHJoeXRobSBpbiBvdXJcbi8vIENTUy4gSWYgeW91IGFyZSBsb29raW5nIGZvciBhIHJvYnVzdCBzb2x1dGlvbiwgbG9vayBhdCB0aGUgZXhjZWxsZW50IFR5cGV5XG4vLyBsaWJyYXJ5LiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHRhcmFudG8vdHlwZXlcblxuQGZ1bmN0aW9uIG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSwgJHVuaXQ6ICRiYXNlLXVuaXQpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSBweCB7XG4gICAgQGVycm9yIFwiVGhlIG5vcm1hbGl6ZSB2ZXJ0aWNhbC1yaHl0aG0gbW9kdWxlIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgQGlmICR1bml0ID09IHJlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJGJhc2UtZm9udC1zaXplKSAqIDFyZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRyZWxhdGl2ZS10bykgKiAxZW07XG4gIH1cbiAgQGVsc2UgeyAvLyAkdW5pdCA9PSBweFxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG59XG5cbkBtaXhpbiBub3JtYWxpemUtZm9udC1zaXplKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncHgnIHtcbiAgICBAZXJyb3IgXCJub3JtYWxpemUtZm9udC1zaXplKCkgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBmb250LXNpemU6IG5vcm1hbGl6ZS1yaHl0aG0oJHZhbHVlLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLXJoeXRobSgkcHJvcGVydHksICR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gICR2YWx1ZS1saXN0OiAkdmFsdWVzO1xuICAkc2VwOiBzcGFjZTtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ2xpc3QnIHtcbiAgICAkc2VwOiBsaXN0LXNlcGFyYXRvcigkdmFsdWVzKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHZhbHVlLWxpc3Q6IGFwcGVuZCgoKSwgJHZhbHVlcyk7XG4gIH1cblxuICAkbm9ybWFsaXplZC12YWx1ZXM6ICgpO1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlLWxpc3Qge1xuICAgIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAkdmFsdWUgIT0gMCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqIG5vcm1hbGl6ZS1yaHl0aG0oJGJhc2UtbGluZS1oZWlnaHQsICRyZWxhdGl2ZS10byk7XG4gICAgfVxuICAgICRub3JtYWxpemVkLXZhbHVlczogYXBwZW5kKCRub3JtYWxpemVkLXZhbHVlcywgJHZhbHVlLCAkc2VwKTtcbiAgfVxuICAjeyRwcm9wZXJ0eX06ICRub3JtYWxpemVkLXZhbHVlcztcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1tYXJnaW4oJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShtYXJnaW4sICR2YWx1ZXMsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbGluZS1oZWlnaHQoJGZvbnQtc2l6ZSwgJG1pbi1saW5lLXBhZGRpbmc6IDJweCkge1xuICAkbGluZXM6IGNlaWwoJGZvbnQtc2l6ZSAvICRiYXNlLWxpbmUtaGVpZ2h0KTtcbiAgLy8gSWYgbGluZXMgYXJlIGNyYW1wZWQgaW5jbHVkZSBzb21lIGV4dHJhIGxlYWRpbmcuXG4gIEBpZiAoJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplKSA8ICgkbWluLWxpbmUtcGFkZGluZyAqIDIpIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIDE7XG4gIH1cbiAgQGluY2x1ZGUgbm9ybWFsaXplLXJoeXRobShsaW5lLWhlaWdodCwgJGxpbmVzLCAkZm9udC1zaXplKTtcbn1cbiIsIi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIG5vcm1hbGl6ZSgpIG1peGluLlxuQGZ1bmN0aW9uIF9ub3JtYWxpemUtaW5jbHVkZSgkc2VjdGlvbiwgJGV4Y2x1ZGU6IG51bGwpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGhpcyBmdW5jdGlvbi5cbiAgQGlmIG5vdCBnbG9iYWxfdmFyaWFibGVfZXhpc3RzKF9ub3JtYWxpemUtaW5jbHVkZSkge1xuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6ICgpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogKCkgIWdsb2JhbDtcbiAgfVxuICAvLyBTaW5jZSB3ZSBhcmUgZ2l2ZW4gMiBwYXJhbWV0ZXJzLCBzZXQgdGhlIGdsb2JhbCB2YXJpYWJsZXMuXG4gIEBpZiAkZXhjbHVkZSAhPSBudWxsIHtcbiAgICAkaW5jbHVkZTogJHNlY3Rpb247XG4gICAgLy8gU2FzcyBkb2Vzbid0IGhhdmUgc3RhdGljIHZhcmlhYmxlcywgc28gdGhlIHdvcmstYXJvdW5kIGlzIHRvIHN0dWZmIHRoZXNlXG4gICAgLy8gdmFsdWVzIGludG8gZ2xvYmFsIHZhcmlhYmxlcyBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gaW4gZnV0dXJlIGNhbGxzLlxuICAgICRfbm9ybWFsaXplLWluY2x1ZGU6IGlmKHR5cGUtb2YoJGluY2x1ZGUpID09ICdsaXN0JywgJGluY2x1ZGUsICgkaW5jbHVkZSkpICFnbG9iYWw7XG4gICAgJF9ub3JtYWxpemUtZXhjbHVkZTogaWYodHlwZS1vZigkZXhjbHVkZSkgPT0gJ2xpc3QnLCAkZXhjbHVkZSwgKCRleGNsdWRlKSkgIWdsb2JhbDtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkc2VjdGlvbiBpcyBpbiB0aGUgJGluY2x1ZGUgbGlzdC5cbiAgQGlmIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsICRzZWN0aW9uKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmICRpbmNsdWRlIGlzIHNldCB0byAoYWxsKSwgbWFrZSBzdXJlICRzZWN0aW9uIGlzIG5vdCBpbiAkZXhjbHVkZS5cbiAgQGVsc2UgaWYgbm90IGluZGV4KCRfbm9ybWFsaXplLWV4Y2x1ZGUsICRzZWN0aW9uKSBhbmQgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgYWxsKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbkBtaXhpbiBub3JtYWxpemUoJGluY2x1ZGU6IChhbGwpLCAkZXhjbHVkZTogKCkpIHtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGVscGVyIGZ1bmN0aW9uIGJ5IHBhc3NpbmcgaXQgdGhpcyBtaXhpbidzIHBhcmFtZXRlcnMuXG4gICRpbml0OiBfbm9ybWFsaXplLWluY2x1ZGUoJGluY2x1ZGUsICRleGNsdWRlKTtcblxuICAvLyBJZiB3ZSd2ZSBjdXN0b21pemVkIGFueSBmb250IHZhcmlhYmxlcywgd2UnbGwgbmVlZCBleHRyYSBwcm9wZXJ0aWVzLlxuICBAaWYgJGJhc2UtZm9udC1zaXplICE9IDE2cHhcbiAgICBvciAkYmFzZS1saW5lLWhlaWdodCAhPSAyNHB4XG4gICAgb3IgJGJhc2UtdW5pdCAhPSAnZW0nXG4gICAgb3IgJGgxLWZvbnQtc2l6ZSAhPSAyICAgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGgyLWZvbnQtc2l6ZSAhPSAxLjUgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGgzLWZvbnQtc2l6ZSAhPSAxLjE3ICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg0LWZvbnQtc2l6ZSAhPSAxICAgICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg1LWZvbnQtc2l6ZSAhPSAwLjgzICogJGJhc2UtZm9udC1zaXplXG4gICAgb3IgJGg2LWZvbnQtc2l6ZSAhPSAwLjY3ICogJGJhc2UtZm9udC1zaXplIHtcbiAgICAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobTogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGRvY3VtZW50KSB7XG4gICAgLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuXG4gICAgaHRtbCB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8vIENvcnJlY3Qgb2xkIGJyb3dzZXIgYnVnIHRoYXQgcHJldmVudGVkIGFjY2Vzc2libGUgcmVzaXppbmcgb2YgdGV4dFxuICAgICAgICAvLyB3aGVuIHJvb3QgZm9udC1zaXplIGlzIHNldCB3aXRoIHB4IG9yIGVtLlxuICAgICAgICBmb250LXNpemU6ICgkYmFzZS1mb250LXNpemUgLyAxNnB4KSAqIDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAyICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAyICovXG4gICAgICB9XG4gICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzZWN0aW9ucykge1xuICAgIC8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYm9keSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBhcnRpY2xlLFxuICAgIGFzaWRlLFxuICAgIGZvb3RlcixcbiAgICBoZWFkZXIsXG4gICAgbmF2LFxuICAgIHNlY3Rpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBoMSB7XG4gICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMS1mb250LXNpemUpO1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMS1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucy4gKi9cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMS1mb250LXNpemUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDAuNjdlbSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICBoMiB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMi1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoMy1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNCB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNC1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNS1mb250LXNpemUpO1xuICAgICAgfVxuXG4gICAgICBoNiB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDAsICRoNi1mb250LXNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZ3JvdXBpbmcpIHtcbiAgICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgKi9cblxuICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG5cbiAgICAgIGRsLFxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAqL1xuXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgb2wsXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGQge1xuICAgICAgICBtYXJnaW46IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBmaWdjYXB0aW9uLFxuICAgIGZpZ3VyZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5cbiAgICBmaWd1cmUge1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgICAgKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKi9cblxuICAgIGhyIHtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gICAgICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICBtYWluIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAvKipcbiAgICAgICAqIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgKi9cblxuICAgICAgcCxcbiAgICAgIHByZSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHByZSB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShsaW5rcykge1xuICAgIC8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5cbiAgICBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gICAgICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBhOmFjdGl2ZSxcbiAgICBhOmhvdmVyIHtcbiAgICAgIG91dGxpbmUtd2lkdGg6IDA7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZSh0ZXh0KSB7XG4gICAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBhYmJyW3RpdGxlXSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGNvZGUsXG4gICAga2JkLFxuICAgIHNhbXAge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cblxuICAgIGRmbiB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICAgICAqL1xuXG4gICAgbWFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6IDgwJTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAgICAgKiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzdWIsXG4gICAgc3VwIHtcbiAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgc3ViIHtcbiAgICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgICB9XG5cbiAgICBzdXAge1xuICAgICAgdG9wOiAtMC41ZW07XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShlbWJlZGRlZCkge1xuICAgIC8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBhdWRpbyxcbiAgICB2aWRlbyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cblxuICAgIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIHN2Zzpub3QoOnJvb3QpIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShmb3Jtcykge1xuICAgIC8qIEZvcm1zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGlucHV0LFxuICAgIG9wdGdyb3VwLFxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgICAgIH1cbiAgICAgIG1hcmdpbjogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBzZWxlY3QgeyAvKiAxICovXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAgICAgKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBodG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG5cbiAgICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovXG5cbiAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cblxuICAgIGlucHV0IHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5cbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cblxuICAgICAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovXG5cbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICAgICAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgZmllbGRzZXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgbGVnZW5kIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgICAgIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cblxuICAgIHByb2dyZXNzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRleHRhcmVhIHtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaW50ZXJhY3RpdmUpIHtcbiAgICAvKiBJbnRlcmFjdGl2ZVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAgICAgKi9cblxuICAgIGRldGFpbHMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLypcbiAgICAgICAgICogMS4gU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAgICogMi4gU2V0IGNvbnNpc3RlbnQgc3BhY2UgZm9yIHRoZSBsaXN0IHN0eWxlIGltYWdlLlxuICAgICAgICAgKi9cblxuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7IC8qIDEgKi9cbiAgICAgICAgcGFkZGluZzogMCAwIDAgJGluZGVudC1hbW91bnQ7IC8qIDIgKi9cblxuICAgICAgICAvKipcbiAgICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIG1lbnUgJixcbiAgICAgICAgb2wgJixcbiAgICAgICAgdWwgJiB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShzY3JpcHRpbmcpIHtcbiAgICAvKiBTY3JpcHRpbmdcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBjYW52YXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgdGVtcGxhdGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGhpZGRlbikge1xuICAgIC8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbaGlkZGVuXSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vXG4vLy8gQ2hlY2tzIHdoZXRoZXIgYCRmdW5jdGlvbnNgIGV4aXN0IGluIGdsb2JhbCBzY29wZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdMaXN0fSAkZnVuY3Rpb25zIC0gbGlzdCBvZiBmdW5jdGlvbnMgdG8gY2hlY2sgZm9yXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfSBXaGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUgbWlzc2luZyBkZXBlbmRlbmNpZXNcbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLW1pc3NpbmctZGVwZW5kZW5jaWVzKCRmdW5jdGlvbnMuLi4pIHtcbiAgJG1pc3NpbmctZGVwZW5kZW5jaWVzOiAoKTtcbiAgXG4gIEBlYWNoICRmdW5jdGlvbiBpbiAkZnVuY3Rpb25zIHtcbiAgICBAaWYgbm90IGZ1bmN0aW9uLWV4aXN0cygkZnVuY3Rpb24pIHtcbiAgICAgICRtaXNzaW5nLWRlcGVuZGVuY2llczogYXBwZW5kKCRtaXNzaW5nLWRlcGVuZGVuY2llcywgJGZ1bmN0aW9uLCBjb21tYSk7XG4gICAgfVxuICB9XG4gIFxuICBAaWYgbGVuZ3RoKCRtaXNzaW5nLWRlcGVuZGVuY2llcykgPiAwIHtcbiAgICBAZXJyb3IgJ1VubWV0IGRlcGVuZGVuY2llcyEgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHJlcXVpcmVkOiAjeyRtaXNzaW5nLWRlcGVuZGVuY2llc30uJztcbiAgfVxuXG4gIEByZXR1cm4gbGVuZ3RoKCRtaXNzaW5nLWRlcGVuZGVuY2llcykgPiAwO1xufVxuIiwiLy8vXG4vLy8gUmV0dXJucyB0cnV0aGluZXNzIG9mIGAkdmFsdWVgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIHZhbHVlIHRvIGNoZWNrXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuLy8vXG4gXG5AZnVuY3Rpb24gc2wtaXMtdHJ1ZSgkdmFsdWUpIHtcbiAgQHJldHVybiBpZigkdmFsdWUgPT0gbnVsbCwgZmFsc2UsICR2YWx1ZSBhbmQgJHZhbHVlICE9IG51bGwgYW5kICR2YWx1ZSAhPSAnJyBhbmQgJHZhbHVlICE9ICgpKTtcbn1cbiIsIi8vL1xuLy8vIFJldHVybnMgd2hldGhlciBgJGxpc3RgIGNvbnRhaW5zIGAkdmFsdWVgLlxuLy8vXG4vLy8gQGlnbm9yZSBEb2N1bWVudGF0aW9uOiBodHRwOi8vYXQtaW1wb3J0LmdpdGh1Yi5pby9TYXNzeUxpc3RzL2RvY3VtZW50YXRpb24vI2Z1bmN0aW9uLXNsLWNvbnRhaW5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gICAgJGxpc3QgIC0gbGlzdCB0byBjaGVja1xuLy8vIEBwYXJhbSB7Kn0gICAgICAgJHZhbHVlIC0gdmFsdWUgdG8gbG9vayBmb3Jcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtY29udGFpbihhIGIgYywgYSlcbi8vLyAvLyB0cnVlXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLWNvbnRhaW4oYSBiIGMsIHopXG4vLy8gLy8gZmFsc2Vcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG4vLy9cblxuQGZ1bmN0aW9uIHNsLWNvbnRhaW4oJGxpc3QsICR2YWx1ZSkge1xuICBAcmV0dXJuIG5vdCBub3QgaW5kZXgoJGxpc3QsICR2YWx1ZSk7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC1jb250YWluXG4vLy8gQGFsaWFzIHNsLWNvbnRhaW5cbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLWluY2x1ZGUoJGxpc3QsICR2YWx1ZSkge1xuICBAcmV0dXJuIHNsLWNvbnRhaW4oJGxpc3QsICR2YWx1ZSk7XG59XG4iLCIvLy8gUmVtb3ZlcyBhbGwgZmFsc2UgYW5kIG51bGwgdmFsdWVzIGZyb20gYCRsaXN0YC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC1wdXJnZVxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLWlzLXRydWVcbi8vLyBAcmVxdWlyZXMgc2wtdG8tbGlzdFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIGxpc3QgdG8gcHVyZ2Vcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcHVyZ2UobnVsbCBhIGZhbHNlIGIpXG4vLy8gLy8gYSBiXG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG5cbkBmdW5jdGlvbiBzbC1wdXJnZSgkbGlzdCkge1xuICAkXzogc2wtbWlzc2luZy1kZXBlbmRlbmNpZXMoJ3NsLWlzLXRydWUnLCAnc2wtdG8tbGlzdCcpO1xuICBcbiAgJHJlc3VsdDogKCk7XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBzbC1pcy10cnVlKCRpdGVtKSB7XG4gICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJGl0ZW0sIGxpc3Qtc2VwYXJhdG9yKCRsaXN0KSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBzbC10by1saXN0KCRyZXN1bHQpO1xufVxuXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtcHVyZ2Vcbi8vLyBAYWxpYXMgc2wtcHVyZ2Vcbi8vL1xuIFxuQGZ1bmN0aW9uIHNsLWNsZWFuKCRsaXN0KSB7XG4gIEByZXR1cm4gc2wtcHVyZ2UoJGxpc3QpO1xufVxuIiwiLy8vXG4vLy8gUmVtb3ZlcyB2YWx1ZShzKSBgJHZhbHVlYCBmcm9tIGAkbGlzdGAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtcmVtb3ZlXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtcmVwbGFjZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICAkbGlzdCAgICAgIC0gbGlzdCB0byB1cGRhdGVcbi8vLyBAcGFyYW0geyp9ICAgICAgICR2YWx1ZSAgICAgLSB2YWx1ZSB0byByZW1vdmVcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcmVtb3ZlKGEgYiBjLCBhKVxuLy8vIC8vIGIgY1xuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cbi8vL1xuXG5AZnVuY3Rpb24gc2wtcmVtb3ZlKCRsaXN0LCAkdmFsdWUpIHtcbiAgJF86IHNsLW1pc3NpbmctZGVwZW5kZW5jaWVzKCdzbC1yZXBsYWNlJyk7XG5cbiAgQHJldHVybiBzbC1yZXBsYWNlKCRsaXN0LCAkdmFsdWUsIG51bGwpO1xufVxuXG4vLy9cbi8vLyBAcmVxdWlyZXMgc2wtcmVtb3ZlXG4vLy8gQGFsaWFzIHNsLXJlbW92ZVxuLy8vXG5cbkBmdW5jdGlvbiBzbC13aXRob3V0KCRsaXN0LCAkdmFsdWUpIHtcbiAgQHJldHVybiBzbC1yZW1vdmUoJGxpc3QsICR2YWx1ZSk7XG59XG4iLCIvLy9cbi8vLyBSZXBsYWNlcyBgJG9sZGAgYnkgYCRuZXdgIGluIGAkbGlzdGAuXG4vLy9cbi8vLyBAaWdub3JlIERvY3VtZW50YXRpb246IGh0dHA6Ly9hdC1pbXBvcnQuZ2l0aHViLmlvL1Nhc3N5TGlzdHMvZG9jdW1lbnRhdGlvbi8jZnVuY3Rpb24tc2wtcmVwbGFjZVxuLy8vXG4vLy8gQHJlcXVpcmVzIHNsLWlzLXRydWVcbi8vLyBAcmVxdWlyZXMgc2wtcHVyZ2Vcbi8vLyBAcmVxdWlyZXMgc2wtdG8tbGlzdFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAgICAkbGlzdCAgLSBsaXN0IHRvIHVwZGF0ZVxuLy8vIEBwYXJhbSB7Kn0gICAgICAgJG9sZCAgIC0gdmFsdWUgdG8gcmVwbGFjZVxuLy8vIEBwYXJhbSB7Kn0gICAgICAgJHZhbHVlIC0gbmV3IHZhbHVlIGZvciAkb2xkXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLXJlcGxhY2UoYSBiIGMsIGIsIHopXG4vLy8gLy8gYSB6IGNcbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gc2wtcmVwbGFjZShhIGIgYywgeSwgeilcbi8vLyAvLyBhIGIgY1xuLy8vIFxuLy8vIEByZXR1cm4ge0xpc3R9XG4vLy9cbiBcbkBmdW5jdGlvbiBzbC1yZXBsYWNlKCRsaXN0LCAkb2xkLCAkdmFsdWUpIHtcbiAgJF86IHNsLW1pc3NpbmctZGVwZW5kZW5jaWVzKCdzbC1pcy10cnVlJywgJ3NsLXB1cmdlJywgJ3NsLXRvLWxpc3QnKTtcblxuICAkcnVubmluZzogdHJ1ZTtcblxuICBAd2hpbGUgJHJ1bm5pbmcge1xuICAgICRpbmRleDogaW5kZXgoJGxpc3QsICRvbGQpO1xuXG4gICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgJHJ1bm5pbmc6IGZhbHNlO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICRsaXN0OiBzZXQtbnRoKCRsaXN0LCAkaW5kZXgsICR2YWx1ZSk7XG4gICAgfVxuXG4gIH1cblxuICAkbGlzdDogaWYoc2wtaXMtdHJ1ZSgkdmFsdWUpLCAkbGlzdCwgc2wtcHVyZ2UoJGxpc3QpKTtcbiAgXG4gIEByZXR1cm4gc2wtdG8tbGlzdCgkbGlzdCk7XG59XG4iLCIvLy9cbi8vLyBDYXN0cyBgJHZhbHVlYCBpbnRvIGEgbGlzdC5cbi8vL1xuLy8vIEBpZ25vcmUgRG9jdW1lbnRhdGlvbjogaHR0cDovL2F0LWltcG9ydC5naXRodWIuaW8vU2Fzc3lMaXN0cy9kb2N1bWVudGF0aW9uLyNmdW5jdGlvbi1zbC10by1saXN0XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIHZhbHVlIHRvIGNhc3QgdG8gbGlzdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VwYXJhdG9yIFtzcGFjZV0gLSBzZXBhcmF0b3IgdG8gdXNlXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vIHNsLXRvLWxpc3QoYSBiIGMsIGNvbW1hKVxuLy8vIC8vIGEsIGIsIGNcbi8vLyBcbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vXG5cbkBmdW5jdGlvbiBzbC10by1saXN0KCR2YWx1ZSwgJHNlcGFyYXRvcjogbGlzdC1zZXBhcmF0b3IoJHZhbHVlKSkge1xuICBAcmV0dXJuIGpvaW4oKCksICR2YWx1ZSwgJHNlcGFyYXRvcik7XG59XG5cbi8vL1xuLy8vIEByZXF1aXJlcyBzbC10by1saXN0XG4vLy8gQGFsaWFzIHNsLXRvLWxpc3Rcbi8vL1xuXG5AZnVuY3Rpb24gc2wtbGlzdGlmeSgkdmFsdWUpIHtcbiAgQHJldHVybiBzbC10by1saXN0KCR2YWx1ZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5AaW1wb3J0ICd1bml0JztcbkBpbXBvcnQgJ3ZhbHVlJztcbkBpbXBvcnQgJ2RpcmVjdGlvbic7XG5AaW1wb3J0ICdjb2xvcic7XG5AaW1wb3J0ICdzZWxlY3Rvcic7XG5AaW1wb3J0ICdmbGV4JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHknO1xuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtemYtbm9ybWFsaXplIHtcbiAgQGluY2x1ZGUgbm9ybWFsaXplKCk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBUaGUgbWF4aW11bSB3aWR0aCBvZiBhIHJvdy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudCBvZiBhIGdyaWQuIENoYW5naW5nIHRoaXMgdmFsdWUgYWZmZWN0cyB0aGUgbG9naWMgb2YgdGhlIGdyaWQgbWl4aW5zLCBhbmQgdGhlIG51bWJlciBvZiBDU1MgY2xhc3NlcyBvdXRwdXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIGNvbHVtbnMgYXQgZGlmZmVyZW50IHNjcmVlbiBzaXplcy4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbi8vLyBAc2luY2UgNi4xLjBcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyB3aWxsIGFsaWduIHRvIHRoZSBvcHBvc2l0ZSBlZGdlIG9mIHRoZSByb3cuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciB1c2VkIGZvciBhbiBhbGlhcyBvZiBjb2x1bW4gKHdpdGggQGV4dGVuZCkuIElmIGBmYWxzZWAsIG5vIGFsaWFzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZ3JpZC1jb2x1bW4tYWxpYXM6ICdjb2x1bW5zJyAhZGVmYXVsdDtcblxuLy8vIFRoZSBoaWdoZXN0IG51bWJlciBvZiBgLngtdXBgIGNsYXNzZXMgYXZhaWxhYmxlIHdoZW4gdXNpbmcgdGhlIGJsb2NrIGdyaWQgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJGJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YWx1ZSB0byBzdG9yZSB0aGUgZW5kIGNvbHVtbiBmbG9hdCBkaXJlY3Rpb25cbiQtemYtZW5kLWZsb2F0OiBpZigkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSwgJGdsb2JhbC1yaWdodCwgJGdsb2JhbC1sZWZ0KTtcblxuQGltcG9ydCAncm93JztcbkBpbXBvcnQgJ2NvbHVtbic7XG5AaW1wb3J0ICdzaXplJztcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcbkBpbXBvcnQgJ2d1dHRlcic7XG5AaW1wb3J0ICdjbGFzc2VzJztcbkBpbXBvcnQgJ2xheW91dCc7XG5cbkBpbXBvcnQgJ2ZsZXgtZ3JpZCc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSB3aWR0aCBvZiBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHdpZHRoIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggdG8gbWFrZSB0aGUgY29sdW1uLiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIHdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1zaXplKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1zaXplXG5AbWl4aW4gZ3JpZC1jb2wtc2l6ZShcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbHVtbi1ndXR0ZXIoKS4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXIpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sLWd1dHRlcigpLiBncmlkLWNvbC11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgZWxlbWVudHMgdG8gZGlzcGxheSBwZXIgcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWycuY29sdW1uJ10gLSBTZWxlY3RvcihzKSB0byB1c2UgZm9yIGNoaWxkIGVsZW1lbnRzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRndXR0ZXJcbi8vLyAgIFRoZSBndXR0ZXIgdG8gYXBwbHkgdG8gY2hpbGQgZWxlbWVudHMuIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHdpbGwgdXNlIHRoZSB2YWx1ZXMgaW4gdGhlICRncmlkLWNvbHVtbi1ndXR0ZXIgbWFwLCBpbmNsdWRpbmcgYnJlYWtwb2ludCBzaXplcy5cbi8vLyAgIC0gQSBmaXhlZCBudW1lcmljIHZhbHVlIHdpbGwgYXBwbHkgdGhpcyBndXR0ZXIgdG8gYWxsIGJyZWFrcG9pbnRzLlxuQG1peGluIGdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbicsXG4gICRndXR0ZXI6IG51bGxcbikge1xuICAmID4gI3skc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgLy8gSWYgYSAkZ3V0dGVyIHZhbHVlIGlzIHBhc3NlZFxuICAgIEBpZigkZ3V0dGVyKSB7XG4gICAgICAvLyBHdXR0ZXJzXG4gICAgICBAaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XG4gICAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgdHlwZS1vZigkZ3V0dGVyKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkZ3V0dGVyKSA+IDAge1xuICAgICAgICAkcGFkZGluZzogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAmOm50aC1vZi10eXBlKCN7JG59bisxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXh0cmEgQ1NTIHRvIGJsb2NrIGdyaWQgY2hpbGRyZW4gc28gdGhlIGxhc3QgaXRlbXMgaW4gdGhlIHJvdyBjZW50ZXIgYXV0b21hdGljYWxseS4gQXBwbHkgdGhpcyB0byB0aGUgY29sdW1ucywgbm90IHRoZSByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgaXRlbXMgdGhhdCBhcHBlYXIgaW4gZWFjaCByb3cuXG5AbWl4aW4gZ3JpZC1sYXlvdXQtY2VudGVyLWxhc3QoJG4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdG8gJG4ge1xuICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICY6bnRoLWNoaWxkKCN7JG59bisxKTpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCAtIDEwMC8kbiAqICRpKSAvIDIgKiAxJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gRW5hYmxlcyB0aGUgWFkgZ3JpZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4keHktZ3JpZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIHdpZHRoIG9mIGEgZ3JpZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1jb250YWluZXI6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gVGhlIGFtb3VudCBvZiBtYXJnaW4gYmV0d2VlbiBjZWxscyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzIHdoZW4gdXNpbmcgdGhlIG1hcmdpbiBncmlkLiBUbyB1c2UganVzdCBvbmUgc2l6ZSwgc2V0IHRoZSB2YXJpYWJsZSB0byBhIG51bWJlciBpbnN0ZWFkIG9mIGEgbWFwLlxuLy8vIEB0eXBlIE1hcCB8IExlbmd0aFxuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2YgcGFkZGluZyBpbiBjZWxscyBhdCBkaWZmZXJlbnQgc2NyZWVuIHNpemVzIHdoZW4gdXNpbmcgdGhlIHBhZGRpbmcgZ3JpZC4gVG8gdXNlIGp1c3Qgb25lIHNpemUsIHNldCB0aGUgdmFyaWFibGUgdG8gYSBudW1iZXIgaW5zdGVhZCBvZiBhIG1hcC5cbi8vLyBAdHlwZSBNYXAgfCBMZW5ndGhcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgYW1vdW50IG9mIHBhZGRpbmcgdG8gdXNlIHdoZW4gcGFkZGluZyB0aGUgZ3JpZC1jb250YWluZXIuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzICFkZWZhdWx0O1xuXG4vLy8gVGhlIG1heGltdW0gd2lkdGggdG8gYXBwbHkgdG8gYSBncmlkIGNvbnRhaW5lclxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjZWxscyBpbiBhbiBYWSBibG9jayBncmlkLlxuLy8vIEB0eXBlIE51bWJlclxuJHh5LWJsb2NrLWdyaWQtbWF4OiA4ICFkZWZhdWx0O1xuXG5AaW1wb3J0ICdndXR0ZXJzJztcbkBpbXBvcnQgJ2dyaWQnO1xuQGltcG9ydCAnY2VsbCc7XG5AaW1wb3J0ICdmcmFtZSc7XG5AaW1wb3J0ICdwb3NpdGlvbic7XG5AaW1wb3J0ICdsYXlvdXQnO1xuQGltcG9ydCAnY29sbGFwc2UnO1xuQGltcG9ydCAnY2xhc3Nlcyc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGUgZ3V0dGVycyBmb3IgYSBjZWxsL2NvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgZWl0aGVyIG1hcmdpbiBvciBwYWRkaW5nLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVnYXRpdmUgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIGd1dHRlciBhcyBhIG5lZ2F0aXZlIHZhbHVlLiBDb21tb25seSB1c2VkIGZvciBuZXN0ZWQgZ3JpZHMuXG5AbWl4aW4geHktZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG5lZ2F0aXZlOiBmYWxzZVxuKSB7XG4gICRvcGVyYXRvcjogaWYoJG5lZ2F0aXZlLCAnLScsICcnKTtcblxuICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIG5lZ2F0aXZlIGd1dHRlcnMsIGZvcmNlIHR5cGUgdG8gYG1hcmdpbi5cbiAgJGd1dHRlci10eXBlOiBpZigkbmVnYXRpdmUsICdtYXJnaW4nLCAkZ3V0dGVyLXR5cGUpO1xuXG4gIC8vIE91dHB1dCBvdXIgbWFyZ2luIGd1dHRlcnMuXG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3V0dGVycykge1xuICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogI3skb3BlcmF0b3J9JGd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2VpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ251bWJlcicpIHtcbiAgICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVycykgLyAyO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZ3V0dGVyIHBvc2l0aW9uXG4gICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogI3skb3BlcmF0b3J9JGd1dHRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBtYXggd2lkdGggY29udGFpbmVyLCBkZXNpZ25lZCB0byBob3VzZSB5b3VyIGdyaWQgY29udGVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLWNvbnRhaW5lcl0gLSBhIHdpZHRoIHRvIGxpbWl0IHRoZSBjb250YWluZXIgdG8uXG5AbWl4aW4geHktZ3JpZC1jb250YWluZXIoXG4gICR3aWR0aDogJGdyaWQtY29udGFpbmVyLFxuICAkcGFkZGluZzogJGdyaWQtY29udGFpbmVyLXBhZGRpbmdcbikge1xuICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXJzOiAkcGFkZGluZywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcblxuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8vLyBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB5b3VyIGZsZXggY2VsbHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2hvcml6b250YWxdIC0gRWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwgZGlyZWN0aW9uIG9mIGNlbGxzIHdpdGhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR3cmFwIFt0cnVlXSAtIElmIHRoZSBjZWxscyB3aXRoaW4gc2hvdWxkIHdyYXAgb3Igbm90LlxuQG1peGluIHh5LWdyaWQoXG4gICRkaXJlY3Rpb246IGhvcml6b250YWwsXG4gICR3cmFwOiB0cnVlXG4pIHtcbiAgJGRpcmVjdGlvbjogaWYoJGRpcmVjdGlvbiA9PSAnaG9yaXpvbnRhbCcsIHJvdywgY29sdW1uKTtcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZSB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyIG9yIDEvMy5cbkBmdW5jdGlvbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiAkZ3JpZC1jb2x1bW5zXG4pIHtcbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIG4gb2YgbiBhbmQgbnVtYmVyIGNvdW50c1xuICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ251bWJlcicge1xuICAgIEBpZiB1bml0KCRzaXplKSA9PSAnJScge1xuICAgICAgJHNpemU6ICRzaXplO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkc2l6ZSA8IDEge1xuICAgICAgJHNpemU6IHBlcmNlbnRhZ2UoJHNpemUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkc2l6ZTogcGVyY2VudGFnZSgkc2l6ZSAvICRncmlkLWNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBvciBcIm4vblwiIGV4cHJlc3Npb25zXG4gIEBlbHNlaWYgdHlwZS1vZigkc2l6ZSkgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRzaXplKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIHRoZSBmb3JtYXQgXCJuIG9mIG5cIiBvciBcIm4vblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRzaXplOiBwZXJjZW50YWdlKG50aCgkc2l6ZSwgMSkgLyBudGgoJHNpemUsIDMpKTtcbiAgICB9XG4gIH1cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciB4eS1jZWxsLXNpemUoKS4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkc2l6ZTtcbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2Agb3IgYHNocmlua2AuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gIEBpZigkc2l6ZSA9PSAnZnVsbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBiYXNlIHN0eWxlLCBhbGwgb3RoZXJzIGluaGVyaXQgZnJvbSBpdFxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICB9XG4gIEBlbHNlaWYgKCRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbn1cblxuLy8vIFJlc2V0cyBhIGNlbGxzIHdpZHRoIChvciBoZWlnaHQgaWYgdmVydGljYWwgaXMgdHJ1ZSkgYXMgd2VsbCBhcyBzdHJpcHMgaXRzIGd1dHRlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG5AbWl4aW4geHktY2VsbC1yZXNldCgkdmVydGljYWw6IHRydWUpIHtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsID09IHRydWUsIHdpZHRoLCBoZWlnaHQpO1xuICAjeyRkaXJlY3Rpb259OiBhdXRvO1xufVxuXG4vLyBTZXRzIG91ciBjZWxsIHdpZHRocyBvciBoZWlnaHRzIGRlcGVuZGluZyBvbiBndXR0ZXIgdHlwZS5cbkBtaXhpbiAteHktY2VsbC1wcm9wZXJ0aWVzKCRzaXplLCAkbWFyZ2luLWd1dHRlciwgJHZlcnRpY2FsKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsIDEwMCUsIGNhbGMoMTAwJSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbiAgQGVsc2VpZiAoJHNpemUgPT0gJ2F1dG8nKSB7XG4gICAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgICAkdmFsOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAxMDAlLCBjYWxjKDEwMCUgLSAje3JlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKX0pKTtcbiAgfVxuICBAZWxzZWlmICgkc2l6ZSA9PSAnc2hyaW5rJykge1xuICAgICN7JGRpcmVjdGlvbn06IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWw6IGlmKCRtYXJnaW4tZ3V0dGVyID09IDAsICN7eHktY2VsbC1zaXplKCRzaXplKX0sIGNhbGMoI3t4eS1jZWxsLXNpemUoJHNpemUpfSAtICN7cmVtLWNhbGMoJG1hcmdpbi1ndXR0ZXIpfSkpO1xuICAgICN7JGRpcmVjdGlvbn06ICR2YWw7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKGRlZmF1bHQpIGZvciAxMDAlIHdpZHRoLCBgYXV0b2AgdG8gdXNlIHVwIGF2YWlsYWJsZSBzcGFjZSBhbmQgYHNocmlua2AgdG8gdXNlIHVwIG9ubHkgcmVxdWlyZWQgc3BhY2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgQGlmKCRicmVha3BvaW50ID09IG51bGwpIHtcbiAgICAvLyBJZiBgJGJwLXNpemVgIGlzIGF2YWlsYWJsZSB0aGVuIHVzZSB0aGlzLCBvdGhlcndpc2UgcmV2ZXJ0IHRvIHRoZSBzbWFsbGVzdCBicC5cbiAgICBAaWYodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgICAgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEdldCBvdXIgZ3V0dGVycyBmcm9tIG1hcCBpZiBhdmFpbGFibGUsIGlmIG5vdCBtYXAganVzdCByZXR1cm4gdGhlIHZhbHVlLlxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gIC8vIEJhc2UgZmxleCBwcm9wZXJ0aWVzXG4gIEBpbmNsdWRlIHh5LWNlbGwtYmFzZSgkc2l6ZSk7XG5cbiAgQGlmKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICRndXR0ZXIsICR2ZXJ0aWNhbCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsIDAsICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAaWYgJGd1dHRlci1vdXRwdXQge1xuICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlciwgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHNpemVkIGdyaWQuIFVzZWQgdG8gZ2VuZXJhdGUgb3VyIGdyaWQgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoZGVmYXVsdCkgZm9yIDEwMCUgd2lkdGgsIGBhdXRvYCB0byB1c2UgdXAgYXZhaWxhYmxlIHNwYWNlIGFuZCBgc2hyaW5rYCB0byB1c2UgdXAgb25seSByZXF1aXJlZCBzcGFjZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXN0YXRpYyhcbiAgJHNpemU6IGZ1bGwsXG4gICRndXR0ZXItb3V0cHV0OiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnQsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuXG4gICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG4gICRndXR0ZXItcG9zaXRpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCB0b3AgYm90dG9tLCBsZWZ0IHJpZ2h0KTtcblxuICBAaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgJGd1dHRlciwgJHZlcnRpY2FsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLXh5LWNlbGwtcHJvcGVydGllcygkc2l6ZSwgMCwgJHZlcnRpY2FsKTtcbiAgfVxuXG4gIC8vIElmIHdlIHdhbnQgdG8gb3V0cHV0IHRoZSBndXR0ZXJzXG4gIEBpZigkZ3V0dGVyLW91dHB1dCkge1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBwYXNzIGJyZWFrcG9pbnQgaW4gaGVyZSB0b28uXG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24pO1xuICB9XG59XG4iLCIvLy8gTW9kaWZpZXMgYSBncmlkIHRvIGdpdmUgaXQgXCJmcmFtZVwiIGJlaGF2aW9yIChubyBvdmVyZmxvdywgbm8gd3JhcCwgc3RyZXRjaCBiZWhhdmlvcilcbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBJcyBncmlkIHZlcnRpY2FsIG9yIGhvcml6b250YWwuIFNob3VsZCBtYXRjaCBncmlkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lc3RlZCBbZmFsc2VdIC0gSXMgZ3JpZCBuZXN0ZWQgb3Igbm90LiBJZiBuZXN0ZWQgaXMgdHJ1ZSB0aGlzIHNldHMgdGhlIGZyYW1lIHRvIDEwMCUgaGVpZ2h0LCBvdGhlcndpc2Ugd2lsbCBiZSAxMDB2aC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFtudWxsXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRpbmNsdWRlLWJhc2UgW3RydWVdIC0gSW5jbHVkZSB0aGUgYmFzZSBzdHlsZXMgdGhhdCBkb24ndCB2YXJ5IHBlciBicmVha3BvaW50LlxuQG1peGluIHh5LWdyaWQtZnJhbWUoXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRuZXN0ZWQ6IGZhbHNlLFxuICAkZ3V0dGVyczogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICRpbmNsdWRlLWJhc2U6IHRydWVcbikge1xuXG4gIEBpZiAkaW5jbHVkZS1iYXNlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIGFuZCB0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbWFwJyB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUoJHZlcnRpY2FsLCAkbmVzdGVkLCAkZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAvLyBHZXQgb3VyIGd1dHRlcnMgaWYgYXBwbGljYWJsZVxuICAgICRndXR0ZXI6IC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkYnJlYWtwb2ludCk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgZ3V0dGVyLCBhZGQgaXQgdG8gdGhlIHdpZHRoL2hlaWdodFxuICAgIEBpZiAkZ3V0dGVyIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZoKTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR1bml0OiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcik7XG4gICAgICAgIHdpZHRoOiBjYWxjKCN7JHVuaXR9ICsgI3skZ3V0dGVyfSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgICAgIGhlaWdodDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgd2lkdGg6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdncpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gTW9kaWZpZXMgYSBjZWxsIHRvIGdpdmUgaXQgXCJibG9ja1wiIGJlaGF2aW9yIChvdmVyZmxvdyBhdXRvLCBpbmVydGlhbCBzY3JvbGxpbmcpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrKFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHByb3BlcnR5OiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgJ292ZXJmbG93LXknLCAnb3ZlcmZsb3cteCcpO1xuXG4gIEBpZiAkdmVydGljYWwgPT0gdHJ1ZSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9IEBlbHNlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eXBlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi8vLyBDb250YWluZXIgZm9yIGluc2lkZSBhIGdyaWQgZnJhbWUgY29udGFpbmluZyBtdWx0aXBsZSBibG9ja3MuIFR5cGljYWxseSB1c2VkXG4vLy8gYXMgYSBtb2RpZmllciBmb3IgYSBgLmNlbGxgIHRvIGFsbG93IHRoZSBjZWxsIHRvIHBhc3MgYWxvbmcgZmxleCBzaXppbmdcbi8vLyBjb25zdHJhaW50cyAvIGZyb20gcGFyZW50cyB0byBjaGlsZHJlbi5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICA+IC5ncmlkLXgge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgemYtY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRicmVha3BvaW50LCAkZ3V0dGVycykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpIC8gMjtcbiAgICAkc2l6ZTogaWYoJGd1dHRlci10eXBlID09ICdtYXJnaW4nLCBjYWxjKCN7eHktY2VsbC1zaXplKCRuKX0gKyAjeyRndXR0ZXJ9KSwgI3t4eS1jZWxsLXNpemUoJG4pfSk7XG5cbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX07XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBvdXRwdXQgZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAgb3IgYHBhZGRpbmdgLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNlbGwnLFxuICAkZ3V0dGVyLW91dHB1dDogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJGJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50LFxuICAkdmVydGljYWw6IGZhbHNlXG4pIHtcbiAgJHNpemU6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbCgkc2l6ZSwgJGd1dHRlci1vdXRwdXQsICRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZXMgdGhlIGdyaWQgYSBjZWxscyB3aXRoaW4gaXQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsuY2VsbF0gLSBUaGUgY2hpbGQgZWxlbWVudCB0byByZW1vdmUgdGhlIGd1dHRlciBmcm9tLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHJlbW92ZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9ucyB0byByZW1vdmUgZ3V0dGVycyBmcm9tLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi5cbkBtaXhpbiB4eS1ncmlkLWNvbGxhcHNlKFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiByaWdodCBsZWZ0LFxuICAkbWluLWJyZWFrcG9pbnQ6ICQtemYtemVyby1icmVha3BvaW50XG4pIHtcbiAgLy8gRmlyc3QsIGxldHMgbmVnYXRlIGFueSBtYXJnaW5zIG9uIHRoZSB0b3AgbGV2ZWxcbiAgQGlmICgkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicpIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkZXhjbHVkZWQtYnBzOiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRtaW4tYnJlYWtwb2ludCk7XG5cbiAgICAvLyBPdXRwdXQgbmV3IHdpZHRocyB0byBub3QgaW5jbHVkZSBndXR0ZXJzXG4gICAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmKHNsLWNvbnRhaW4oJGV4Y2x1ZGVkLWJwcywgJGJwKSkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgJGd1dHRlci1vdXRwdXQ6IGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCAkZ3V0dGVyLW91dHB1dDogZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtaW4tYnJlYWtwb2ludCkge1xuICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tI3skdmFsdWV9OiAwO1xuICAgICAgfVxuXG4gICAgICA+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLyBNYXJnaW4gR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmFzZS1ncmlkLWNsYXNzZXMge1xuXG4gIC8vIEdyaWQgQ29udGFpbmVyXG4gIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG5cbiAgICAmLmZsdWlkIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKDEwMCUpO1xuICAgIH1cblxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlLCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCYXNlIGdyaWQgc3R5bGVzXG4gIC5ncmlkLXgge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gIH1cblxuICAuY2VsbCB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCk7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGdyaWQtY29sdW1ucywgZmFsc2UsICRndXR0ZXItdHlwZTogcGFkZGluZyk7XG5cbiAgICAmLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgIH1cblxuICAgICYuc2hyaW5rIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmFzZShzaHJpbmspO1xuICAgIH1cblxuICB9XG4gIC5ncmlkLXgge1xuICAgID4gLmF1dG8ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoYXV0bywgZmFsc2UpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIHdpZHRoXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyAmIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAuZ3JpZC14IHtcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gc21hbGwpIHtcbiAgICAgIC5ncmlkLXggPiAuI3skLXpmLXNpemV9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKHNocmluaywgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKCRpLCBmYWxzZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCB3aWR0aCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teGAgbm90IG9uIGAuZ3JpZC14YFxuICAuZ3JpZC1tYXJnaW4teDpub3QoLmdyaWQteCkgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgd2hlbiB1c2luZyBgLmdyaWQtbWFyZ2luLXlgIG5vdCBvbiBgLmdyaWQteWBcbiAgLmdyaWQtbWFyZ2luLXk6bm90KC5ncmlkLXkpID4gLmNlbGwge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRjbGFzcy1icmVha3BvaW50LCAkZ3V0dGVyLWJyZWFrcG9pbnQsICR2ZXJ0aWNhbCkge1xuICAkcHJlZml4OiBpZigkY2xhc3MtYnJlYWtwb2ludCA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCwgJycsICcjeyRjbGFzcy1icmVha3BvaW50fS0nKTtcbiAgPiAuI3skcHJlZml4fWF1dG8ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICA+IC4jeyRwcmVmaXh9c2hyaW5rIHtcbiAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkYnJlYWtwb2ludDogJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAkY2xhc3NuYW1lOiBpZigkdmVydGljYWwsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nLCAnLiN7JGNsYXNzLWJyZWFrcG9pbnR9LSN7JGl9Jyk7XG5cbiAgICA+ICN7JGNsYXNzbmFtZX0ge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGksIGZhbHNlLCAkYnJlYWtwb2ludDogJGd1dHRlci1icmVha3BvaW50LCAkdmVydGljYWw6ICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hcmdpbiBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBsZWZ0IHJpZ2h0LFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkd3JhcHBpbmctc2VsZWN0b3I6ICcuZ3JpZC1tYXJnaW4teCdcbil7XG4gICN7JHdyYXBwaW5nLXNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246ICRndXR0ZXItcG9zaXRpb24pO1xuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgIH1cblxuICAgIC8vIGJhc2Ugc3R5bGVzIG5lZWQgdG8gYWxsIGJlIGJlZm9yZSB0aGUgYXV0byBhbmQgc2hyaW5rIHN0eWxlc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpIGFuZCAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuY2VsbCB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiAkdmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcblxuICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICBAaWYodHlwZS1vZigkZ3JpZC1tYXJnaW4tZ3V0dGVycykgPT0gJ21hcCcgYW5kIG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkLXpmLXNpemUpKSB7XG4gICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCRicCwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJC16Zi1zaXplLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgfVxuICB9XG59XG5cbi8vIFBhZGRpbmcgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktcGFkZGluZy1ncmlkLWNsYXNzZXMge1xuICAuZ3JpZC1wYWRkaW5nLXgge1xuXG4gICAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBuZXN0ZWQgZ3JpZHNcbiAgICAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgZ3JpZHMgd2l0aGluIGBncmlkLWNvbnRhaW5lci9ncmlkLWNvbnRhaW5lci5mbHVpZGBcbiAgICAvLyBUaGlzIGFsbG93cyBtYXJnaW4gYW5kIHBhZGRpbmcgZ3JpZHMgdG8gbGluZSB1cCB3aXRoIGVhY2hvdGhlclxuICAgIC5ncmlkLWNvbnRhaW5lcjpub3QoLmZ1bGwpID4gJiB7XG4gICAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gQmFzZSBjZWxsIHN0eWxlc1xuICAgID4gLmNlbGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBCbG9jayBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS1ibG9jay1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuY2VsbCcsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRtYXJnaW4tZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC8vIFRoaXMgaXMgcHVyZWx5IGZvciByZXNwb25zaXZlIGd1dHRlcnMgLSB0aGUgbWFyZ2luIGdyaWQgaGFzIHRvIGdvIGJhY2sgYW5kIGFkanVzdCB3aWR0aHMgKG9yIGhlaWdodHMpXG4gICAgICAgIC8vIGZvciBwcmlvciBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgcmVzcG9uc2l2ZSBndXR0ZXIuXG4gICAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkpIHtcbiAgICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICAgIEBpZihtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJGJwKSkge1xuICAgICAgICAgICAgICAuZ3JpZC1tYXJnaW4teC4jeyRicH0tdXAtI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRpLCAnLmNlbGwnLCBmYWxzZSwgJGd1dHRlci10eXBlOiBtYXJnaW4sICRicmVha3BvaW50OiAkYnApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJGksICcuY2VsbCcsIGZhbHNlLCAkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29sbGFwc2UgY2xhc3Nlc1xuQG1peGluIHh5LWNvbGxhcHNlLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQ6IHRydWUsICRwYWRkaW5nLWdyaWQ6IHRydWUpIHtcbiAgQGVhY2ggJGJwIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgICAgLiN7JGJwfS1tYXJnaW4tY29sbGFwc2Uge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbGxhcHNlKCRndXR0ZXItdHlwZTogbWFyZ2luLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgICAgLiN7JGJwfS1wYWRkaW5nLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRtaW4tYnJlYWtwb2ludDogJGJwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gT2Zmc2V0IGNsYXNzZXNcbkBtaXhpbiB4eS1vZmZzZXQtY2VsbC1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8sICRndXR0ZXJzOiAkZ3JpZC1wYWRkaW5nLWd1dHRlcnMsICRndXR0ZXItdHlwZTogcGFkZGluZywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLW1hcmdpbi14ID4gLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLW9mZnNldCgkbywgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFZlcnRpY2FsIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXZlcnRpY2FsLWdyaWQtY2xhc3NlcyhcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlXG4pIHtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgIEBpZiBub3QoJC16Zi1zaXplID09IHNtYWxsKSB7XG4gICAgfVxuICB9XG5cbiAgLmdyaWQteSB7XG4gICAgQGluY2x1ZGUgeHktZ3JpZCh2ZXJ0aWNhbCwgZmFsc2UpO1xuXG5cbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtcmVzZXQoKTtcbiAgICB9XG5cbiAgICA+IC5hdXRvIHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYyhzaHJpbmssIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrL3dvcmthcm91bmQsIHNlZSB0aGVzZSBpc3N1ZXMgYW5kIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96dXJiL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzEwMjQ0XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAyMjIgYW5kXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20venVyYi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSBzbWFsbCkge1xuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tYXV0byB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc3RhdGljKGF1dG8sIGZhbHNlLCAkYnJlYWtwb2ludDogJC16Zi1zaXplLCAkdmVydGljYWw6IHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zdGF0aWMoc2hyaW5rLCBmYWxzZSwgJGJyZWFrcG9pbnQ6ICQtemYtc2l6ZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXN0YXRpYygkaSwgZmFsc2UsICR2ZXJ0aWNhbDogdHJ1ZSwgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuXG4gICAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgICA+IC5jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gIH1cblxufVxuXG5AbWl4aW4geHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkOiB0cnVlLCAkbWFyZ2luLWdyaWQ6IHRydWUpIHtcbiAgLy8gRnJhbWVkIGdyaWQgc3R5bGVzXG4gIC5ncmlkLWZyYW1lIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICB9XG5cbiAgLmNlbGwgLmdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICB9XG5cbiAgLmNlbGwtYmxvY2sge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgfVxuXG4gIC5jZWxsLWJsb2NrLXkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gIH1cblxuXG4gIC5jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuXG4gICAgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gICAgfVxuXG4gICAgLmNlbGwgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICR2ZXJ0aWNhbC1ncmlkIHtcbiAgICAuZ3JpZC15IHtcbiAgICAgICYuZ3JpZC1mcmFtZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgICYuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbCB7XG4gICAgICAuZ3JpZC15LmdyaWQtZnJhbWUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICB9XG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgIC5ncmlkLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICAgIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRpbmNsdWRlLWJhc2U6IGZhbHNlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgLmdyaWQtbWFyZ2luLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZpbmFsIGNsYXNzZXNcbkBtaXhpbiBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcyhcbiAgJGJhc2UtZ3JpZDogdHJ1ZSxcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlLFxuICAkYmxvY2stZ3JpZDogdHJ1ZSxcbiAgJGNvbGxhcHNlOiB0cnVlLFxuICAkb2Zmc2V0OiB0cnVlLFxuICAkdmVydGljYWwtZ3JpZDogdHJ1ZSxcbiAgJGZyYW1lLWdyaWQ6IHRydWVcbikge1xuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgQGlmKCRiYXNlLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1iYXNlLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gTWFyZ2luIGdyaWRcbiAgQGlmKCRtYXJnaW4tZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFBhZGRpbmcgZ3JpZFxuICBAaWYoJHBhZGRpbmctZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBCbG9jayBncmlkXG4gIEBpZigkYmxvY2stZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gQ29sbGFwc2UgZ3V0dGVyc1xuICBAaWYoJGNvbGxhcHNlKSB7XG4gICAgQGluY2x1ZGUgeHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBPZmZzZXQgZ3V0dGVyc1xuICBAaWYoJG9mZnNldCkge1xuICAgIEBpbmNsdWRlIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGdyaWRcbiAgQGlmKCR2ZXJ0aWNhbC1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICBAaWYgKCRmcmFtZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkLCAkbWFyZ2luLWdyaWQpXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLy9cblxuLy8gQmFzZSB0eXBvZ3JhcGh5IHN0eWxlcyAodGFncyBvbmx5KVxuQGltcG9ydCAnYmFzZSc7XG5cbi8vIFR5cG9ncmFwaHkgaGVscGVyIGNsYXNzZXMgKGNsYXNzZXMgb25seSlcbkBpbXBvcnQgJ2hlbHBlcnMnO1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzc2VzXG5AaW1wb3J0ICdhbGlnbm1lbnQnO1xuXG4vLyBQcmludCBzdHlsZXNcbkBpbXBvcnQgJ3ByaW50JztcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeSB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcmludC1zdHlsZXM7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsIC5oMSxcbiAgaDIsIC5oMixcbiAgaDMsIC5oMyxcbiAgaDQsIC5oNCxcbiAgaDUsIC5oNSxcbiAgaDYsIC5oNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9LCAuI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIsIGFiYnJbdGl0bGVdIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEdsb2JhbCBzcGFjaW5nIGZvciBmb3JtIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG5AaW1wb3J0ICd0ZXh0JztcbkBpbXBvcnQgJ2NoZWNrYm94JztcbkBpbXBvcnQgJ2xhYmVsJztcbkBpbXBvcnQgJ2hlbHAtdGV4dCc7XG5AaW1wb3J0ICdpbnB1dC1ncm91cCc7XG5AaW1wb3J0ICdmaWVsZHNldCc7XG5AaW1wb3J0ICdzZWxlY3QnO1xuQGltcG9ydCAncmFuZ2UnO1xuQGltcG9ydCAncHJvZ3Jlc3MnO1xuQGltcG9ydCAnbWV0ZXInO1xuQGltcG9ydCAnZXJyb3InO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS10ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZXJyb3I7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRm9udCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIG9mIHBsYWNlaG9sZGVyIHRleHQgd2l0aGluIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEZvbnRcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWJ1dHRvbi1yYWRpdXM7XG4gIH1cblxuICAvLyBSZXNldCBOb3JtYWxpemUgc2V0dGluZyBjb250ZW50LWJveCB0byBzZWFyY2ggZWxlbWVudHNcbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ10geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcblxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG5cbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDAsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMpO1xuICAgIH1cblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgPiAqIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsICRpbnB1dC1yYWRpdXMgMCAwICRpbnB1dC1yYWRpdXMsIDAgJGlucHV0LXJhZGl1cyAkaW5wdXQtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJvcmRlcjogJGlucHV0LXByZWZpeC1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcblxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgfVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogdW5pdGxlc3MtY2FsYygkaW5wdXQtbGluZS1oZWlnaHQpKSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc2xpZGVyXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc2xpZGVyJ3MgdHJhY2suXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBhY3RpdmUgZmlsbCBjb2xvciBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHdpZHRoIG9mIHRoZSBoYW5kbGUgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBoYW5kbGUgZm9yIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIGFtb3VudCBvZiBhIGRpc2FibGVkIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJhbmdlLWlucHV0IHtcbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHsgIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICRtYXJnaW46ICgkc2xpZGVyLWhhbmRsZS1oZWlnaHQgLSAkc2xpZGVyLWhlaWdodCkgLyAyO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6ICRtYXJnaW47XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbjtcblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgLy8gQ2hyb21lL1NhZmFyaVxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItaGFuZGxlIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG5cbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmlyZWZveFxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG5cbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXJcbiAgICAmOjotbXMtdHJhY2sge1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcblxuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXRvcDogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJG1hcmdpbiBzb2xpZCAkYm9keS1iYWNrZ3JvdW5kO1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBvdXRwdXQge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm9ncmVzcy1iYXJcbi8vLy9cblxuLy8vIEhlaWdodCBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgYSBwcm9ncmVzcyBiYXIncyBtZXRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtZWxlbWVudCB7XG4gIHByb2dyZXNzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG5cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJHByb2dyZXNzLWJhY2tncm91bmQ7XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcblxuICAgICAgQGlmIGhhc3ZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgc2V0cyB0aGUgZmlsbCB3aXRoIGNvbG9yXG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciBJRSBhbmQgRWRnZVxuICAgICY6Oi1tcy1maWxsIHtcbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1ldGVyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRtZXRlci1oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGFuIG9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhbiBhdmVyYWdlIHZhbHVlIGluIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhIHN1Ym9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1ldGVyLWVsZW1lbnQge1xuICBtZXRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkbWV0ZXItaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAvLyBEaXNhYmxlIGAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmVgIGZyb20gZ2V0dGluZyBwcmVmaXhlZCxcbiAgICAvLyBXZSBoYXZlIGRpc2FibGVkIGF1dG9wcmVmaXhlciBmaXJzdCBhbmQgYXJlIGp1c3Qgb25seSB1c2luZyBcbiAgICAvLyBgLW1vei1hcHBlYXJhbmNlOiBub25lYCBhcyBhIHByZWZpeCBhbmQgbmVnbGVjdGluZyB0aGUgd2Via2l0LlxuICAgIFxuICAgIC8qISBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgLy8gRm9yIEZpcmVmb3hcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAvLyBDaHJvbWUvU2FmYXJpL0VkZ2VcbiAgICAmOjotd2Via2l0LW1ldGVyLWJhciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHtcbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1nb29kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbWVkaXVtO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWJhZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6LW1vei1tZXRlci1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWdvb2Q7XG4gICAgfVxuXG4gICAgJjotbW96LW1ldGVyLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtcHNldWRvLW5lc3RpbmdcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLWJhZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCB3aXRoaW4gYSBjZXJ0YWluIGJyZWFrcG9pbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XG4gICRsb3dlci1ib3VuZC1zaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkdXBwZXItYm91bmQtc2l6ZTogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJHNpemUpO1xuXG4gIC8vIG1vcmUgb2Z0ZW4gdGhhbiBub3QgdGhpcyB3aWxsIGJlIGNvcnJlY3QsIGp1c3Qgb25lIHRpbWUgcm91bmQgdGhlIGxvb3AgaXQgd29uJ3Qgc28gc2V0IGluIHNjb3BlIGhlcmVcbiAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpIC0gKDEgLyAxNik7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbG9hdFxuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZpbGwgZm9yIGJ1dHRvbnMuIENhbiBlaXRoZXIgYmUgYHNvbGlkYCBvciBgaG9sbG93YC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBBbHRlcm5hdGl2ZSBmb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgJixcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG4gIH1cbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcbiAgfVxuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGNsZWFyIHtcbiAgICAgICYuY2xlYXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXG4gICAgICAgICAgICAmLCAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuICBhLmJ1dHRvbiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLy8gVHdvIG9yIG1vcmUgY2hpbGRyZWVuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRidXR0b25ncm91cC1leHBhbmQtbWF4IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICYsICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIH4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JHNwYWNpbmd9KTtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nICogLSRidXR0b25ncm91cC1leHBhbmQtbWF4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIFVuLXN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC11bnN0YWNrKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24tZ3JvdXAge1xuICAuYnV0dG9uLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWV4cGFuZDsgfVxuXG4gICAgLy8gQ29sb3JzXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLFxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgZm9yY2UtZWxlbWVudC1uZXN0aW5nXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxuLy8vL1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gYm9yZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIExpc3RcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCBoZWlnaHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cbiAgJi5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMXJlbTtcbiAgfVxuICAmLmFsaWduLXJpZ2h0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxufVxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xuXG4gIC5hY2NvcmRpb24tbWVudSB7XG4gICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgQGlmICRhY2NvcmRpb25tZW51LWJvcmRlciB7XG4gICAgICAgIGJvcmRlci10b3A6ICRhY2NvcmRpb25tZW51LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICB9XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuICAgIH1cbiAgICBcbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHdpZHRoOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDtcblxuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyO1xuXG4gICAgQGlmICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGFycm93IHRvIHRoZSB0b2dnbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG5cbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBSb3RhdGUgdGhlIGFycm93IHdoZW4gbWVudSBpcyBvcGVuXG4gIC5zdWJtZW51LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgfVxuXG4gIC5zdWJtZW51LXRvZ2dsZS10ZXh0IHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmW2Rpc2FibGVkXSB7XG4gICAgLmFjY29yZGlvbi10aXRsZSB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAkYmFkZ2UtbWlud2lkdGg7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJhZGdlLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGJhZGdlLWNvbG9yLCAkYmFkZ2UtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2VwZXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIElmIGl0IGV4aXN0cyAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCBpcyB1c2VkIHRvIGJ1aWxkICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhicmVhZGNydW1icy1pdGVtLXNsYXNoKSB7XG4gICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvcjogJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g7XG59XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtOiAnLycgIWRlZmF1bHQ7XG5cbi8vLyBVc2VkIGNoYXJhY3RlciBmb3IgdGhlIGJyZWFkY3J1bWIgc2VwYXJhdG9yIGluIHJ0bCBtb2RlLlxuLy8vIEB0eXBlIENvbnRlbnRcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8gSWYgaXQgZXhpc3RzICRicmVhZGNydW1icy1pdGVtLXNsYXNoLWNvbG9yIGlzIHVzZWQgdG8gYnVpbGQgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gtY29sb3IpIHtcbiAgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvciB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2VwYXJhdG9yOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAkYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbSwgJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29udGVudDogJHNlcGFyYXRvcjtcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDAuNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYXJkXG4vLy8vXG5cbi8vLyBEZWZ1YWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FyZHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYXJkLWRpdmlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZS5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY2FyZCBzaGFkb3cuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtc2hhZG93OiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhcmQtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luLlxuLy8vIEB0eXBlIG51bWJlclxuJGNhcmQtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gZm9udCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiAtIEJvdHRvbSBtYXJnaW4gb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkYm9yZGVyIC0gQm9yZGVyIGFyb3VuZCB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYWRpdXMgLSBib3JkZXIgcmFkaXVzIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHNoYWRvdyAtIGJveCBzaGFkb3cgb2YgdGhlIGNhcmQuXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRjYXJkLWZvbnQtY29sb3IsXG4gICRtYXJnaW46ICRjYXJkLW1hcmdpbi1ib3R0b20sXG4gICRib3JkZXI6ICRjYXJkLWJvcmRlcixcbiAgJHJhZGl1czogJGNhcmQtYm9yZGVyLXJhZGl1cyxcbiAgJHNoYWRvdzogJGNhcmQtc2hhZG93XG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGRpdmlkZXIuXG5AbWl4aW4gY2FyZC1kaXZpZGVyKFxuICAkYmFja2dyb3VuZDogJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kLFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIHNlY3Rpb24uXG5AbWl4aW4gY2FyZC1zZWN0aW9uKFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgJiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhcmQge1xuICAuY2FyZCB7XG4gICAgQGluY2x1ZGUgY2FyZC1jb250YWluZXI7XG4gIH1cblxuICAuY2FyZC1kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBjYXJkLWRpdmlkZXI7XG4gIH1cblxuICAuY2FyZC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBjYXJkLXNlY3Rpb247XG4gIH1cblxuICAvLyBGb3IgSUUgMTEgLSBGbGV4YnVnXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzc1XG4gIC5jYXJkLWltYWdlIHtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IChcbiAgc21hbGw6IDAuNjZyZW0sXG4gIG1lZGl1bTogMXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgKG9yIGJvdHRvbSkgb2Zmc2V0KHMpIGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsOiAoXG4gIHNtYWxsOiAwLjMzZW0sXG4gIG1lZGl1bTogMC41cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuXG4vLy8gR2V0IHRoZSBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBjbG9zZSBidXR0b24uIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIG51bWJlciwgdGhlIG51bWJlciBpcyByZXR1cm5lZC4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgY29uZmlnIG1hcCBhbmQgdGhlIG1hcCBoYXMgdGhlIGtleSBgJHNpemVgLCB0aGUgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICR2YWx1ZSAtIEEgbnVtYmVyIG9yIG1hcCB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb3IgcG9zaXRpb24gdmFsdWUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gVGhlIHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbiB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBnaXZlbiBudW1iZXIgb3IgdGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gLXpmLWdldC1zaXplLXZhbCgkdmFsdWUsICRzaXplKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAvLyBJZiBpdCBpcywganVzdCByZXR1cm4gdGhlIG51bWJlclxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHNpemUgbmFtZSBleGlzdHMgaW4gdGhlIHZhbHVlIG1hcFxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkdmFsdWUsICRzaXplKSB7XG4gICAgLy8gSWYgaXQgZG9lcywgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkdmFsdWUsICRzaXplKTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgYSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbbWVkaXVtXSAtIFRoZSBzaXplIHRvIHVzZS4gU2V0IHRvIGBzbWFsbGAgdG8gY3JlYXRlIGEgc21hbGwgY2xvc2UgYnV0dG9uLiBUaGUgJ21lZGl1bScgdmFsdWVzIGRlZmluZWQgaW4gYCRjbG9zZWJ1dHRvbi0qYCB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gY2xvc2UtYnV0dG9uLXNpemUoJHNpemUpIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgI3skeH06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsLCAkc2l6ZSk7XG4gICN7JHl9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWwsICRzaXplKTtcbiAgZm9udC1zaXplOiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1zaXplLCAkc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0LCAkc2l6ZSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cbkBtaXhpbiBjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uIHtcbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgY2xvc2UtYnV0dG9uO1xuXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKHNtYWxsKSB9XG4gICAgJiwgJi5tZWRpdW0geyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShtZWRpdW0pIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tbGVmdCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgdG9wIGxldmVsIDx1bD5cbiAgLmRyaWxsZG93biB7XG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmc7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLy8gQXBwbGllZCB0byBzdWJtZW51IDx1bD5zXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgICB9XG5cbiAgICAgICYuaXMtY2xvc2luZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3VibWVudSBpdGVtIHBhZGRpbmdcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAkZHJpbGxkb3duLXN1Ym1lbnUtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmVzdGVkLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWRyaWxsZG93bi1sZWZ0LXJpZ2h0LWFycm93cztcblxuICAgICAgLmpzLWRyaWxsZG93bi1iYWNrID4gYTo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9LXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBwYWRkaW5nIGZvciBhbGlnbmluZyB0aGUgYXJyb3cgY29ycmVjdGx5LlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHN1Yi1tZW51IGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbS4gRXhwbGljaXQgb3ZlcnJpZGUgZm9yIG1lbnUgZGVmYXVsdHNcbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1kcm9wZG93bi1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gID4gYTo6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1yaWdodH06IDE0cHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4O1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZztcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgY29sb3I6ICRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xuICAgIH1cblxuICAgIC5uby1qcyAmIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbik7XG4gICAgfVxuXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuI3skc2l6ZX0tdmVydGljYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBhOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplO1xuICAgIH1cblxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG5cbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG5cbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmRyb3Bkb3duICYgYSB7XG4gICAgICBwYWRkaW5nOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXG4vLy8gQHR5cGUgTWFwXG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEFwcGxpZXMgc3R5bGVzIGZvciBhIGJhc2ljIGRyb3Bkb3duLlxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG5cbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuXG4gIC8vIEFsbG93IGFuIGludGVybWl0dGVudCBzdGF0ZSB0byBkbyBwb3NpdGlvbmluZyBiZWZvcmUgbWFraW5nIHZpc2libGUuXG4gICYuaXMtb3BlbmluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0Jykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG4gIFxuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCBTcGVjaWZpY2FsbHkgZm9yIFZlcnRpY2FsIE1lbnVcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksICdsZWZ0JywgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsLm1lbnUgPiBsaSA+IGEgeyBcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vIFdBUk5JTkc6IFdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDYuNFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW86IGRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCgpLiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xufVxuXG5AbWl4aW4gZmxleC12aWRlbygkcmF0aW86ICRyZXNwb25zaXZlLWVtYmVkLXJhdGlvKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IHJlc3BvbnNpdmUtZW1iZWQoKS4gZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFuIGhvdmVyZWQgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC4gXG4vLy8gQnV0IHBsZWFzZSBub3RlIHRoYXQgYGFjdGl2ZWAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LXN0YXRlLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBjZW50ZXJlZC4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYC5tZW51LWNlbnRlcmVkID4gLm1lbnVgIHdpdGggYC5tZW51LmFsaWduLWNlbnRlcmAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBtZW51LWNlbnRlcmVkYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciB1c2luZyBgaWNvbi0qYCBjbGFzc2VzIHdpdGhvdXQgYC5pY29uc2AgY2xhc3Nlc1xuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoaXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgfVxuXG4gIGEsXG4gIC5idXR0b24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtcy1wYWRkaW5nO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFsaWduIG1lbnUgaXRlbXMuXG5AbWl4aW4gbWVudS1hbGlnbigkYWxpZ25tZW50KSB7XG4gIEBpZiAkYWxpZ25tZW50ID09IGxlZnQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuXG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBjZW50ZXIge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFRoaXMgZWZmZWN0cyB0aGUgc2lkZSBvZiB0aGUgYDxsaT5gIHRoYXQgcmVjZWl2ZXMgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiBbJG1lbnUtc2ltcGxlLW1hcmdpbl0gLSBUaGUgbWFyZ2luIHRvIGFwcGx5IHRvIGVhY2ggYDxsaT5gLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCwgJG1hcmdpbjogJG1lbnUtc2ltcGxlLW1hcmdpbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgbGkgKyBsaSB7XG4gICAgbWFyZ2luLSN7JGRpcn06ICRtYXJnaW47XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJG1hcmdpbiBbJG1lbnUtbmVzdGVkLW1hcmdpbl0gLSBMZW5ndGggb2YgdGhlIG1hcmdpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRuZXN0ZWQtYWxpZ25tZW50IFtsZWZ0XSAtIEFsaWdubWVudCBvZiB0aGUgbmVzdGVkIGNsYXNzXG5AbWl4aW4gbWVudS1uZXN0ZWQoXG4gICRtYXJnaW46ICRtZW51LW5lc3RlZC1tYXJnaW4sXG4gICRuZXN0ZWQtYWxpZ25tZW50OiBsZWZ0XG4pIHtcbiAgQGlmICRuZXN0ZWQtYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1hcmdpbjtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xuICB9XG5cbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBpY29ucyBpbiBtZW51cy5cbkBtaXhpbiBtZW51LWljb25zKCkge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBpbWcsXG4gICAgaSxcbiAgICBzdmcge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgKyBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgcG9zaXRpb24gY2xhc3NlcyBmb3IgaWNvbnMgd2l0aGluIGEgbWVudS5cbkBtaXhpbiBtZW51LWljb24tcG9zaXRpb24oJHBvc2l0aW9uOiBsZWZ0LCAkc3BhY2luZzogJG1lbnUtaWNvbi1zcGFjaW5nKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRzcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46ICRzcGFjaW5nIGF1dG8gMDtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBtZW51LXN0YXRlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG4gICAgfVxuXG4gICAgLy8gQnJlYWtwb2ludCBzcGVjaWZpYyB2ZXJzaW9uc1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiBmYWxzZSkge1xuICAgICAgJi4jeyQtemYtc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tc2ltcGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEljb24gQmFzZSBTdHlsZXNcbiAgICAmLmljb25zIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LWljb25zLWJhY2stY29tcGF0IHtcbiAgICAgICYuaWNvbi10b3AsXG4gICAgICAmLmljb24tcmlnaHQsXG4gICAgICAmLmljb24tYm90dG9tLFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gTGVmdFxuICAgICYuaWNvbi1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFJpZ2h0XG4gICAgJi5pY29uLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBUb3BcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbih0b3ApO1xuICAgIH1cblxuICAgIC8vIEljb24gQm90dG9tXG4gICAgJi5pY29uLWJvdHRvbSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24oYm90dG9tKTtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuaXMtYWN0aXZlID4gYSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG5cbiAgICAgIC5uZXN0ZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkbmVzdGVkLWFsaWdubWVudDogcmlnaHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsaWduIGNlbnRlclxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24oY2VudGVyKTtcbiAgICB9XG5cbiAgICAubWVudS10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1lbnUtY2VudGVyZWQtYmFjay1jb21wYXQge1xuICAgIC5tZW51LWNlbnRlcmVkIHtcbiAgICAgID4gLm1lbnUge1xuICAgICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggbWFwIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG1hcCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBNYXBcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIG92ZXJsYXAgcGFuZWwuXG4vLy8gQHR5cGUgU2hhZG93XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNykgIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IHNpemUgZm9yIHRoZSBvZmYtY2FudmFzIHB1c2ggcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLy8gSW5uZXIgYm94IHNoYWRvdyBjb2xvciBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBjb250ZW50IG92ZXJsYXkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBvdmVybGFwYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTMgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgdXNpbmcgdGhlIGByZXZlYWwtZm9yLSpgIGNsYXNzZXMgb3IgbWl4aW4uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuXG4gIC8vLyBUcmFuc2Zvcm0gZGVwcmVjYXRlZCBzaXplIHNldHRpbmdzIGludG8gbWFwICYgc2hvdyB3YXJuaW5nXG4gIEBpZiB2YXJpYWJsZS1leGlzdHMob2ZmY2FudmFzLXNpemUpIHtcbiAgICAkb2ZmY2FudmFzLXNpemVzOiAoc21hbGw6ICRvZmZjYW52YXMtc2l6ZSwgbWVkaXVtOiAkb2ZmY2FudmFzLXNpemUpICFnbG9iYWw7XG4gICAgQHdhcm4gJyRvZmZjYW52YXMtc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBub3QgdXNlZCBhbnltb3JlISBQbGVhc2UgdXBkYXRlIHlvdXIgc2V0dGluZ3MgYW5kIHVzZSB0aGUgbWFwICRvZmZjYW52YXMtc2l6ZXMgaW5zdGVhZCc7XG4gIH1cbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtdmVydGljYWwtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcyBpbnN0ZWFkJztcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGUgei1pbmRleGVzIGFuZCBpbmNyZWFzZSB0aGVtIGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb3ZlcmxheSdzIHotaW5kZXggaXMgbmV3IHNpbmNlIHY2LjQgYW5kIG1heSBiZSBpZGVudGljYWwgdG8gdGhlIHVzZXIgY3VzdG9tIHNldHRpbmdzIG9mIHRoZSBwdXNoIHotaW5kZXguXG4gIEBpZiAkb2ZmY2FudmFzLXB1c2gtemluZGV4IDw9ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggeyAkb2ZmY2FudmFzLXB1c2gtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4IDw9ICRvZmZjYW52YXMtcHVzaC16aW5kZXggeyAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4ICsgMSAhZ2xvYmFsOyB9XG4gIEBpZiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCArIDEgIWdsb2JhbDsgfVxuXG4gIC8vIEhpZGVzIG92ZXJmbG93IG9uIGJvZHkgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4gIC5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAvLyBTZXQgdGhlIG9mZi1jYW52YXMgei1pbmRleC5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXg7XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBIaWRlIGluYWN0aXZlIG9mZi1jYW52YXMgd2l0aGluIHRoZSBjb250ZW50IHRoYXQgaGF2ZSB0aGUgc2FtZSBwb3NpdGlvblxuICAmLmlzLWNsb3NlZCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gT3ZlcmxhcCBvbmx5IHN0eWxlcy5cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg7XG5cbiAgICAmLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0cyB0cmFuc2Zvcm0gdG8gMCB0byBzaG93IGFuIG9mZi1jYW52YXMgcGFuZWwuXG4gICYuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHBvc2l0aW9uIGFuIG9mZi1jYW52YXMgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQvdG9wL2JvdHRvbS5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCxcbiAgJHNpemVzOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplcywgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplcylcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuXG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIGlzIHNldCwgYWRkIGlubmVyIGJveC1zaGFkb3cuXG4gIC8vIFRoaXMgbWltaWNzIHRoZSBvZmYtY2FudmFzIHBhbmVsIGhhdmluZyBhIGxvd2VyIHotaW5kZXgsIHdpdGhvdXQgaGF2aW5nIHRvIGhhdmUgb25lLlxuICBAaWYgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cocmlnaHQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGxlZnQsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhib3R0b20sICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyh0b3AsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUsICRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAvLyBUcmFuc2Zvcm0gc2NvcGUgdW50aWwgdGhlIGVsZW1lbnQgaXMgY2xvc2VkIChtYWtlcyBzdXJlIHRyYW5zaXRpb25lbmQgZ2V0cyB0cmlnZ2VyZWQpXG4gICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cblxuICAvLyBDb25zaWRlciBlbGVtZW50ICYgY29udGVudCwgbmVzdGVkIGluIGFub3RoZXIgY29udGVudFxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3MsXG4kYnJlYWtwb2ludDogc21hbGxcbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIENvbnNpZGVyIHJldmVhbGVkIGVsZW1lbnQgaXMgbmVzdGVkIGluIGNvbnRlbnRcbiAgLiN7JG1haW5jb250ZW50LWNsYXNzfSAmIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICBAYXQtcm9vdCAuI3skY29udGVudH0uaGFzLXJldmVhbC0jeyRwb3NpdGlvbn0ge1xuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06IC16Zi1nZXQtYnAtdmFsKCRvZmZjYW52YXMtc2l6ZXMsICRicmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChwcmlvciB0byB2Ni40KVxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cbn1cblxuLy8vIE92ZXJyaWRlcyB0aGUgb2ZmLWNhbnZhcyBzdHlsZXNcbkBtaXhpbiBpbi1jYW52YXMoKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGhlaWdodDogYXV0bztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIG92ZXJmbG93OiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBpbmhlcml0O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLnBvc2l0aW9uLWxlZnQsXG4gICYucG9zaXRpb24tcmlnaHQsXG4gICYucG9zaXRpb24tdG9wLFxuICAmLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcblxuICAgIC8vIEZvcmNlIHBvc2l0aW9uIGFic29sdXRlIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBiZWNhdXNlIGZpeGVkIGRvZXNuJ3Qgd29yayBmb3IgcHVzaCB0cmFuc2l0aW9uIHdpdGhpbiB0aGUgdHJhbnNmb3JtIHNjb3BlLlxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgICAvLyBOT1RFOiBzaW5jZSBvdmVybGFwIHRyYW5zaXRpb24gaXMgY3VycmVudGx5IGZvcmNlZCBpZiBuZXN0ZWQsIHRoZXJlJ3Mgbm8gbmVlZCB0byBmb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSB1bnRpbCBuZXN0ZWQgcHVzaCB0cmFuc2l0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lciB3aXRoIGFic29sdXRlIHBvc2l0aW9uXG4gIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2UoJGZpeGVkOiBmYWxzZSk7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIHBvc2l0aW9uIGNsYXNzZXNcbiAgLnBvc2l0aW9uLWxlZnQgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQsICAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0LCAgaG9yaXpvbnRhbCk7IH1cbiAgLnBvc2l0aW9uLXRvcCAgICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHRvcCwgICAgdmVydGljYWwpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20gIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihib3R0b20sIHZlcnRpY2FsKTsgfVxuXG4gIC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtY29udGVudDtcbiAgfVxuXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIHBhbmVsIG9uIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChib3R0b20sICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIGluLWNhbnZhcyBmb3IgbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBpbi1jYW52YXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cblxuLy8gUGxhY2Vob2xkZXIgc2VsZWN0b3IgZm9yIG1lZGl1bS1hbmQtdXAgbW9kYWxzXG4vLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAlcmV2ZWFsLWNlbnRlcmVkIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1vZGFsIG92ZXJsYXkuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG92ZXJsYXkuXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkoJGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcblxuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICAvLyBXb3JrYXJvdW5kIGFuZHJvaWQgYnJvd3NlciB6LWluZGV4IGJ1Z1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAvLyBPdmVybGF5XG4gIC5yZXZlYWwtb3ZlcmxheSB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XG4gIH1cblxuICAvLyBNb2RhbCBjb250YWluZXJcbiAgLnJldmVhbCB7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuXG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWVsZW1lbnQtbmVzdGluZywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCBzdGFja2VkIHRhYmxlIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkdGFibGUtc3RhY2stYnJlYWtwb2ludCBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcbiAgLnRhYnMge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gVmVydGljYWxcbiAgLnRhYnMudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gU2ltcGxlXG4gIC50YWJzLnNpbXBsZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW1hcnkgY29sb3JcbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJzLXRpdGxlIHtcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xuICB9XG5cbiAgLnRhYnMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50O1xuICB9XG5cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGF0IHdoaWNoIHRvcCBiYXIgc3dpdGNoZXMgZnJvbSBtb2JpbGUgdG8gZGVza3RvcCB2aWV3LlxuLy8vIEB0eXBlIEJyZWFrcG9pbnRcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0b3AgYmFyIGNvbnRhaW5lci5cbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsXG4gIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxuICBAaWYgKCR0b3BiYXItYmFja2dyb3VuZCAhPSAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCkge1xuICAgIHVsIHVsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RyYWluIHdpZHRoIG9mIGlucHV0cyBieSBkZWZhdWx0IHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gYXJyYW5nZVxuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICB9XG5cbiAgLy8gVGhlIGFib3ZlIHN0eWxlcyBzaG91bGRuJ3QgYXBwbHkgdG8gaW5wdXQgZ3JvdXAgZmllbGRzXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gIH1cblxuICBpbnB1dC5idXR0b24geyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4vLy8gTWFrZXMgc2VjdGlvbnMgb2YgYSB0b3AgYmFyIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW5kb2VzIHRoZSBDU1MgYXBwbGllZCBieSB0aGUgYHRvcC1iYXItc3RhY2tlZCgpYCBtaXhpbi5cbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvb2x0aXBcbi8vLy9cblxuLy8vIERlZmF1bHQgY3Vyc29yIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhhcy10aXAtY3Vyc29yOiBoZWxwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIHRvb2x0aXAgdGV4dC4gQnkgZGVmYXVsdCwgd2UgcmVjb21tZW5kIGEgc21hbGxlciBmb250IHNpemUgdGhhbiB0aGUgYm9keSBjb3B5LlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgd2lkdGggZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b207XG4gIGZvbnQtd2VpZ2h0OiAkaGFzLXRpcC1mb250LXdlaWdodDtcbiAgY3Vyc29yOiAkaGFzLXRpcC1jdXJzb3I7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xuICB6LWluZGV4OiAxMjAwO1xuXG4gIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xuXG4gIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gIGNvbG9yOiAkdG9vbHRpcC1jb2xvcjtcblxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYudG9wIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgJi5hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYucmlnaHQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlcjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxuXG4gICYuYWxpZ24tdG9wOjpiZWZvcmUge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDEwJTtcbiAgfVxuXG4gICYuYWxpZ24tYm90dG9tOjpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHRvcDogYXV0bztcbiAgfVxuXG4gICYuYWxpZ24tbGVmdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0OjpiZWZvcmUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10b29sdGlwIHtcbiAgLmhhcy10aXAge1xuICAgIEBpbmNsdWRlIGhhcy10aXA7XG4gIH1cblxuICAudG9vbHRpcCB7XG4gICAgQGluY2x1ZGUgdG9vbHRpcDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlXG4vLy8vXG5cbi8vIFJlbGF0aW9uYWwgTWl4aW5zXG5AaW1wb3J0ICdyZWxhdGlvbic7XG5cbi8vIEJveCBNaXhpblxuQGltcG9ydCAnYm94JztcblxuLy8gUm90YXRlIE1peGluXG5AaW1wb3J0ICdyb3RhdGUnO1xuXG4vLyBUZXh0IHV0aWxpdGllc1xuQGltcG9ydCAndGV4dC11dGlsaXRpZXMnO1xuXG4vLyBUZXh0IHRyYW5zZm9ybWF0aW9uIGNsYXNzZXNcbkBpbXBvcnQgJ3RleHQtdHJhbnNmb3JtYXRpb24nO1xuXG4vLyBUZXh0IERlY29yYXRpb24gY2xhc3Nlc1xuQGltcG9ydCAndGV4dC1kZWNvcmF0aW9uJztcblxuLy8gRm9udCBTdHlsaW5nXG5AaW1wb3J0ICdmb250LXN0eWxpbmcnO1xuXG4vLyBMaXN0IFN0eWxlIHR5cGVcbkBpbXBvcnQgJ2xpc3Qtc3R5bGUtdHlwZSc7XG5cbi8vIFJvdW5kZWQgVXRpbGl0eVxuQGltcG9ydCAncm91bmRlZCc7XG5cbi8vIEJvcmRlcmVkIFV0aWxpdHlcbkBpbXBvcnQgJ2JvcmRlcmVkJztcblxuLy8gU2hhZG93IFV0aWxpdHlcbkBpbXBvcnQgJ3NoYWRvdyc7XG5cbi8vIEFycm93IFV0aWxpdHlcbkBpbXBvcnQgJ2Fycm93JztcblxuLy8gU2VwYXJhdG9yIFV0aWxpdHlcbkBpbXBvcnQgJ3NlcGFyYXRvcic7XG5cbi8vIE92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG5AaW1wb3J0ICdvdmVyZmxvdyc7XG5cbi8vIERpc3BsYXkgY2xhc3Nlc1xuQGltcG9ydCAnZGlzcGxheSc7XG5cbi8vIFBvc2l0aW9uIEhlbHBlcnNcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcblxuLy8gQm9yZGVyIGJveFxuQGltcG9ydCAnYm9yZGVyLWJveCc7XG5cbi8vIEJvcmRlciBub25lIFV0aWx0eVxuQGltcG9ydCAnYm9yZGVyLW5vbmUnO1xuXG4vLyBTaXppbmcgVXRpbGl0aWVzXG5AaW1wb3J0ICdzaXppbmcnO1xuXG4vLyBTcGFjaW5nIFV0aWxpdGllc1xuQGltcG9ydCAnc3BhY2luZyc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtZm9udC1zdHlsaW5nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXJvdW5kZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3c7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWFycm93O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1zZXBhcmF0b3I7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1kaXNwbGF5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1wb3NpdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLWJveDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtYm9yZGVyLW5vbmU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLXNpemluZztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtc3BhY2luZztcbn1cbiIsIi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEZpcnN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGZpcnN0KCRudW0pIHtcbiAgQGlmICRudW0gPT0gMSB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICY6bnRoLWNoaWxkKC1uICsgI3skbnVtfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGZpcnN0IGV4YWN0IGNoaWxkXG5AbWl4aW4gZmlyc3QtY2hpbGQge1xuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGxhc3QgdG8gYCRudW1gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gTGFzdCBgbmAgbnVtYmVycyBvZiB0b3RhbCBjaGlsZHJlbiBcbkBtaXhpbiBsYXN0KCRudW0pIHtcbiAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IHRoZSBsYXN0IGV4YWN0IGNoaWxkXG5AbWl4aW4gbGFzdC1jaGlsZCB7XG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGNoaWxkcmVuIGV2ZXJ5IGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEV2ZXJ5IGBuYCBudW1iZXIgb2YgYWxsIGNoaWxkcmVuXG5AbWl4aW4gZXZlcnkoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19bikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3Qgb25seSB0aGUgZmlyc3QgYW5kIGxhc3QgY2hpbGQuXG5AbWl4aW4gZmlyc3QtbGFzdCB7XG4gICY6Zmlyc3QtY2hpbGQsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYWZ0ZXIgdGhlIGZpcnN0IHRvIGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIEFmdGVyIEZpcnN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGFmdGVyLWZpcnN0KCRudW0pIHtcbiAgJjpudGgtY2hpbGQobiArICN7JG51bSArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmVmb3JlIGAkbnVtYCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gRnJvbSBMYXN0IGBuYCBudW1iZXJzIG9mIHRvdGFsIGNoaWxkcmVuIFxuQG1peGluIGZyb20tbGFzdCgkbnVtKSB7XG4gICY6bnRoLWxhc3QtY2hpbGQoI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgdGhlIGAkbnVtYCBjaGlsZCBmcm9tIHRoZSBmaXJzdCBhbmQgdGhlIGAkbnVtYCBjaGlsZCBmcm9tIHRoZSBsYXN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtW10gYG5gIG51bWJlciBjYWxsZWQgZnJvbSBmaXJzdCBhbmQgbGFzdCBcbkBtaXhpbiBmcm9tLWZpcnN0LWxhc3QoJG51bSkge1xuICAmOm50aC1jaGlsZCgjeyRudW19KSxcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRudW19KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYnV0IGAkbnVtYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIGBuYCBudW1iZXIgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBhbGwgb3RoZXIgY2hpbGRyZW4gXG5AbWl4aW4gYWxsLWJ1dCgkbnVtKSB7XG4gICY6bm90KDpudGgtY2hpbGQoI3skbnVtfSkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBiZXR3ZWVuIHRoZSBgJG51bWAgZmlyc3QgYW5kIHRoZSBgJG51bWAgbGFzdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bVtdIGBuYCBudW1iZXIgZXhjbHVkZWQgZnJvbSBmaXJzdCBhbmQgbGFzdCBmcm9tIGFsbCBvdGhlciBjaGlsZHJlblxuQG1peGluIGFsbC1idXQtZmlyc3QtbGFzdCgkbnVtKSB7XG4gICY6bnRoLWNoaWxkKG4gKyAjeyRudW19KTpudGgtbGFzdC1jaGlsZChuICsgI3skbnVtfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBXaWxsIG9ubHkgc2VsZWN0IHRoZSBjaGlsZCBpZiBpdOKAmXMgdW5pcXVlLiBUaGF0IG1lYW5zIHRoYXQgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDIgY2hpbGRyZW4sIHRoZSBzdHlsZSB3aWxsIG5vdCBiZSBhcHBsaWVkLlxuQG1peGluIHVuaXF1ZSB7XG4gICY6b25seS1jaGlsZCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFdpbGwgb25seSBzZWxlY3QgY2hpbGRyZW4gaWYgdGhleSBhcmUgbm90IHVuaXF1ZS4gVGhhdCBtZWFucyB0aGF0IGlmIHRoZXJlIGFyZSBhdCBsZWFzdCAyIGNoaWxkcmVuLCB0aGUgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxuQG1peGluIG5vdC11bmlxdWUoKSB7XG4gICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBiZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgJjpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBldmVuIGNoaWxkcmVuLlxuQG1peGluIGV2ZW4ge1xuICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZmlyc3RbXSBGaXJzdCBgbnRoYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBudGhgIG51bWJlclxuQG1peGluIGV2ZW4tYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBTZWxlY3QgYWxsIG9kZCBjaGlsZHJlbi5cbkBtaXhpbiBvZGQge1xuICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZpcnN0W10gRmlyc3QgYG50aGAgbnVtYmVyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsYXN0W10gTGFzdCBgbnRoYCBudW1iZXJcbkBtaXhpbiBvZGQtYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKG9kZCk6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFNlbGVjdCBhbGwgYCRudW1gIGNoaWxkcmVuIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW1bXSBFdmVyeSBgbmAgbnVtYmVyIGJldHdlZW4gYCRmaXJzdGAgYW5kIGAkbGFzdGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmaXJzdFtdIEZpcnN0IGBuYCBudW1iZXJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxhc3RbXSBMYXN0IGBuYCBudW1iZXJcbkBtaXhpbiBudW1iZXItYmV0d2VlbigkbnVtLCAkZmlyc3QsICRsYXN0KSB7XG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJveFxuLy8vL1xuXG4vLy8gQm94IE1peGluOiBFYXNpbHkgY3JlYXRlIGEgc3F1YXJlLCByZWN0YW5nbGUgb3IgYSBjaXJjbGVcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoW10gV2lkdGggb2YgdGhlIGJveFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0WyR3aWR0aF0gSGVpZ2h0IG9mIHRoZSBib3gsIGRlZmF1bHRzIHRvIGAkd2lkdGhgIHRvIGVhc2lseSBtYWtlIGEgc3F1YXJlXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2lyY2xlW2ZhbHNlXSBNYWtlcyB0aGUgYm94IGEgY2lyY2xlLCBieSBkZWZhdWx0IGBmYWxzZWAuXG5AbWl4aW4gYm94KFxuICAkd2lkdGgsIFxuICAkaGVpZ2h0OiAkd2lkdGgsIFxuICAkY2lyY2xlOiBmYWxzZVxuKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgQGlmICRjaXJjbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm90YXRlXG4vLy8vXG5cbi8vLyBSb3RhdGUgTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWdcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZSgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGUoJGRlZyArIGRlZyk7XG59XG5cbi8vLyBSb3RhdGVYIE1peGluOiBSb3RhdGUgYW4gZWxlbWVudCB0byBhIGNlcnRhaW4gZGVnIG9uIFgtQXhpc1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGVnW10gRGVncmVlIG9mIHJvdGF0aW9uXG5AbWl4aW4gcm90YXRlWCgkZGVnKSB7XG5cdHRyYW5zZm9ybTpyb3RhdGVYKCRkZWcgKyBkZWcpO1xufVxuXG4vLy8gUm90YXRlWSBNaXhpbjogUm90YXRlIGFuIGVsZW1lbnQgdG8gYSBjZXJ0YWluIGRlZyBvbiBZLUF4aXNcbi8vLyBAcGFyYW0ge051bWJlcn0gJGRlZ1tdIERlZ3JlZSBvZiByb3RhdGlvblxuQG1peGluIHJvdGF0ZVkoJGRlZykge1xuXHR0cmFuc2Zvcm06cm90YXRlWSgkZGVnICsgZGVnKTtcbn1cblxuLy8vIFJvdGF0ZVogTWl4aW46IFJvdGF0ZSBhbiBlbGVtZW50IHRvIGEgY2VydGFpbiBkZWcgb24gWi1BeGlzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRkZWdbXSBEZWdyZWUgb2Ygcm90YXRpb25cbkBtaXhpbiByb3RhdGVaKCRkZWcpIHtcblx0dHJhbnNmb3JtOnJvdGF0ZVooJGRlZyArIGRlZyk7XG59IiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtdXRpbGl0aWVzXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHV0aWxpdGllc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgVmFsdWUgZm9yIGB0ZXh0LW92ZXJmbG93YCB2YXJpYWJsZVxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhZGVmYXVsdDtcblxuLy8vIEltYWdlIFJlcGxhY2VtZW50IHV0aWxpdHkuIGB0ZXh0LWhpZGVgXG5AbWl4aW4gdGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGEgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG4vLy8gVHJ1bmNhdGluZyB0aGUgdGV4dCwgZWxpcHNpcyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgWyRwcm90b3R5cGUtdGV4dC1vdmVyZmxvd10gVGV4dCBUcnVuY2F0ZVxuQG1peGluIHRleHQtdHJ1bmNhdGUoXG4gICRvdmVyZmxvdzogJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93XG4pIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogJG92ZXJmbG93OyBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vLy8gTm8gd3JhcHBpbmcgb2YgdGhlIHRleHQuIGB0ZXh0LW5vd3JhcGBcbkBtaXhpbiB0ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLy8vIFdyYXBwaW5nIG9mIHRoZSB0ZXh0LiBgdGV4dC13cmFwYFxuQG1peGluIHRleHQtd3JhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC11dGlsaXRpZXMge1xuICAudGV4dC1oaWRlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LWhpZGU7XG4gIH1cblxuICAudGV4dC10cnVuY2F0ZSB7XG4gICAgQGluY2x1ZGUgdGV4dC10cnVuY2F0ZTtcbiAgfVxuXG4gIC50ZXh0LW5vd3JhcCB7XG4gICAgQGluY2x1ZGUgdGV4dC1ub3dyYXA7XG4gIH1cblxuICAudGV4dC13cmFwIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXdyYXA7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC1oaWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtaGlkZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC10cnVuY2F0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LW5vd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LW5vd3JhcDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0ZXh0IHRyYW5zZm9ybWF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXRyYW5zZm9ybWF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHRleHQtdHJhbnNmb3JtYXRpb25gIGNsYXNzZXNcbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbjogKFxuICBsb3dlcmNhc2UsXG4gIHVwcGVyY2FzZSxcbiAgY2FwaXRhbGl6ZVxuKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgVHJhbnNmb3JtYXRpb24sIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHRyYW5zZm9ybWF0aW9uIFtdIFRleHQgVHJhbnNmb3JtYXRpb25cbkBtaXhpbiB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pIHtcbiAgdGV4dC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1hdGlvbiAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtdGV4dC10cmFuc2Zvcm1hdGlvbiB7XG4gIEBlYWNoICR0cmFuc2Zvcm1hdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICAgIC50ZXh0LSN7JHRyYW5zZm9ybWF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gIFx0QGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICR0cmFuc2Zvcm1hdGlvbiBpbiAkcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyR0cmFuc2Zvcm1hdGlvbn0ge1xuICBcdFx0XHQgICAgICBAaW5jbHVkZSB0ZXh0LXRyYW5zZm9ybSgkdHJhbnNmb3JtYXRpb24pO1xuICBcdFx0XHQgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvblxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgdGV4dCBkZWNvcmF0aW9uIGNsYXNzZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgdGV4dC1kZWNvcmF0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbjogKFxuICBvdmVybGluZSxcbiAgdW5kZXJsaW5lLFxuICBsaW5lLXRocm91Z2gsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBEZWNvcmF0aW9uLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbmBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlY29yYXRpb24gW10gVGV4dCBEZWNvcmF0aW9uXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCRkZWNvcmF0aW9uKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24gIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXRleHQtZGVjb3JhdGlvbiB7XG4gIEBlYWNoICRkZWNvcmF0aW9uIGluICRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAudGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWRlY29yYXRpb24oJGRlY29yYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJGRlY29yYXRpb24gaW4gJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRkZWNvcmF0aW9ufSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtZGVjb3JhdGlvbigkZGVjb3JhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtZm9udC1zdHlsaW5nXG4vLy8vXG5cbi8vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBmb250IHN0eWxpbmcgdHlwZXNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTGV0dGVyIHNwYWNpbmcgZm9yIGAuZm9udC13aWRlYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtbm9ybWFsYCwgZGVmYXVsdGVkIHRvIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtZm9udC1ub3JtYWw6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2VpZ2h0IGZvciBgLmZvbnQtYm9sZGAsIGRlZmF1bHRlZCB0byBgZ2xvYmFsLXdlaWdodC1ib2xkYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdpZGUgbGV0dGVyIHNwYWNpbmchXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZXR0ZXItc3BhY2luZyBbJHByb3RvdHlwZS13aWRlLWxldHRlci1zcGFjaW5nXSBXaWRlIGxldHRlciBzcGFjaW5nIGZvciB0aGUgZm9udFxuQG1peGluIGZvbnQtd2lkZShcbiAgJGxldHRlci1zcGFjaW5nOiAkcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmdcbikge1xuICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xufVxuXG4vLy8gRm9udCBXZWlnaHQgTm9ybWFsLCBkZWZhdWx0IHZhbHVlIGNvbWluZyB0aHJvdWdoIGBnbG9iYWwtd2VpZ2h0LW5vcm1hbGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LW5vcm1hbF0gV2VpZ2h0IG9mIHRoZSBmb250IChub3JtYWwpXG5AbWl4aW4gZm9udC1ub3JtYWwoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ub3JtYWxcbikge1xuICBmb250LXdlaWdodDogJHdlaWdodDtcbn1cblxuLy8vIEZvbnQgV2VpZ2h0IEJvbGQsIGRlZmF1bHQgdmFsdWUgY29taW5nIHRocm91Z2ggYGdsb2JhbC13ZWlnaHQtYm9sZGBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbJHByb3RvdHlwZS1mb250LWJvbGRdIFdlaWdodCBvZiB0aGUgZm9udCAoYm9sZClcbkBtaXhpbiBmb250LWJvbGQoXG4gICR3ZWlnaHQ6ICRwcm90b3R5cGUtZm9udC1ib2xkXG4pIHtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG59XG5cbi8vLyBGb250IFN0eWxlIEl0YWxpY1xuQG1peGluIGZvbnQtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1mb250LXN0eWxpbmcge1xuICAuZm9udC13aWRle1xuICAgIEBpbmNsdWRlIGZvbnQtd2lkZTtcbiAgfVxuXG4gIC5mb250LW5vcm1hbCB7XG4gICAgQGluY2x1ZGUgZm9udC1ub3JtYWw7XG4gIH1cblxuICAuZm9udC1ib2xkIHtcbiAgICBAaW5jbHVkZSBmb250LWJvbGQ7XG4gIH1cblxuICAuZm9udC1pdGFsaWMge1xuICAgIEBpbmNsdWRlIGZvbnQtaXRhbGljO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLWZvbnQtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mb250LXdpZGV7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXdpZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZvbnQtbm9ybWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1ib2xkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mb250LWl0YWxpYyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LWl0YWxpYztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1saXN0LXN0eWxlLXR5cGVcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGxpc3Qgc3R5bGluZyB0eXBlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBzdHlsZS10eXBlLXVub3JkZXJlZGAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKSAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHN0eWxlLXR5cGUtb3JkZXJlZGAgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKSAhZGVmYXVsdDtcblxuXG4vLy8gU3R5bGUgdHlwZSBmb3IgdW5vcmRlcmVkIExpc3RzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkYFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUtdHlwZS11bm9yZGVyZWQgW10gU3R5bGUgdHlwZSBmb3IgdW5vcmRlcmVkIExpc3RzXG5AbWl4aW4gc3R5bGUtdHlwZS11bm9yZGVyZWQoJHN0eWxlLXR5cGUtdW5vcmRlcmVkKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHN0eWxlLXR5cGUtdW5vcmRlcmVkICFpbXBvcnRhbnQ7XG59XG5cbi8vLyBTdHlsZSB0eXBlIGZvciBvcmRlcmVkIExpc3RzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZGBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0eWxlLXR5cGUtb3JkZXJlZCBbXSBTdHlsZSB0eXBlIGZvciBvcmRlcmVkIExpc3RzXG5AbWl4aW4gc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiAkc3R5bGUtdHlwZS1vcmRlcmVkICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBsaXN0LXVub3JkZXJlZCB7XG4gIEBlYWNoICRzdHlsZS10eXBlLXVub3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkIHtcbiAgICB1bC5saXN0LSN7JHN0eWxlLXR5cGUtdW5vcmRlcmVkfSB7XG4gICAgICBAaW5jbHVkZSBzdHlsZS10eXBlLXVub3JkZXJlZCgkc3R5bGUtdHlwZS11bm9yZGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHN0eWxlLXR5cGUtdW5vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS11bm9yZGVyZWQge1xuICAgICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICB1bC4jeyRzaXplfS1saXN0LSN7JHN0eWxlLXR5cGUtdW5vcmRlcmVkfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtdW5vcmRlcmVkKCRzdHlsZS10eXBlLXVub3JkZXJlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBsaXN0LW9yZGVyZWQge1xuICBAZWFjaCAkc3R5bGUtdHlwZS1vcmRlcmVkIGluICRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkIHtcbiAgICBvbC5saXN0LSN7JHN0eWxlLXR5cGUtb3JkZXJlZH0ge1xuICAgICAgQGluY2x1ZGUgc3R5bGUtdHlwZS1vcmRlcmVkKCRzdHlsZS10eXBlLW9yZGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1saXN0LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGVhY2ggJHN0eWxlLXR5cGUtb3JkZXJlZCBpbiAkcHJvdG90eXBlLXN0eWxlLXR5cGUtb3JkZXJlZCB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG9sLiN7JHNpemV9LWxpc3QtI3skc3R5bGUtdHlwZS1vcmRlcmVkfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN0eWxlLXR5cGUtb3JkZXJlZCgkc3R5bGUtdHlwZS1vcmRlcmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWxpc3Qtc3R5bGUtdHlwZSB7XG4gIEBpbmNsdWRlIGxpc3QtdW5vcmRlcmVkO1xuICBAaW5jbHVkZSBsaXN0LW9yZGVyZWQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcm91bmRlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igcm91bmRlZCB1dGlsaXR5LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBgcHJvdG90eXBlLWJvcmRlci1yYWRpdXNgXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLWJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLy8gUm91bmRlZCB1dGlsaXR5IChhbGwgY29ybmVycyk6IEFkZHMgcmFkaXVzIGNvcm5lcnMgKGFsbCBjb3JuZXJzKSB0byBhbiBlbGVtZW50IGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpdXMgWyRwcm90b3R5cGUtYm9yZGVyLXJhZGl1c10gQm9yZGVyIHJhZGl1cyAoYWxsIGNvcm5lcnMpXG5AbWl4aW4gYm9yZGVyLXJhZGl1cyhcbiAgJHJhZGl1czogJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzXG4pIHtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8vIFJvdW5kZWQgc3F1YXJlIHV0aWxpdHkgb3IgcmVjdGFuZ2xlIHV0aWxpdHkgKGFsbCBjb3JuZXJzKTogUm91bmRzIGFsbCBjb3JuZXJzIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCB0byBtYWtlIGEgcGlsbCBzaGFwZS5cbkBtaXhpbiBib3JkZXItcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwMDBweCAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm90b3R5cGUtcm91bmRlZCB7XG4gIC5yb3VuZGVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcm91bmRlZDtcbiAgfVxuXG4gIC5yYWRpdXMge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtcm91bmRlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXJvdW5kZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJvdW5kZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIC4jeyRzaXplfS1yYWRpdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXJlZFxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyZWQgdXRpbGl0eS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIGBwcm90b3R5cGUtYm9yZGVyLXdpZHRoYFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItdHlwZWBcbi8vLyBAdHlwZSBTdHJpbmdcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3JkZXItY29sb3JgIGRlZmF1bHRlZCB0byBgbWVkaXVtLWdyYXlgXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXJlZCBVdGlsaXR5OiBBZGRzIGEgbGlnaHQgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskcHJvdG90eXBlLWJvcmRlci13aWR0aF0gV2lkdGggb2YgdGhlIGJvcmRlclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdHlwZSBbJHByb3RvdHlwZS1ib3JkZXItdHlwZV0gVHlwZSBvZiB0aGUgYm9yZGVyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskcHJvdG90eXBlLWJvcmRlci1jb2xvcl0gQ29sb3Igb2YgdGhlIGJvcmRlclxuQG1peGluIGJvcmRlcmVkKFxuICAkd2lkdGg6ICRwcm90b3R5cGUtYm9yZGVyLXdpZHRoLFxuICAkdHlwZTogJHByb3RvdHlwZS1ib3JkZXItdHlwZSxcbiAgJGNvbG9yOiAkcHJvdG90eXBlLWJvcmRlci1jb2xvclxuKSB7XG4gIGJvcmRlcjogJHdpZHRoICR0eXBlICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlcmVkIHtcbiAgLmJvcmRlcmVkIHtcbiAgICBAaW5jbHVkZSBib3JkZXJlZDtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlcmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlcmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNoYWRvd1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2hhZG93IHV0aWxpdHkuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgYHByb3RvdHlwZS1ib3gtc2hhZG93YFxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMikgIWRlZmF1bHQ7XG5cbi8vLyBTaGFkb3cgVXRpbGl0eTogQWRkcyBhIGxpZ2h0IGJveCBzaGFkb3cgdG8gYW4gZWxlbWVudCBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2hhZG93IFskcHJvdG90eXBlLWJveC1zaGFkb3ddIEJveCBTaGFkb3cgb2YgYSBjb21wb25lbnRcbkBtaXhpbiBzaGFkb3coXG4gICRzaGFkb3c6ICRwcm90b3R5cGUtYm94LXNoYWRvd1xuKSB7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaGFkb3cge1xuICAuc2hhZG93IHtcbiAgICBAaW5jbHVkZSBzaGFkb3c7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tc2hhZG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNoYWRvdztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1hcnJvd1xuLy8vL1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgYXJyb3dgIGRpcmVjdGlvblxuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb25zOiAoXG4gIGRvd24sXG4gIHVwLFxuICByaWdodCxcbiAgbGVmdFxuKSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIHRoZSBBcnJvdywgYDAuNDM3NXJlbWAgYnkgZGVmYXVsdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtYXJyb3ctc2l6ZTogMC40Mzc1cmVtO1xuXG4vLy8gQ29sb3Igb2YgdGhlIEFycm93LCBgJGJsYWNrYCBieSBkZWZhdWx0LlxuLy8vIEB0eXBlIENvbG9yXG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1hcnJvdyB7XG4gIEBlYWNoICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uIGluICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9ucyB7XG4gICAgLmFycm93LSN7JHByb3RvdHlwZS1hcnJvdy1kaXJlY3Rpb259IHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZShcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1zaXplLCBcbiAgICAgICAgJHByb3RvdHlwZS1hcnJvdy1jb2xvciwgXG4gICAgICAgICRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNlcGFyYXRvclxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc2VwYXJhdG9yLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWxpZ25tZW50IG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodDogcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBhIHNlcGFyYXRvci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBUb3AgTWFyZ2luIG9mIGEgc2VwYXJhdG9yLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUaXRsZSBzZXBhcmF0b3IgVXRpbGl0eSwgbW9zdGx5IHVzZWQgdG8gc3R5bGUgdGhlIG1haW4gaGVhZGluZyBvZiBhIHNlY3Rpb25cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGFsaWduIFskcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbl0gLSBzZXBhcmF0b3IgQWxpZ25tZW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWyRwcm90b3R5cGUtc2VwYXJhdG9yLWhlaWdodF0gLSBXaWR0aFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoXSAtIEhlaWdodFxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcF0gLSBNYXJnaW4gVG9wXG5AbWl4aW4gc2VwYXJhdG9yIChcbiAgJGFsaWduOiAkcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbixcbiAgJGhlaWdodDogJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0LFxuICAkd2lkdGg6ICRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoLFxuICAkYmFja2dyb3VuZDogJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZCxcbiAgJHRvcDogJHByb3RvdHlwZS1zZXBhcmF0b3ItbWFyZ2luLXRvcFxuKSB7XG4gIHRleHQtYWxpZ246ICRhbGlnbiAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUpO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBtYXJnaW46ICR0b3AgYXV0byAwO1xuXG4gICAgQGlmICRhbGlnbiA9PSBsZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICRhbGlnbiA9PSByaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXNlcGFyYXRvciB7XG5cdC5zZXBhcmF0b3ItY2VudGVyIHtcblx0XHRAaW5jbHVkZSBzZXBhcmF0b3IoY2VudGVyKTtcblx0fVxuXG4gIC5zZXBhcmF0b3ItbGVmdCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICB9XG5cbiAgLnNlcGFyYXRvci1yaWdodCB7XG4gICAgQGluY2x1ZGUgc2VwYXJhdG9yKHJpZ2h0KTtcbiAgfVxuXG5cdEBpZiAoJHByb3RvdHlwZS1zZXBhcmF0b3ItYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1zZXBhcmF0b3ItY2VudGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihjZW50ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLWxlZnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2VwYXJhdG9yKGxlZnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuI3skc2l6ZX0tc2VwYXJhdG9yLXJpZ2h0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNlcGFyYXRvcihyaWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtb3ZlcmZsb3dcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIG92ZXJmbG93IGhlbHBlciBjbGFzc2VzXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBvdmVyZmxvd2AgY2xhc3Nlc1xuLy8vIEB0eXBlIE1hcFxuJHByb3RvdHlwZS1vdmVyZmxvdzogKFxuICB2aXNpYmxlLFxuICBoaWRkZW4sXG4gIHNjcm9sbFxuKSAhZGVmYXVsdDtcblxuLy8vIE92ZXJmbG93IGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtb3ZlcmZsb3dgXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvdmVyZmxvdyBbXSBPdmVyZmxvdyBjbGFzc2VzXG5AbWl4aW4gb3ZlcmZsb3coJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuLy8vIE92ZXJmbG93IGNsYXNzZXMgb24gaG9yaXpvbnRhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAoaG9yaXpvbnRhbCBheGlzKVxuQG1peGluIG92ZXJmbG93LXgoJG92ZXJmbG93KSB7XG4gIG92ZXJmbG93LXg6ICRvdmVyZmxvdyAhaW1wb3J0YW50O1xufVxuXG4vLy8gT3ZlcmZsb3cgY2xhc3NlcyBvbiB2ZXJ0aWNhbCBheGlzLCBieSBkZWZhdWx0IGNvbWluZyB0aHJvdWdoIGEgbWFwIGAkcHJvdG90eXBlLW92ZXJmbG93YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3ZlcmZsb3cgW10gT3ZlcmZsb3cgY2xhc3NlcyAodmVydGljYWwgYXhpcylcbkBtaXhpbiBvdmVyZmxvdy15KCRvdmVyZmxvdykge1xuICBvdmVyZmxvdy15OiAkb3ZlcmZsb3cgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLW92ZXJmbG93IHtcbiAgQGVhY2ggJG92ZXJmbG93IGluICRwcm90b3R5cGUtb3ZlcmZsb3cge1xuICAgIC5vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgQGluY2x1ZGUgb3ZlcmZsb3coJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXgoJG92ZXJmbG93KTtcbiAgICB9XG4gICAgLm92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgIEBpbmNsdWRlIG92ZXJmbG93LXkoJG92ZXJmbG93KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtb3ZlcmZsb3ctYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAZWFjaCAkb3ZlcmZsb3cgaW4gJHByb3RvdHlwZS1vdmVyZmxvdyB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1vdmVyZmxvdy0jeyRvdmVyZmxvd30ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBvdmVyZmxvdygkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXgtI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteCgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JHNpemV9LW92ZXJmbG93LXktI3skb3ZlcmZsb3d9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmZsb3cteSgkb3ZlcmZsb3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWRpc3BsYXlcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGRpc3BsYXkgY2xhc3Nlc1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBNYXAgY29udGFpbmluZyBhbGwgdGhlIGBkaXNwbGF5YCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKSAhZGVmYXVsdDtcblxuLy8vIERpc3BsYXkgY2xhc3NlcywgYnkgZGVmYXVsdCBjb21pbmcgdGhyb3VnaCBhIG1hcCBgJHByb3RvdHlwZS1kaXNwbGF5YFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbXSBEaXNwbGF5IGNsYXNzZXNcbkBtaXhpbiBkaXNwbGF5KCRkaXNwbGF5KSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1kaXNwbGF5IHtcbiAgQGVhY2ggJGRpc3BsYXkgaW4gJHByb3RvdHlwZS1kaXNwbGF5IHtcbiAgICAuZGlzcGxheS0jeyRkaXNwbGF5fSB7XG4gICAgICBAaW5jbHVkZSBkaXNwbGF5KCRkaXNwbGF5KTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBlYWNoICRkaXNwbGF5IGluICRwcm90b3R5cGUtZGlzcGxheSB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1kaXNwbGF5LSN7JGRpc3BsYXl9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZGlzcGxheSgkZGlzcGxheSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwcm90b3R5cGUtcG9zaXRpb25cbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHBvc2l0aW9uIGhlbHBlcnNcbi8vLyBAdHlwZSBCb29sZWFuXG4kcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIE1hcCBjb250YWluaW5nIGFsbCB0aGUgYHBvc2l0aW9uYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKSAhZGVmYXVsdDtcblxuLy8vIHotaW5kZXggZm9yIGZpeGVkIHBvc2l0aW9uaW5nXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NSAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uIGNsYXNzZXMsIGJ5IGRlZmF1bHQgY29taW5nIHRocm91Z2ggYSBtYXAgYCRwcm90b3R5cGUtcG9zaXRpb25gLCB3aGVyZWFzIGFsbCB0aGUgb2Zmc2V0IHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1wb3NpdGlvbmAgd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwb3NpdGlvbiBbXSBQb3NpdGlvbiBjbGFzc2VzLCBFaXRoZXIgYHN0YXRpY2AsIGByZWxhdGl2ZWAsIGBhYnNvbHV0ZWAgb3IgYGZpeGVkYFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG9wIFtudWxsXSAtIFRvcCBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJpZ2h0IFtudWxsXSAtIFJpZ2h0IG9mZnNldFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIEJvdHRvbSBvZmZzZXRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGxlZnQgW251bGxdIC0gTGVmdCBvZmZzZXRcbkBtaXhpbiBwb3NpdGlvbihcbiAgJHBvc2l0aW9uLFxuICAkdG9wOiBudWxsLFxuICAkcmlnaHQ6IG51bGwsXG4gICRib3R0b206IG51bGwsXG4gICRsZWZ0OiBudWxsXG4pIHtcbiAgcG9zaXRpb246ICRwb3NpdGlvbiAhaW1wb3J0YW50O1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICB0b3A6ICR0b3AgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRyaWdodCAhPSBudWxsIHtcbiAgICByaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wb3NpdGlvbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIGJvdHRvbTogJGJvdHRvbSAqICRnbG9iYWwtcG9zaXRpb24gIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgbGVmdDogJGxlZnQgKiAkZ2xvYmFsLXBvc2l0aW9uICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFBvc2l0aW9uIEZpeGVkIG9uIHRvcCBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR6LWluZGV4IFskcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhdIHotaW5kZXggZm9yIGBwb3NpdGlvbi1maXhlZC10b3BgXG5AbWl4aW4gcG9zaXRpb24tZml4ZWQtdG9wKFxuICAkei1pbmRleDogJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XG4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAsIDAsIG51bGwsIDApO1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuLy8vIFBvc2l0aW9uIEZpeGVkIG9uIGJvdHRvbSBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR6LWluZGV4IFskcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXhdIHotaW5kZXggZm9yIGBwb3NpdGlvbi1maXhlZC1ib3R0b21gXG5AbWl4aW4gcG9zaXRpb24tZml4ZWQtYm90dG9tKFxuICAkei1pbmRleDogJHByb3RvdHlwZS1wb3NpdGlvbi16LWluZGV4XG4pIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIG51bGwsIDAsIDAsIDApO1xuICB6LWluZGV4OiAkei1pbmRleDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLXBvc2l0aW9uIHtcbiAgLy8gUG9zaXRpb246IFN0YXRpYywgUmVsYXRpdmUsIEZpeGVkLCBBYnNvbHV0ZVxuICBAZWFjaCAkcG9zaXRpb24gaW4gJHByb3RvdHlwZS1wb3NpdGlvbiB7XG4gICAgLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbigkcG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBvc2l0aW9uOiBGaXhlZCBUb3AsIEZpeGVkIEJvdHRvbVxuICAucG9zaXRpb24tZml4ZWQtdG9wIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi1maXhlZC10b3A7XG4gIH1cbiAgLnBvc2l0aW9uLWZpeGVkLWJvdHRvbSB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtYm90dG9tO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXBvc2l0aW9uLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgLy8gUG9zaXRpb246IFN0YXRpYywgUmVsYXRpdmUsIEZpeGVkLCBBYnNvbHV0ZVxuICAgICAgICBAZWFjaCAkcG9zaXRpb24gaW4gJHByb3RvdHlwZS1wb3NpdGlvbiB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbigkcG9zaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBvc2l0aW9uOiBGaXhlZCBUb3AsIEZpeGVkIEJvdHRvbVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi1maXhlZC10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtdG9wO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1wb3NpdGlvbi1maXhlZC1ib3R0b20ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24tZml4ZWQtYm90dG9tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLWJvcmRlci1ib3hcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIGJvcmRlciBib3guXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBib3ggdXRpbGl0eVxuQG1peGluIGJvcmRlci1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1ib3JkZXItYm94IHtcbiAgLmJvcmRlci1ib3gge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3g7XG4gIH1cblxuICBAaWYgKCRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJveDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHByb3RvdHlwZS1ib3JkZXItbm9uZVxuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgYm9yZGVyIG5vbmUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgbm9uZSB1dGlsaXR5XG5AbWl4aW4gYm9yZGVyLW5vbmUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvdG90eXBlLWJvcmRlci1ub25lIHtcbiAgLmJvcmRlci1ub25lIHtcbiAgICBAaW5jbHVkZSBib3JkZXItbm9uZTtcbiAgfVxuXG4gIEBpZiAoJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWJvcmRlci1ub25lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1ub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNpemluZ1xuLy8vL1xuXG4vLy8gUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3Igc3BhY2luZyBjbGFzc2VzIChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgQm9vbGVhblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBgc2l6aW5nYCBjbGFzc2VzXG4vLy8gQHR5cGUgTWFwXG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pICFkZWZhdWx0O1xuXG4vLy8gTWFwIGNvbnRhaW5pbmcgYWxsIHRoZSBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pICFkZWZhdWx0O1xuXG4vLy8gTWF4IFdpZHRoIDEwMCB1dGlsaXR5LlxuQG1peGluIG1heC13aWR0aC0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLy8vIE1heCBIZWlnaHQgMTAwIHV0aWxpdHkuXG5AbWl4aW4gbWF4LWhlaWdodC0xMDAge1xuICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zaXppbmcge1xuICAvLyBFbGVtZW50IFNpemluZ1xuICBAZWFjaCAkc2l6aW5nIGluICRwcm90b3R5cGUtc2l6aW5nIHtcbiAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgIC4jeyRzaXppbmd9LSN7JGxlbmd0aH0ge1xuICAgICAgICAjeyRzaXppbmd9OiAkcGVyY2VudGFnZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE1heCB3aWR0aCAmIGhlaWdodFxuICAubWF4LXdpZHRoLTEwMCB7XG4gICAgQGluY2x1ZGUgbWF4LXdpZHRoLTEwMDtcbiAgfVxuICAubWF4LWhlaWdodC0xMDAge1xuICAgIEBpbmNsdWRlIG1heC1oZWlnaHQtMTAwO1xuICB9XG5cbiAgQGlmICgkcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGVhY2ggJHNpemluZyBpbiAkcHJvdG90eXBlLXNpemluZyB7XG4gICAgICAgICAgICBAZWFjaCAkbGVuZ3RoLCAkcGVyY2VudGFnZSBpbiAkcHJvdG90eXBlLXNpemVzIHtcbiAgICAgICAgICAgICAgLiN7JHNpemV9LSN7JHNpemluZ30tI3skbGVuZ3RofSB7XG4gICAgICAgICAgICAgICAgI3skc2l6aW5nfTogJHBlcmNlbnRhZ2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvdG90eXBlLXNwYWNpbmdcbi8vLy9cblxuLy8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHNwYWNpbmcgY2xhc3NlcyAobWFyZ2luIGFuZCBwYWRkaW5nKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG51bWJlciBvZiBzcGFjZXJzIGNvdW50IChtYXJnaW4gYW5kIHBhZGRpbmcpXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDMgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gaGVscGVyIG1peGluLCBhbGwgdGhlIHZhbHVlcyBhcmUgbXVsdGlwbGllZCBieSBgJGdsb2JhbC1tYXJnaW5gIHdoaWNoIGJ5IGRlZmF1bHQgaXMgZXF1YWwgdG8gYDFyZW1gXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b3AgW251bGxdIC0gTWFyZ2luIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gTWFyZ2luIFJpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRib3R0b20gW251bGxdIC0gTWFyZ2luIEJvdHRvbVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbGVmdCBbbnVsbF0gLSBNYXJnaW4gTGVmdFxuQG1peGluIG1hcmdpbihcbiAgJHRvcDogbnVsbCxcbiAgJHJpZ2h0OiBudWxsLFxuICAkYm90dG9tOiBudWxsLFxuICAkbGVmdDogbnVsbFxuKSB7XG4gIEBpZiAkdG9wICE9IG51bGwge1xuICAgIG1hcmdpbi10b3A6ICR0b3AgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkcmlnaHQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkYm90dG9tICE9IG51bGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkbGVmdCAhPSBudWxsIHtcbiAgICBtYXJnaW4tbGVmdDogJGxlZnQgKiAkZ2xvYmFsLW1hcmdpbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBQYWRkaW5nIGhlbHBlciBtaXhpbiwgYWxsIHRoZSB2YWx1ZXMgYXJlIG11bHRpcGxpZWQgYnkgYCRnbG9iYWwtcGFkZGluZ2Agd2hpY2ggYnkgZGVmYXVsdCBpcyBlcXVhbCB0byBgMXJlbWBcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvcCBbbnVsbF0gLSBQYWRkaW5nIFRvcFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmlnaHQgW251bGxdIC0gUGFkZGluZyBSaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYm90dG9tIFtudWxsXSAtIFBhZGRpbmcgQm90dG9tXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRsZWZ0IFtudWxsXSAtIFBhZGRpbmcgTGVmdFxuQG1peGluIHBhZGRpbmcoXG4gICR0b3A6IG51bGwsXG4gICRyaWdodDogbnVsbCxcbiAgJGJvdHRvbTogbnVsbCxcbiAgJGxlZnQ6IG51bGxcbikge1xuICBAaWYgJHRvcCAhPSBudWxsIHtcbiAgICBwYWRkaW5nLXRvcDogJHRvcCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG4gIEBpZiAkcmlnaHQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1yaWdodDogJHJpZ2h0ICogJGdsb2JhbC1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRib3R0b20gIT0gbnVsbCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRib3R0b20gKiAkZ2xvYmFsLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGxlZnQgIT0gbnVsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAkbGVmdCAqICRnbG9iYWwtcGFkZGluZyAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb3RvdHlwZS1zcGFjaW5nIHtcbiAgQGZvciAkc3BhY2VyIGZyb20gMCB0aHJvdWdoICRwcm90b3R5cGUtc3BhY2Vycy1jb3VudCB7XG4gICAgLy8gQWxsIFNpZGVzXG4gICAgLm1hcmdpbi0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAucGFkZGluZy0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlcik7XG4gICAgfVxuXG4gICAgLy8gVG9wIFNpZGVcbiAgICAubWFyZ2luLXRvcC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICAucGFkZGluZy10b3AtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsIG51bGwsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC8vIFJpZ2h0IFNpZGVcbiAgICAubWFyZ2luLXJpZ2h0LSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsICRzcGFjZXIsIG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLXJpZ2h0LSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCBudWxsKTtcbiAgICB9XG5cbiAgICAvLyBCb3R0b20gU2lkZVxuICAgIC5tYXJnaW4tYm90dG9tLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsIG51bGwsICRzcGFjZXIsIG51bGwpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLWJvdHRvbS0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCwgbnVsbCwgJHNwYWNlciwgbnVsbCk7XG4gICAgfVxuXG4gICAgLy8gTGVmdCBTaWRlXG4gICAgLm1hcmdpbi1sZWZ0LSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsIG51bGwsIG51bGwsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC5wYWRkaW5nLWxlZnQtI3skc3BhY2VyfSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsIG51bGwsIG51bGwsICRzcGFjZXIpO1xuICAgIH1cblxuICAgIC8vIEhvcml6b250YWwgQXhlc1xuICAgIC5tYXJnaW4taG9yaXpvbnRhbC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAucGFkZGluZy1ob3Jpem9udGFsLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBBeGVzXG4gICAgLm1hcmdpbi12ZXJ0aWNhbC0jeyRzcGFjZXJ9IHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigkc3BhY2VyLCBudWxsLCAkc3BhY2VyLCBudWxsKVxuICAgIH1cblxuICAgIC5wYWRkaW5nLXZlcnRpY2FsLSN7JHNwYWNlcn0ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCBudWxsLCAkc3BhY2VyLCBudWxsKVxuICAgIH1cblxuICAgIEBpZiAoJHByb3RvdHlwZS1zcGFjaW5nLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gTG9vcCB0aHJvdWdoIFJlc3BvbnNpdmUgQnJlYWtwb2ludHNcbiAgICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIC8vIEFsbCBTaWRlc1xuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skc2l6ZX0tcGFkZGluZy0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVG9wIFNpZGVcbiAgICAgICAgICAgIC4jeyRzaXplfS1tYXJnaW4tdG9wLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oJHNwYWNlciwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLXRvcC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygkc3BhY2VyLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmlnaHQgU2lkZVxuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi1yaWdodC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwsICRzcGFjZXIsIG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skc2l6ZX0tcGFkZGluZy1yaWdodC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQm90dG9tIFNpZGVcbiAgICAgICAgICAgIC4jeyRzaXplfS1tYXJnaW4tYm90dG9tLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgbnVsbCwgJHNwYWNlciwgbnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLWJvdHRvbS0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCBudWxsLCAkc3BhY2VyLCBudWxsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTGVmdCBTaWRlXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLWxlZnQtI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCBudWxsLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctbGVmdC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCBudWxsLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSG9yaXpvbnRhbCBBeGVzXG4gICAgICAgICAgICAuI3skc2l6ZX0tbWFyZ2luLWhvcml6b250YWwtI3skc3BhY2VyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JHNpemV9LXBhZGRpbmctaG9yaXpvbnRhbC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsLCAkc3BhY2VyLCBudWxsLCAkc3BhY2VyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVmVydGljYWwgQXhlc1xuICAgICAgICAgICAgLiN7JHNpemV9LW1hcmdpbi12ZXJ0aWNhbC0jeyRzcGFjZXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCRzcGFjZXIsIG51bGwsICRzcGFjZXIsIG51bGwpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRzaXplfS1wYWRkaW5nLXZlcnRpY2FsLSN7JHNwYWNlcn0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCRzcGFjZXIsIG51bGwsICRzcGFjZXIsIG51bGwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBNb3Rpb24gVUkgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbS9tb3Rpb24tdWlcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdzZXR0aW5ncyc7XG5cbkBpbXBvcnQgJ3V0aWwvYW5pbWF0aW9uJztcbkBpbXBvcnQgJ3V0aWwvYXJncyc7XG5AaW1wb3J0ICd1dGlsL2tleWZyYW1lJztcbkBpbXBvcnQgJ3V0aWwvc2VsZWN0b3InO1xuQGltcG9ydCAndXRpbC9zZXJpZXMnO1xuQGltcG9ydCAndXRpbC90cmFuc2l0aW9uJztcbkBpbXBvcnQgJ3V0aWwvdW5pdCc7XG5cbkBpbXBvcnQgJ2VmZmVjdHMvZmFkZSc7XG5AaW1wb3J0ICdlZmZlY3RzL2hpbmdlJztcbkBpbXBvcnQgJ2VmZmVjdHMvc3Bpbic7XG5AaW1wb3J0ICdlZmZlY3RzL3pvb20nO1xuQGltcG9ydCAnZWZmZWN0cy9zaGFrZSc7XG5AaW1wb3J0ICdlZmZlY3RzL3NsaWRlJztcbkBpbXBvcnQgJ2VmZmVjdHMvd2lnZ2xlJztcblxuQGltcG9ydCAndHJhbnNpdGlvbnMvZmFkZSc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9oaW5nZSc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy96b29tJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL3NsaWRlJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL3NwaW4nO1xuXG5AaW1wb3J0ICdjbGFzc2VzJztcbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgYWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxuKSAhZGVmYXVsdDtcbiIsIi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIGFuZCBhc3NpZ25zIGl0IHRvIHRoZSBlbGVtZW50IGJ5IGFkZGluZyB0aGUgYGFuaW1hdGlvbi1uYW1lYCBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xuICAkbmFtZTogbWFwLWdldCgtbXVpLXByb2Nlc3MtYXJncygkYXJncy4uLiksIG5hbWUpO1xuICBAaW5jbHVkZSBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkYXJncy4uLik7XG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcbn1cbiIsIi8vLyBQcm9jZXNzZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgZnVuY3Rpb24gYXJndW1lbnRzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJGFyZ3MpID09IDEge1xuICAgICRhcmc6IG50aCgkYXJncywgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigkYXJnKSA9PSAnc3RyaW5nJyB7XG4gICAgICBAcmV0dXJuIGNhbGwoJGFyZyk7XG4gICAgfSBAZWxzZSBpZiB0eXBlLW9mKCRhcmcpID09ICdtYXAnIHtcbiAgICAgIEByZXR1cm4gJGFyZztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkYXJncy4uLik7XG59XG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcbiQtbXVpLWN1c3RvbTogMDtcblxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUga2V5ZnJhbWUuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBQcmludHMgdGhlIENTUyBwcm9wZXJ0aWVzIGZyb20gYSBzcGVjaWZpYyBrZXkgaW4gYSBrZXlmcmFtZXMgbWFwLiBVc2VkIHRvIGJvcnJvdyBDU1MgZnJvbSBrZXlmcmFtZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFuc2l0aW9ucy5cbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGtleSAtIEtleSBpbiB0aGUgbWFwIHRvIHByaW50IHRoZSBDU1Mgb2YuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XG4gICRtYXA6IG1hcC1nZXQoJGtmLCAka2V5KTtcblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xuICAgIC8vIFNvbWUga2V5ZnJhbWUgbWFwcyBzdG9yZSB0cmFuc2Zvcm1zIGFzIHF1b3RlZCBzdHJpbmdzXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcbiAgICB9XG4gICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc3BsaXQgdXAuXG4vLy8gQHJldHVybiB7TWFwfSBBIHJlZm9ybWF0dGVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIFNwbGl0IGtleXMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW50byBpbmRpdmlkdWFsIGtleXNcbiAgQGVhY2ggJGtleSwgJGl0ZW0gaW4gJG1hcCB7XG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xuXG4gICAgQGlmICRrZXktdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcbiAgICB9IEBlbHNlIGlmICRrZXktdHlwZSA9PSAnbGlzdCcge1xuICAgICAgQGVhY2ggJGsgaW4gJGtleSB7XG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgb2JqZWN0cyBpbnRvIG9uZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcHMuLi4gLSBBIHNlcmllcyBvZiBtYXBzIHRvIG1lcmdlLCBhcyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIGtleWZyYW1lIG9iamVjdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLWNvbWJpbmUoJG1hcHMuLi4pIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG1hcCBwYXNzZWQgaW5cbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ3N0cmluZycge1xuICAgICAgJG1hcDogY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIvLy8gQnVpbGRzIGEgc2VsZWN0b3IgZm9yIGEgbW90aW9uIGNsYXNzLCB1c2luZyB0aGUgc2V0dGluZ3MgZGVmaW5lZCBpbiB0aGUgYCRtb3Rpb24tdWktY2xhc3Nlc2AgYW5kIGAkbW90aW9uLXVpLXN0YXRlc2AgbWFwcy5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkc3RhdGVzIC0gT25lIG9yIG1vcmUgc3RyaW5ncyB0aGF0IGNvcnJlbGF0ZSB0byBhIHN0YXRlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGFjdGl2ZSAtIERlZmluZXMgaWYgdGhlIHNlbGVjdG9yIGlzIGZvciB0aGUgc2V0dXAgb3IgYWN0aXZlIGNsYXNzLlxuLy8vIEByZXR1cm4ge1N0cmluZ30gQSBzZWxlY3RvciB0aGF0IGNhbiBiZSBpbnRlcnBvbGF0ZWQgaW50byB5b3VyIFNhc3MgY29kZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWJ1aWxkLXNlbGVjdG9yKCRzdGF0ZXMsICRhY3RpdmU6IGZhbHNlKSB7XG4gICRyZXR1cm46ICcnO1xuICAkY2hhaW46IG1hcC1nZXQoJG1vdGlvbi11aS1jbGFzc2VzLCBjaGFpbik7XG4gICRwcmVmaXg6IG1hcC1nZXQoJG1vdGlvbi11aS1jbGFzc2VzLCBwcmVmaXgpO1xuICAkc3VmZml4OiBtYXAtZ2V0KCRtb3Rpb24tdWktY2xhc3NlcywgYWN0aXZlKTtcblxuICBAZWFjaCAkc2VsIGluICRzdGF0ZXMge1xuICAgICRyZXR1cm46ICRyZXR1cm4gKyBpZigkY2hhaW4sICcmLicsICcjeyZ9LScpICsgJHByZWZpeCArICRzZWw7XG5cbiAgICBAaWYgJGFjdGl2ZSB7XG4gICAgICAkcmV0dXJuOiAkcmV0dXJuICsgaWYoJGNoYWluLCAnLicsICcjeyZ9LScpICsgJHByZWZpeCArICRzZWwgKyAkc3VmZml4O1xuICAgIH1cblxuICAgICRyZXR1cm46ICRyZXR1cm4gKyAnLCAnO1xuICB9XG5cbiAgQHJldHVybiBzdHItc2xpY2UoJHJldHVybiwgMSwgLTMpO1xufVxuIiwiJC1tdWktcXVldWU6ICgpO1xuXG4vLy8gUGF1c2VzIHRoZSBhbmltYXRpb24gb24gYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgdGhlbiBwbGF5cyBpdCB3aGVuIGFuIGFjdGl2ZSBjbGFzcyBpcyBhZGRlZCB0byBhIHBhcmVudC4gQWxzbyBzZXRzIHRoZSBmaWxsIG1vZGUgb2YgdGhlIGFuaW1hdGlvbiB0byBgYm90aGAuIFRoaXMgcGF1c2VzIHRoZSBlbGVtZW50IGF0IHRoZSBmaXJzdCBmcmFtZSBvZiB0aGUgYW5pbWF0aW9uLCBhbmQgaG9sZHMgaXQgaW4gcGxhY2UgYXQgdGhlIGVuZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbiVhbmltYXRlZC1lbGVtZW50IHtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcblxuICAuI3ttYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGFjdGl2YXRlLXF1ZXVlLWNsYXNzKX0gJiB7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBuZXcgYW5pbWF0aW9uIHF1ZXVlLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbMHNdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gcGxhY2UgYXQgdGhlIGZyb250IG9mIHRoZSBhbmltYXRpb24gcXVldWUuXG5AbWl4aW4gbXVpLXNlcmllcygkZGVsYXk6IDBzKSB7XG4gICQtbXVpLXF1ZXVlOiAoKSAhZ2xvYmFsO1xuXG4gIEBpZiAkZGVsYXkgPiAwIHtcbiAgICAkaXRlbTogKCRkZWxheSwgMHMpO1xuICAgICQtbXVpLXF1ZXVlOiBhcHBlbmQoJC1tdWktcXVldWUsICRpdGVtKSAhZ2xvYmFsO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbi8vLyBBZGRzIGFuIGFuaW1hdGlvbiB0byBhbiBhbmltYXRpb24gcXVldWUuIE9ubHkgdXNlIHRoaXMgbWl4aW4gaW5zaWRlIG9mIGBtdWktc2VyaWVzKClgLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbMXNdIC0gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGdhcCBbMHNdIC0gQW1vdW50IG9mIHRpbWUgdG8gcGF1c2UgYmVmb3JlIHBsYXlpbmcgdGhlIGFuaW1hdGlvbiBhZnRlciB0aGlzIG9uZS4gVXNlIGEgbmVnYXRpdmUgdmFsdWUgdG8gbWFrZSB0aGUgbmV4dCBlZmZlY3Qgb3ZlcmxhcCB3aXRoIHRoZSBjdXJyZW50IG9uZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAka2V5ZnJhbWVzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktcXVldWUoXG4gICRkdXJhdGlvbjogMXMsXG4gICRnYXA6IDBzLFxuICAka2V5ZnJhbWVzLi4uXG4pIHtcbiAgLy8gQnVpbGQgdGhlIGFuaW1hdGlvblxuICAka2Y6IC1tdWktcHJvY2Vzcy1hcmdzKCRrZXlmcmFtZXMuLi4pO1xuXG4gIC8vIENhbGN1bGF0ZSB0aGUgZGVsYXkgZm9yIHRoaXMgYW5pbWF0aW9uIGJhc2VkIG9uIGhvdyBsb25nIHRoZSBwcmV2aW91cyBvbmVzIHRha2VcbiAgJGFjdHVhbC1kZWxheTogMHM7XG4gIEBlYWNoICRhbmltIGluICQtbXVpLXF1ZXVlIHtcbiAgICAkYWN0dWFsLWRlbGF5OiAkYWN0dWFsLWRlbGF5ICsgbnRoKCRhbmltLCAxKSArIG50aCgkYW5pbSwgMik7XG4gIH1cblxuICAvLyBBcHBlbmQgdGhpcyBhbmltYXRpb24ncyBsZW5ndGggYW5kIGdhcCB0byB0aGUgZW5kIG9mIHRoZSBxdWV1ZVxuICAkaXRlbTogKCRkdXJhdGlvbiwgJGdhcCk7XG4gICQtbXVpLXF1ZXVlOiBhcHBlbmQoJC1tdWktcXVldWUsICRpdGVtKSAhZ2xvYmFsO1xuXG4gIC8vIENTUyBvdXRwdXRcbiAgQGV4dGVuZCAlYW5pbWF0ZWQtZWxlbWVudDtcbiAgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbigka2YpO1xuICBhbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgYW5pbWF0aW9uLWRlbGF5OiAkYWN0dWFsLWRlbGF5O1xufVxuIiwiLy8vIEFwcGxpZXMgYmFzaWMgdHJhbnNpdGlvbiBzZXR0aW5ncyB0byBhbiBlbGVtZW50LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIHRyYW5zaXRpb24tYmFzaWNzKFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gIEBpbmNsdWRlIC1tb3Rpb24tdWktZGVmYXVsdHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmc7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheTtcbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBzZXR1cCBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIHNldHVwIGZvciB0cmFuc2l0aW9uLlxuQG1peGluIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpcikpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgYWN0aXZlIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gYWN0aXZhdGUgYSB0cmFuc2l0aW9uIG9uLlxuQG1peGluIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpLCB0cnVlKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhZ2dlciBhbmltYXRpb24sIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggQW5ndWxhcidzIGBuZy1yZXBlYXRgLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheS1hbW91bnQgLSBBbW91bnQgb2YgdGltZSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyB0byBhZGQgYmV0d2VlbiBlYWNoIGl0ZW0ncyBhbmltYXRpb24uXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheS1hbW91bnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDA7IC8vIFByZXZlbnQgYWNjaWRlbnRhbCBDU1MgaW5oZXJpdGFuY2Vcbn1cbiIsIi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBmYWRpbmcgYW5pbWF0aW9uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMF0gLSBPcGFjaXR5IHRvIHN0YXJ0IGF0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgYXQuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIGZhZGUoXG4gICRmcm9tOiAwLFxuICAkdG86IDFcbikge1xuICAkdHlwZTogdHlwZS1vZigkZnJvbSk7XG4gICRrZXlmcmFtZXM6ICgpO1xuXG4gIEBpZiAkdHlwZSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmICRmcm9tID09IGluIHtcbiAgICAgICRmcm9tOiAwO1xuICAgICAgJHRvOiAxO1xuICAgIH0gQGVsc2UgaWYgJGZyb20gPT0gb3V0IHtcbiAgICAgICRmcm9tOiAxO1xuICAgICAgJHRvOiAwO1xuICAgIH1cbiAgfVxuXG4gICRmcm9tTmFtZTogJGZyb20gKiAxMDA7XG4gICR0b05hbWU6ICAgJHRvICAgKiAxMDA7XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdmYWRlLSN7JGZyb21OYW1lfS10by0jeyR0b05hbWV9JyxcbiAgICAwOiAob3BhY2l0eTogJGZyb20pLFxuICAgIDEwMDogKG9wYWNpdHk6ICR0byksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSBlZmZlY3QgYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuQGZ1bmN0aW9uIGhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2tcbikge1xuICAvLyBSb3RhdGlvbiBkaXJlY3Rpb25zIHdoZW4gaGluZ2luZyBmcm9tIGJhY2sgdnMuIGZyb250XG4gICRyb3RhdGlvbi1hbW91bnQ6IDkwZGVnO1xuICAkcm90YXRpb25zLWJhY2s6IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICApO1xuICAkcm90YXRpb25zLWZyb206IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICApO1xuXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxuICAkcm90YXRpb246ICcnO1xuICBAaWYgJHR1cm4tb3JpZ2luID09IGZyb20tZnJvbnQge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWZyb20sICRmcm9tKTtcbiAgfSBAZWxzZSBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1iYWNrIHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1iYWNrLCAkZnJvbSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICckdHVybi1vcmlnaW4gbXVzdCBiZSBlaXRoZXIgXCJmcm9tLWJhY2tcIiBvciBcImZyb20tZnJvbnRcIic7XG4gIH1cblxuICAvLyBTdGFydCBhbmQgZW5kIHN0YXRlXG4gICRzdGFydDogJyc7XG4gICRlbmQ6ICcnO1xuICBAaWYgJHN0YXRlID09IGluIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xuICB9IEBlbHNlIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICB9XG5cbiAgLy8gVHVybiBheGlzXG4gICRvcmlnaW46ICcnO1xuICBAaWYgJGF4aXMgPT0gZWRnZSB7XG4gICAgJG9yaWdpbjogJGZyb207XG4gIH0gQGVsc2Uge1xuICAgICRvcmlnaW46IGNlbnRlcjtcbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScsXG4gICAgMDogKHRyYW5zZm9ybTogJHN0YXJ0LCB0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06ICRlbmQpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgYW5pbWF0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbY3ddIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMzYwZGVnXSAtIEFtb3VudCB0byBzcGluLiBDYW4gYmUgYW55IENTUyBhbmdsZSB1bml0LlxuLy8vIEByZXR1cm4ge01hcH0gQSBrZXlmcmFtZXMgbWFwIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgYGdlbmVyYXRlLWtleWZyYW1lcygpYCBtaXhpbi5cbkBmdW5jdGlvbiBzcGluKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBjdyxcbiAgJGFtb3VudDogMXR1cm5cbikge1xuICAkc3RhcnQ6IDA7XG4gICRlbmQ6IDA7XG5cbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBpZigkZGlyZWN0aW9uID09IGNjdywgJGFtb3VudCwgJGFtb3VudCAqIC0xKTtcbiAgICAkZW5kOiAwO1xuICB9IEBlbHNlIHtcbiAgICAkc3RhcnQ6IDA7XG4gICAgJGVuZDogaWYoJGRpcmVjdGlvbiA9PSBjY3csICRhbW91bnQgKiAtMSwgJGFtb3VudCk7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ3NwaW4tI3skZGlyZWN0aW9ufS0jeyRhbW91bnR9JyxcbiAgICAwOiAodHJhbnNmb3JtOiByb3RhdGUoJHN0YXJ0KSksXG4gICAgMTAwOiAodHJhbnNmb3JtOiByb3RhdGUoJGVuZCkpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2NhbGluZyB0cmFuc2l0aW9uLiBBIHNjYWxlIG9mIGAxYCBtZWFucyB0aGUgZWxlbWVudCBpcyB0aGUgc2FtZSBzaXplLiBMYXJnZXIgbnVtYmVycyBtYWtlIHRoZSBlbGVtZW50IGJpZ2dlciwgd2hpbGUgbnVtYmVycyBsZXNzIHRoYW4gMSBtYWtlIHRoZSBlbGVtZW50IHNtYWxsZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxLjVdIC0gU2l6ZSB0byBzdGFydCBhdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuQGZ1bmN0aW9uIHpvb20oXG4gICRmcm9tOiAwLFxuICAkdG86IDFcbikge1xuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ3NjYWxlLSN7JHRvfS10by0jeyRmcm9tfScsXG4gICAgMDogKHRyYW5zZm9ybTogc2NhbGUoJGZyb20pKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06IHNjYWxlKCR0bykpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2hha2luZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkaW50ZW5zaXR5IFs3JV0gLSBJbnRlbnNpdHkgb2YgdGhlIHNoYWtlLCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIHNoYWtlKCRpbnRlbnNpdHk6IDclKSB7XG4gICRyaWdodDogKDAsIDEwLCAyMCwgMzAsIDQwLCA1MCwgNjAsIDcwLCA4MCwgOTApO1xuICAkbGVmdDogKDUsIDE1LCAyNSwgMzUsIDQ1LCA1NSwgNjUsIDc1LCA4NSwgOTUpO1xuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnc2hha2UtI3soJGludGVuc2l0eSAvIDElKX0nLFxuICAgICRyaWdodDogKHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkaW50ZW5zaXR5KSksXG4gICAgJGxlZnQ6ICh0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRpbnRlbnNpdHkpKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgYW5pbWF0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBXaGV0aGVyIHRvIG1vdmUgdG8gKGBpbmApIG9yIGZyb20gKGBvdXRgKSB0aGUgZWxlbWVudCdzIGRlZmF1bHQgcG9zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFt1cF0gLSBEaXJlY3Rpb24gdG8gbW92ZS4gQ2FuIGJlIGB1cGAsIGBkb3duYCwgYGxlZnRgLCBvciBgcmlnaHRgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFsxMDAlXSAtIERpc3RhbmNlIHRvIG1vdmUuIENhbiBiZSBhbnkgQ1NTIGxlbmd0aCB1bml0LlxuLy8vIEByZXR1cm4ge01hcH0gQSBrZXlmcmFtZXMgbWFwIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgYGdlbmVyYXRlLWtleWZyYW1lcygpYCBtaXhpbi5cbkBmdW5jdGlvbiBzbGlkZShcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogdXAsXG4gICRhbW91bnQ6IDEwMCVcbikge1xuICAkZnJvbTogJGFtb3VudDtcbiAgJHRvOiAwO1xuICAkZnVuYzogJ3RyYW5zbGF0ZVknO1xuXG4gIEBpZiAkZGlyZWN0aW9uID09IGxlZnQgb3IgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgJGZ1bmM6ICd0cmFuc2xhdGVYJztcbiAgfVxuXG4gIEBpZiAkc3RhdGUgPT0gb3V0IHtcbiAgICAkZnJvbTogMDtcbiAgICAkdG86ICRhbW91bnQ7XG4gIH1cblxuICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duIG9yICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgIEBpZiAkc3RhdGUgPT0gaW4ge1xuICAgICAgJGZyb206IC0kZnJvbTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiAkc3RhdGUgPT0gb3V0IHtcbiAgICAgICR0bzogLSR0bztcbiAgICB9XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ3NsaWRlLSN7JHN0YXRlfS0jeyRkaXJlY3Rpb259LSN7c3RyaXAtdW5pdCgkYW1vdW50KX0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICcjeyRmdW5jfSgjeyRmcm9tfSknKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06ICcjeyRmdW5jfSgjeyR0b30pJyksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSB3aWdnbGluZyBhbmltYXRpb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRpbnRlbnNpdHkgWzdkZWddIC0gSW50ZW5zaXR5IG9mIHRoZSB3aWdnbGUuIENhbiBiZSBhbnkgQ1NTIGFuZ2xlIHVuaXQuXG4vLy8gQHJldHVybiB7TWFwfSBBIGtleWZyYW1lcyBtYXAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgZ2VuZXJhdGUta2V5ZnJhbWVzKClgIG1peGluLlxuQGZ1bmN0aW9uIHdpZ2dsZSgkaW50ZW5zaXR5OiA3ZGVnKSB7XG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnd2lnZ2xlLSN7JGludGVuc2l0eX0nLFxuICAgICg0MCwgNTAsIDYwKTogKHRyYW5zZm9ybTogcm90YXRlKCRpbnRlbnNpdHkpKSxcbiAgICAoMzUsIDQ1LCA1NSwgNjUpOiAodHJhbnNmb3JtOiByb3RhdGUoLSRpbnRlbnNpdHkpKSxcbiAgICAoMCwgMzAsIDcwLCAxMDApOiAodHJhbnNmb3JtOiByb3RhdGUoMCkpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgZmFkZSB0cmFuc2l0aW9uIGJ5IGFkanVzdGluZyB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzBdIC0gT3BhY2l0eSB0byBzdGFydCBhdC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbMV0gLSBPcGFjaXR5IHRvIGVuZCBvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1mYWRlKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogMCxcbiAgJHRvOiAxLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmYWRlOiBmYWRlKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAwKTtcblxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMTAwKTtcbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2ssXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGhpbmdlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzEuNV0gLSBTaXplIHRvIHN0YXJ0IGF0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMV0gLSBTaXplIHRvIGVuZCBhdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXpvb20oXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAxLjUsXG4gICR0bzogMSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2NhbGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgdHJhbnNpdGlvbiBieSB0cmFuc2xhdGluZyB0aGUgZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2xlZnRdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRhbW91bnQgWzEwMCVdIC0gTGVuZ3RoIG9mIHRoZSBzbGlkZSBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc2xpZGUgKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBsZWZ0LFxuICAkYW1vdW50OiAxMDAlLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzbGlkZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNsaWRlOiBzbGlkZSgkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIC8vIENTUyBPdXRwdXRcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cblxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzcGlubmluZyB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LiBUaGUgYHR1cm5gIHVuaXQgaXMgdXNlZCB0byBzcGVjaWZ5IGhvdyBmYXIgdG8gcm90YXRlLiBgMXR1cm5gIGlzIGVxdWFsIHRvIGEgMzYwLWRlZ3JlZSBzcGluLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGRpcmVjdGlvbiBbY3ddIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMC43NXR1cm5dIC0gQW1vdW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc3BpbihcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogY3csXG4gICRhbW91bnQ6IDAuNzV0dXJuLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzcGluLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc3Bpbjogc3Bpbigkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG5AbWl4aW4gLW1vdGlvbi11aS1kZWZhdWx0cyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLWVhc2luZ3MsIGRlZmF1bHQpO1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xuICAvLyBTbGlkZVxuICAuc2xpZGUtaW4tZG93biAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGRvd24pOyB9XG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XG4gIC5zbGlkZS1pbi11cCAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgdXApOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxuICAuc2xpZGUtb3V0LXJpZ2h0ICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHJpZ2h0KTsgfVxuICAuc2xpZGUtb3V0LXVwICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHVwKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAuc2hha2UsXG4gIC5zcGluLWN3LFxuICAuc3Bpbi1jY3csXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy8gXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlLCAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaWYgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gR2VuZXJhdGUgdGhlIGBAY29udGVudGAgcGFzc2VkIHRvIHRoZSBtaXhpbiB3aXRoIGEgdmFsdWUgYCQtemYtYnAtdmFsdWVgIHJlbGF0ZWQgdG8gYSBicmVha3BvaW50LCBkZXBlbmRpbmcgb24gdGhlIGAkbmFtZWAgcGFyYW1ldGVyOlxuLy8vIC0gRm9yIGEgc2luZ2xlIHZhbHVlLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhpcyB2YWx1ZS5cbi8vLyAtIEZvciBhIGJyZWFrcG9pbnQgbmFtZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgLlxuLy8vIC0gRm9yIFwiYXV0b1wiLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAgYW5kIGlzIHBhc3NlZCB0byBgQGNvbnRlbnRgLCB3aGljaCBpcyBtYWRlIHJlc3BvbnNpdmUgZm9yIGVhY2ggYnJlYWtwb2ludCBvZiBgJG1hcGAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8QXJyYXl8S2V5d29yZH0gJG5hbWUgW2F1dG9dIC0gU2luZ2xlIHZhbHVlLCBicmVha3BvaW50IG5hbWUsIG9yIGxpc3Qgb2YgYnJlYWtwb2ludCBuYW1lcyB0byB1c2UuIFwiYXV0b1wiIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gTWFwIG9mIGJyZWFrcG9pbnRzIGFuZCB2YWx1ZXMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS5cbkBtaXhpbiAtemYtYnJlYWtwb2ludC12YWx1ZShcbiAgJG5hbWU6IGF1dG8sXG4gICRtYXA6IG51bGxcbikge1xuICBAaWYgJG5hbWUgPT0gYXV0byBhbmQgdHlwZS1vZigkbWFwKSA9PSAnbWFwJyB7XG4gICAgLy8gXCJhdXRvXCJcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRrKSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCR2LCAkbWFwKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIGJyZWFrcG9pbnQgbmFtZVxuICAgIEBpZiB0eXBlLW9mKCRuYW1lKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbmFtZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICAgICAgICAgICAgICAgICAgTUlYSU5TXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLyogLmNsZWFyZml4IHsgKnpvb206IDE7IH1cclxuLmNsZWFyZml4OmJlZm9yZSwgLmNsZWFyZml4OmFmdGVyIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogdGFibGU7IH1cclxuLmNsZWFyZml4OmFmdGVyIHsgY2xlYXI6IGJvdGg7IH0qL1xyXG5cclxuQG1peGluIGNsZWFyKCkge1xyXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXFwwMDIwXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtjbGVhcjogYm90aDt9XHJcbn1cclxuXHJcbi8vIFRSQU5TSVRJT05TXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBvbmUgdHJhbnNpdGlvbiBcclxuQG1peGluIGFuaW0oJGFuaW1hdGlvbikge1xyXG4gICAtd2Via2l0LXRyYW5zaXRpb246ICRhbmltYXRpb247XHJcbiAgICAgIC1tb3otdHJhbnNpdGlvbjogJGFuaW1hdGlvbjtcclxuICAgICAgICAtby10cmFuc2l0aW9uOiAkYW5pbWF0aW9uO1xyXG4gICAgICAgICAgIHRyYW5zaXRpb246ICRhbmltYXRpb247XHJcbn1cclxuXHJcbi8vIHR3byB0cmFuc2l0aW9uc1xyXG5AbWl4aW4gYW5pbV9tdWx0aSgkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIpIHtcclxuICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzI7XHJcbiAgICAgIC1tb3otdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yO1xyXG4gICAgICAgIC1vLXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMjtcclxuICAgICAgICAgICB0cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzI7XHJcbn0gXHJcblxyXG4vLyAzIHRyYW5zaXRpb25zIFxyXG5AbWl4aW4gYW5pbV9tdWx0aV8zKCRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zKSB7XHJcbiAgIC13ZWJraXQtdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzM7XHJcbiAgICAgIC1tb3otdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzM7XHJcbiAgICAgICAgLW8tdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzM7XHJcbiAgICAgICAgICAgdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzM7XHJcbn0gICAgXHJcblxyXG4vLyA0IHRyYW5zaXRpb25zIFxyXG5AbWl4aW4gYW5pbV9tdWx0aV80KCRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zLCAkYW5pbWF0aW9uXzQpIHtcclxuICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMywgJGFuaW1hdGlvbl80O1xyXG4gICAgICAtbW96LXRyYW5zaXRpb246ICRhbmltYXRpb24sICRhbmltYXRpb25fMiwgJGFuaW1hdGlvbl8zLCAkYW5pbWF0aW9uXzQ7XHJcbiAgICAgICAgLW8tdHJhbnNpdGlvbjogJGFuaW1hdGlvbiwgJGFuaW1hdGlvbl8yLCAkYW5pbWF0aW9uXzMsICRhbmltYXRpb25fNDtcclxuICAgICAgICAgICB0cmFuc2l0aW9uOiAkYW5pbWF0aW9uLCAkYW5pbWF0aW9uXzIsICRhbmltYXRpb25fMywgJGFuaW1hdGlvbl80O1xyXG59ICAgIFxyXG4gICAgXHJcbi8vIFRSQU5TRk9STVMgXHJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybSkge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcbiAgICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcclxuICAgICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xyXG4gICAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybTtcclxufVxyXG5cclxuLy8gQU5JTUFUSU9OU1xyXG5AbWl4aW4gYW5pbWF0aW9uKCRjb250ZW50KSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246ICRjb250ZW50O1xyXG4gICAgIC1tb3otYW5pbWF0aW9uOiAkY29udGVudDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogJGNvbnRlbnQ7XHJcbn1cclxuXHJcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcclxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHsgQGNvbnRlbnQ7IH1cclxuICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0geyBAY29udGVudDsgfVxyXG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7IEBjb250ZW50OyB9XHJcbn1cclxuXHJcblxyXG4vLyBGSUxURVJTXHJcbkBtaXhpbiBmaWx0ZXIoJGZpbHRlcikge1xyXG4gICAgd2Via2l0LWZpbHRlcjokZmlsdGVyO1xyXG4gICAgICAtbW96LWZpbHRlcjokZmlsdGVyO1xyXG4gICAgICAgLW1zLWZpbHRlcjokZmlsdGVyO1xyXG4gICAgICAgIC1vLWZpbHRlcjokZmlsdGVyO1xyXG4gICAgICAgICAgIGZpbHRlcjokZmlsdGVyO1xyXG59XHJcblxyXG4vLyBIWVBFUkxJTktTIFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBNT0JJTEUgTk8tSE9WRVIgTUlYSU4gXHJcbkBtaXhpbiBob3ZlcigpIHtcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cInRvdWNoXCJdICY6Zm9jdXMsIFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gJjphY3RpdmUsXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmZvY3VzLCBcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6YWN0aXZlLFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjpob3ZlcixcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmFjdGl2ZSBcclxuICAgIHtAY29udGVudDt9XHJcbn1cclxuXHJcbi8vIE1PQklMRSBOTy1IT1ZFUiBNSVhJTiAtIEpVU1QgOkhPVkVSIFxyXG5AbWl4aW4gaG92ZXJfb25seSgpIHsgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjpob3ZlciB7QGNvbnRlbnQ7fSB9XHJcblxyXG5cclxuLy8gTU9CSUxFIE5PLUhPVkVSIE1JWElOIC0gVy8gVklTSVRFRCBcclxuQG1peGluIGhvdmVyX3Zpc2l0ZWQoKSB7XHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAmOnZpc2l0ZWQsIFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gJjpmb2N1cywgXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAmOmFjdGl2ZSxcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6dmlzaXRlZCwgXHJcbiAgICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAmOmZvY3VzLCBcclxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICY6YWN0aXZlLFxyXG4gICAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gJjpob3ZlciB7QGNvbnRlbnQ7fVxyXG59XHJcblxyXG4vLyBMSU5LUyBcclxuQG1peGluIGxpbmtzICgkbGluaywgJHZpc2l0LCAkaG92ZXIsICRhY3RpdmUpIHtcclxuICBhIHtcclxuICAgIGNvbG9yOiAkbGluaztcclxuICAgICY6dmlzaXRlZCB7Y29sb3I6ICR2aXNpdDt9XHJcbiAgICAmOmhvdmVyIHtjb2xvcjogJGhvdmVyO31cclxuICAgICY6YWN0aXZlIHtjb2xvcjogJGFjdGl2ZTt9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBBIFRBR1MgLSBWQVJJQUJMRVMgQVMgU0VMRUNUT1JTXHJcbiRhLXRhZ3M6ICdhLCBhOmFjdGl2ZSwgYTpob3ZlciwgYTp2aXNpdGVkJztcclxuJGEtdGFncy1ob3ZlcjogJ2E6YWN0aXZlLCBhOmhvdmVyJztcclxuXHJcbi8vIHVzYWdlICBcclxuLy8gLmNsYXNzIHsgXHJcbi8vICAgI3skYS10YWdzfSB7IGNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxyXG4vLyB9XHJcbi8vICN7JGEtdGFncy1ob3Zlcn0geyBjb2xvcjogYmx1ZTsgfVxyXG5cclxuLy8gSE9WRVIgU1RZTEVcclxuQG1peGluIGhvdmVyLXN0eWxlKCRjb2xvcikge1xyXG4gICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvciwgMyUpOyB9XHJcbn1cclxuXHJcblxyXG4vLyBCT1ggU0laSU5HXHJcbkBtaXhpbiBib3gtc2l6aW5nKCRib3gtc2l6ZSkge1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94LXNpemU7XHJcbiAgICAgICAtbW96LWJveC1zaXppbmc6ICRib3gtc2l6ZTtcclxuICAgICAgICAgICAgYm94LXNpemluZzogJGJveC1zaXplO1xyXG59XHJcblxyXG4vLyBCT1ggU0hBRE9XIFxyXG5AbWl4aW4gYm94LXNoYWRvdygkYm94c2hhZG93KSB7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICRib3hzaGFkb3c7XHJcbiAgICAgICAtbW96LWJveC1zaGFkb3c6ICRib3hzaGFkb3c7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRib3hzaGFkb3c7XHJcbn1cclxuXHJcbi8vIENFTlRFUkVEXHJcbkBtaXhpbiBjb250ZW50LWNudHJkIHtkaXNwbGF5OiBibG9jazsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvO31cclxuLmNvbnRlbnQtY250cmQgeyBAaW5jbHVkZSBjb250ZW50LWNudHJkIH1cclxuXHJcblxyXG4vLyBOQVYgTUVOVSBcclxuQG1peGluIG5hdmlnYXRpb24tbGlzdCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTtcclxuICAgIHBhZGRpbmc6MDtcclxuICAgIG1hcmdpbjowO1xyXG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgPiBsaXtcclxuICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgJjpsYXN0LWNoaWxke1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gQkFDS0dST1VORFMgXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLyogYmFja2dyb3VuZCBtaXhpbiAod2lwKVxyXG5AbWl4aW4gYmFja2dyb3VuZCgkYmctY29sb3IgJGJnLWltZ191cmwgJGJnLWF0dGFjaG1lbnQgJGJnLXBvc2l0aW9uX3ggJGJnLXBvc2l0aW9uX3kgJGJnLXJlcGVhdCAkYmctc2l6ZSkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICRiZy1jb2xvcjtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybCgkYmctaW1nX3VybCk7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6ICAgICAgJGJnLWF0dGFjaG1lbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAgICAgICAgJGJnLXBvc2l0aW9uX3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYmctcG9zaXRpb25feTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiAgICAgICAgICAkYmctcmVwZWF0O1xyXG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG4gICAgICAgLW1vei1iYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG4gICAgICAgICAtby1iYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG59XHJcbiovXHJcblxyXG4vLyByZ2JhXHJcbkBtaXhpbiByZ2JhKCRyLCRnLCRiLCRhKXtiYWNrZ3JvdW5kOiByZ2JhKCRyLCRnLCRiLCRhKTt9XHJcblxyXG4vLyBsaW5lYXIgZ3JhZGllbnRcclxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkciwkZywkYiwkYSwgJHJfMiwgJGdfMiwgJGJfMiwgJGFfMil7XHJcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiYSgkciwkZywkYiwkYSksIHJnYmEoJHJfMiwkZ18yLCRiXzIsJGFfMikpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICAgIC1tb3otbGluZWFyLWdyYWRpZW50KHJnYmEoJHIsJGcsJGIsJGEpLCByZ2JhKCRyXzIsJGdfMiwkYl8yLCRhXzIpKTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudChyZ2JhKCRyLCRnLCRiLCRhKSwgcmdiYSgkcl8yLCRnXzIsJGJfMiwkYV8yKSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogICAgICAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgkciwkZywkYiwkYSksIHJnYmEoJHJfMiwkZ18yLCRiXzIsJGFfMikpO1xyXG59XHJcblxyXG4vLyBiZyAtIGFsbFxyXG5AbWl4aW4gYmctYWxsKCR1cmwsICRwb3NpdGlvbiwgJHJlcGVhdCwgJGF0dGFjaG1lbnQpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkdXJsKTtcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogJGF0dGFjaG1lbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zaXRpb247XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogJHJlcGVhdDtcclxufVxyXG5cclxuLy8gYmcgLSBqdXN0IHVybFxyXG5AbWl4aW4gYmctdXJsKCR1cmwpIHtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHVybCk7fVxyXG5cclxuLy8gYmcgLSBubyB1cmxcclxuQG1peGluIGJnLW5vX3VybCgkcG9zaXRpb24sICRyZXBlYXQsICRhdHRhY2htZW50KSB7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6ICRhdHRhY2htZW50O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHBvc2l0aW9uO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6ICRyZXBlYXQ7XHJcbn1cclxuXHJcbi8vIGJnIC0gc2l6ZVxyXG5AbWl4aW4gYmctc2l6ZSgkYmctc2l6ZSkge1xyXG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG4gICAgICAgLW1vei1iYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG4gICAgICAgICAtby1iYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICAgICRiZy1zaXplO1xyXG59XHJcblxyXG5AbWl4aW4gYmFja2dyb3VuZC1ncmFkaWVudCgkZ3JhZGllbnQtY29sb3IsICRzdGFydC1ncmFkaWVudDogMCUsICRzdG9wLWdyYWRpZW50OiAxMDAlLCAkc3RhcnQtcG9zOiB0b3AsICRzdG9wLXBvczogYm90dG9tKSB7XHJcblx0YmFja2dyb3VuZDogJGdyYWRpZW50LWNvbG9yOyAvKiBPbGQgYnJvd3NlcnMgKi9cclxuXHQvKiBJRTkgU1ZHLCBuZWVkcyBjb25kaXRpb25hbCBvdmVycmlkZSBvZiAnZmlsdGVyJyB0byAnbm9uZScgKi9cclxuXHRiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUEvUGdvOGMzWm5JSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkMmxrZEdnOUlqRXdNQ1VpSUdobGFXZG9kRDBpTVRBd0pTSWdkbWxsZDBKdmVEMGlNQ0F3SURFZ01TSWdjSEpsYzJWeWRtVkJjM0JsWTNSU1lYUnBiejBpYm05dVpTSStDaUFnUEd4cGJtVmhja2R5WVdScFpXNTBJR2xrUFNKbmNtRmtMWFZqWjJjdFoyVnVaWEpoZEdWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnZURFOUlqQWxJaUI1TVQwaU1DVWlJSGd5UFNJd0pTSWdlVEk5SWpFd01DVWlQZ29nSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SlNJZ2MzUnZjQzFqYjJ4dmNqMGlJekZsTlRjNU9TSWdjM1J2Y0MxdmNHRmphWFI1UFNJeElpOCtDaUFnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU0zWkdJNVpUZ2lJSE4wYjNBdGIzQmhZMmwwZVQwaU1TSXZQZ29nSUR3dmJHbHVaV0Z5UjNKaFpHbGxiblErQ2lBZ1BISmxZM1FnZUQwaU1DSWdlVDBpTUNJZ2QybGtkR2c5SWpFaUlHaGxhV2RvZEQwaU1TSWdabWxzYkQwaWRYSnNLQ05uY21Ga0xYVmpaMmN0WjJWdVpYSmhkR1ZrS1NJZ0x6NEtQQzl6ZG1jKyk7XHJcblx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LXBvcywgJGdyYWRpZW50LWNvbG9yICRzdGFydC1ncmFkaWVudCwgZGFya2VuKCRncmFkaWVudC1jb2xvciwgNiUpICRzdG9wLWdyYWRpZW50KTsgLyogRkYzLjYrICovXHJcblx0YmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgJHN0YXJ0LXBvcywgbGVmdCAkc3RvcC1wb3MsIGNvbG9yLXN0b3AoMCUsJGdyYWRpZW50LWNvbG9yKSwgY29sb3Itc3RvcCgkc3RvcC1ncmFkaWVudCxkYXJrZW4oJGdyYWRpZW50LWNvbG9yLCA2JSkpKTsgLyogQ2hyb21lLFNhZmFyaTQrICovXHJcblx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LXBvcywgJGdyYWRpZW50LWNvbG9yICRzdGFydC1ncmFkaWVudCxkYXJrZW4oJGdyYWRpZW50LWNvbG9yLCA2JSkgJHN0b3AtZ3JhZGllbnQpOyAvKiBDaHJvbWUxMCssU2FmYXJpNS4xKyAqL1xyXG5cdGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgkc3RhcnQtcG9zLCAkZ3JhZGllbnQtY29sb3IgJHN0YXJ0LWdyYWRpZW50LGRhcmtlbigkZ3JhZGllbnQtY29sb3IsIDYlKSAkc3RvcC1ncmFkaWVudCk7IC8qIE9wZXJhIDExLjEwKyAqL1xyXG5cdGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LXBvcywgJGdyYWRpZW50LWNvbG9yICRzdGFydC1ncmFkaWVudCxkYXJrZW4oJGdyYWRpZW50LWNvbG9yLCA2JSkgJHN0b3AtZ3JhZGllbnQpOyAvKiBJRTEwKyAqL1xyXG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byAkc3RvcC1wb3MsICRncmFkaWVudC1jb2xvciAkc3RhcnQtZ3JhZGllbnQsIGRhcmtlbigkZ3JhZGllbnQtY29sb3IsIDYlKSAkc3RvcC1ncmFkaWVudCk7IC8qIFczQyAqL1xyXG5cdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMWU1Nzk5JywgZW5kQ29sb3JzdHI9JyM3ZGI5ZTgnLEdyYWRpZW50VHlwZT0wICk7IC8qIElFNi04ICovXHJcblx0dHJhbnNpdGlvbjogYWxsIC41cyBlYXNlO1xyXG59XHJcblxyXG5AbWl4aW4gZm9udC13ZWlnaHQtbm9ybWFsIHtcclxuXHRmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4gfVxyXG4gQG1peGluIGZvbnQtd2VpZ2h0LWxpZ2h0IHtcclxuXHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWxpZ2h0O1xyXG4gfVxyXG4gIEBtaXhpbiBmb250LXdlaWdodC1ib2xkIHtcclxuXHRmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuIH1cclxuXHJcbkBtaXhpbiBzcHJpdGUoJHdpZHRoLCAkaGVpZ2h0LCAkeC1wb3MsICR5LXBvcykge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQmOmJlZm9yZXtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL3Nwcml0ZS5wbmcnKTtcclxuXHRcdHdpZHRoOiAkd2lkdGg7XHJcblx0XHRoZWlnaHQ6ICRoZWlnaHQ7XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkeC1wb3MgJHktcG9zO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAkc3ByaXRlLXcgJHNwcml0ZS1oO1xyXG5cdFx0QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEpLCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMyAvIDIpLCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE0NGRwcHgpIHtcclxuXHQgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL3Nwcml0ZUAyeC5wbmcnKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiB2ZW5kb3ItcHJlZml4KCR2ZW5kb3Itc3R5bGUsICR2ZW5kb3ItYXJndW1lbnQpe1xyXG5cdC13ZWJraXQtI3skdmVuZG9yLXN0eWxlfTojeyR2ZW5kb3ItYXJndW1lbnR9O1xyXG5cdC1tb3otI3skdmVuZG9yLXN0eWxlfTojeyR2ZW5kb3ItYXJndW1lbnR9O1xyXG5cdC1tcy0jeyR2ZW5kb3Itc3R5bGV9OiN7JHZlbmRvci1hcmd1bWVudH07XHJcblx0LW8tI3skdmVuZG9yLXN0eWxlfTojeyR2ZW5kb3ItYXJndW1lbnR9O1xyXG5cdCN7JHZlbmRvci1zdHlsZX06I3skdmVuZG9yLWFyZ3VtZW50fTtcclxufVxyXG5cclxuLy8gdHJhbnNpdGlvbnNcclxuIFxyXG5AbWl4aW4gdHJhbnNpdGlvbigkdmFsdWVzLi4uKSB7IFxyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkdmFsdWVzO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkdmFsdWVzO1xyXG4gICAgLW8tdHJhbnNpdGlvbjogJHZhbHVlcztcclxuICAgIHRyYW5zaXRpb246ICR2YWx1ZXM7XHJcbn1cclxuXHJcbi8vIGZvbnRhd2Vzb21lIHdpdGhvdXQgdGhlIGNsYXNzXHJcblxyXG5AbWl4aW4gZm9udGF3ZXNvbWUoKSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XHJcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcclxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxufVxyXG4iLCIvKiBCUkVBS1BPSU5UUyAmIEVNIFFVSUNLVklFV1xyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4xZW0gPSAxNnB4XHJcbjJlbSA9IDMycHhcclxuM2VtID0gNDhweFxyXG40ZW0gPSA2NHB4XHJcblxyXG4wLjA2MjVlbSAgID0gICAgICAgMXB4XHJcbjAuMTI1ZW0gICAgPSAgICAgICAycHhcclxuMC4xNTYyNWVtICA9ICAgICAgIDIuNXB4XHJcbjAuMTg3NWVtICAgPSAgICAgICAzcHhcclxuMC4zMTI1ZW0gICA9ICAgICAgIDVweCBcclxuMC42MjVlbSAgICA9ICAgICAgMTBweFxyXG4wLjkzNzVlbSAgID0gICAgICAxNXB4XHJcbjEuMjVlbSAgICAgPSAgICAgIDIwcHhcclxuMS41NjI1ZW0gICA9ICAgICAgMjVweFxyXG4yLjVlbSAgICAgID0gICAgICA0MHB4XHJcbjMuMTI1ZW0gICAgPSAgICAgIDUwcHhcclxuMy4zNzVlbTsgICA9ICAgICAgNTRweCAtIGJhY2stdG8tdG9wIGJvdHRvbSArIGJvdHRvbSBuYXZiYXIgaGVpZ2h0XHJcbjQuNjg3NWVtICAgPSAgICAgIDc1cHhcclxuNi4yNWVtICAgICA9ICAgICAxMDBweFxyXG5cclxuMjBlbSA9ICAzMjBweCAtIGlQaG9uZSA1XHJcbjMwZW0gPSAgNDgwcHhcclxuNDBlbSA9ICA2NDBweCAtIGZvdW5kYXRpb24gbWVkaXVtXHJcbjUwZW0gPSAgODAwcHhcclxuNjBlbSA9ICA5NjBweFxyXG42NGVtID0gMTAyNHB4IC0gaVBhZCAvIGZvdW5kYXRpb24gbGFyZ2VcclxuNzBlbSA9IDExMjBweFxyXG44MGVtID0gMTI4MHB4XHJcblxyXG42My45Mzc1ZW0gPSAgICAxMDIzcHggLSBzaW5nbGUgcGFnZSAtIGdvYWwgdGl0bGUgc3dpdGNoIHRvIHRhYmxldCB2aWV3XHJcbjgxLjI1ZW0gICA9ICAgIDEzMDBweFxyXG44Ny41ZW0gICAgPSAgICAxNDAwcHggLSB3aGVyZSBHT1ZFUk5NRU5UIG92ZXJsYXBzIGVkZ2VcclxuXHJcbiovXHJcblxyXG4vLyBGT1VOREFUSU9OIEJSRUFLUE9JTlRTXHJcblxyXG4kc21hbGwtdG9wLWJyZWFrcG9pbnQ6IDM5LjkzNzVlbTtcclxuJG1lZGl1bS1ib3R0b20tYnJlYWtwb2ludDogNDBlbTtcclxuJG1lZGl1bS10b3AtYnJlYWtwb2ludDogNjMuOTM3NWVtO1xyXG4kbGFyZ2UtYm90dG9tLWJyZWFrcG9pbnQ6IDY0ZW07XHJcbiRsYXJnZS10b3AtYnJlYWtwb2ludDogNzQuOTM3NWVtO1xyXG5cclxuLy8gbWVkaWEgcXVlcnkgdmFyaWFibGVzXHJcblxyXG4vLyBVc2FnZTogIEBtZWRpYSAjeyRzbWFsbC1vbmx5fVxyXG4vLyBvdXRwdXQ6IFwiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKVxyXG4kc21hbGwtb25seTogXCJzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7ICRzbWFsbC10b3AtYnJlYWtwb2ludCB9KVwiO1xyXG4kbWVkaXVtLXVwOiBcInNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3sgJG1lZGl1bS1ib3R0b20tYnJlYWtwb2ludCB9KVwiO1xyXG4kbWVkaXVtLWRvd246IFwic2NyZWVuIGFuZCAobWF4LXdpZHRoIDogI3sgJG1lZGl1bS10b3AtYnJlYWtwb2ludCB9KVwiO1xyXG4kbWVkaXVtLW9ubHk6IFwic2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyAkbWVkaXVtLWJvdHRvbS1icmVha3BvaW50IH0pIGFuZCAobWF4LXdpZHRoOiAkbWVkaXVtLXRvcC1icmVha3BvaW50KVwiO1xyXG4kbGFyZ2UtZG93bjogXCJzY3JlZW4gYW5kIChtYXgtd2lkdGggOiAjeyAkbGFyZ2UtdG9wLWJyZWFrcG9pbnQgfSlcIjtcclxuJGxhcmdlLXVwOiBcInNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3sgJGxhcmdlLWJvdHRvbS1icmVha3BvaW50IH0pXCI7XHJcbiRsYXJnZS1vbmx5OiBcInNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3sgJGxhcmdlLWJvdHRvbS1icmVha3BvaW50IH0pIGFuZCAobWF4LXdpZHRoOiAjeyAkbGFyZ2UtdG9wLWJyZWFrcG9pbnQgfSlcIjtcclxuXHJcblxyXG4vKiBTbWFsbCBvbmx5ICovXHJcbi8vQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHNtYWxsLXRvcC1icmVha3BvaW50KSB7fVxyXG5cclxuLyogTWVkaXVtIGFuZCB1cCAqL1xyXG4vL0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHt9XHJcblxyXG4vKiBNZWRpdW0gb25seSAqL1xyXG4vL0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHt9XHJcblxyXG4vKiBMYXJnZSBhbmQgdXAgKi9cclxuLy9AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7fVxyXG5cclxuLyogTGFyZ2Ugb25seSAqL1xyXG4vL0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHt9XHJcblxyXG5cclxuLy8gRk9VTkRBVElPTiBCUkVBS1BPSU5UIE1JWElOXHJcblxyXG4uZWxlbWVudCB7XHJcbiAgICAvLyBPbmx5IGFmZmVjdHMgbWVkaXVtIHNjcmVlbnMgYW5kIGxhcmdlclxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgIC8vIEFsbCBDU1MgaW4gaGVyZSBnb2VzIGluc2lkZSB0aGUgbWVkaWEgcXVlcnlcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qKiBEZWZpbmUgd2lkdGggVmFsdWVzIGZvciBKUyByZWZlcmVuY2UgKiovXHJcbi53aWR0aC1kZWZpbml0aW9ucyB7XHJcbiAgICB2aXNpYmlsaXR5IDogaGlkZGVuO1xyXG4gICAgZGl2IHt2aXNpYmlsaXR5IDogaGlkZGVuO31cclxuICAgIC53aWR0aC1zbWFsbCB7d2lkdGggOiAkc21hbGwtdG9wLWJyZWFrcG9pbnQ7fVxyXG4gICAgLndpZHRoLW1lZGl1bSB7d2lkdGggOiAkbWVkaXVtLXRvcC1icmVha3BvaW50O31cclxuICAgIC53aWR0aC1sYXJnZSB7d2lkdGggOiAkbGFyZ2UtdG9wLWJyZWFrcG9pbnQ7fVxyXG59XHJcblxyXG5cclxuLy8gTU9CSUxFWkUgLSBxdWljayBuIGRpcnR5XHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4vLyBleHRyYSBzbWFsbCAtIGlQaG9uZTVcclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjBlbSkge1xyXG4gICAgLndyYXBwLTEwMCAgICAgICAgeyBwYWRkaW5nOiAwLjkzNzVlbSAwLjYyNWVtOyB9IC8vID0gMTVweCAxMHB4XHJcbiAgICAvLyAucm93ICAgICAgICAgICAgICB7IHBhZGRpbmctbGVmdDogMC41ZW07IHBhZGRpbmctcmlnaHQ6IDAuNWVtOyB9XHJcbiAgICAvLyAuY29sdW1uLCAuY29sdW1ucyB7IHBhZGRpbmctbGVmdDogMDsgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cclxuICAgIC8vIC5yb3cgLnJvdyAgICAgICAgIHsgbWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogMDsgfVxyXG59XHJcbi8vIHNtYWxsIG9ubHlcclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDoyMC4wMWVtKSBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XHJcbiAgICAud3JhcHAtMTAwICAgICAgICB7IHBhZGRpbmc6IDEuMjVlbSAwLjYyNWVtOyB9IC8vID0gMjBweCAxMHB4XHJcbiAgICAvLyAucm93ICAgICAgICAgICAgICB7IHBhZGRpbmctbGVmdDogMS41ZW07IHBhZGRpbmctcmlnaHQ6IDEuNWVtOyB9XHJcbiAgICAvLyAuY29sdW1uLCAuY29sdW1ucyB7IHBhZGRpbmctbGVmdDogMDsgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cclxufVxyXG4vLyBtZWRpdW0gb25seVxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XHJcbiAgICAvLyAucm93ICAgICAgICAgICAgICB7IHBhZGRpbmctbGVmdDogMmVtOyBwYWRkaW5nLXJpZ2h0OiAyZW07IH1cclxufVxyXG4vLyBsYXJnZSBvbmx5XHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcclxuICAgIC8vIC5yb3cgICAgICAgICAgICAgIHsgcGFkZGluZy1sZWZ0OiAyZW07IHBhZGRpbmctcmlnaHQ6IDJlbTsgfVxyXG59IiwiLy8gSEVMUEVSU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBcclxuXHJcbi8vIFBBRERJTkcgKyBNQVJHSU4gSEVMUEVSIENMQVNTRVNcclxuXHJcbi5tdDI1IHttYXJnaW4tdG9wOiAyNXB4O31cclxuLm1iMjUge21hcmdpbi1ib3R0b206IDI1cHg7fVxyXG4ubWI3NSB7bWFyZ2luLWJvdHRvbTogNzVweDt9XHJcbi5tdGI3NSB7bWFyZ2luLXRvcDogNzVweDsgbWFyZ2luLWJvdHRvbTogNzVweDt9XHJcblxyXG4ucHQwIHtwYWRkaW5nLXRvcDowcHggIWltcG9ydGFudDt9XHJcbi5wMTAge3BhZGRpbmc6MTBweDt9XHJcbi5wMTUge3BhZGRpbmc6MTVweDt9XHJcbi5wMjUge3BhZGRpbmc6MjVweDt9XHJcbi5wNTAge3BhZGRpbmc6IDUwcHg7fVxyXG5cclxuLnB0MTAge3BhZGRpbmctdG9wOiAxMHB4O31cclxuLnBiMTAge3BhZGRpbmctYm90dG9tOiAxMHB4O31cclxuLnB0YjEwIHtwYWRkaW5nLXRvcDoxMHB4OyBwYWRkaW5nLWJvdHRvbTogMTBweDt9XHJcblxyXG4ucHQxNSB7cGFkZGluZy10b3A6MTVweDt9XHJcbi5wYjE1IHtwYWRkaW5nLWJvdHRvbToxNXB4O31cclxuLnByMTUge3BhZGRpbmctcmlnaHQ6MTVweDt9XHJcbi5wdGIxNSB7cGFkZGluZy10b3A6MTVweDsgcGFkZGluZy1ib3R0b206IDE1cHg7fVxyXG5cclxuLnB0MjUge3BhZGRpbmctdG9wOjI1cHg7fVxyXG4ucGIyNSB7cGFkZGluZy1ib3R0b206MjVweDt9XHJcbi5wdGIyNSB7cGFkZGluZy10b3A6MjVweDsgcGFkZGluZy1ib3R0b206MjVweDt9XHJcblxyXG4ucHQ1MCB7cGFkZGluZy10b3A6NTBweDt9XHJcbi5wYjUwIHtwYWRkaW5nLWJvdHRvbTo1MHB4O31cclxuLnB0YjUwIHtwYWRkaW5nLXRvcDo1MHB4OyBwYWRkaW5nLWJvdHRvbTo1MHB4O31cclxuLnB0bHI1MCB7cGFkZGluZy10b3A6IDUwcHg7IHBhZGRpbmctbGVmdDogNTBweDsgcGFkZGluZy1yaWdodDogNTBweDt9XHJcbi5wdGJsNTAge3BhZGRpbmctdG9wOjUwcHg7IHBhZGRpbmctYm90dG9tOjUwcHg7IHBhZGRpbmctbGVmdDogNTBweDt9XHJcblxyXG4ucHQ3NSB7cGFkZGluZy10b3A6NzVweDt9XHJcbi5wdGI3NSB7cGFkZGluZy10b3A6NzVweDsgcGFkZGluZy1ib3R0b206NzVweDt9XHJcblxyXG4ucHQxMDAge3BhZGRpbmctdG9wOjEwMHB4O31cclxuLnBiMTAwIHtwYWRkaW5nLWJvdHRvbToxMDBweCAhaW1wb3J0YW50O31cclxuLnB0YjEwMCB7cGFkZGluZy10b3A6MTAwcHg7IHBhZGRpbmctYm90dG9tOjEwMHB4O31cclxuXHJcbi5wYWR3cmFwIHtwYWRkaW5nOiAxMHB4O31cclxuXHJcblxyXG4vLyBDRU5URVJJTkcgXHJcbi50eHQtY250ciB7dGV4dC1hbGlnbjogY2VudGVyO30gLy9tYXliZSB1c2UgZm91bmRhdGlvbnM/IHRleHQtY2VudGVyXHJcbi5jZW50ZXJlZCB7ZGlzcGxheTpibG9jazsgbWFyZ2luOiAwIGF1dG87fVxyXG5cclxuLy8gUE9TSVRJT046IFJFTEFUSVZFXHJcbi5yZWxhdGl2ZSB7cG9zaXRpb246IHJlbGF0aXZlO31cclxuXHJcbi8vIEhJREVcclxuLmRpc3BsYXktbm9uZSB7ZGlzcGxheTogbm9uZTt9XHJcblxyXG4vLyBJTUcgLSBSRVNQT05TSVZFXHJcbmltZyB7XHJcbiAgICAmLnJlc3BvbnNpdmUgeyBkaXNwbGF5OiBibG9jazsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cclxuICAgICYuYWxpZ25yaWdodCB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLyB6LWluZGV4XHJcbi56LXRvcCB7cG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OjM7IG9wYWNpdHk6IDAuOTk7fVxyXG4uejUwMCB7ei1pbmRleDogNTAwO31cclxuXHJcbi8vICBQSVBFIChpZS4gXCJ8XCIgKVxyXG4ucGlwZSB7Zm9udC1zaXplOjEuNTYyNWVtOyBwYWRkaW5nOjAgMC45Mzc1ZW07IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7fVxyXG5zbWFsbCB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgLnBpcGUge2ZvbnQtc2l6ZToxLjVlbTsgcGFkZGluZzowIDAuOTM3NWVtOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBsaW5lLWhlaWdodDogMS41ZW07fVxyXG59XHJcblxyXG4vLyBmaXggb3ZlcmxheVxyXG4uc2VhcmNoLW92ZXJsYXkge3otaW5kZXg6IDE7fVxyXG5cclxuLy8gRk9VTkRBVElPTiBUT0dHTEVTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi5pcy1oaWRkZW4ge2Rpc3BsYXk6IG5vbmU7fVxyXG4uaXMtZm91bmQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAvKiB0cmFuc2l0aW9uIHZpc2liaWxpdHkgKi9cclxuICAgIEBpbmNsdWRlIGFuaW0odmlzaWJpbGl0eSAwcyk7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG59XHJcbi5yZWFkbW9yZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXRvcDoyNXB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206MjVweDtcclxuICAgIGEge2NvbG9yOiAkd2hpdGU7IEBpbmNsdWRlIGFuaW0oY29sb3IgMC4zcyBlYXNlKTsgQGluY2x1ZGUgaG92ZXIoKSB7Y29sb3I6JHNsYXRlO30gfVxyXG59XHJcblxyXG4vLyBFWFRFUk5BTCBMSU5LIElDT04gIFxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4uZXh0ZXJuYWxfbGluayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDpcIlxcZjA4ZVwiOyAvLyBcXGYxNGMgPSBleHRlcm5hbCBsaW5rIHNxdWFyZSB8IFxcZjA4ZSA9IGV4dGVybmFsIGxpbmsgb3V0bGluZVxyXG4gICAgICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcclxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XHJcbiAgICAgICAgY29sb3I6ICRncnlzbHZyO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwcHg7IHJpZ2h0OjBweDtcclxuICAgICAgICBwYWRkaW5nOiA3cHggMjVweDtcclxuICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTtcclxuICAgIH1cclxufVxyXG5cclxuLm5hdi1pcy1vcGVuIHtcclxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxufSIsIi8vIENPTlRFTlQgV1JBUFBFUlNcclxuLndyYXAge1xyXG4gICAgIGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7XHJcbn1cclxuXHJcbi53cmFwcCB7cGFkZGluZy10b3A6IDUwcHg7IHBhZGRpbmctYm90dG9tOiA1MHB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO31cclxuLndyYXBwLTEwMCB7cGFkZGluZy10b3A6IDEwMHB4OyBwYWRkaW5nLWJvdHRvbTogMTAwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG4ud3JhcHAtMTUwIHtwYWRkaW5nLXRvcDogMTUwcHg7IHBhZGRpbmctYm90dG9tOiAxNTBweDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgQGluY2x1ZGUgY2xlYXIoKTt9XHJcbi53cmFwcC0yMDAge3BhZGRpbmctdG9wOiAyMDBweDsgcGFkZGluZy1ib3R0b206IDIwMHB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO31cclxuLndyYXBtIHttYXJnaW4tdG9wOiAxMDBweDsgbWFyZ2luLWJvdHRvbTogMTUwcHg7IGRpc3BsYXk6YmxvY2s7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG4ud3JhcHAtbm9wYWQge3BhZGRpbmctdG9wOiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG4ud3JhcHAtbm9wYWQtMTUwIHtwYWRkaW5nLXRvcDogMHB4OyBwYWRkaW5nLWJvdHRvbTogMTUwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IEBpbmNsdWRlIGNsZWFyKCk7fVxyXG5cclxuLy8gbXVzdCBhcHBlYXIgYmVmb3JlIGJhY2tncm91bmQgc3R1ZmZcclxuLndyYXBwLXNlYXJjaCB7XHJcbiAgICBwYWRkaW5nOiA2LjI1ZW0gMTUlIDZlbTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIEBpbmNsdWRlIGNsZWFyKCk7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XHJcbiAgICB9XHJcbn1cclxuLndyYXBwLWxvY2F0aW9uIHtcclxuICAgIHBhZGRpbmctdG9wOiAwcHg7IC8vIDE1NXB4OyAvLyAyMzUgLSBub3c6IDIzNSAtIDYyKGxvYyBoZWlnaHQpXHJcbiAgICBwYWRkaW5nLWJvdHRvbTowcHg7XHJcbiAgICBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBAaW5jbHVkZSBjbGVhcigpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAxLjI1ZW07IHJpZ2h0OiAwcHg7XHJcbn1cclxuXHJcbi53cmFwcF9nb2VzX3NxdWlzaCB7XHJcbiAgICBwYWRkaW5nOiA0LjY4NzVlbSAwOyAvLyA9IDc1cHhcclxuICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgQGluY2x1ZGUgY2xlYXIoKTtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNDVyZW07XHJcbiAgICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgIFNoYWRvd3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi5zaGFkb3cge1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCAxcHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjgzKTtcclxuICAgICAtbW96LWJveC1zaGFkb3c6IDJweCAycHggMXB4IHJnYmEoMTUzLCAxNTMsIDE1MywgMC44Myk7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDFweCByZ2JhKDE1MywgMTUzLCAxNTMsIDAuODMpO1xyXG59XHJcbi5zaGFkb3ctaW5zZXQge1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDEycHggIzAwMDAwMDtcclxuICAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAxMnB4ICMwMDAwMDA7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMTJweCAjMDAwMDAwO1xyXG59XHJcbi5zaGFkb3ctY2VudGVyIHtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggNnB4IC02cHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjgzKTtcclxuICAgICAgIC1tb3otYm94LXNoYWRvdzogMCA4cHggNnB4IC02cHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjgzKTtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggNnB4IC02cHggcmdiYSgxNTMsIDE1MywgMTUzLCAwLjgzKTtcclxufVxyXG5cclxuLnNoYWRvdy1jZW50ZXItMiB7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggNnB4IC02cHggIzc3NztcclxuICAgICAtbW96LWJveC1zaGFkb3c6IDAgMTBweCA2cHggLTZweCAjNzc3O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDZweCAtNnB4ICM3Nzc7XHJcbn1cclxuXHJcblxyXG4uc2hhZG93LXRiIHtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XHJcbiAgICAgICAtbW96LWJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAwIDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcclxufVxyXG4uc2hhZG93LXRiOmJlZm9yZSwgLnNoYWRvdy10YjphZnRlciB7XHJcbiAgICBjb250ZW50OlwiXCI7XHJcbiAgICB6LWluZGV4Oi0xO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIC1tb3otYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICBib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIHRvcDowO1xyXG4gICAgYm90dG9tOjA7XHJcbiAgICBsZWZ0OjEwcHg7XHJcbiAgICByaWdodDoxMHB4O1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOjEwMHB4IC8gMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6MTAwcHggLyAxMHB4O1xyXG59XHJcbi5zaGFkb3ctdGI6YWZ0ZXIge1xyXG4gIHJpZ2h0OjEwcHg7XHJcbiAgICBsZWZ0OmF1dG87XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTpza2V3KDhkZWcpIHJvdGF0ZSgzZGVnKTtcclxuICAgICAgIC1tb3otdHJhbnNmb3JtOnNrZXcoOGRlZykgcm90YXRlKDNkZWcpO1xyXG4gICAgICAgIC1tcy10cmFuc2Zvcm06c2tldyg4ZGVnKSByb3RhdGUoM2RlZyk7XHJcbiAgICAgICAgIC1vLXRyYW5zZm9ybTpza2V3KDhkZWcpIHJvdGF0ZSgzZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnNrZXcoOGRlZykgcm90YXRlKDNkZWcpO1xyXG59XHJcblxyXG4uc2hhZG93LXBhZ2Uge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4uc2hhZG93LXBhZ2U6YWZ0ZXIge1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGJvdHRvbTogMTVweDtcclxuICByaWdodDogMTBweDtcclxuICBsZWZ0OiBhdXRvO1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgdG9wOiA4MCU7XHJcbiAgbWF4LXdpZHRoOjMwMHB4O1xyXG4gIGJhY2tncm91bmQ6ICM3Nzc7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDE1cHggMTBweCAjNzc3O1xyXG4gIC1tb3otYm94LXNoYWRvdzogMCAxNXB4IDEwcHggIzc3NztcclxuICBib3gtc2hhZG93OiAwIDE1cHggMTBweCAjNzc3O1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoM2RlZyk7XHJcbn1cclxuXHJcbi5zaGFkb3ctY3VydmUge1xyXG4gICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCAwIDQwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0O1xyXG4gICAgICAgLW1vei1ib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDAgNDBweCByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XHJcbn1cclxuLnNoYWRvdy1jdXJ2ZTpiZWZvcmUsIC5zaGFkb3ctY3VydmU6YWZ0ZXIge1xyXG4gICAgY29udGVudDpcIlwiO1xyXG4gICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICB6LWluZGV4Oi0xO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIC1tb3otYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDAsMCwwLDAuOCk7XHJcbiAgICBib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwwLDAsMC44KTtcclxuICAgIHRvcDo1MCU7XHJcbiAgICBib3R0b206MDtcclxuICAgIGxlZnQ6MTBweDtcclxuICAgIHJpZ2h0OjEwcHg7XHJcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6MTAwcHggLyAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czoxMDBweCAvIDEwcHg7XHJcbn0iLCIvKiBCQUNLR1JPVU5EU1xyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gYmFja2dyb3VuZDogY29sb3IgaW1hZ2UgcG9zaXRpb24vc2l6ZSByZXBlYXQgb3JpZ2luIGNsaXAgYXR0YWNobWVudCBpbml0aWFsfGluaGVyaXQ7XHJcblxyXG4uYmcge1xyXG4gICAgLy8gYWxsb3dzIDpiZWZvcmUgdG8gaGF2ZSBmdWxsIHNjcmVlbiBiZ1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLy8gei1pbmRleDogMjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgIHBhZGRpbmc6IDkwcHggMDtcclxuXHJcbiAgICBAaW5jbHVkZSBiZy1ub191cmwoY2VudGVyIGNlbnRlciwgbm8tcmVwZWF0LCBzY3JvbGwpO1xyXG4gICAgQGluY2x1ZGUgYmctc2l6ZShjb3Zlcik7XHJcbiAgICBAaW5jbHVkZSBmaWx0ZXIoY29udHJhc3QoMS4xKSk7XHJcbiAgICBAaW5jbHVkZSBhbmltKGFsbCBlYXNlIDFzKTtcclxuXHJcbiAgICAmLndyYXBwLXNlYXJjaCB7YmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDt9IC8vIGVuc3VyZSBoZWFkZXIgaW1hZ2VzIGFyZSBmaXhlZFxyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgLy8gYWxsb3dzIG11bHRpLWJnXHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgICAgIHRvcDogMDsgbGVmdDogMDsgYm90dG9tOiAwOyByaWdodDogMDtcclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLCByZ2JhKDAsMCwwLDApLCByZ2JhKDAsMCwwLDAuNDApLCByZ2JhKDAsMCwwLDAuNjApKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJnLW92ZXJsYXkge1xyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC43NSksIHJnYmEoMCwwLDAsMC43NSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNzUpLCByZ2JhKDI1NSwyMjQsMTc4LDAuMjUpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGwgIWltcG9ydGFudDsgXHJcbiAgICAgICAgLndyYXBwLXNlYXJjaCB7YmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGwgIWltcG9ydGFudDt9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGwgIWltcG9ydGFudDsgXHJcbiAgICAgICAgLndyYXBwLXNlYXJjaCB7YmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGwgIWltcG9ydGFudDt9XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge2JhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7fVxyXG59XHJcblxyXG4vLyAgT1VUTElORVMgLSBURVhUIE9WRVIgSU1BR0UgU1RZTEVTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLm91dGxpbmUge1xyXG4gICAgZGlzcGxheTpibG9jaztcclxuICAgIGJvcmRlcjogMC4xMjVlbSBzb2xpZCAkd2h0OyAvLyA9IDJweFxyXG4gICAgcGFkZGluZzogMy4xMjVlbTsgLy8gPSA1MHB4XHJcbiAgICBjb2xvcjogJHdodDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xNzUpO1xyXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBwIHsgY29sb3I6ICR3aHQ7IGZvbnQtd2VpZ2h0OiA3MDA7fVxyXG4gICAgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICAmLm91dGxpbmVfd2h0IHtcclxuICAgICAgICBoMSwgcCB7Y29sb3I6ICR3aHQ7IEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZS1pbi1vdXQpO31cclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgYmFja2dyb3VuZDogJHdodDsgIGgxLCBwIHtjb2xvcjogJHNsYXRlO30gfVxyXG4gICAgfVxyXG4gICAgJi5vdXRsaW5lX3dodF90aXRsZSB7XHJcbiAgICAgICAgaDEsIHAge2NvbG9yOiAkd2h0OyBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICB9XHJcbiAgICAmLm91dGxpbmVfc2xhdGUge1xyXG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzbGF0ZTtcclxuICAgICAgICBoMSwgcCB7IGNvbG9yOiAkc2xhdGU7IEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZS1pbi1vdXQpO31cclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgYmFja2dyb3VuZDogJHdodDsgfVxyXG4gICAgfVxyXG4gICAgJi5vdXRsaW5lX3NsYXRlYWx0IHtcclxuICAgICAgICBoMSwgcCB7IGNvbG9yOiAkd2h0OyBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7IGJhY2tncm91bmQ6ICRzbGF0ZTsgYm9yZGVyOiAwLjEyNWVtIHNvbGlkICRzbGF0ZTsgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxLjVlbTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgICAgICBwYWRkaW5nOiAxLjI1ZW07XHJcbiAgICAgICAgJi5vdXRsaW5lX3dodCB7XHJcbiAgICAgICAgICAgIHAgeyBtYXJnaW4tYm90dG9tOiAwLjI1ZW07IHNtYWxsIHtmb250LXNpemU6IDAuODVyZW07fSB9XHJcbiAgICAgICAgICAgIGgxIHtmb250LXNpemU6IDEuMjVyZW07fVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge3BhZGRpbmc6IDIuNWVtO31cclxufVxyXG5cclxuLy8gRnVsbHNjcmVlbiBiZ1xyXG4uZnVsbCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyAvKiAxMDB2aCAqL1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5yZXZlYWwuZnVsbCB7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbn0iLCIvL1RPRE8gTWFrZSB0aGVzZSAuNDA0LSBleHRlbnRpb25zXHJcbiVfNDA0LXNlYXJjaCB7XHJcbiAgICBjb2xvcjogJG5hdnk7XHJcbiAgICBtaW4taGVpZ2h0OiAxNmVtO1xyXG4gICAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxufVxyXG4lXzQwNC1oZWFkZXIge1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4lXzQwNC13cmFwcCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMjJ2aCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uXzQwNCB7XHJcbiAgICAmX19oZWFkZXIge1xyXG4gICAgICAgIEBleHRlbmQgJV80MDQtaGVhZGVyO1xyXG4gICAgfVxyXG4gICAgJl9fc2VhcmNoIHtcclxuICAgICAgICBAZXh0ZW5kICVfNDA0LXNlYXJjaDtcclxuICAgIH1cclxuICAgICZfX3dyYXBwIHtcclxuICAgICAgICBAZXh0ZW5kICVfNDA0LXdyYXBwO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICBUb3BpY3MgLyBDb2xsZWN0aW9ucyAvIEd1aWRlcyAvIEFDRiBDdXN0b20gUGFnZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLnRlbXBsYXRlX19hY2YtcGFnZSB7XHJcbiAgICAjY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vICBBUlRJQ0xFIC0gdXNlZCBpbiBzaW5nbGUsIHRvcGljcywgJiBwYWdlIHRlbXBsYXRlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4uYXJ0aWNsZSB7XHJcbiAgICBoMiB7cGFkZGluZy10b3A6IDIuNXJlbTt9IC8vID0gNDBweFxyXG4gICAgaDMsIGg0IHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTowLjYyNXJlbTtcclxuICAgIH1cclxuICAgIHVsIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBkaXNjICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVlbTtcclxuICAgIH0gLy8gMy4xMjVlbSA9IDUwcHhcclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkgeyBjb2xvcjogJG5hdnkgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBoMiB7cGFkZGluZy10b3A6IDEuNHJlbTsgcGFkZGluZy1ib3R0b206IC4yNXJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAvLyBtYXJnaW4tbGVmdDogMS4ycmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuMnJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJvdyxcclxuICAgICAgICAucm93IC5yb3cge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5hbGVydF9pY29uIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICBmb250LXNpemU6IDVlbTtcclxuICAgICAgICBwYWRkaW5nOiAwLjYyNXJlbTtcclxuICAgIH1cclxufVxyXG4uZmVhdHVyZWQge1xyXG4gICAgJi10aXRsZSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgdWwgbGkge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICAvLyBOT1RFIG1pZ3JhdGVkIGxpbmsgc3R5bGVzIHRvIF9hbmNob3JcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICAgIGNvbG9yOiAkd2h0O1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdodDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gaG9tZXBhZ2UgZmVhdHVyZWQgdG9waWNzXHJcblxyXG4lZmVhdHVyZWQtd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IC0xMHB4O1xyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgICY6aG92ZXIgJWZlYXR1cmVkLWl0ZW0taW5uZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNzUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS1pbm5lciB7XHJcbiAgICBwYWRkaW5nOiAzLjEyNWVtO1xyXG4gICAgY29sb3I6ICNmYWZhZmE7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcclxuICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nOiAxLjVlbTtcclxuICAgICAgICBtaW4taGVpZ2h0OiAyNTBweDtcclxuICAgIH1cclxuICAgIC5iZyAmIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjc1KTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS10aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcclxuICAgIH1cclxuICAgIHNtYWxsIHtcclxuICAgICAgICBmb250LXNpemU6IDUwJTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS1oYWxmIHtcclxuICAgIHdpZHRoOiA1MCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIC8vIG1pbi1oZWlnaHQ6IDYzMHB4O1xyXG5cclxuICAgIC8vIFRPRE8gUmV3cml0ZSBtZWRpYSBxdWVyeSBzbyBAZXh0ZW5kIGNhbiBiZSB1c2VkXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZmVhdHVyZWQtaXRlbS10aGlyZHMge1xyXG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgLy8gbWluLWhlaWdodDogNzMwcHg7XHJcblxyXG4gICAgLy8gVE9ETyBSZXdyaXRlIG1lZGlhIHF1ZXJ5IHNvIEBleHRlbmQgY2FuIGJlIHVzZWRcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmZWF0dXJlZC1pdGVtLWZ1bGwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1pbi1oZWlnaHQ6IG5vbmU7XHJcbn1cclxuXHJcbi8vIGFsbCBmZWF0dXJlZCB0b3BpY3MgcGFydGlhbHNcclxuLmZlYXR1cmVkIHtcclxuICAgICZfX3dyYXBwZXIge1xyXG4gICAgICAgIEBleHRlbmQgJWZlYXR1cmVkLXdyYXBwZXI7XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbTtcclxuICAgICAgICAmLS1pbm5lciB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZlYXR1cmVkLWl0ZW0taW5uZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtLXRpdGxlIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbS10aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLi1jb2wtMiAmIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZmVhdHVyZWQtaXRlbS1oYWxmO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuLWNvbC0zICYge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmZWF0dXJlZC1pdGVtLXRoaXJkcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLyBtb2JpbGUgdG9waWNzIGxheW91dFxyXG4udG9waWNzX2hlYWRlcl9tb2JpbGUge1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtaW4taGVpZ2h0OjEyLjM3NXJlbTsgLy8gPSAxOThweFxyXG4gICAgICAgIC8vIG1heC1oZWlnaHQ6MTIuMzc1cmVtOyAvLyA9IDE5OHB4XHJcbiAgICB9XHJcbn1cclxuLnRvcGljc19oZWFkZXIge1xyXG4gICAgQGV4dGVuZCAud3JhcHBfZ29lc19zcXVpc2g7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIC5yb3cge3BhZGRpbmc6IDA7IG1hcmdpbjogMDt9XHJcbiAgICAgICAgJi5yb3csIC5yb3cgLnJvdyB7cGFkZGluZzowOyBtYXJnaW46MDt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFNVTU1BUllcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLnRvcGljc19oZWFkZXJcclxuLnRvcGljX3N1bW1hcnlfd3JhcHAge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEuNTYyNWVtO1xyXG4gICAgICAgIC5hcnRpY2xlIHttYXJnaW4tYm90dG9tOiAxLjI1ZW07fVxyXG4gICAgfVxyXG59XHJcbi50b3BpY19zdW1tYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6ICR3aHQ7XHJcbiAgICBwYWRkaW5nOiAzLjEyNWVtO1xyXG4gICAgaDEge2ZvbnQtd2VpZ2h0OiA3MDA7fVxyXG4gICAgLnRvcGljX21lbnVfdGl0bGUge21hcmdpbi10b3A6MXJlbTt9XHJcbiAgICAudG9waWNfbWVudSB7IFxyXG4gICAgICAgIGxpID4gYSB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHsgY29sb3I6ICRuYXZ5OyB9XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICAuYmFjay10byB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkgeyBjb2xvcjogJG5hdnk7IH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcclxuICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTsgLy8gMS41NjI1ZW07XHJcbiAgICAgICAgLmNvbHVtbnMge21hcmdpbjogMDsgcGFkZGluZzogMDt9XHJcbiAgICAgICAgLmFydGljbGUge21hcmdpbi1ib3R0b206IDEuMjVlbTt9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgaDEge2ZvbnQtc2l6ZTogMS40ZW07IHBhZGRpbmctYm90dG9tOiAxcmVtO31cclxuICAgICAgICAudG9waWNfc3VtbWFyeV90aXRsZSB7Zm9udC1zaXplOiAwLjk1cmVtOyBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO31cclxuICAgICAgICAvLyAudG9waWNfbWVudSB7IGxpID4gYSB7Zm9udC1zaXplOjAuOTVlbTt9IH1cclxuICAgICAgICAuYXJ0aWNsZSB7bWFyZ2luLWJvdHRvbTogMS4yNWVtO31cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8vIC50b3BpY19zZWN0aW9uc193cmFwcCxcclxuLndyYXBwX2ZlYXR1cmVkX3NlY3Rpb24ge1xyXG4gICAgQGV4dGVuZCAud3JhcHBfZ29lc19zcXVpc2g7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XHJcbiAgICBoMiB7cGFkZGluZy1ib3R0b206IDAuMnJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNDVyZW07XHJcbiAgICAgICAgcCB7cGFkZGluZzogMH1cclxuICAgICAgICBoMiwgaDQge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMCAwLjJyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYXJ0aWNsZV93cmFwcCB7XHJcbiAgICBoMiB7cGFkZGluZzogMS41cmVtIDByZW0gMC4ycmVtOyBtYXJnaW4tYm90dG9tOiAwO31cclxuICAgIGg0IHtwYWRkaW5nOiAwLjVyZW0gMHJlbSAwLjJyZW07IG1hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBwIHtwYWRkaW5nOiAwfVxyXG4gICAgICAgIGgyLCBoNCwgaDUge3BhZGRpbmc6IDEuNXJlbSAwIDAuMnJlbTsgbWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgICAgJi5yb3csICYucm93IC5yb3csIHttYXJnaW46IDAgYXV0bzt9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53cmFwcF9hY3Rpb25zIHtcclxuICAgIEBleHRlbmQgLndyYXBwX2dvZXNfc3F1aXNoO1xyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtwYWRkaW5nLXRvcDogMS43NXJlbTt9XHJcbn1cclxuXHJcbi8vIEFDVElPTiBJVEVNU1xyXG4uYWN0aW9uaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmctYm90dG9tOiAxLjllbTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmLmNvbHVtbnMge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkaXYge1xyXG4gICAgICAgIHBhZGRpbmc6IDEuNTYyNWVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3J5O1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBtaW4taGVpZ2h0OiAxODBweDtcclxuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7IG1pbi1oZWlnaHQ6IDE1MHB4OyB9XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHsgbWluLWhlaWdodDogaW5oZXJpdDsgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBhbmltKGFsbCAwLjNzIGVhc2UpO1xyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDRlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7Ly8gMC42MjVlbSAtID0gMTBweFxyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIC8vc21hbGwgKyBtZWRpdW0gb25seVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtmb250LXNpemU6IDJlbTsgfVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7Zm9udC1zaXplOiAzZW07IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgICYuZXh0ZXJuYWwtaWNvbjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6XCJcXGYwOGVcIjtcclxuICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBmb250LXNpemU6IDEuMTI1ZW07IC8vID0gMThweFxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDBweDsgcmlnaHQ6MHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDAuNDM3NWVtIDEuNTYyNWVtOyAvLyA9IDdweCAyNXB4XHJcbiAgICB9XHJcblxyXG4gICAgJi5ub19leHQgeyAmOmJlZm9yZSB7Y29udGVudDpcIlwiO30gfVxyXG4gICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJG5hdnk7XHJcbiAgICAgICAgICAgIGg1IHsgY29sb3I6ICR3aGl0ZTsgfVxyXG4gICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpiZWZvcmUge2NvbG9yOiAkd2hpdGU7fVxyXG4gICAgfVxyXG59XHJcbiIsIi8vIFNFQVJDSCBXUkFQUEVSXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi5zZWFyY2gtZm9ybSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTs7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIC5yZXN1bHRzIC5yb3cgLnJvdyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoLWlucHV0IHtcclxuICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgLjc1ZW07XHJcbiAgICAgICAgd2lkdGg6IDkwJTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgLjNzO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYnV0dG9uLXdyYXBwZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IC0xcHg7XHJcbiAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICBoZWlnaHQ6IDQycHg7XHJcbiAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgICAgIGhlaWdodDogMzhweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBjb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLm1vcmUtcmVzdWx0cyB7XHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBjdXN0b20gc2VhcmNoIGJyZWFkY3J1bWJzXHJcbiNicmVhZGNydW1iRXh0ZW5zaW9uIHtcclxuICAgIHBhZGRpbmctbGVmdDogNHB4O1xyXG5cclxuICAgIHAge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGZpeCBmb3IgRkYgYW5kIG5vIHRleHQgc2hvd2luZyB1cCBpbiBpbnB1dFxyXG4uc2VhcmNoLWlucHV0IHtcclxuICAgIC8vIGZvbGxvd2luZyBjb2RlIGNvdWxkIGJlIG1vdmVkIGludG8gZ2VuZXJhbCBpbnB1dFxyXG4gICAgcGFkZGluZzogMCAxLjVlbTtcclxufVxyXG5cclxuLnNlYXJjaC1iYXItd3JhcHBlciB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZS1icmlnaHQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBoZWlnaHQ6IDQ4cHg7XHJcbiAgICBwYWRkaW5nOiAycHggMTVweDtcclxuXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgcGFkZGluZzogLjVlbSAxLjVlbSAuNWVtIC41ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbW9kYWwncyBzZWFyY2ggaWNvblxyXG4gICAgLm1vZGFsaWNvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHBhZ2Ugc2VhcmNoIGljb25cclxuICAgIC5wYWdlaWNvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtaGVscGVyIHtcclxuICAgIG1hcmdpbjogNDBweCAwIDAgMjBweDtcclxufVxyXG4uc2VhcmNoLXdyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGlucHV0IHtcclxuICAgICAgICBmb250LXNpemUgOiAxcmVtO1xyXG5cclxuICAgICAgICArIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMjBweDtcclxuICAgIFxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxufVxyXG5cclxuQG1peGluIG11bHRpTGluZUVsbGlwc2lzKCRsaW5lSGVpZ2h0OiAxLjJlbSwgJGxpbmVDb3VudDogMSwgJGJnQ29sb3I6ICR3aGl0ZSkge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZUhlaWdodDtcclxuICAgIG1heC1oZWlnaHQ6ICRsaW5lSGVpZ2h0ICogJGxpbmVDb3VudDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNTVweDtcclxuICAgIHdvcmQtc3BhY2luZzogLTFweDtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJy4uLic7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAxZW07XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMWVtO1xyXG4gICAgICAgIHdpZHRoOiAxZW07XHJcbiAgICAgICAgaGVpZ2h0OiAxZW07XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yZW07XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJnQ29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuJXJlc3VsdHMtcmVndWxhciB7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBtYXJnaW4tYm90dG9tIDogMDtcclxuXHJcbiAgICAvL2ZvciBlbGxpcHNpc1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjc1ZW07XHJcblxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbiVyZXN1bHRzLXNtYWxsIHtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgIGZvbnQtc2l6ZTogLjdyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxufVxyXG5cclxuJXJlc3VsdHMtbGFyZ2Uge1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1ib3R0b206IC42NjY3ZW07XHJcbn1cclxuXHJcblxyXG4ucmVzdWx0cyB7XHJcblxyXG4gICAgLnNvcnQtd3JhcHBlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VsZWN0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtcmV1bHRzLXdyYXBwZXIge1xyXG5cclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG5cclxuICAgICAgICAvLyBwcmUtc2VhcmNoIG1lc3NhZ2VcclxuICAgICAgICAucHJlcmVzdWx0cyB7XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC43NWVtO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHt0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkge3RleHQtYWxpZ246IGNlbnRlcjt9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZXN1bHRzLXRpdGxlIHtcclxuICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLWxhcmdlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdHMtdXJsLFxyXG4gICAgLnJlc3VsdHMtY2F0ZWdvcmllcyB7XHJcbiAgICAgICAgQGV4dGVuZCAlcmVzdWx0cy1zbWFsbDtcclxuICAgIH1cclxuXHJcbiAgICAucmVzdWx0LWRlc2NyaXB0aW9uIHtcclxuICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLXJlZ3VsYXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnF1aWNrLWxpbmtzIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgLy8gc21hbGwgb25seSArIG1lZGl1bSBvbmx5XHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGxlZnQ7XHJcbiAgICAgICAgICAgIHVsIHtwYWRkaW5nLXJpZ2h0IDogMCAhaW1wb3J0YW50O31cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIC8vIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNWVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMyB7cGFkZGluZy1yaWdodDo1MHB4O31cclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAvLyBzbWFsbCBvbmx5ICsgbWVkaXVtIG9ubHlcclxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MS4yNWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpIHtwYWRkaW5nLWJvdHRvbTogMWVtO31cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgcGFkZGluZyA6IDFlbTtcclxuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGdyZWVuO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgICAvLyBAaW5jbHVkZSBhbmltKGFsbCAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgICAgICAgICAvLyAmOjphZnRlciB7QGluY2x1ZGUgYW5pbShhbGwgLjNzIGVhc2UtaW4tb3V0KTt9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyX29ubHkoKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiRncmVlbjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIHAge2NvbG9yOiAkd2hpdGU7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6Zm9jdXMsXHJcbiAgICAgICAgICAgICY6YWN0aXZlLFxyXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoLXJlc3VsdHMge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5O1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC4xODc1ZW0gc29saWQgJGJsdWUtYnJpZ2h0O1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHsgbWFyZ2luLWJvdHRvbTogMmVtOyB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAucG9zdC1kYXRlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAuNWVtO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6MTVweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5yZXN1bHRzLXRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICBAZXh0ZW5kICVyZXN1bHRzLWxhcmdlO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgaDQsIHAsICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGg0LCBwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRpbWUgey8qZm9udC1zaXplOiAxLjJyZW07Ki8gY29sb3I6ICM3MDcyN2Q7fVxyXG5cclxuICAgIC8vIC5wYWdpbmF0aW9uIHtcclxuICAgIC8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAvLyAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAvLyAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG5cclxuICAgIC8vICAgICBsaSB7XHJcbiAgICAvLyAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuXHJcbiAgICAvLyAgICAgICAgIGEsIHNwYW4ge1xyXG4gICAgLy8gICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAvLyAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvLyAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIC8vICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgLy8gICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgLy8gICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAvLyAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICAgIC8vICAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODVyZW07XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgIC8vICAgICAgICAgICAgIH1cclxuXHJcbiAgICAvLyAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICBhLCBhOmZvY3VzLCBhOmhvdmVyLCBzcGFuLCBzcGFuOmZvY3VzLCBzcGFuOmhvdmVyIHtcclxuICAgIC8vICAgICAgICAgICYuY3VycmVudHtcclxuICAgIC8vICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAvLyAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XHJcbiAgICAvLyAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlO1xyXG4gICAgLy8gICAgICAgICB9XHJcblxyXG4gICAgLy8gICAgICAgICAmLmRvdHMge1xyXG4gICAgLy8gICAgICAgICAgICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICAvLyAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgLy8gICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JleTtcclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxufVxyXG5cclxuLnJlc3VsdHN3cmFwIHtcclxuICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICAucGFnaW5hdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcbiAgICAubm8tcmVzdWx0cyB7XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyZW07XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc3VsdHMge1xyXG4gICAgICAgID4gaDQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZhOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IC41ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwidGFibGUuY2FiVHJhdmVsXHJcbntcclxuXHRtYXJnaW4tbGVmdDogYXV0bztcclxuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7IFxyXG5cdFx0Zm9udC1zaXplOiAuOHJlbTtcclxuXHR9XHJcbn1cclxuXHJcbnRhYmxlLmNhYlRyYXZlbCB0ciB0ZDpudGgtY2hpbGQoNCkgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxyXG5cclxudGFibGUuY2FiVHJhdmVsIHRyIHRoIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxyXG5cclxuLmxlZ2VuZFRleHRcclxue1xyXG5cdGZvbnQtc2l6ZTogLjg4ZW07XHJcblx0bGluZS1oZWlnaHQ6IDMycHg7XHJcbn1cclxuXHJcbi50YWJDb2xvcjEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzQjY2OyB9XHJcblxyXG4udGFiQ29sb3IyIHsgYmFja2dyb3VuZC1jb2xvcjogIzhkOGMzNTsgfVxyXG5cclxuLnRhYkNvbG9yMyB7IGJhY2tncm91bmQtY29sb3I6ICNDQTlBMzE7IH1cclxuXHJcbi50YWJDb2xvcjQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjY2E3MTMxOyB9XHJcblxyXG4udGFiQ29sb3I1IHsgYmFja2dyb3VuZC1jb2xvcjogI2NjM2MyZjsgfVxyXG5cclxuLmxlZ2VuZEJsb2NrXHJcbntcclxuXHR3aWR0aDogMThweDtcclxuXHRoZWlnaHQ6IDIycHg7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0bWFyZ2luLXRvcDogNHB4O1xyXG5cdGZsb2F0OiBsZWZ0O1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmhpZGVNZWQgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG5kaXYuZ3JpZC1jZWxsXHJcbntcclxuXHR3aWR0aDogMjAlO1xyXG5cdGhlaWdodDogMTZweDtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRmbG9hdDogbGVmdDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbmRpdi5ncmlkLWxhYmVsXHJcbntcclxuXHR3aWR0aDogNTBweDtcclxuXHRoZWlnaHQ6IDE2cHg7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IC0yNXB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRmb250LXNpemU6IDExcHg7XHJcblx0cGFkZGluZy10b3A6IDRweDtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL3dwLWNvbnRlbnQvdGhlbWVzL2JvbmVzL3RyYXZlbC9zdGVtLmdpZik7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdCAyNXB4XHJcbn1cclxuXHJcbmRpdi5iYXItY29udGFpbmVyXHJcbntcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAyNXB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5kaXYuYmFyLWJsb2NrXHJcbntcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAyMHB4O1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGZsb2F0OiBsZWZ0XHJcbn1cclxuXHJcbmRpdi5iYXItc2VnbWVudFxyXG57XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGJvdHRvbTogMjVweDtcclxuXHRmb250LXNpemU6IDEycHg7XHJcblx0bGluZS1oZWlnaHQ6IDEzcHg7XHJcblx0d2lkdGg6IDEwMHB4O1xyXG5cdGxlZnQ6IC01MHB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRwYWRkaW5nOiA0cHg7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuZGl2LmJhci1ibG9jazpob3Zlcj5kaXYuYmFyLXNlZ21lbnQgeyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuLmljb24tcG5nXHJcbntcclxuXHR3aWR0aDogMjhweDtcclxuXHRoZWlnaHQ6IDI4cHg7XHJcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuXHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiAwIDEycHggMCAwO1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQ4MHB4KSB7XHJcblxyXG50YWJsZS5jYWJUcmF2ZWwgdHIgdGQ6bnRoLWNoaWxkKDIpIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxudGFibGUuY2FiVHJhdmVsIHRyIHRoOm50aC1jaGlsZCgyKSB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5oaWRlTWVkIHsgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcbi5oaWRlU21hbGwgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4uZG93bkxhYmVse21hcmdpbi10b3A6MTZweDt9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjQwcHgpIHtcclxuXHJcbi5zbWFsbGVyLXRleHQgeyBmb250LXNpemU6IC44NWVtICFpbXBvcnRhbnQ7IH1cclxuLnNtYWxsLWRvd257bWFyZ2luLXRvcDoxNnB4ICFpbXBvcnRhbnQ7fVxyXG5cclxuLmljb24tcG5nXHJcbntcclxuXHR3aWR0aDogMTZweDtcclxuXHRoZWlnaHQ6IDE2cHg7XHJcblx0cGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuXHRtYXJnaW4tcmlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiAwIDEycHggMCAwO1xyXG59XHJcbn1cclxuXHJcbi5leHRyYVBhZC1ib3R0b20geyBcclxuXHRwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZXh0cmFQYWQtdG9wIHsgXHJcblx0cGFkZGluZy10b3A6IDEuMjVyZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLndhaXRpbmctb3ZlcmxheSB7IFxyXG4gICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXkgOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdG9wIDogMDtcclxuICAgIGxlZnQgOiAwO1xyXG4gICAgd2lkdGggOiAxMDAlO1xyXG4gICAgaGVpZ2h0IDogMTAwJTtcclxuICAgIGJhY2tncm91bmQgOiAjRkZGRkZGO1xyXG4gICAgb3BhY2l0eSA6IC42OyBcclxufVxyXG5cclxuLndhaXRpbmctb3ZlcmxheSBpbWcge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG59IiwiQGltcG9ydCBcclxuJ2JhY2tUb1RvcCcsXHJcbidicmVhZGNydW1icycsXHJcbidjYWxsb3V0cycsXHJcbiduZXdzbGV0dGVyQ1RBJyxcclxuJ25ld3NsZXR0ZXJNb2RhbCcsXHJcbidwYWdpbmF0aW9uJyxcclxuJ3BhbmVscycsXHJcbidjYXJkcycsXHJcbid0b3BuYXYnLFxyXG4nc2VhcmNoTW9kYWwnLFxyXG4nc2hvcnRjb2RlRXhwYW5kJztcclxuIiwiLyogQkFDSyBUTyBUT1BcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLmJhY2stdG8tdG9wIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogM3JlbTsgLy8gPSA1NHB4XHJcbiAgICByaWdodDogMWVtOyAvLyAwLjkzNzVyZW07IC8vID0gMTVweFxyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBwYWRkaW5nOiAxLjI1cmVtOyAvLyAwLjkzNzVyZW0gMC45NzVyZW1cclxuICAgIHotaW5kZXg6IDE7XHJcblxyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIG9wYWNpdHk6IDA7XHJcblxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cclxuICAgIC8vIGJveC1zaGFkb3c6IDBweCAwcHggN3B4IHJnYmEoJHdoaXRlLCAuNCk7XHJcblxyXG4gICAgQGluY2x1ZGUgYW5pbV9tdWx0aShvcGFjaXR5IC4zcyAwcywgdmlzaWJpbGl0eSAwcyAuM3MpO1xyXG5cclxuICAgIGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgfVxyXG5cclxuICAgIHAgeyBcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC40NWVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjdlbTtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjdlbTsgLy8gY291bnRlcnMgZXh0cmEgbGV0dGVyLXNwYWNlIFxyXG4gICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgICYuYmFjay10by10b3AtaXMtdmlzaWJsZSxcclxuICAgICYuYmFjay10by10b3AtZmFkZS1vdXQgeyBAaW5jbHVkZSBhbmltX211bHRpKG9wYWNpdHkgMC4zcyAwcywgdmlzaWJpbGl0eSAwcyAwcyk7IH1cclxuICAgICYuYmFjay10by10b3AtaXMtdmlzaWJsZSB7dmlzaWJpbGl0eTogdmlzaWJsZTsgb3BhY2l0eTogMTt9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICByaWdodDogMXJlbTtcclxuICAgIH1cclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG4gICAgICAgIHJpZ2h0OiAxLjFlbTtcclxuICAgIH1cclxufSIsIiNicmVhZGNydW1icywgI2JyZWFkY3J1bWJFeHRlbnNpb24ge1xyXG4gICAgY29sb3I6ICRncnlfbXV0ZWQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5icmVhZGNydW1iX2xhc3Qge1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICB9XHJcbn0iLCIvLyBDQUxMT1VUU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi5hbGVydC10b3AuY2FsbG91dCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2xhdGU7XHJcbiAgICBwYWRkaW5nOiAuNXJlbSAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgIGg1LCBoNiwgcCB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mYSB7IHBhZGRpbmc6IDAgM3B4OyB9XHJcbiAgICB9XHJcbiAgICAmLi1oaWdoLXByaW9yaXR5IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRyZWQsIC4yNSk7XHJcbiAgICB9XHJcbiAgICAmLi1sb3ctcHJpb3JpdHkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKCRibHVlLCAuMjUpO1xyXG4gICAgfVxyXG4gICAgLmNsb3NlLWJ1dHRvbiB7IFxyXG4gICAgICAgIHJpZ2h0OiAyJTsgXHJcbiAgICAgICAgdG9wOiA0cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCl7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAucm93IHsgXHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVlbTsgXHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLmNvbHVtbnMge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMmVtOyAvLyBjbG9zZSBidXR0b24gc2l6ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGg1LCBoNiwgcCAgICAgICAgIHsgZm9udC1zaXplOiAuN2VtOyB9XHJcbiAgICAgICAgLmNsb3NlLWJ1dHRvbiAgICAgeyB0b3A6IDA7IH1cclxuICAgIH1cclxufVxyXG5cclxuLmNsb3NlLWJ1dHRvbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBAaW5jbHVkZSBhbmltKGFsbCAuM3MgZWFzZS1pbi1vdXQpO1xyXG4gICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2Fybi5jYWxsb3V0IHtcclxuICAgIGJhY2tncm91bmQ6ICRyZWQ7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIC5yb3cge1xyXG4gICAgICAgIHBhZGRpbmc6IDMuMTI1ZW07XHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAuNWVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcclxuXHJcbiNuZXdzbGV0dGVyIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2ltYWdlcy9jb2EucG5nJyk7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgLTI1MHB4O1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0cGFkZGluZzogNGVtIDA7XHJcblxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcblx0XHRwYWRkaW5nOiAyZW0gMDtcclxuXHR9XHJcblxyXG5cdC5zaWRlYmFyLW5hdmlnYXRpb24tdGV4dCB7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdH1cclxuXHRcclxuXHQuZmxhaXIge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogLjVlbTtcclxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdHBhZGRpbmc6IDE1cHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiA0NXB4O1xyXG5cdFx0Zm9udC1zaXplOiAxLjVyZW07XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0fVxyXG5cclxuXHRoMSB7XHJcblx0XHRmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0fVxyXG5cclxuXHRwIHsgY29sb3I6ICR3aGl0ZTsgfVxyXG5cclxuXHRhIHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblxyXG5cdFx0Jjpob3ZlcntcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tdXB9e1xyXG5cdFx0LmZpZWxkLXdyYXB7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHR3aWR0aDogMjUlO1xyXG5cdFx0XHRwYWRkaW5nOiAwIDVweDtcclxuXHRcdH1cclxuXHRcdC5uaW5qYS1mb3Jtcy1hbGwtZmllbGRzLXdyYXAge1xyXG5cdFx0XHQjbmluamFfZm9ybXNfZmllbGRfNl9kaXZfd3JhcCxcclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzExX2Rpdl93cmFwIHtcclxuXHRcdFx0XHR3aWR0aDogNTAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlucHV0IHtcclxuXHRcdGJvcmRlcjogNXB4IHNvbGlkIGRhcmtlbigkZ29sZCwgLjY1KTtcclxuXHRcdG91dGxpbmU6IDA7XHJcblx0XHRwYWRkaW5nOiAwIDI1cHg7XHJcblx0XHRtaW4taGVpZ2h0OiA2MHB4O1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDEwMDtcclxuXHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcblx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdEBpbmNsdWRlIGhvdmVyIHtcclxuXHRcdFx0QGluY2x1ZGUgdmVuZG9yLXByZWZpeChib3gtc2hhZG93LCAwIDAgOHB4IDNweCBkYXJrZW4oJGdvbGQsIDglKSk7XHJcblx0XHR9XHJcblx0XHQmW3R5cGU9XCJzdWJtaXRcIl17XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRmb250LXdlaWdodDogMTAwO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xyXG5cdFx0XHRwYWRkaW5nOiAyMHB4IDA7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiI25ld3NsZXR0ZXJNb2RhbCwgI25ld3NsZXR0ZXJNb2RhbDIge1xyXG5cdHotaW5kZXg6IDEwO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcblxyXG5cdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHR9XHJcblxyXG5cdC5mbGFpciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxZW07XHJcblxyXG5cdFx0LmZhLWludmVyc2Uge1xyXG5cdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQubmluamEtZm9ybXMtY29udCB7XHJcblx0XHRpbnB1dFt0eXBlPVwic3VibWl0XCJde1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHRcdC5uaW5qYS1mb3Jtcy1maWVsZC1lcnJvciBwe1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkcmVkLWJyaWdodDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Jjpmb2N1cyB7XHJcblx0XHRvdXRsaW5lOiBub25lO1xyXG5cdH1cclxuXHJcblx0W3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSd0ZXh0J106Zm9jdXMge1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHR9XHJcblxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tdXB9e1xyXG5cdFx0Lm5pbmphLWZvcm1zLWFsbC1maWVsZHMtd3JhcHtcclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzZfZGl2X3dyYXB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdH1cclxuXHRcdFx0I25pbmphX2Zvcm1zX2ZpZWxkXzdfZGl2X3dyYXB7XHJcblx0XHRcdFx0d2lkdGg6IDYwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHQjbmluamFfZm9ybXNfZmllbGRfOF9kaXZfd3JhcHtcclxuXHRcdFx0XHR3aWR0aDogNDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG5cdFx0aGVpZ2h0OiBpbmhlcml0O1xyXG5cdFx0bWluLWhlaWdodDogaW5oZXJpdDtcclxuXHRcdHdpZHRoOiA5NSU7XHJcblx0XHRtYXJnaW46IDAgYXV0bztcclxuXHR9XHJcbn1cclxuXHJcbi8vIE5ld3NsZXR0ZXIgRm9ybVxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4ubmluamEtZm9ybXMtcmVxdWlyZWQtaXRlbXMsIC5pbnB1dC1jb3VudGVye1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5uaW5qYS1mb3Jtcy1yZXNwb25zZS1tc2cge1xyXG5cdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLm5pbmphLWZvcm1zLWZpZWxkLWVycm9yIHAge1xyXG5cdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMzIpO1xyXG5cdGJvcmRlci1yYWRpdXM6IDUwcHg7XHJcblx0cGFkZGluZzogM3B4IDIwcHggMDtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi8vIGxhYmVsIHtcclxuLy8gXHQmI25pbmphX2Zvcm1zX2ZpZWxkXzZfbGFiZWwsXHJcbi8vIFx0JiNuaW5qYV9mb3Jtc19maWVsZF83X2xhYmVsLFxyXG4vLyBcdCYjbmluamFfZm9ybXNfZmllbGRfMTFfbGFiZWwsXHJcbi8vIFx0JiNuaW5qYV9mb3Jtc19maWVsZF8yMV9sYWJlbCxcclxuLy8gXHQmI25pbmphX2Zvcm1zX2ZpZWxkXzMxX2xhYmVsIHtcclxuLy8gXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4vLyBcdFx0dG9wOiAtOTk5OXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRsZWZ0OiAtOTk5OXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4ubmluamEtZm9ybXMtY29udCB7XHJcblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXdpZHRoOiAycHg7XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiAxcmVtO1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4xMmVtO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcclxuXHRcdHBhZGRpbmc6IDIwcHggMDtcclxuXHR9XHJcbn0iLCIucGFnaW5hdGlvbiB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCxcclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhLCBzcGFuIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuODVyZW07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuY3VycmVudCB7XHJcbiAgICAgICAgICAgICAgICAvLyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS4yNXJlbTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUtdHJ1ZTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gJjpudGgtY2hpbGQobis0KXtcclxuICAgICAgICAvLyAgICAgYSwgc3BhbiB7XHJcbiAgICAgICAgLy8gICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIC8vICAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgLy8gICAgIGEsIHNwYW4ge1xyXG4gICAgICAgIC8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgLy8gICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC5kb3RzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGEsXHJcbiAgICAgICAgICAgIGE6Zm9jdXMsXHJcbiAgICAgICAgICAgIGE6aG92ZXIsXHJcbiAgICAgICAgICAgIHNwYW4sXHJcbiAgICAgICAgICAgIHNwYW46Zm9jdXMsXHJcbiAgICAgICAgICAgIHNwYW46aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAuZGlzYWJsZWQge1xyXG4gICAgICAgICAgICBhLFxyXG4gICAgICAgICAgICBhOmZvY3VzLFxyXG4gICAgICAgICAgICBhOmhvdmVyLFxyXG4gICAgICAgICAgICBzcGFuLFxyXG4gICAgICAgICAgICBzcGFuOmZvY3VzLFxyXG4gICAgICAgICAgICBzcGFuOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3J5X211dGVkO1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JleTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iLCIucGFuZWwge1xyXG4gICAgLndpZGdldCB7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRncmF5O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncnlsaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICRnb2xkO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4xcmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDMsXHJcbiAgICAgICAgaDQge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG5hdnk7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGg0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgICAgICBjb2xvcjogJGdyZXlkYXJrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udGFjdC1wYW5lbCB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2Zyb20gY29udmVyc2lvblxyXG4gICAgICAgICYuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCxcclxuICAgICAgICA+IDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoMS5zdWJoZWFkZXIsIGgyLnN1YmhlYWRlciwgaDMuc3ViaGVhZGVyLCBoNC5zdWJoZWFkZXIsIGg1LnN1YmhlYWRlciwgaDYuc3ViaGVhZGVyIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIENBUkQgU1RZTEVTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vIFRPRE8gUmV3b3JrIHRoaXMgYXMgYSBnZW5lcmljXHJcbi5jYXJkX2xpbmtzIHtcclxuICAgIC5kYXRhLWxpc3QtZWxlbWVudCB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVlbSAwLjVlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IC8vID0gMTVweFxyXG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyeWxpdGU7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwLjE4NzVlbSBzb2xpZCAkbmF2eTsgLy8gPSAzcHhcclxuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgMC4zcyBlYXNlKTtcclxuXHJcbiAgICAgICAgICAgIHNwYW4ge21hcmdpbi1yaWdodDogMWVtO31cclxuXHJcbiAgICAgICAgICAgICYubm9fZXh0IHsgJjpiZWZvcmUge2NvbnRlbnQ6XCJcIjt9IH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG5hdnk7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOjFlbTtcclxuICAgICAgICAgICAgICAgIC8vbWFyZ2luLWJvdHRvbTowO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8vIE5BVklHQVRJT05cclxuLy8gQm9ycm93ZWQgZnJvbSBQQSBHT1ZcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8gZmlsZSBzcGVjaWZpYyB2YXJpYWJsZXNcclxuJG5hdlpJbmRleDogMztcclxuJGxhbmdiYXJIZWlnaHQ6IDM1cHg7XHJcblxyXG4ubmF2LWlzLW9wZW4ge1xyXG4gICAgcG9zaXRpb246IGZpeGVkIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubmF2IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgei1pbmRleDogJG5hdlpJbmRleDtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHJcbiAgICBcclxuXHJcbiAgICAubmF2LWNvbnRhaW5lciB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDcwLDcwLDcwLDAuNSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogTkFWOiBMaW5rcyArIExvZ29cclxuICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4gICAgdWwge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDY1cHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7bWluLWhlaWdodDogNjVweDt9XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDI1cHggNXB4O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG5cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDE1MG1zIGVhc2UpO1xyXG4gICAgICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIoKXtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJiBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IDAgM3B4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3Zlcigpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjk1KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVaKDApIHNjYWxlKDEsIDEpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYubG9jIHtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjJweDtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBzcGFuLCBpIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG4gICAgICAgICAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmFjdGl2ZSBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2xhdGU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3J5O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBhY3RpdmF0ZSBuYXYgZHJvcGRvd25zICovXHJcbiAgICAgICAgICAgICY6aG92ZXIgPiB1bCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgLjNzKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIE5BVjogZHJvcGRvd25zICovXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6MTAwJTtcclxuICAgICAgICAgICAgbGVmdDowO1xyXG4gICAgICAgICAgICBwYWRkaW5nOjA7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDpub25lO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6MjAwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3J5bGl0ZTtcclxuICAgICAgICAgICAgICAgIGEgeyBjb2xvcjogJHNsYXRlOyB9XHJcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSBhIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNsYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncnlfbXV0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbShhbGwgLjNzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDoxMjAlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzoxMHB4IDE1cHg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdml0ZW0ge1xyXG5cclxuICAgICAgICAubWVudWxhYmVsIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IC43M2VtO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxM3B4IDVweDtcclxuXHJcbiAgICAgICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmdvb2dsZS10cmFuc2xhdGUge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnJpZ2h0IHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICAgICAgICBcclxuICAgICAgICAubmF2LXJpZ2h0LWhpZGRlbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAubGVmdCB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbW9iaWxlXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAucm93IHsgcGFkZGluZy1sZWZ0OiAwLjI1ZW07IHBhZGRpbmctcmlnaHQ6IDAuMjVlbTsgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ubW9iaWxlLW9ubHkgeyBcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jazsgXHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIE5BVjogTU9CSUxFIFRSSUdHRVJcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbi8vIG5vdGU6IHJlZGVzaWduZWQgbWFkZSB0aGlzIGEgdW5pdmVyc2FsIHN0eWxlXHJcbi5uYXYtd3JhcHBlciB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogJGdvbGQ7XHJcbn1cclxuLm5hdiAubmF2LXRyaWdnZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDQ1cHg7XHJcbiAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICYubmF2LW9wZW4ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAuaW5uZXIsIC5pbm5lcjo6YmVmb3JlLCAuaW5uZXI6OmFmdGVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXRydWU7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaW5uZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRvcDogMTVweDtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC02cHg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAgIC5pbm5lciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBsZWZ0OiA3JTtcclxuICAgICAgICAgICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA0cHg7XHJcbiAgICAgICAgICAgICAgICAvLyB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm1lbnVsYWJlbCB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuICAgICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZS10cnVlO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBib3R0b206IC0yNXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWVudWxhYmVsIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwO1xyXG59XHJcblxyXG4vKiBOQVY6IG1vYmlsZSBsZWZ0IHNsaWRlb3V0IG1lbnVcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbiNuYXYtbWVudSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAtMTAwJTtcclxuICAgIHotaW5kZXg6ICRuYXZaSW5kZXggLSAxO1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgQGluY2x1ZGUgYW5pbShhbGwgMzA1bXMgZWFzZSk7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMwcHg7IC8vIHNpemUgb2YgZml4ZWQgdG9wIG5hdiB3aXRoIGxhbmd1YWdlIGJhclxyXG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xyXG4gICAgJi5hY3RpdmUge2xlZnQ6IDA7fVxyXG4gICAgdWwge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDE1MG1zIGVhc2UpO1xyXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge2NvbG9yOiAkYmx1ZS1icmlnaHQ7fVxyXG4gICAgfVxyXG4gICAgaHIge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICB9XHJcbiAgICAvKiBTT0NJQUwgSUNPTlMgKi9cclxuICAgIC5zb2Mge1xyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDAuODVlbTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgICAgY29sb3I6ICRncnlsaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgaSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjI1ZW07XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNsYXRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxLjg3NWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW0oZWFzZS1pbi1vdXQgYWxsIC4zcyk7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge2NvbG9yOiAkYmx1O31cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zZWFyY2gtYWx0IGEge1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICBsaW5lLWhlaWdodDogMi4wNTtcclxuICAgIGZvbnQtc2l6ZTogLjY1ZW07XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgLmZhIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIHRoaXMgaXMgZm9yIHRoZSBzZWFyY2ggYnV0dG9uXHJcbi5uYXZiYXItdGV4dCB7XHJcbiAgICBsaW5lLWhlaWdodDogMjEuMzJweDtcclxuICAgIGZvbnQtc2l6ZTogMTAuNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxLjA0cHg7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAtbW96LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XHJcbn1cclxuXHJcbi5uYXZpdGVtLXNlYXJjaCB7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGNvbG9yOiAkZ3JlZW47XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNWVtO1xyXG59XHJcblxyXG4uZGVza3RvcC1zZWFyY2gtd3JhcCB7XHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZS1icmlnaHQ7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICBwYWRkaW5nOiAuMWVtIC41ZW0gLjFlbSAxZW07XHJcblxyXG4gICAgaW5wdXQge1xyXG4gICAgICAgIHdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICBmb250LXNpemU6IC44ZW07XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICAgIGNvbG9yOiAkZ3JleWRhcms7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IC4zcztcclxuICAgICAgICBcclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnV0dG9uLnNlYXJjaC1idXR0b24ge1xyXG4gICAgICAgIGhlaWdodDogMS41ZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVlbTtcclxuICAgIH1cclxufVxyXG5cclxuLyogTEFOR1VBR0UgQkFSOiBhYm92ZSByZWd1bGFyIG5hdmlnYXRpb25cclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4lbGFuZy1iYXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgaGVpZ2h0OiAkbGFuZ2JhckhlaWdodDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBwIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsYW5nYmFySGVpZ2h0O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGFuZ3VhZ2UtYmFyIHtcclxuICAgIEBleHRlbmQgJWxhbmctYmFyO1xyXG59XHJcblxyXG4vKiBMYW5ndWFnZSBCYXIgKi9cclxuLyoqKioqKioqKioqKioqKiovXHJcblxyXG4ubGFuZ3VhZ2UtYmFyIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBwYWRkaW5nOiAwLjI1cmVtIC41cmVtO1xyXG4gICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZ3J5O1xyXG4gICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzbGF0ZTtcclxuICAgIC5oMyB7bWFyZ2luLWJvdHRvbTogMDt9XHJcbiAgICAgZGl2IHtcclxuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMC45ZW07XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogIzMzMztcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuLmxhbmd1YWdlLWJhci1sZWZ0IHtcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgIC8vIHBhZGRpbmctbGVmdDogLjI1ZW07XHJcbiAgICBtYXgtd2lkdGg6IDYwJTtcclxuICAgIGEge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVlbTtcclxuICAgIH1cclxuICAgIGEsXHJcbiAgICBzcGFuIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4xcmVtO1xyXG4gICAgfVxyXG59XHJcbi5sYW5nLWxvZ28sIC5hZ2VuY3ktbG9nby5oaWRlLWZvci1sYXJnZSB7XHJcbiAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxufVxyXG5hI2J0bi1sYW5ndWFnZSB7XHJcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XHJcbn1cclxuI2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB0b3A6IC41ZW07XHJcbiAgICBoZWlnaHQ6IDJlbTtcclxufSIsIiNzZWFyY2hNb2RhbCB7XHJcblx0cGFkZGluZzogMmVtO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG5cclxuXHQubW9kYWxXcmFwcGVyIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRmb250LXNpemU6IDJlbTtcclxuXHJcblx0XHQuZmEge1xyXG5cdFx0XHRmb250LXNpemU6IDEuNXJlbTtcclxuXHRcdH1cclxuXHJcblx0XHRmb3JtIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblxyXG5cdFx0aW5wdXQge1xyXG5cdFx0XHRmb250LXNpemU6IDFlbTtcclxuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdHBhZGRpbmc6IDVweDtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiAuNWVtO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS4yNWVtO1xyXG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcblx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXI6IDA7XHJcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHRcdG91dGxpbmU6IDA7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gbW92ZSBpdCB1cCBvbiB0aGUgc2NyZWVuXHJcbiAgICAgICAgICAgIC5zZWFyY2gtYmFyLXdyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNmVtOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gbW92ZSBpdCB1cCBvbiB0aGUgc2NyZWVuXHJcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICAgICAgICAuc2VhcmNoLWJhci13cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHR9XHJcbiAgICBcclxuICAgIGJ1dHRvbiB7XHJcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICB9XHJcbn0iLCIuc2hvcnRjb2RlLWV4cGFuZCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAgICAgLy8gcmVzZXRpbmcgVUwgc3R5bGVzIGluc2lkZSBvdXIgZXhwYW5kIFVMXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBkaXNjO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNWVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWNjb3JkaW9uLXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGdvbGQ7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICBtYXJnaW46IDEuMjVlbSAwO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW0oYWxsIDAuM3MgZWFzZSk7XHJcblxyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfSBcclxuICAgICAgICBcclxuICAgIC5hY2NvcmRpb24taXRlbS5pcy1hY3RpdmUge1xyXG4gICAgICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29sZDtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAgICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmFjY29yZGlvbi1jb250ZW50IHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBtYXJnaW46IDAgMCAxLjI1ZW07XHJcblxyXG4gICAgICAgIHA6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGRlZmF1bHQgZm91bmRhdGlvbiBzdHlsZVxyXG4gICAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRnb2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFub3RoZXIgZGVmYXVsdCBmb3VuZGF0aW9uIHN0eWxlXHJcbiAgICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlbW92ZSBmb3VuZGF0aW9ucyBwbHVzXHJcbiAgICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGZvciBhbiBleHBhbmQgaW4gdGhlIGZlYXR1cmVkIHNlY3Rpb25zXHJcbi53cmFwcF9mZWF0dXJlZF9zZWN0aW9uIC5zaG9ydGNvZGUtZXhwYW5kIHtcclxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbiAgICBcclxuICAgIC5hY2NvcmRpb24taXRlbSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmFjY29yZGlvbi1pdGVtIGEge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn0iLCJAaW1wb3J0XHJcbi8vIFRPRE8gUkVNT1ZFIENPTlZFUlNJT04gQUZURVIgU1RZTEUgQVJFIE1JR1JBVEVEXHJcbi8vIFwidGhlbWUvY29udmVyc2lvblwiLFxyXG5cImFuY2hvcnNcIixcclxuXCJidXR0b25zXCIsXHJcblwiY29tbWVudHNcIixcclxuXCJldmVudHNcIixcclxuXCJmb290ZXJcIixcclxuXCJoZWFkZXJcIixcclxuXCJob21lXCIsXHJcblwibW9kYWxcIixcclxuXCJuZXdzcm9vbVwiLFxyXG5cInBhZ2VzXCIsXHJcblwicHJpb3JpdGllc1wiLFxyXG5cInNlbGVjdFwiLFxyXG5cInNpZGViYXJcIixcclxuXCJzaXRlbWFwXCIsXHJcblwidHlwb2dyYXBoeVwiOyIsImF7XHJcbiAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAuMnMgZWFzZSk7XHJcbiAgICAuZmVhdHVyZWQgJiB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gTk9URSBUaGlzIG1heSBub3QgYmUgYSAxMDAlIGNvcnJlY3Qgc29sdXRpb25cclxuLmNvbnRlbnQgYTpub3QoW2NsYXNzXSksXHJcbiNjb250ZW50ICNtYWluIGE6bm90KFtjbGFzc10pIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICY6aG92ZXIsJjpmb2N1c3tcclxuICAgICAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgfVxyXG4gICAgXHJcbn0iLCIvLyBCVVRUT05TLnNjc3NcclxuXHJcbi5idXR0b257XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC4xMmVtO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiAkZ29sZDtcclxuICAmOmhvdmVye1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gIH1cclxuICAmLnNlY29uZGFyeSwgJi5zdWNjZXNzLCAmLmFsZXJ0LCAmLndhcm5pbmcsICYuaW5mb3tcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAmOmhvdmVye1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLmV4cGFuZHtcclxuICAgIHBhZGRpbmc6IDE1cHggMjVweDtcclxuICB9XHJcbn1cclxuXHJcbi5idG4td2hpdGV7XHJcbiAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuICAmOmhvdmVye1xyXG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwyMjUsMjI1LC4yKTtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi5tb3Jle1xyXG4gIHdpZHRoOiAzNjhweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgQGluY2x1ZGUgc3ByaXRlKDE0cHgsIDE5cHgsIC02MHB4LCAtOTBweCk7XHJcbiAgJjpiZWZvcmV7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMjBweDtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ocmlnaHQgMHMgZWFzZSwgd2lkdGggLjBzIGVhc2UsIG9wYWNpdHkgLjJzKTtcclxuICB9XHJcbiAgJjpob3ZlcntcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtNjBweDtcclxuICAgICAgcmlnaHQ6IC0ycHg7XHJcbiAgICAgIHdpZHRoOiAxcHg7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ocmlnaHQgLjJzIGVhc2UsIHdpZHRoIC4ycyAuMXMgZWFzZSwgb3BhY2l0eSAwcyAuM3MpO1xyXG4gICAgfVxyXG4gIH1cclxuICAmLndoaXRle1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC02MHB4O1xyXG4gICAgfVxyXG4gICAgJjpob3ZlcjpiZWZvcmV7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC05MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAmLndoaXRlLXNte1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0zMHB4IC05MHB4O1xyXG4gICAgICB3aWR0aDogOHB4O1xyXG4gICAgICBoZWlnaHQ6IDEwcHg7XHJcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gICYudGlueXtcclxuICAgIHdpZHRoOiAyMDZweDtcclxuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDAuNnJlbTtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICByaWdodDogMTBweDtcclxuICAgICAgdG9wOiA4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufSIsIi8vIENPTU1FTlRTLnNjc3NcclxuXHJcbiNyZXNwb25ke1xyXG5cdG1hcmdpbi10b3A6IDUwcHg7XHJcblx0cGFkZGluZy10b3A6IDUwcHg7XHJcblx0Ym9yZGVyLXRvcDogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0LmZvcm0tc3VibWl0e1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdGlucHV0e1xyXG5cdFx0XHRvdXRsaW5lOiBub25lO1xyXG5cdFx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgZWFzZSAuMnMpO1xyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufSIsIi8vIEV2ZW50cy5zY3NzXHJcblxyXG4ucHJldl9uZXh0X2xpbmtzIHtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX0geyBtYXJnaW4tYm90dG9tOiAyZW07IH1cclxufVxyXG5cclxuLnBhX2dvdl9ldmVudCB7XHJcblx0KyAucGFfZ292X2V2ZW50IHtcclxuXHRcdHBhZGRpbmctdG9wOiAyZW07XHJcblx0fVxyXG59XHJcblxyXG4udHJpYmUtZXZlbnRzLWxvb3AgLnR5cGUtdHJpYmVfZXZlbnRzLnRyaWJlLWV2ZW50cy1sYXN0LFxyXG4ucGFfZ292X2V2ZW50IHtcclxuXHRtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHQucm93IHtcclxuXHRcdHBhZGRpbmc6IDI1cHggMTBweDtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGJvcmRlcjogc29saWQgMXB4ICRibGFjaztcclxuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XHJcblx0fVxyXG5cdCYtZGF0ZXtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7IGZvbnQtc2l6ZTogLjhyZW07IH1cclxuXHRcdHNwYW57XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLW1vbnRoe1xyXG5cdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHR9XHJcblx0Ji1kYXl7XHJcblx0XHRmb250LXNpemU6IDMuNWVtO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuMWVtO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHR9XHJcblx0Ji15ZWFye1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdH1cclxuXHQmLXRpbWV7XHJcblx0XHRmb250LXNpemU6IC45ZW07XHJcblx0XHQuZmEge1xyXG5cdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdGZvbnQtc2l6ZTogMS4yNWVtO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLXRpdGxle1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdC5mYSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogNzUlO1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHRcdGEge1xyXG5cdFx0XHRAaW5jbHVkZSBob3ZlcigpIHtcclxuXHRcdFx0XHRjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdCYtc2hhcmVCYXJ7XHJcblx0XHRib3JkZXI6IHNvbGlkIDJweCAkZ29sZDtcclxuXHRcdHBhZGRpbmc6IDEwcHggMjBweDtcclxuXHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX0geyBcclxuXHRcdFx0cGFkZGluZzogMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuc2hhcmUtdGl0bGUge1xyXG5cdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHR9XHJcblx0XHQucHVsbC1yaWdodCB7XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiAzcHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDhweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuZmEge1xyXG5cdFx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblxyXG5cdFx0XHRAbWVkaWEgI3skc21hbGwtb25seX0geyBcclxuXHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7IFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuY2FsLWxpbmt7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0YXtcclxuXHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRmbG9hdDogbm9uZTtcclxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcclxuXHJcblx0XHRcdH1cclxuXHRcdFx0LmZhIHtcclxuXHRcdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5ldmVudHMtc2VhcmNoLWhlYWRlcntcclxuXHRwYWRkaW5nOiAyMHB4IDMwcHggMTVweDtcclxuXHRtYXJnaW46IDA7XHJcblx0Ym9yZGVyOiBzb2xpZCAxcHggJGJsYWNrO1xyXG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdGgxe1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHR9XHJcbn1cclxuXHJcbi50cmliZS1ldmVudHMtdmVudWUtZGV0YWlscyB7XHJcblx0cGFkZGluZy10b3A6IDNweDtcclxuXHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdC5mYSB7XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHR9XHJcblx0YWJicntcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHR9XHJcblx0YSB7XHJcblx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRtYXJnaW46IC0ycHggMCAwIDVweDtcclxuXHRcdGFiYnIudHJpYmUtZXZlbnRzLWFiYnJ7XHJcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0fVxyXG5cdH1cdFxyXG59XHJcblxyXG4udHJpYmUtZXZlbnRzLXN1Yi1uYXZ7XHJcblx0bWFyZ2luLXRvcDogNDBweDtcclxuXHQudHJpYmUtZXZlbnRzLW5hdi1wcmV2aW91cywgLnRyaWJlLWV2ZW50cy1uYXYtbmV4dHtcclxuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRtYXJnaW46IDAgNXB4O1xyXG5cdFx0YXtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRjb2xvcjogIzAwMDtcclxuXHRcdFx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0XHRcdGhlaWdodDogMzVweDtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjhlbTtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0c3BhbntcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRhOmhvdmVye1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHdoaXRlLCA1JSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZmVhdHVyZWQtZXZlbnR7XHJcblx0LnRpdGxlLWNvbnRhaW5lcntcclxuXHRcdHBhZGRpbmc6IDAgMzBweDtcclxuXHR9XHJcblx0Lm5ld3MtcG9zdC10aXRsZXtcclxuXHRcdHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0XHQvLyBAaW5jbHVkZSBzcHJpdGUoMjZweCwgMjlweCwgLTE1MHB4LCAtMTgwcHgpO1xyXG5cdH1cclxuXHQucGFfZ292X2V2ZW50IHtcclxuXHRcdCYtc2hhcmVCYXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0LmZhIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdFx0XHRjb2xvcjogJGdvbGQ7XHJcblx0XHRcdH1cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvLyBGT09URVIuc2Nzc1xyXG5mb290ZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdC8vIGJhY2tncm91bmQ6ICRibHVlO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR1bCB7IFxyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bGkgeyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cclxuXHR9XHJcbiAgICAuY29sdW1ucyB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cdH1cclxuXHQjc2l0ZS1mb290ZXItbmF2e1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0Ym9yZGVyLXRvcDogc29saWQgMnB4IGxpZ2h0ZW4oJGJhc2UsIDEwJSk7XHJcblx0XHRsaXtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOiA3cHggMHB4O1xyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdHBhZGRpbmc6IDdweCAxNHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDhlbTtcclxuXHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDVweCk7XHJcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kIC4ycyBlYXNlLCBjb2xvciAuMnMgZWFzZSk7XHJcblx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDYlKTtcclxuXHRcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNDAlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JjphY3RpdmV7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA4JSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcbiAgICB9XHJcblxyXG4gICAgI2NvcHlyaWdodCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XHJcbiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYSxcclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuNjVlbTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IC43NWVtO1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhLFxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggIzY2NjtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICAgICAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCBhIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JleWRhcms7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNDBweCA0MHB4IDQwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgIGZvb3RlciB7XHJcbiAgICAgICAgI2NvcHlyaWdodCB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIHAgeyBcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsgXHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICBsaSB7IFxyXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiVmb290ZXItbmF2LXN0YWNrZWQge1xyXG4gICAgcGFkZGluZzogNTBweCAwO1xyXG4gICAgLnJvdyB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubWVudS1pdGVtIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICAuZm9vdGVyLW1lbnUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMyMHB4KSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmZvb3Rlci1sZWZ0IHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgLm1lbnUtbGluayB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbHVtbnMge1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZm9vdGVyLXJpZ2h0IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcclxuICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2x1bW5zIHtcclxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuZm9vdGVyLWltZyB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjQwcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGxpIHtcclxuICAgICAgICAmLnNob3ctZm9yLXNtYWxsLW9ubHkgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cclxuICAgIH1cclxuICAgIGEsIHAge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBjb2xvcjogJGdyeV9tdXRlZDtcclxuICAgICAgICBmb250LXNpemU6IC45ZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgICBhIHtcclxuICAgICAgICBAaW5jbHVkZSBhbmltKGNvbG9yIC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmZhIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAycHg7XHJcbiAgICAgICAgbGVmdDogLTI0cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4O1xyXG4gICAgICAgIHdpZHRoOiAyM3B4O1xyXG4gICAgfVxyXG4gICAgLm1haW4tbWVudS1saW5rIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY4ZW0pIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICsgdWwge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjRweDtcclxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4IDAgMjBweDtcclxuICAgICAgICB1bC5mb290ZXItbWVudSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNTYyNWVtIDAgMS41NjI1ZW0gMWVtO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIHVsIHsgbWFyZ2luLWJvdHRvbTogMS4yNWVtOyB9IC8vIHtvdmVyZmxvdzogaGlkZGVuOyBoZWlnaHQ6IDA7fVxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgJi5tYWluLW1lbnUtbGluayB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYm9yZGVyLXRvcDogc29saWQgMXB4ICM4YzhjOGM7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLm1haW4tbWVudS1saW5rIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTkwcHggLTYwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMTBweCA3NjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHt0b3A6IDI1cHg7IHJpZ2h0OiAyMHB4O31cclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuJWZvb3Rlci1uYXYtc3RhY2tlZC1nb3Yge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgY29sb3I6ICRuYXZ5O1xyXG5cclxuICAgIC5tZW51LWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlLWJyaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYSwgcCB7XHJcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItcmlnaHQge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkbmF2eTtcclxuICAgIH1cclxufVxyXG5cclxuJWZvb3Rlci1uYXYtc3RhY2tlZC1lbnRlcnByaXNlIHtcclxuICAgIGJhY2tncm91bmQ6ICRncmV5ZGFyaztcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAuZm9vdGVyLXJpZ2h0IHtcclxuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmZvb3Rlci1uYXYge1xyXG4gICAgJi4tc3RhY2tlZCB7XHJcbiAgICAgICAgQGV4dGVuZCAlZm9vdGVyLW5hdi1zdGFja2VkO1xyXG4gICAgICAgICYuLWdvdiB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZvb3Rlci1uYXYtc3RhY2tlZC1nb3Y7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuLWVudGVycHJpc2Uge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmb290ZXItbmF2LXN0YWNrZWQtZW50ZXJwcmlzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiRhcC1sb2dvLXNpemU6IDE1MHB4O1xyXG4kYXAtbG9nby1wYWRkaW5nLWRlZ3JlZTogJGFwLWxvZ28tc2l6ZS8yMDtcclxuXHJcbiVmb290ZXItYWN0aW9uLXBsYW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cclxuICAgIGgxIHsgXHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBob3ZlcigpIHtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXZ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsaSB7IGNvbG9yOiAkd2hpdGU7IH1cclxufVxyXG5cclxuXHJcbiVmb290ZXItYWN0aW9uLXBsYW4tbG9nbyB7XHJcblxyXG4gICAgbWFyZ2luLXRvcDogLSgoJGFwLWxvZ28tc2l6ZSkgKyAoJGFwLWxvZ28tcGFkZGluZy1kZWdyZWUqMikpLzI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIHBhZGRpbmc6ICRhcC1sb2dvLXBhZGRpbmctZGVncmVlO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6ICRhcC1sb2dvLXNpemUgKyAoJGFwLWxvZ28tc2l6ZS8kYXAtbG9nby1wYWRkaW5nLWRlZ3JlZSkqMjtcclxuICAgICAgICBtYXgtd2lkdGg6ICRhcC1sb2dvLXNpemUgKyAoJGFwLWxvZ28tc2l6ZS8kYXAtbG9nby1wYWRkaW5nLWRlZ3JlZSkqMjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZS1icmlnaHQ7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGFwLWxvZ28tc2l6ZSArICgkYXAtbG9nby1zaXplLyRhcC1sb2dvLXBhZGRpbmctZGVncmVlKSoyO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLWFjdGlvbi1wbGFuLWxpbmsge1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuJWZvb3Rlci1hY3Rpb24tcGxhbi1saXN0IHtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4lZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3QtaXRlbSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLWRvd259IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQoKTtcclxuICAgIH1cclxuICAgICsgJWZvb3Rlci1hY3Rpb24tcGxhbi1saXN0LWl0ZW0ge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnXFwyMDIyJztcclxuICAgICAgICAgICAgbGVmdDogLTIycHg7XHJcbiAgICAgICAgICAgIHRvcDogLTExcHg7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1kb3dufSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZm9vdGVyIHtcclxuICAgICYtYWN0aW9uLXBsYW4ge1xyXG4gICAgICAgIEBleHRlbmQgJWZvb3Rlci1hY3Rpb24tcGxhbjtcclxuICAgICAgICAmX2xvZ28ge1xyXG4gICAgICAgICAgICBAZXh0ZW5kICVmb290ZXItYWN0aW9uLXBsYW4tbG9nbztcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9saW5rIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAlZm9vdGVyLWFjdGlvbi1wbGFuLWxpbms7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfbGlzdCB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWZvb3Rlci1hY3Rpb24tcGxhbi1saXN0O1xyXG4gICAgICAgICAgICAmLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgQGV4dGVuZCAlZm9vdGVyLWFjdGlvbi1wbGFuLWxpc3QtaXRlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvLyAvLyBIRUFERVIuU0NTU1xyXG5cclxuXHJcbi8vICNtYWluLWhlYWRlcntcclxuLy8gXHRwb3NpdGlvbjogZml4ZWQ7XHJcbi8vIFx0dG9wOiAwO1xyXG4vLyBcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdHotaW5kZXg6IDkxMDA7XHJcbi8vIFx0LnNlYXJjaC1ib3h7XHJcbi8vIFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHR6LWluZGV4OiA1MDA7XHJcbi8vIFx0XHRtYXJnaW4tbGVmdDogNDBweDtcclxuLy8gXHRcdC5zZWFyY2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjNweCwgMjNweCwgLTEyMHB4LCAtMzBweCk7XHJcbi8vIFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdGxlZnQ6IDEzcHg7XHJcbi8vIFx0XHRcdFx0dG9wOiAxN3B4O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0XHR6LWluZGV4OiAyMDtcclxuLy8gXHRcdFx0bWFyZ2luLWxlZnQ6IDE5MHB4O1xyXG4vLyBcdFx0XHRwYWRkaW5nLWxlZnQ6IDUwcHg7XHJcbi8vIFx0XHRcdGhlaWdodDogNTVweDtcclxuLy8gXHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG4vLyBcdFx0XHRib3JkZXI6IHNvbGlkIDFweCBsaWdodGVuKCRiYXNlLCAyMCUpO1xyXG4vLyBcdFx0XHRib3JkZXItdG9wOiBub25lO1xyXG4vLyBcdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG4vLyBcdFx0XHRyaWdodDogNDBweDtcclxuLy8gXHRcdFx0d2lkdGg6IDQ4cHg7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggLjNzIGVhc2UpO1xyXG4vLyBcdFx0XHQuc2VhcmNoe1xyXG4vLyBcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuLy8gXHRcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuLy8gXHRcdFx0XHRvdXRsaW5lOiBub25lO1xyXG4vLyBcdFx0XHRcdGlucHV0e1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHRcdFx0b3V0bGluZTogbm9uZTtcclxuLy8gXHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcbi8vIFx0XHRcdFx0XHR0b3A6IDA7XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcbi8vIFx0XHRcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbih3aWR0aCAuM3MgZWFzZSk7XHJcbi8vIFx0XHRcdFx0XHQmW3R5cGU9XCJ0ZXh0XCJde1xyXG4vLyBcdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0d2lkdGg6IDAlO1xyXG4vLyBcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggbGlnaHRlbigkYmFzZSwgMjAlKTtcclxuLy8gXHRcdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4vLyBcdFx0XHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbi8vIFx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vIFx0XHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggLjNzIGVhc2UsIGJhY2tncm91bmQgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDMlKTtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRcdC5zZWFyY2gge1xyXG4vLyBcdFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRcdCZbdHlwZT1cInRleHRcIl17XHJcbi8vIFx0XHRcdFx0XHRcdFx0d2lkdGg6IDcwJTtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHQmW3R5cGU9XCJzdWJtaXRcIl17XHJcbi8vIFx0XHRcdFx0XHRcdFx0d2lkdGg6IDMwJTtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0QG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4vLyBcdFx0XHRtYXJnaW4tbGVmdDogMTI1cHg7XHJcbi8vIFx0XHRcdC5zZWFyY2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAxMzVweDtcclxuLy8gXHRcdFx0XHRyaWdodDogMDtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0LnNlYXJjaHtcclxuLy8gXHRcdFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRcdFx0Jlt0eXBlPVwidGV4dFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiA4MCU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAyMCU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9IC8vIEVuZCBtZWRpdW0tdXBcclxuLy8gXHRcdEBtZWRpYSAjeyRsYXJnZS11cH0ge1xyXG4vLyBcdFx0XHQuc2VhcmNoLWNvbnRhaW5lcntcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0LnNlYXJjaHtcclxuLy8gXHRcdFx0XHRcdFx0aW5wdXR7XHJcbi8vIFx0XHRcdFx0XHRcdFx0Jlt0eXBlPVwidGV4dFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiA4OCU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHRcdCZbdHlwZT1cInN1Ym1pdFwiXXtcclxuLy8gXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAxMiU7XHJcbi8vIFx0XHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9IC8vIEVuZCBsYXJnZS11cFxyXG4vLyBcdH0gLy8gRW5kIHNlYXJjaC1ib3hcclxuLy8gXHQudG9wLWJhcntcclxuLy8gXHRcdG1pbi1oZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRwb3NpdGlvbjogc3RhdGljO1xyXG4vLyBcdFx0YXtcclxuLy8gXHRcdFx0Zm9udC1zaXplOiAxZW07XHJcbi8vIFx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDNlbTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcclxuLy8gXHRcdFx0bWluLWhlaWdodDogNTVweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0I3N0YXRlLW1haW4tbmF2e1xyXG4vLyBcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyBcdFx0ei1pbmRleDogOTk5OTtcclxuLy8gXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCAuMnMgZWFzZSk7XHJcbi8vIFx0XHRtYXgtaGVpZ2h0OiAxMDBweDtcclxuLy8gXHRcdGhlaWdodDogYXV0bztcclxuLy8gXHRcdC50aXRsZS1hcmVhe1xyXG4vLyBcdFx0XHRtYXJnaW4tdG9wOiA1cHg7XHJcbi8vIFx0XHRcdGgxIGF7XHJcbi8vIFx0XHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg0MnB4LCAzOXB4LCAwLCAwKTtcclxuLy8gXHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdHRvcDogMnB4O1xyXG4vLyBcdFx0XHRcdFx0bGVmdDogMThweDtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0c3BhbntcclxuLy8gXHRcdFx0XHRcdCAgY29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRcdCAgZm9udC1zaXplOiAxLjRyZW07XHJcbi8vIFx0XHRcdFx0XHQgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRcdFx0XHRcdCAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcbi8vIFx0XHRcdFx0XHQgIHotaW5kZXg6IDIwO1xyXG4vLyBcdFx0XHRcdFx0ICBwYWRkaW5nOiAwIDRweCAwIDEwcHg7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdFx0XHQmOmJlZm9yZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAwO31cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LnVwLWljb257XHJcbi8vIFx0XHRcdFx0d2lkdGg6IDQwcHg7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDE4cHgsIDEzcHgsIC05MHB4LCAtOTBweCk7XHJcbi8vIFx0XHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0XHRsZWZ0OiAxMHB4O1xyXG4vLyAgIFx0XHRcdFx0XHR0b3A6IDE2cHg7XHJcbi8vICAgXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH0gLy8gRW5kIHRpdGxlLWFyZWFcclxuLy8gXHRcdHVsIGxpe1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcbi8vIFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjJzIGVhc2UsIGNvbG9yIC4ycyBlYXNlKTtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgMyUpO1xyXG4vLyBcdFx0XHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA0MCUpO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHRoMSBhOmhvdmVye1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0LmxlZnR7XHJcbi8vIFx0XHRcdG1hcmdpbi10b3A6IDVweDtcclxuLy8gXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgNXB4KTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0LnJpZ2h0e1xyXG4vLyBcdFx0XHRsaSBhe1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdFx0XHRsaW5lLWhlaWdodDogMy41O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcbi8vIFx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcbi8vIFx0XHRcdC5tb2JpbGUtcHVzaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdFx0LnRvcC1iYXItc2VjdGlvbiBhe1xyXG4vLyBcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDIuNTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbi8vIFx0XHRcdHBhZGRpbmctYm90dG9tOiA0NXB4O1xyXG4vLyBcdFx0XHQubW9iaWxlLXB1c2gtY29udGFpbmVye1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRcdGJvdHRvbTogMDtcclxuLy8gXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdFx0LnNlYXJjaC1jb250YWluZXJ7XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdFx0dG9wOiAxMnB4O1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHQudGl0bGUtYXJlYSBoMSBhe1xyXG4vLyBcdFx0XHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG4vLyBcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLyBcdFx0XHRcdFx0d2lkdGg6IGF1dG87XHJcbi8vIFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDhweDtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyOXB4LCAyOXB4LCAtMTIwcHgsIDApO1xyXG4vLyBcdFx0XHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0XHRcdHRvcDogOHB4O1xyXG4vLyBcdFx0XHRcdFx0XHRsZWZ0OiAxMHB4O1xyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0c3BhbntcclxuLy8gXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxcmVtO1xyXG4vLyBcdFx0XHRcdFx0XHRwYWRkaW5nOiAwIDJweCAwIDdweDtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRcdCY6YmVmb3JleyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTUwcHggMDsgfVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQudGl0bGUtYXJlYXtcclxuLy8gXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC50b3AtYmFyLXNlY3Rpb257XHJcbi8vIFx0XHRcdFx0bWF4LWhlaWdodDogMDtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG1heC1oZWlnaHQgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcbi8vIFx0XHRcdFx0LmxlZnR7XHJcbi8vIFx0XHRcdFx0XHRtYXJnaW46IDA7XHJcbi8vIFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiByZWQ7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC5yaWdodHtcclxuLy8gXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDApO1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRiYXNlO1xyXG5cdFx0XHRcdFx0XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9IC8vIEVuZCBzbWFsbC1vbmx5XHJcbi8vIFx0XHQmLnRvcC1iYXIuZXhwYW5kZWR7XHJcbi8vIFx0XHRcdG1heC1oZWlnaHQ6IDEwMDBweDtcclxuLy8gXHRcdFx0LnRvcC1iYXItc2VjdGlvbntcclxuLy8gXHRcdFx0XHRtYXgtaGVpZ2h0OiAxMDAwcHg7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihtYXgtaGVpZ2h0IC44cyBlYXNlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQubGVmdHtcclxuLy8gXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LnVwLWljb246YmVmb3Jle1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAtOTBweDtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gLnNpdGUtbWFpbi1uYXZ7XHJcbi8vIFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcclxuLy8gXHR6LWluZGV4OiA5OTk5O1xyXG4vLyBcdCNnb3Z7XHJcbi8vIFx0XHRtYXJnaW46IDAgYXV0bztcclxuLy8gXHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcbi8vIFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4vLyBcdFx0d2lkdGg6IDMwMHB4O1xyXG4vLyBcdFx0bWF4LXdpZHRoOiA4NSU7XHJcbi8vIFx0XHRoMntcclxuLy8gXHRcdFx0Zm9udC1zaXplOiAxOXB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0aDR7XHJcbi8vIFx0XHRcdGZvbnQtc2l6ZTogMTBweDtcclxuLy8gXHRcdFx0bGluZS1oZWlnaHQ6IDE2cHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdHVse1xyXG4vLyBcdFx0bWFyZ2luOiAwO1xyXG4vLyBcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4vLyBcdH1cclxuLy8gXHQudGl0bGUtYXJlYXtcclxuLy8gXHRcdGhlaWdodDogNDVweDtcclxuLy8gXHRcdGxpe1xyXG4vLyBcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0ZGl2e1xyXG4vLyBcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdCp7XHJcbi8vIFx0XHRcdGhlaWdodDogNTVweDtcclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0dWwgbGkgYXtcclxuLy8gXHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XHJcbi8vIFx0XHRkaXNwbGF5OiBibG9jaztcclxuLy8gXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuLy8gXHRcdGJvcmRlci1yaWdodDogc29saWQgMXB4IGxpZ2h0ZW4oJHNlY29uZGFyeS1jb2xvciwgMTAlKTtcclxuLy8gXHRcdHBhZGRpbmc6IDEwcHggMjBweCAhaW1wb3J0YW50O1xyXG4vLyBcdFx0bGluZS1oZWlnaHQ6IDIuMnJlbTtcclxuLy8gXHRcdGZvbnQtc2l6ZTogMWVtO1xyXG4vLyBcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kIC4ycyBlYXNlKTtcclxuLy8gXHRcdCY6YWZ0ZXJ7XHJcbi8vIFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRkaXYuc2l0ZS1zdGF0ZSwgI21lbnUtc2l0ZS1tZW51ID4gbGk6Zmlyc3QtY2hpbGQgYXtcclxuLy8gXHRcdHBhZGRpbmctbGVmdDogNzVweCAhaW1wb3J0YW50O1xyXG4vLyBcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdEBpbmNsdWRlIHNwcml0ZSg0MnB4LCAyNXB4LCAwcHgsIC02MHB4KTtcclxuLy8gXHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRsZWZ0OiAyMHB4O1xyXG4vLyBcdFx0XHR0b3A6IDE2cHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdCNzaXRlLW1lbnV7XHJcbi8vIFx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcbi8vIFx0XHQuc2l0ZS1zdGF0ZXtcclxuLy8gXHRcdFx0ZGlzcGxheTpibG9jaztcclxuLy8gXHRcdH1cclxuLy8gXHRcdD4gdWwgPiBsaXtcclxuLy8gXHRcdFx0YXtcclxuLy8gXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG4vLyBcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vIFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wN2VtO1xyXG4vLyBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obm9uZSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0LmRyb3Bkb3due1xyXG4vLyBcdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiAwO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgMjUlKTtcclxuLy8gXHRcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcblxyXG5cdFxyXG4vLyBcdC5oYXMtZHJvcGRvd257XHJcbi8vIFx0XHRwb3NpdGlvbjogc3RhdGljO1xyXG4vLyBcdFx0LmRyb3Bkb3duLCAuc3ViLW1lbnV7XHJcbi8vIFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0XHRsaXtcclxuLy8gXHRcdFx0XHRsZWZ0OiBhdXRvO1xyXG4vLyBcdFx0XHRcdHdpZHRoOiBhdXRvO1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHRcclxuLy8gXHRcdFx0XHQmLmpzLWdlbmVyYXRlZHtcclxuLy8gXHRcdFx0XHRcdG9wYWNpdHk6IDA7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgOCUpO1xyXG4vLyBcdFx0XHRcdFx0cGFkZGluZzogNHB4IDEwcHggIWltcG9ydGFudDtcclxuLy8gXHRcdFx0XHRcdGZvbnQtc2l6ZTogLjg3NWVtO1xyXG4vLyBcdFx0XHRcdFx0bWFyZ2luOiAxMHB4IDBweDtcclxuLy8gXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjNlbTtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgLjJzIGVhc2UpO1xyXG4vLyBcdFx0XHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRcdFx0Y29sb3I6IGRhcmtlbigkd2hpdGUsIDI1JSk7XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA4JSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4vLyBcdFx0I3NpdGUtbWVudSwgLnNiLXNsaWRlYmFye1xyXG4vLyBcdFx0XHR6LWluZGV4OiAyMDA7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XHJcbi8vIFx0XHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0XHRsaXtcclxuLy8gXHRcdFx0XHRmbG9hdDogbGVmdDtcclxuLy8gXHRcdFx0XHQuZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdFx0XHRmb250LXNpemU6IC44ZW07XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdCY6aG92ZXIgPiAuZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQuc2l0ZS1zdGF0ZSA+IGEsIGEuc2l0ZS1zdGF0ZXtcclxuLy8gXHRcdFx0cGFkZGluZy1sZWZ0OiA3NXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg0MnB4LCAyNXB4LCAwcHgsIC02MHB4KTtcclxuLy8gXHRcdFx0JjpiZWZvcmV7XHJcbi8vIFx0XHRcdFx0bGVmdDogMjBweDtcclxuLy8gXHRcdFx0XHR0b3A6IDE3cHg7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHRcdC5oYXMtZHJvcGRvd257XHJcbi8vIFx0XHRcdC5kcm9wZG93biwgLnN1Yi1tZW51e1xyXG4vLyBcdFx0XHRcdHdpZHRoOiAyMDBweDtcclxuLy8gXHRcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH0gLy8gRW5kIG1lZGl1bS11cFxyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbi8vIFx0XHQmLnNiLXNsaWRlYmFye1xyXG4vLyBcdFx0XHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyYWRpZW50KCRzZWNvbmRhcnktY29sb3IsMCUsMTAwJSxsZWZ0LHJpZ2h0KTtcclxuLy8gXHRcdFx0ei1pbmRleDogMDtcclxuLy8gXHRcdFx0bGksIGF7XHJcbi8vIFx0XHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC5oYXMtZHJvcGRvd257XHJcbi8vIFx0XHRcdFx0XHRib3JkZXItdG9wOiBzb2xpZCAxcHggbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCAxMCUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4vLyBcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuLy8gXHRcdFx0XHR9XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0I3NpdGUtbWVudSA+IHVsPiBsaTpsYXN0LWNoaWxke1xyXG4vLyBcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Lm1lbnUtaXRlbS1oYXMtY2hpbGRyZW57XHJcbi8vIFx0XHRcdFx0JiA+IGF7XHJcbi8vIFx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMThweCwgMTNweCwgLTkwcHgsIC02MHB4KTtcclxuLy8gXHRcdFx0XHRcdCY6YmVmb3Jle1xyXG4vLyBcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vIFx0XHRcdFx0XHRcdHJpZ2h0OiAxMHB4O1xyXG4vLyBcdFx0XHRcdFx0XHR0b3A6IDEycHg7XHJcbi8vIFx0XHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ocmlnaHQgMHMgZWFzZSwgd2lkdGggLjBzIGVhc2UsIG9wYWNpdHkgLjJzKVxyXG4vLyBcdFx0XHRcdCAgICB9XHJcbi8vIFx0XHRcdFx0ICAgICY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0ICAgIFx0YmFja2dyb3VuZDogZGFya2VuKCRzZWNvbmRhcnktY29sb3IsIDglKTtcclxuLy8gXHRcdFx0XHQgICAgfVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHQmOmxhc3QtY2hpbGQgPiB1bHtcclxuLy8gXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRzZWNvbmRhcnktY29sb3IsIDEwJSk7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC5kcm9wZG93biBsaSwgLnN1Yi1tZW51IGxpe1xyXG4vLyBcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcbi8vIFx0XHRcdFx0XHRwYWRkaW5nOiAwIDEwcHg7XHJcbi8vIFx0XHRcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdFx0XHRmb250LXNpemU6IC43ZW07XHJcblxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0LnRpdGxlLWFyZWEge1xyXG4vLyBcdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcbi8vIFx0XHRcdCp7XHJcbi8vIFx0XHRcdFx0aGVpZ2h0OiA0NXB4O1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdC5zaXRlLXN0YXRle1xyXG4vLyBcdFx0XHRcdHBhZGRpbmc6IDZweCAyMHB4IDBweCA2NXB4ICFpbXBvcnRhbnQ7XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDQycHgsIDI1cHgsIDBweCwgLTYwcHgpO1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0bGluZS1oZWlnaHQ6IDIuNTtcclxuLy8gXHRcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRcdHRvcDogMTFweDtcclxuLy8gXHRcdFx0XHRcdGxlZnQ6IDEycHg7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQjc2l0ZS1tZW51e1xyXG4vLyBcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIFx0XHRcdGxpe1xyXG4vLyBcdFx0XHRcdGF7XHJcbi8vIFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQuc2ItdG9nZ2xlLWxlZnR7XHJcbi8vIFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyNXB4LCAxN3B4LCAtMTgwcHgsIDBweCk7XHJcbi8vIFx0XHRcdHdpZHRoOiA0OHB4O1xyXG4vLyBcdFx0XHQmOmJlZm9yZXtcclxuLy8gXHRcdFx0XHRsZWZ0OiAxMXB4O1xyXG4vLyBcdFx0XHRcdHRvcDogMTRweDtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0dWwgbGkgYXtcclxuLy8gXHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH0gLy8gRW5kIHNtYWxsLW9ubHlcclxuLy8gfVxyXG5cclxuLy8gLnNiLXNsaWRlYmFye1xyXG4vLyBcdG9wYWNpdHk6IDA7XHJcbi8vIH1cclxuXHJcbi8vIC5zYi1hY3RpdmUgLnNiLXNsaWRlYmFye1xyXG4vLyBcdG9wYWNpdHk6IDE7XHJcbi8vIH1cclxuXHJcbi8vIC5zYi1zbGlkZWJhciAjc2l0ZS1tZW51e1xyXG4vLyBcdFx0PiB1bCA+IGxpe1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuLy8gXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG5vbmUpO1xyXG4vLyBcdFx0XHR9XHJcbi8vIFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0PiBhe1xyXG4vLyBcdFx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuLy8gXHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obm9uZSk7XHJcbi8vIFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuLy8gXHRcdFx0XHRcdCY6aG92ZXJ7XHJcbi8vIFx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0XHR9XHJcbi8vIFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdC5kcm9wZG93biwgLnN1Yi1tZW51e1xyXG4vLyBcdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuXHJcbi8vIC5hZG1pbi1iYXIgI21haW4taGVhZGVye1xyXG4vLyBcdHRvcDogMzJweDtcclxuLy8gXHRAbWVkaWEgKG1heC13aWR0aDogNzgycHgpIGFuZCAobWluLXdpZHRoOiA2MDFweCl7XHJcbi8vIFx0XHR0b3A6IDQ2cHg7XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7XHJcbi8vIFx0XHR0b3A6IDA7XHJcbi8vIFx0fVxyXG4vLyB9XHJcbiIsIi8vIEhPTUUuc2Nzc1xyXG5cclxuI2hlcm8ge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQvLyBib3JkZXItYm90dG9tOiBzb2xpZCAycHggJHdoaXRlO1xyXG5cdCNzb2NpYWwtbmF2IHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0ei1pbmRleDogNDA7XHJcblx0XHRtYXJnaW4tdG9wOiAtMzdweDtcclxuXHRcdHVsIHtcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdFx0XHR3aWR0aDogKDEwMCUgLyA2KTtcclxuXHRcdFx0XHRmbG9hdDogbGVmdDtcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbmF2eSwgLjgpO1xyXG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgaG92ZXIge1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGdvbGQsIDclKTtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHJnYmEoJGdvbGQsIC43KSwgNSUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0XHRcdCYuZmItaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE1MHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdCYudHctaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC0xNTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQmLnl0LWljb246YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTBweCAtMTUwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji5mbGstaWNvbjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAtMTUwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji5tYWlsLXNtYWxsLWljb246YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTgwcHggLTE1MHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tb25seX17XHJcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgLTEwMHB4O1xyXG5cdH1cclxuXHRAbWVkaWEgKG1pbi13aWR0aDogNTgycHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCl7XHJcblx0XHRtaW4taGVpZ2h0OiAzMDBweDtcclxuXHR9XHJcblx0QG1lZGlhIChtaW4td2lkdGg6IDEzMjBweCl7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEyNSUgYXV0bztcclxuXHR9XHJcbn1cclxuXHJcbi8vb3ZlciB3cml0ZXMgZm9yIHRoZSBhbGVydCBiYXJcclxuLmZpYXQtYWxlcnQge1xyXG5cdG1hcmdpbjogMTBweDtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0bWFyZ2luLXRvcDogOHB4O1xyXG5cdGJhY2tncm91bmQ6ICRyZWQtYnJpZ2h0ICFpbXBvcnRhbnQ7XHJcblx0dGV4dC1zaGFkb3c6IG5vbmU7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGxldHRlci1zcGFjaW5nOiAuMDhlbTtcclxuXHRwIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHR9XHJcblx0YnV0dG9uIHtcclxuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHRcdHdpZHRoOiAzMHB4O1xyXG5cdFx0aGVpZ2h0OiAzMHB4O1xyXG5cdFx0cGFkZGluZy10b3A6IDRweDtcclxuXHRcdGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuXHRcdGJvcmRlci1jb2xvcjogJHdoaXRlO1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0b3V0bGluZTogbm9uZTtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdGNvbG9yOiAkcmVkLWJyaWdodCAhaW1wb3J0YW50O1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdGEge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgM3B4KTtcclxuXHRcdHBhZGRpbmc6IDVweCAxMHB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWQtYnJpZ2h0LCAyMCUpO1xyXG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgLjNzKTtcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZC1icmlnaHQsIDMwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0fVxyXG59XHJcblxyXG4jcHJpb3JpdGllcyB7XHJcblx0LnRhYi10aXRsZSB7XHJcblx0XHR3aWR0aDogMzMuMzMzMzMzMzMzJTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkc2Vjb25kYXJ5LWNvbG9yLCA2JSk7XHJcblx0XHRhIHtcclxuXHRcdFx0QGluY2x1ZGUgYmFja2dyb3VuZC1ncmFkaWVudCgkc2Vjb25kYXJ5LWNvbG9yKTtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggJHdoaXRlO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcblx0XHRcdHBhZGRpbmc6IDQwcHggMDtcclxuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0b3V0bGluZTogbm9uZTtcclxuXHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLXBvc2l0aW9uIC4zcyBlYXNlKTtcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAtMTA2cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0LnNjaG9vbHMtdGFiIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoNTZweCwgNDFweCwgMCwgLTMzMHB4KTtcclxuXHRcdFx0XHR3aWR0aDogNjJweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuam9icy10YWIge1xyXG5cdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSg0MHB4LCA0MnB4LCAtNjBweCwgLTMzMHB4KTtcclxuXHRcdFx0XHR3aWR0aDogNTBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuZ292LXRhYiB7XHJcblx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDUzcHgsIDQ1cHgsIC0xMjBweCwgLTMzMHB4KTtcclxuXHRcdFx0XHR3aWR0aDogNjNweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQudGFiLWljb24ge1xyXG5cdFx0XHRcdGhlaWdodDogMThweDtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmLmFjdGl2ZSBhIHtcclxuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0XHRjb2xvcjogJGJsYWNrO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjJzIGVhc2UpO1xyXG5cdFx0XHQuc2Nob29scy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yNzBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuam9icy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtMjcwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0Lmdvdi10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTI3MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdCY6YWN0aXZlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBkYXJrZW4oJHdoaXRlLCA1JSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCY6bGFzdC1jaGlsZCBhIHtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQudGFiLXRleHQge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcblx0LnRhYnMtY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OiAyMDtcclxuXHRcdC5ob21lLXByaW9yaXRpZXMtaW1hZ2Uge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiAzMDBweDtcclxuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OiAnJztcclxuXHRcdFx0ICBkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdCAgd2lkdGg6IDEwMCU7XHJcblx0XHRcdCAgaGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHQgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuXHRcdFx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cdFx0XHQgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9jb2FfeHNtYWxsLnBuZ1wiKTtcclxuXHRcdFx0ICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcblx0XHRcdCAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0ICB6LWluZGV4OiAtMTtcclxuXHRcdFx0ICBib3JkZXI6IHNvbGlkIDIwcHggJHNlY29uZGFyeS1jb2xvcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aDIge1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAtMTBweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHRcdFx0Zm9udC1zaXplOiAycmVtO1xyXG5cdFx0fVxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcblx0XHQudGFiLXRpdGxlIGEge1xyXG5cdFx0XHRoZWlnaHQ6IDEwMHB4O1xyXG5cdFx0XHRwYWRkaW5nOiAyNXB4IDA7XHJcblx0XHR9XHJcblx0XHQudGFicy1jb250ZW50IHtcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHRtYXJnaW46IDI1cHggMCA1MHB4IDAgO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG5cdFx0LnRhYi10aXRsZSB7XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdHBhZGRpbmc6IDIwcHggMDtcclxuXHRcdFx0XHRmb250LXNpemU6IC44NWVtO1xyXG5cdFx0XHRcdC50YWItaWNvbiB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5zY2hvb2xzLXRhYiB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjlweCwgMjBweCwgMCwgLTQ4MHB4KTsgLy8gZml4LXNwcml0ZVxyXG5cdFx0XHRcdFx0d2lkdGg6IDIycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5qb2JzLXRhYiB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjJweCwgMjRweCwgLTMwcHgsIC00ODBweCk7IC8vIGZpeC1zcHJpdGVcclxuXHRcdFx0XHRcdHdpZHRoOiAyMnB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQuZ292LXRhYiB7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMjlweCwgMjVweCwgLTYwcHgsIC00ODBweCk7IC8vIGZpeC1zcHJpdGVcclxuXHRcdFx0XHRcdHdpZHRoOiAyOXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmLmFjdGl2ZSBhIHtcclxuXHRcdFx0XHQuc2Nob29scy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgLTQ1MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQuam9icy10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0zMHB4IC00NTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Lmdvdi10YWI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC00NTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC50YWItdGV4dCB7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcblx0XHQudGFicy1jb250ZW50IHtcclxuXHRcdFx0cGFkZGluZzogNzVweCAwO1xyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdG1heC13aWR0aDogOTUlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBtZWRpYSAjeyRsYXJnZS11cCB9e1xyXG5cdFx0LnRhYi10ZXh0IHtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xyXG5cdFx0fVxyXG5cdFx0LnRhYi10aXRsZSBhIC50YWItaWNvbjpiZWZvcmUge1xyXG5cdFx0XHR0b3A6IC0xMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI2hvbWVIZWFkbGluZSB7XHJcblx0bWFyZ2luLXRvcDogMjBweDtcclxuXHQubmV3cy1wb3N0Lm5ld3MtcG9zdC1oZWFkbGluZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdH1cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuI2dvdmVybm9yIHtcclxuXHRAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyYWRpZW50KCRuYXZ5KTtcdFxyXG5cdHRyYW5zaXRpb246IGFsbCAuNXMgZWFzZTtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdHBhZGRpbmctdG9wOiAyLjVlbTtcclxuXHQjZ292LXBob3RvIHtcclxuXHRcdG1hcmdpbi10b3A6IDMuNWVtO1xyXG5cdFx0QG1lZGlhICN7JGxhcmdlLXVwfXtcclxuXHRcdFx0aGVpZ2h0OiAzMDBweDtcclxuXHRcdFx0bWFyZ2luLXRvcDogNi41ZW07XHJcblx0XHR9XHJcblx0fVxyXG5cdCNnb3YtaW5mbyB7XHJcblx0XHRtYXJnaW46IDMwcHggMCAxNDBweDtcclxuXHRcdEBtZWRpYSAjeyRsYXJnZS11cH17XHJcblx0XHRcdG1hcmdpbjogMTAwcHggMCAxNDBweDtcclxuXHRcdH1cclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcblx0XHR9XHJcblx0XHRoMSB7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG5cdFx0fVxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0XHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHR9XHJcblx0XHQuYnV0dG9uIHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdFx0Y29sb3I6ICRuYXZ5O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5uZXdzLWltYWdlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Zm9udC1zaXplOiAwO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL2NvYV94c21hbGwucG5nKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0I2ltYWdlLWlubmVyIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdGhlaWdodDogMDtcclxuXHRcdFx0cGFkZGluZy10b3A6IDU4LjMlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jc29jaWFsLW1lZGlhe1xyXG5cdHBhZGRpbmc6IDUwcHggMDtcclxuXHQuc29jaWFsLWxpbmt7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHRcdC5zb2NpYWwtaWNvbntcclxuXHRcdFx0d2lkdGg6IDYwcHg7XHJcblx0XHRcdGhlaWdodDogNjBweDtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAycHggJGJsYWNrO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdCYudHctaWNvbiwgJi5mbGlja3ItaWNvbntcclxuXHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdG1hcmdpbjogMTVweCAwIDAgMTBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ji50dy1pY29ue1xyXG5cdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgzMnB4LCAyN3B4LCAtMTUwcHgsIC00NTBweCk7XHJcblx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMTJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5mbGlja3ItaWNvbntcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMzdweCwgMTVweCwgLTE1MHB4LCAtNDgwcHgpO1xyXG5cdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0dG9wOiA1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0d2lkdGg6IDYwcHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAycHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogJGJsYWNrO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0XHRyaWdodDogLTYycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGF7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiA3M3B4O1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAxMXB4O1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xyXG5cdFx0XHQmOmFmdGVye1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHRcdGhlaWdodDogMnB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcclxuXHRcdFx0XHR3aWR0aDogMTAwMHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdHJpZ2h0OiAtMTAxNXB4O1xyXG5cdFx0XHRcdHRvcDogMTlweDtcclxuXHRcdFx0fVxyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdGNvbG9yOiBibGFjaztcclxuXHRcdFx0fVxyXG5cdFx0XHRzcGFue1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG5cdFx0XHQuc29jaWFsLWljb257XHJcblx0XHRcdFx0JjphZnRlcntcclxuXHRcdFx0XHRcdHdpZHRoOiA1MDBweDtcclxuXHRcdFx0XHRcdHJpZ2h0OiAtNTAycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogJHdoaXRlO1xyXG5cdFx0XHRcdGZsb2F0OiByaWdodDtcclxuXHRcdFx0XHRmb250LXNpemU6IDE4cHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogMThweDtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMCAxMHB4O1xyXG5cdFx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRhcnRpY2xle1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogLTdweDtcclxuXHR9XHJcblx0LmxhdGVzdC10d2VldHtcclxuXHRcdGgye1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XHJcblx0XHR9XHJcblx0XHQudHdlZXQtZGF0ZXtcclxuXHRcdFx0Y29sb3I6ICRiYXNlO1xyXG5cdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHRcdFx0Zm9udC1zaXplOiAxLjJlbTtcclxuXHRcdH1cclxuXHRcdHVse1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0bGl7XHJcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4IDEycHggOXB4IDYwcHg7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDVweCk7XHJcblx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0bGVmdDogMTNweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCYucmVwbHktaWNvbntcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI4cHgsIDE2cHgsIDAsIC0xODBweCk7XHJcblx0XHRcdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogOXB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmLnJ0LWljb257XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyN3B4LCAyNHB4LCAtMzBweCwgLTE4MHB4KTtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0dG9wOiA1cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCYuZmF2LWljb257XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyNXB4LCAyNHB4LCAtNjBweCwgLTE4MHB4KTtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0dG9wOiA2cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgMyUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0JjphY3RpdmV7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0JjpsYXN0LWNoaWxkIGF7XHJcblx0XHRcdFx0XHRtYXJnaW46IDBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0QG1lZGlhICN7JG1lZGl1bS11cH17XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdFx0bGl7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcclxuXHRcdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAyNXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSAvLyBlbmQgdWxcclxuXHR9XHJcblx0ZGl2LmZldGNoLXR3ZWV0c3tcclxuXHRcdG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsgLy8gZml4IG92ZXJmbG93IHNjcm9sbGluZyBvbiBtb2JpbGUuIE92ZXJ3cml0aW5nIHBsdWdpbiBpbmxpbmUgc3R5bGUuXHJcblx0fVxyXG5cdC5sYXRlc3QtZmxpY2tye1xyXG5cdFx0JjphZnRlcntcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuXHRcdH1cclxuXHRcdC5mbGlja3ItcGhvdG9zIGF7XHJcblx0XHRcdGltZ3tcclxuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjJzIGVhc2UpO1xyXG5cdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KG9wYWNpdHksIC41KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0cGFkZGluZzogMTVweCAwIDAgMDtcclxuXHRcdGgxe1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0fVxyXG5cdFx0LmxhdGVzdC10d2VldHtcclxuXHRcdFx0aDJ7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIucmV2ZWFsIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuXHJcbiAgICAuY2xvc2UtYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvOyAvLyByZW1vdmUgZ2xvYmFsIGJ1dHRvbiB3aWR0aCAxMDAlXHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICAvLyB0aGlzIGlzIHRoZSBYIGZvciB0aGUgY2xvc2UgYnV0dG9uIC4uLiB3ZSB3YW50ZWQgdGhlIHNhbWUgWCBhcyBpbiB0aGUgbWVudVxyXG4gICAgICAgIC5pbm5lciB7XHJcbiAgICAgICAgICAgIGhlaWdodDogM3B4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdG9wOiAxMHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tZW51bGFiZWwge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0Ym90dG9tOiAtMjBweDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcclxuXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIGhlbHBlciBmb3Igd2hpdGUgY2xvc2UgYnV0dG9uc1xyXG4uY2xvc2UtYnV0dG9uLnRleHQtd2hpdGUge1xyXG4gICAgLm1lbnVsYWJlbCB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIC5pbm5lcjpiZWZvcmUsIC5pbm5lcjphZnRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59IiwiLy8gTkVXU1JPT00uc2Nzc1xyXG4jbmV3c3Jvb20ge1xyXG5cdC8vIGJvdHRvbSBpcyBiZWNhdXNlIG9mIHRoZSBnb3Zlcm5vciBhY3Rpb24gYmFyXHJcblx0cGFkZGluZzogNGVtIDAgN2VtIDA7XHJcblxyXG5cdC5zZWN0aW9uLXRpdGxlIHtcclxuXHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAuNWVtO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJhbm5lci1pbWFnZSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHR9XHJcblxyXG5cdC5uZXdzcm9vbS1kYXRlIHtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xyXG5cdFx0Zm9udC1zaXplOiAuOWVtO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW46IDEwcHggMDtcclxuXHR9XHJcblx0Lm5ld3MtcG9zdC1ieWxpbmUge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0bWFyZ2luOiAxMHB4IDA7XHJcblx0fVxyXG59XHJcblxyXG4ubmV3cy1wb3N0IHtcclxuXHQmLXRpdGxle1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDU1cHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XHJcblx0XHR3aWR0aDogMzY4cHg7XHJcblx0XHRmb250LXNpemU6IDFyZW07XHJcblx0XHRsaW5lLWhlaWdodDogMS4yNTtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAwLjY4NzVyZW07XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdEBpbmNsdWRlIHNwcml0ZSgyOXB4LCAyOXB4LCAtOTBweCwgLTE4MHB4KTtcclxuXHRcdCY6YmVmb3Jle1xyXG5cdFx0XHR0b3A6IDJweDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1jYXRlZ29yeXtcclxuXHRcdGNvbG9yOiAkZ29sZCAhaW1wb3J0YW50O1xyXG5cdFx0Zm9udC1zaXplOiAuNjVyZW0gIWltcG9ydGFudDtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRtYXJnaW46IDEwcHggMCAhaW1wb3J0YW50O1xyXG5cdFx0PiBhIHtcclxuXHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1pbWFnZXtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblx0XHQjbmV3cy1pbWFnZXtcclxuXHRcdFx0aGVpZ2h0OiAyMzVweDtcclxuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdCYuYXJ0aWNsZS1mZWF0dXJlZC1pbWFnZXtcclxuXHRcdFx0XHRoZWlnaHQ6IDM1MHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdCYtcG9zdC10aXRsZXtcclxuXHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRmb250LXNpemU6IDEuMjVlbTtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjNlbTtcclxuXHRcdGEge1xyXG5cdFx0XHRjb2xvcjogJG5hdnk7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLXBvc3QtZGF0ZXtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcclxuXHRcdGZvbnQtc2l6ZTogLjllbTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0bWFyZ2luOiAxMHB4IDA7XHJcblx0fVxyXG5cdC5idXR0b257XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG5cdGFydGljbGUucm93e1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji5uZXdzLXBvc3QtcHJpb3JpdHl7XHJcblx0XHRtYXJnaW46IDUwcHggMCAwO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XHJcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG5cdH1cclxuXHQmLm5ld3MtcG9zdC1oZWFkbGluZXtcclxuXHRcdHBhZGRpbmc6IDMwcHggNDBweCA0MHB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHRcdGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHQubmV3cy1wb3N0eyAvLyAqIERPIE5PVCBBREQgU1RZTEVTIEhFUkUgKlxyXG5cdFx0XHQmLXRpdGxle1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTE4MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLnZpZXctYWxsLW5ld3N7XHJcblx0cGFkZGluZzogMjVweCA1MHB4O1xyXG5cdGJhY2tncm91bmQ6ICRnb2xkO1xyXG5cdGNvbG9yOiAkd2hpdGU7XHJcblx0bWFyZ2luLWJvdHRvbTogNzVweDtcclxuXHRoNXtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdH1cclxuXHQuYnV0dG9ue1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bWFyZ2luLXRvcDogOHB4O1xyXG5cdH1cclxufVxyXG5cclxuI3NvY2lhbC1hcnRpY2xlIHtcclxuXHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiA4cHg7XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdGNvbG9yOiAkd2hpdGU7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG9wYWNpdHk6IC43O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuc2VjdGlvbiB7XHJcblx0JiNyZWxhdGVkLW5ld3MsICYjcmVsYXRlZC1tZWRpYSB7XHJcblxyXG5cdFx0aDMsIC5oMyB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAxZW07XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiAuMjVlbTtcclxuXHRcdH1cclxuXHJcblx0XHQuY29sdW1uLWJsb2NrIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHJcblx0XHQuZGF0YS1saXN0LWVsZW1lbnQge1xyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRib3JkZXItY29sb3I6ICRnb2xkO1xyXG5cdFx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcblxyXG5cdFx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XHJcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLnByZXZfbmV4dF9saW5rc3tcclxuXHRtYXJnaW4tdG9wOiAyNXB4O1xyXG5cdHNwYW57XHJcblx0XHR3aWR0aDogMTUwcHg7XHJcblx0XHRtYXgtd2lkdGg6IDUwJTtcclxuXHR9XHJcblx0YXtcclxuXHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHQvLyB3aWR0aDogMTAwJTtcclxuXHRcdGNvbG9yOiAkZ29sZDtcclxuXHRcdGJvcmRlcjogc29saWQgMnB4ICRnb2xkO1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdEBpbmNsdWRlIGZvbnRhd2Vzb21lO1xyXG5cdFx0XHRjb250ZW50OiBcIlxcZjA1M1wiO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0XHQmOmhvdmVye1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0LnByZXZpb3VzX3Bvc3QgYSB7XHJcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHR9XHJcblx0Lm5leHRfcG9zdCBhIHtcclxuXHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0cmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiLy8gYm9keSB7XHJcbi8vIFx0bGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xyXG4vLyBcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuLy8gXHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdHBhZGRpbmc6IDA7XHJcbi8vIFx0bWFyZ2luLXRvcDogMTAwcHg7XHJcblx0XHJcbi8vIFx0I3NiLXNpdGUge1xyXG4vLyBcdFx0LXdlYmtpdC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbi8vIFx0XHQtbW96LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuLy8gXHRcdC1vLXRyYW5zZm9ybTogaW5pdGlhbDtcclxuLy8gXHRcdHRyYW5zZm9ybTogaW5pdGlhbDtcclxuLy8gXHRcdG1pbi1oZWlnaHQ6IDEwMCU7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyBpbnB1dHtcclxuLy8gXHQvLyBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XHJcbi8vIFx0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4vLyBcdFt0eXBlPVwic2VhcmNoXCJdIHtcclxuLy8gXHRcdGNvbG9yOiAkYmxhY2s7XHJcbi8vIFx0XHQmOmZvY3Vze1xyXG4vLyBcdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTUlKTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4vLyBcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xyXG4vLyBcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOjotbW96LXBsYWNlaG9sZGVyIHsgIC8qIEZpcmVmb3ggMTkrICovXHJcbi8vIFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNjAlKTtcclxuLy8gXHRcdH1cclxuLy8gXHRcdCY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuLy8gXHRcdFx0Y29sb3I6IGxpZ2h0ZW4oJGJsYWNrLCA2MCUpO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0Jjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntcclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjo6LW1vei1pbnB1dC1wbGFjZWhvbGRlcnsgLyogRmlyZWZveCAxOC0gKi9cclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjo6LW1vei1pbnB1dC1wbGFjZWhvbGRlcnsgLyogRmlyZWZveCAxOSsgKi9cclxuLy8gXHRcdFx0XHRjb2xvcjogbGlnaHRlbigkYmxhY2ssIDYwJSk7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdFx0Jjo6LW1zLWlucHV0LXBsYWNlaG9sZGVye1xyXG4vLyBcdFx0XHRcdGNvbG9yOiBsaWdodGVuKCRibGFjaywgNjAlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbi8vIFx0XHRcdGNvbG9yOiAkYmxhY2s7XHJcbi8vIFx0XHR9XHJcbi8vIFx0XHQmOmZvY3VzOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBGaXJlZm94IDE5KyAqL1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Jjpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xyXG4vLyBcdFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG5cclxuLy8gLmVsbGlwIHtcclxuLy8gXHRkaXNwbGF5OiBibG9jaztcclxuLy8gXHRoZWlnaHQ6IDEwMCU7XHJcbi8vIH1cclxuXHJcbi8vIC5lbGxpcC1saW5lIHtcclxuLy8gXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vIFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbi8vIFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8gXHR3b3JkLXdyYXA6IG5vcm1hbDtcclxuLy8gXHRtYXgtd2lkdGg6IDEwMCU7XHJcbi8vIH1cclxuXHJcbi8vIC5lbGxpcCxcclxuLy8gLmVsbGlwLWxpbmUge1xyXG4vLyBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gXHRvdmVyZmxvdzogaGlkZGVuO1xyXG4vLyB9XHJcblxyXG4vLyAuaW5uZXItd3JhcHtcclxuLy8gXHRtYXJnaW4tdG9wOiA0NXB4O1xyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDQ1cHg7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAjaW5uZXItY29udGVudHtcclxuLy8gXHRtYXJnaW4tdG9wOiA1MHB4O1xyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDA7XHJcbi8vIFx0fVxyXG4vLyB9XHJcbi8vICNpbm5lci1jb250ZW50LnB1c2gtY29udGVudC11cHtcclxuLy8gXHRtYXJnaW4tdG9wOiA1MHB4O1xyXG4vLyBcdEBtZWRpYSAjeyRsYXJnZS11cH17XHJcbi8vIFx0XHRtYXJnaW4tdG9wOiAtMTAwcHg7XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IDA7XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAucm93IHtcclxuLy8gXHQvLyBtYXgtd2lkdGg6IDkyJTtcclxuLy8gXHRAbWVkaWEgI3skbGFyZ2UtdXB9e1xyXG4vLyBcdFx0bWF4LXdpZHRoOiA2OC43NXJlbTtcclxuLy8gXHR9XHJcbi8vIH1cclxuXHJcbiNjb250ZW50IHtcclxuXHRwYWRkaW5nOiA1MHB4IDAgMTQwcHg7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcblx0XHRwYWRkaW5nOiAyNXB4IDAgMTQwcHg7XHJcblx0fVxyXG59XHJcblxyXG4vLyBCYW5uZXIgLSBIZWFkZXIgSW1hZ2VzXHJcblxyXG4vLyAjaGVhZGVyX2ltYWdle1xyXG4vLyBcdGhlaWdodDogMzA4cHg7XHJcbi8vIFx0bWFyZ2luLXRvcDogLTUwcHg7XHJcbi8vIFx0YmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuLy8gXHRAbWVkaWEgI3skbWVkaXVtLXVwfXtcclxuLy8gXHRcdGhlaWdodDogNDIwcHg7XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcclxuLy8gXHR9XHJcbi8vIFx0QG1lZGlhICN7JHhsYXJnZS11cH17XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IDExNSU7XHJcbi8vIFx0fVxyXG4vLyBcdGgxe1xyXG4vLyBcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdG1hcmdpbjogMTQwcHggMCAwIDA7XHJcbi8vIFx0XHQmLnNtYWxsLXRpdGxle1xyXG4vLyBcdFx0XHRmb250LXNpemU6IDIuNGVtO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0YXtcclxuLy8gXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0Jjpob3ZlcntcclxuLy8gXHRcdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcclxuLy8gXHRcdCYuTWlrZS5TdGFja3tcclxuLy8gXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTE4MHB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Ji5wcmlvcml0aWVzLWhlYWRlcntcclxuLy8gXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNjclO1xyXG4vLyBcdFx0fVxyXG4vLyBcdFx0Ji5uZXdzcm9vbS1oZWFkZXIsICYuZXhlY3V0aXZlX29yZGVyLWhlYWRlcntcclxuLy8gXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHg7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyBcdEBtZWRpYSAjeyRtZWRpdW0tb25seX17XHJcbi8vIFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTtcclxuLy8gXHRcdCYubmV3c3Jvb20taGVhZGVyLCAmLmV4ZWN1dGl2ZV9vcmRlci1oZWFkZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4O1xyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gXHRAbWVkaWEgKG1pbi13aWR0aDogMTAyMHB4KSBhbmQgKG1heC13aWR0aDogMTEzNnB4KXtcclxuLy8gXHRcdCYubmV3c3Jvb20taGVhZGVyLCAmLmV4ZWN1dGl2ZV9vcmRlci1oZWFkZXJ7XHJcbi8vIFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWw7XHJcbi8vIFx0XHR9XHJcbi8vIFx0fVxyXG4vLyB9XHJcblxyXG4vLyAucGFnZS10aXRsZXtcclxuLy8gXHRoMXtcclxuLy8gXHRcdG1hcmdpbi10b3A6IC03cHg7XHJcbi8vIFx0fVxyXG4vLyBcdGF7XHJcbi8vIFx0XHRjb2xvcjogJGJsYWNrO1xyXG4vLyBcdH1cclxuLy8gICBAbWVkaWEgI3skbGFyZ2UtdXB9e1xyXG4vLyAgIFx0cGFkZGluZzogOHB4IDIwcHggNXB4O1xyXG4vLyBcdCAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XHJcbi8vIFx0ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRuYXZ5LCAuOCk7XHJcbi8vIFx0ICBoMXtcclxuLy8gXHQgIFx0bWFyZ2luOiAwO1xyXG4vLyBcdCAgfVxyXG4vLyBcdCAgYXtcclxuLy8gXHQgIFx0Y29sb3I6ICR3aGl0ZTtcclxuLy8gXHQgIH1cclxuLy8gICB9XHJcbi8vICAgJi5uZXdzcm9vbS10aXRsZXtcclxuLy8gICBcdEBtZWRpYSAjeyRtZWRpdW0tdXB9e1xyXG4vLyAgIFx0XHRtYXJnaW4tbGVmdDogMjBweDtcclxuLy8gICBcdH1cclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi5wcmlvcml0aWVzLWNvbnRlbnR7XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0aDF7XHJcblx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jZ292e1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRwYWRkaW5nOiA5cHggMDtcclxuXHRwYWRkaW5nLXRvcDogMDtcclxuXHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHdoaXRlO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHQuc3RhdGV7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0LnN0YXRlLWljb257XHJcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cdFx0XHR3aWR0aDogMjlweDtcclxuXHRcdFx0QGluY2x1ZGUgc3ByaXRlKDI4cHgsIDE3cHgsIDBweCwgLTkwcHgpO1xyXG5cdFx0fVxyXG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXJ7XHJcblx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICR3aGl0ZTtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiA4cHg7XHJcblx0XHR9XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0bGVmdDogNTUlO1xyXG5cdFx0fVxyXG5cdFx0JjphZnRlcntcclxuXHRcdFx0cmlnaHQ6IDU1JTtcclxuXHRcdH1cclxuXHR9XHJcblx0aDIsIGg0e1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAuMThlbTtcclxuXHRcdG1hcmdpbjogMHB4O1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHR9XHJcblx0aDJ7XHJcblx0XHRmb250LXNpemU6IDMwcHg7XHJcblx0fVxyXG5cdGg0e1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0Zm9udC1zaXplOiAxNXB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDIycHg7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogLjE0ZW07XHJcblx0fVxyXG59XHJcblxyXG4jaGVhZGVyX2ltYWdlIHtcclxuXHRoZWlnaHQ6IDQyMHB4O1xyXG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcblxyXG4vLyBpY29uc1xyXG5cclxuLy8gLmZiLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDEwcHgsIDE5cHgsIDAsIC0xMjBweCk7XHJcbi8vIFx0d2lkdGg6IDEwcHg7XHJcbi8vIH1cclxuLy8gLm1haWwtaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMjNweCwgMTVweCwgLTMwcHgsIC0xMjBweCk7XHJcbi8vIFx0d2lkdGg6IDIzcHg7XHJcbi8vIH1cclxuLy8gLnR3LWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDE4cHgsIDE2cHgsIC02MHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAyM3B4O1xyXG4vLyB9XHJcbi8vIC55dC1pY29ue1xyXG4vLyBcdEBpbmNsdWRlIHNwcml0ZSgyMXB4LCAxNXB4LCAtOTBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMjJweDtcclxuLy8gfVxyXG4vLyAuaW5zdGEtaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMTVweCwgMTVweCwgLTEyMHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAxNXB4O1xyXG4vLyB9XHJcbi8vIC5mbGstaWNvbntcclxuLy8gXHRAaW5jbHVkZSBzcHJpdGUoMjNweCwgMTBweCwgLTE1MHB4LCAtMTIwcHgpO1xyXG4vLyBcdHdpZHRoOiAyM3B4O1xyXG4vLyB9XHJcbi8vIC5tYWlsLXNtYWxsLWljb257XHJcbi8vIFx0QGluY2x1ZGUgc3ByaXRlKDIwcHgsIDEycHgsIC0xODBweCwgLTEyMHB4KTtcclxuLy8gXHR3aWR0aDogMjBweDtcclxuLy8gfVxyXG5cclxuLy8gc29jaWFsIG5hdlxyXG5cclxuLy8gI3NvY2lhbC1uYXZ7XHJcbi8vIFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyBcdHotaW5kZXg6IDgwMDA7XHJcbi8vIFx0JjphZnRlcntcclxuLy8gXHRcdGNvbnRlbnQ6Jyc7XHJcbi8vIFx0XHRjbGVhcjogYm90aDtcclxuLy8gXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG4vLyBcdH1cclxuLy8gXHQuZmEge1xyXG4vLyBcdFx0ZGlzcGxheTogaW5oZXJpdDtcclxuLy8gXHRcdGZvbnQtc2l6ZTogMS41cmVtO1xyXG4vLyBcdFx0bGluZS1oZWlnaHQ6IDEuNTtcclxuLy8gXHRcdGNvbG9yOiAkZ29sZDtcclxuLy8gXHR9XHJcbi8vIFx0dWx7XHJcbi8vIFx0XHRtYXJnaW46IDBweDtcclxuLy8gXHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4vLyBcdFx0bGl7XHJcbi8vIFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuLy8gXHRcdFx0d2lkdGg6ICgxMDAlIC8gNik7XHJcbi8vIFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG4vLyBcdFx0XHRhe1xyXG4vLyBcdFx0XHRcdHBhZGRpbmc6IDhweDtcclxuLy8gXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbi8vIFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcbi8vIFx0XHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuLy8gXHRcdFx0XHRib3JkZXItbGVmdDogbm9uZTtcclxuLy8gXHRcdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xyXG4vLyBcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vIFx0XHRcdFx0Y29sb3I6ICMwMDA7XHJcbi8vIFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG4vLyBcdFx0XHRcdGZvbnQtc2l6ZTogLjdlbTtcclxuLy8gXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLjA4ZW07XHJcbi8vIFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlKTtcclxuLy8gXHRcdFx0XHQmOmhvdmVye1xyXG4vLyBcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR3aGl0ZSwgNSUpO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHQmOmFjdGl2ZXtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LDIyNSwyMjUsLjYpO1xyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0XHRzcGFue1xyXG4vLyBcdFx0XHRcdFx0aGVpZ2h0OiAxNXB4O1xyXG4vLyBcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcbi8vIFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vIFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vIFx0XHRcdFx0XHQmLnR3LWljb246YmVmb3JlLFxyXG4vLyBcdFx0XHRcdFx0Ji55dC1pY29uOmJlZm9yZSxcclxuLy8gXHRcdFx0XHRcdCYuaW5zdGEtaWNvbnsgdG9wOiA0cHg7IH1cclxuLy8gXHRcdFx0XHRcdCYuZmxrLWljb24geyB0b3A6IDZweDsgfVxyXG4vLyBcdFx0XHRcdFx0Ji5tYWlsLXNtYWxsLWljb24geyB0b3A6IDVweDsgfVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0XHQmOmxhc3QtY2hpbGQgYXtcclxuLy8gXHRcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XHJcbi8vIFx0XHRcdH1cclxuLy8gXHRcdH1cclxuLy8gXHR9XHJcbi8vIFx0Ji5tb2JpbGUge1xyXG4vLyBcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuLy8gXHRcdGJvdHRvbTogMTBweDtcclxuLy8gXHRcdHdpZHRoOiAxMDAlO1xyXG4vLyBcdFx0dWwge1xyXG4vLyBcdFx0XHRib3JkZXI6IG5vbmU7XHJcbi8vIFx0XHRcdGxpIHtcclxuLy8gXHRcdFx0XHR3aWR0aDogKDEwMCUgLyA2KTtcclxuLy8gXHRcdFx0XHRhIHtcclxuLy8gXHRcdFx0XHRcdGJhY2tncm91bmQ6IDAgMDtcclxuLy8gXHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuLy8gXHRcdFx0XHRcdHNwYW4ge1xyXG4vLyBcdFx0XHRcdFx0XHRtYXJnaW46IDA7XHJcbi8vIFx0XHRcdFx0XHRcdCYubWFpbC1zbWFsbC1pY29uLFxyXG4vLyBcdFx0XHRcdFx0XHQmLmZsay1pY29uLFxyXG4vLyBcdFx0XHRcdFx0XHQmLnR3LWljb24sXHJcbi8vIFx0XHRcdFx0XHRcdCYuaW5zdGEtaWNvbixcclxuLy8gXHRcdFx0XHRcdFx0Ji55dC1pY29uIHtcclxuLy8gXHRcdFx0XHRcdFx0XHRsZWZ0OiAtMTBweDtcclxuLy8gXHRcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdFx0fVxyXG4vLyBcdFx0XHRcdH1cclxuLy8gXHRcdFx0fVxyXG4vLyBcdFx0fVxyXG4vLyBcdH1cclxuLy8gfVxyXG4iLCIvLyBQUklPUklUSUVTLnNjc3NcclxuLy8gVE9ETyBUaGlzIGNhbiBsaWtlbHkgYmUgcmVtb3ZlZCBhcyBQcmlvcml0aWVzIHdpbGwgZm9sbG93IHRoZSBHdWlkZXMgbG9vayBhbmQgZmVlbCBmcm9tIFBBZ292XHJcbiNoZWFkZXJfaW1hZ2UucHJpb3JpdGllcy1oZWFkZXJ7XHJcblx0bWFyZ2luLXRvcDogMHB4O1xyXG5cdC8vIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuXHQvLyB9XHJcbn1cclxuXHJcbi8vIFByaW9yaXRpZXMgU2lkZWJhclxyXG5cclxuI3ByaW9yaXRpZXMtbmF2e1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuI3N0aWNreS1oZWFkZXJ7XHJcblx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0ei1pbmRleDogOTk5OTtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcblx0LnJpZ2h0e1xyXG5cdFx0bWFyZ2luLXRvcDogNXB4O1xyXG4gIFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgXHRcdC5zaGFyZS10aXRsZXtcclxuICBcdFx0XHRmb250LXNpemU6IC44ZW07XHJcbiAgXHRcdH1cclxuXHR9XHJcblx0aDMsIGF7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XHJcblx0fVxyXG5cdHNwYW57XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDogMTlweDtcclxuXHR9XHJcblx0LmZiLWljb257XHJcblx0XHR3aWR0aDogMTBweDtcclxuXHRcdGhlaWdodDogMTlweDtcclxuXHRcdG1hcmdpbi1ib3R0b206IC0zcHg7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTUwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC50dy1pY29ue1xyXG5cdFx0d2lkdGg6IDIzcHg7XHJcblx0XHRoZWlnaHQ6IDE1cHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAtMnB4O1xyXG5cdFx0JjpiZWZvcmV7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC02MHB4IC0xNTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0YTpob3ZlcntcclxuXHRcdG9wYWNpdHk6IC43O1xyXG5cdH1cclxufVxyXG4jcHJpb3JpdGllcy1zaWRlYmFye1xyXG5cdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAyMCUpO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0ei1pbmRleDogMjA7XHJcblx0d2lkdGg6IDI0M3B4O1xyXG5cdGg1e1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWwoKTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdHBhZGRpbmc6IDEwcHggMCAxMHB4IDQwcHg7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMTAlKTtcclxuXHRcdEBpbmNsdWRlIHNwcml0ZSgxOHB4LCAxOHB4LCAtMTgwcHgsIC0yNDBweCk7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0bGVmdDogMTVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0dWx7XHJcblx0XHRiYWNrZ3JvdW5kOiBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdG1hcmdpbjogMDtcclxuXHRcdGxpOmxhc3QtY2hpbGQgdWx7XHJcblx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgMzAlKTtcclxuXHRcdH1cclxuXHRcdGF7XHJcblx0XHRcdHBhZGRpbmc6IDE4cHggMjBweCAxMnB4O1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0Zm9udC1zaXplOiAuOGVtO1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgMzAlKTtcclxuXHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XHJcblx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS41ZW07XHJcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCAuMnMgZWFzZSk7XHJcblx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDE4JSk7XHJcblx0XHRcdH1cclxuXHRcdFx0c3BhbntcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ib2xkO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMS40ZW07XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5hY3RpdmUgPiBhe1xyXG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHRcdCYgKyB1bHtcclxuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRcdFx0b3ZlcmZsb3c6IGluaXRpYWw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHVse1xyXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRoZWlnaHQ6IDA7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLW91dDtcclxuXHRcdFx0LW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHRsaXtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDE1cHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYmxhY2ssIDEwJSk7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogLjhlbTtcclxuXHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKCRibGFjaywgMjAlKTtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDEycHggMCA5cHggMDtcclxuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgc3ByaXRlKDhweCwgMTBweCwgLTMwcHgsIC05MHB4KTtcclxuXHRcdFx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IC01cHg7XHJcblx0XHRcdFx0XHRcdHRvcDogNTAlO1xyXG5cdFx0XHRcdFx0XHRyaWdodDogMDtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihyaWdodCAuMnMgZWFzZSwgd2lkdGggLjBzIGVhc2UsIG9wYWNpdHkgLjJzKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAxMCUpO1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0XHRyaWdodDogLTQwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiBkYXJrZW4oJHdoaXRlLCA0MCUpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCBhe1xyXG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogYXV0bztcclxuXHRcdHVse1xyXG5cdFx0XHQmI3ByaW9yaXRpZXMtbWFpbi1uYXZ7XHJcblx0XHRcdFx0LmFjdGl2ZXtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIHNwcml0ZSgyMHB4LCAyMHB4LCAtMTgwcHgsIC0yNDBweCk7XHJcblx0XHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0bGVmdDogMTVweDtcclxuXHRcdFx0XHRcdFx0dG9wOiAxNHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRsaXtcclxuXHRcdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0XHRcdGhlaWdodDogMHB4O1xyXG5cdFx0XHRcdCYuYWN0aXZle1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHRcdD4gYXtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAgNDVweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0YXtcclxuXHRcdFx0XHRwYWRkaW5nOiAxNHB4IDIwcHggMTBweDtcclxuXHRcdFx0XHRAaW5jbHVkZSBzcHJpdGUoMThweCwgMTNweCwgLTkwcHgsIC02MHB4KTtcclxuXHRcdFx0XHQmOmJlZm9yZXtcclxuXHRcdFx0XHRcdHJpZ2h0OiAxM3B4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRzcGFue1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAycHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCYubW9iaWxlLXByaW9yaXRpZXMtbWFpbi1uYXZ7XHJcblx0XHRcdFx0bGl7IGhlaWdodDogYXV0bzsgb3BhY2l0eTogMTt9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9IC8vIEVuZCBzbWFsbC1vbmx5XHJcbn1cclxuXHJcbi5maXhlZFByaW9OYXZ7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdHRvcDogMTA5cHg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0ei1pbmRleDogMzAwMDtcclxuXHQjcHJpb3JpdGllcy1zaWRlYmFye1xyXG5cdFx0bWFyZ2luLXRvcDogMDtcclxuXHR9XHJcblx0QG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cdFx0dG9wOiA0NXB4O1xyXG5cdH1cclxufVxyXG5cclxuLnByaW9yaXRpZXMtbmF2LWJne1xyXG5cdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGJsYWNrLCAyMCUpO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdHdpZHRoOiAyNDNweDtcclxuXHR6LWluZGV4OiAtMTtcclxuXHR0b3A6IDA7XHJcbn1cclxuXHJcbiNjb250ZW50LnByaW9yaXRpZXMtY29udGVudHtcclxuXHRtYXJnaW4tbGVmdDogMjc1cHg7XHJcblx0bWFyZ2luLXRvcDogMDtcclxuXHRwYWRkaW5nLXRvcDogMDtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHRtYXJnaW4tdG9wOiA1MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLnByaW9yaXRpZXMtbmF2LWFycm93e1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDE3cHg7XHJcblx0cmlnaHQ6IC00MHB4O1xyXG5cdHdpZHRoOiAwO1xyXG5cdGhlaWdodDogMDtcclxuXHRib3JkZXItdG9wOiAxOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1ib3R0b206IDE4cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1sZWZ0OiAyMHB4IHNvbGlkIGxpZ2h0ZW4oJGJsYWNrLCAyMCUpO1xyXG5cdG9wYWNpdHk6IDE7XHJcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEwMCk7XHJcblx0QGluY2x1ZGUgdHJhbnNpdGlvbih0b3AgMC4zcyAwcyBlYXNlKTtcclxuXHRAbWVkaWEgI3skc21hbGwtb25seX17XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuLy8gUHJpb3JpdHkgQ29udGVudFxyXG5cclxuLnByaW9yaXR5e1xyXG5cdCYtc2VjdGlvbntcclxuXHRcdG1hcmdpbi10b3A6IDUwcHg7XHJcblx0XHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuXHRcdCY6Zmlyc3QtY2hpbGR7XHJcblx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHR9XHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0Ji1wb3N0LXRpdGxle1xyXG5cdFx0cGFkZGluZy1sZWZ0OiA2NXB4O1xyXG5cdFx0Y29sb3I6ICRibGFjaztcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdCY6YmVmb3Jle1xyXG5cdFx0XHR0b3A6IDJweDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbiNzY2hvb2xzLXNlY3Rpb24gLnByaW9yaXR5LXBvc3QtdGl0bGV7XHJcblx0cGFkZGluZy1sZWZ0OiA3NXB4O1xyXG5cdEBpbmNsdWRlIHNwcml0ZSg1NnB4LCA0MXB4LCAwLCAtMzkwcHgpO1xyXG59XHJcbiNqb2JzLXNlY3Rpb24gLnByaW9yaXR5LXBvc3QtdGl0bGV7XHJcblx0QGluY2x1ZGUgc3ByaXRlKDQwcHgsIDQycHgsIC02MHB4LCAtMzkwcHgpO1xyXG59XHJcbiNnb3Zlcm5tZW50LXNlY3Rpb24gLnByaW9yaXR5LXBvc3QtdGl0bGV7XHJcblx0QGluY2x1ZGUgc3ByaXRlKDUzcHgsIDQ1cHgsIC0xMjBweCwgLTM5MHB4KTtcclxufVxyXG5cclxuLmFuY2hvciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4ucHJpb3JpdGllcy1tYWluLW5hdl9mYWRlLW91dHtcclxuXHRvcGFjaXR5OiAwLjA7XHJcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLW91dDtcclxuXHQtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHQtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xyXG5cdC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcclxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZWFzZS1pbi1vdXQ7XHJcbn1cclxuIiwic2VsZWN0IHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbn0iLCIvLyBTSURFQkFSLnNjc3NcclxuLndpZGdldHtcclxuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gIGg1e1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgIHBhZGRpbmc6IDE1cHggMjBweCAxM3B4IDI1cHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjA4ZW07XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIHVse1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICB1bHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIGxpe1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICAvLyBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgYXtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6IDEuMWVtO1xyXG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCBlYXNlIC4ycyk7XHJcbiAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkd2hpdGUsIDUlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJjpsYXN0LWNoaWxke1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBkaXZ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgLy8gYm9yZGVyLXRvcDogMDtcclxuICAgIHVse1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBUT0RPIENvbnNvbGlkYXRlIGFsbCB3aWRnZXQgc3R5bGVzXHJcbi5wYW5lbCAud2lkZ2V0X3RleHQge1xyXG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAudGV4dHdpZGdldCB7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBORVdTUk9PTSBTSURFQkFSXHJcblxyXG4ud2lkZ2V0X25hdl9tZW51IHtcclxuXHJcbiAgI25ld3Nyb29tLXNpZGViYXJ7XHJcbiAgICB1bCNtZW51LW5ld3Nyb29tIHtcclxuICAgICAgbGkuY3VycmVudC1tZW51LWl0ZW17XHJcbiAgICAgICAgYXtcclxuICAgICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG5cclxuICAgIHVsI21lbnUtbmV3c3Jvb217XHJcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAmLm1vYmlsZS1kcm9wZG93bntcclxuICAgICAgICBsaXtcclxuICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBkYXJrZW4oJHdoaXRlLCAxMCUpO1xyXG4gICAgICAgICAgJjpsYXN0LWNoaWxke1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBBUkNISVZFIFdJREdFVFxyXG5cclxuLndpZGdldCB7XHJcbiAgJi1hcmNoaXZlbGlzdC15ZWFyLFxyXG4gICNtZW51LXdlZWtseS1yZXBvcnRzIHtcclxuICAgID4gYSwgXHJcbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEge1xyXG4gICAgICBmb250LXNpemU6IDEuMWVtO1xyXG4gICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgfVxyXG4gICAgdWwge1xyXG4gICAgICBoZWlnaHQ6IDBweDtcclxuICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIGxpe1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBhe1xyXG4gICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgICAgICAgcGFkZGluZzogNXB4IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmN1cnJlbnQtYXJjaGl2ZS15ZWFyLCAuY3VycmVudC1yZXBvcnR7XHJcbiAgICAgID4gYSwgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhe1xyXG4gICAgICAgIGNvbG9yOiAkbmF2eTtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwcHggLTkwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHVse1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmN1cnJlbnQtcmVwb3J0e1xyXG4gICAgICA+IGEsIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYXtcclxuICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCR3aGl0ZSwgNSUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudHV0LXR3ZWV0IHtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICBmb250LXNpemU6IC45NWVtO1xyXG4gICAgLnR1dC11c2VyLW5hbWV7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAudHV0LXNjcmVlbi1uYW1le1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgaGVhZGVye1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgfVxyXG4gICAgLnR1dC1wcm9maWxlLWltYWdle1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbiAgICBsaSwgLnR1dC10ZXh0e1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICAgIC50dXQtdGV4dHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB3aWR0aDogODAlO1xyXG4gICAgfVxyXG4gICAgYXtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICBjb2xvcjogJG5hdnk7XHJcbiAgICAgIC8vIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgZm9udC1zaXplOiAuOTVlbTtcclxuICAgIH1cclxuICAgICY6OmJlZm9yZSxcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyAnO1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC50dXQtdHdlZXRzIGxpe1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcbiAgLnR1dC1mb2xsb3ctbGlua3tcclxuICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbigkd2hpdGUsIDEwJSk7XHJcbiAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAycHg7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICB9XHJcbiAgLy8gLnR1dC1hY3Rpb25zIGE6Zmlyc3QtY2hpbGQge1xyXG4gIC8vICAgICBtYXJnaW46MHB4O1xyXG4gIC8vIH1cclxuICAudHV0LWFjdGlvbnN7XHJcbiAgICBmbG9hdDpyaWdodDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgYXtcclxuICAgICAgbWFyZ2luLWxlZnQ6OHB4O1xyXG4gICAgICB3aWR0aDoxNnB4O1xyXG4gICAgICBoZWlnaHQ6MTZweDtcclxuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vaW1hZ2VzL2V2ZXJ5dGhpbmctc3ByaXRlLWxpZ2h0LnBuZycpO1xyXG4gICAgfVxyXG5cclxuICAgIC50dXQtcmVwbHk6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246LTE2cHggMDtcclxuICAgIH1cclxuXHJcbiAgICAudHV0LXJldHdlZXQge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246LTgycHggMDtcclxuICAgIH1cclxuICAgIC50dXQtcmV0d2VldDpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjotMTAxcHggMDtcclxuICAgIH1cclxuXHJcbiAgICAudHV0LWZhdm9yaXRlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IDA7XHJcbiAgICB9XHJcbiAgICAudHV0LWZhdm9yaXRlOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC50dXQtdGltZXtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbn1cclxuLndpZGdldF9uZXdzbGV0dGVyX3dpZGdldHtcclxuICAubmV3c2xldHRlcl93aWRnZXRfY29udGFpbmVye1xyXG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgZGl2e1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAubmluamEtZm9ybXMtY29udHtcclxuICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXXtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZ29sZDtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRnb2xkO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBoM3tcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgfVxyXG4gIGZvcm17XHJcbiAgICBpbnB1dHtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgYm9yZGVyOiBzb2xpZCA0cHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgICBtaW4taGVpZ2h0OiA1MHB4O1xyXG4gICAgICBAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbiAgICAgICY6Zm9jdXN7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2eTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJ1dHRvbi5zZWNvbmRhcnl7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRuYXZ5LCA1JSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFNjaGVkdWxlIEZpbHRlciBXaWRnZXRcclxuXHJcbi53aWRnZXRfc2NoZWR1bGVfZmlsdGVyX3dpZGdldHtcclxuICAjdHJpYmUtZXZlbnRzLWJhcntcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICBoNHtcclxuICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcbiAgICB9XHJcbiAgICBkaXZ7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxuICAgIGxhYmVse1xyXG4gICAgICBjb2xvcjogZGFya2VuKCR3aGl0ZSwgMzAlKTtcclxuICAgICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICB9XHJcbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXXtcclxuICAgICAgYm9yZGVyOiBzb2xpZCA1cHggZGFya2VuKCR3aGl0ZSwgOCUpO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAudHJpYmUtYmFyLXNlYXJjaC1jb250YWluZXJ7XHJcbiAgICAgIGlucHV0e1xyXG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0ZW4oJGJsYWNrLCA1MCUpO1xyXG4gICAgICAgIEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgNTBweCk7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xyXG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJHdoaXRlLCAzMCUpO1xyXG4gICAgICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgc3ByaXRlKDE1cHgsIDE1cHgsIC0xNTBweCwgLTMwcHgpO1xyXG4gICAgICAmOmJlZm9yZXtcclxuICAgICAgICB0b3A6IDEzcHg7XHJcbiAgICAgICAgbGVmdDogMTZweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmJ1dHRvbi5wcmltYXJ5e1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkZ29sZDtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xyXG4gICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcblx0I3NjaGVkdWxlLXdpZGdldHtcclxuXHRcdHBhZGRpbmc6IDIwcHg7XHJcblx0XHRoNHtcclxuXHRcdFx0Zm9udC1zaXplOiAxZW07XHJcblx0XHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LWJvbGQ7XHJcblx0XHR9XHJcblx0XHRkaXZ7XHJcblx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdH1cclxuXHRcdGxhYmVse1xyXG5cdFx0XHRjb2xvcjogZGFya2VuKCR3aGl0ZSwgMzAlKTtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtbm9ybWFsO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XHJcblx0XHR9XHJcblx0XHRpbnB1dFt0eXBlPVwidGV4dFwiXXtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCA1cHggZGFya2VuKCR3aGl0ZSwgOCUpO1xyXG5cdFx0ICBvdXRsaW5lOiBub25lO1xyXG5cdFx0ICBwYWRkaW5nOiAwIDE1cHg7XHJcblx0XHQgIGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0ICBoZWlnaHQ6IDUwcHg7XHJcblx0XHQgIGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHR9XHJcblx0XHQuc2NoZWR1bGVfc2VhcmNoe1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiA1cHg7XHJcblx0XHRcdGlucHV0W3R5cGU9XCJzZWFyY2hcIl17XHJcblx0XHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggJGJsdWUtYnJpZ2h0O1xyXG5cdFx0XHRcdEBpbmNsdWRlIHZlbmRvci1wcmVmaXgoYm9yZGVyLXJhZGl1cywgNTBweCk7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xyXG5cdFx0XHRcdGNvbG9yOiAkbmF2eTtcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250LXdlaWdodC1ub3JtYWw7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2VhcmNoLWJ1dHRvbi13cmFwcGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICByaWdodDogMTVweDtcclxuICAgICAgfVxyXG5cdFx0fVxyXG5cdFx0LmJ1dHRvbi5wcmltYXJ5e1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ29sZDtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0cGFkZGluZzogMTJweCAyMHB4O1xyXG5cdFx0XHRmb250LXNpemU6IDFlbTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuLnVpLWRhdGVwaWNrZXItaGVhZGVye1xyXG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJvcmRlcjogc29saWQgMnB4IHJnYigyMjEsIDIyMSwgMjIxKTtcclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gIC51aS1kYXRlcGlja2VyLW5leHR7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgfVxyXG4gIC51aS1kYXRlcGlja2VyLXByZXZ7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICB9XHJcbiAgLnVpLWRhdGVwaWNrZXItdGl0bGV7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNb2JpbGUgU2NoZWR1bGUgc2lkZWJhclxyXG5cclxuLnNjaGVkdWxlLXBhZ2Uge1xyXG4gIEBtZWRpYSAjeyRtZWRpdW0tZG93bn17XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5zY2hlZHVsZS1wYWdle1xyXG4gIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuI3NjaGVkdWxlLXNpZGViYXJ7XHJcbiAgQG1lZGlhICN7JHNtYWxsLW9ubHl9e1xyXG4gICAgLndpZGdldF9zY2hlZHVsZV9maWx0ZXJfd2lkZ2V0ICNzY2hlZHVsZS13aWRnZXR7XHJcbiAgICAgIC5zY2hlZHVsZV9zZWFyY2gge1xyXG4gICAgICAgIGlucHV0W3R5cGU9c2VhcmNzaF17XHJcbiAgICAgICAgICBAaW5jbHVkZSB2ZW5kb3ItcHJlZml4KGJvcmRlci1yYWRpdXMsIDApO1xyXG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAycHggZGFya2VuKCR3aGl0ZSwgMTAlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogMjBweCAwO1xyXG4gICAgICB9XHJcbiAgICAgIGxhYmVse1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgJjpmaXJzdC1vZi10eXBle1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmxhc3Qtb2YtdHlwZXtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5idXR0b24ucHJpbWFyeXtcclxuICAgICAgICB3aWR0aDogMjMwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jdWktZGF0ZXBpY2tlci1kaXZ7XHJcbiAgdGFibGV7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIH1cclxufSIsIi8vIFNJVEVNQVAuc2Nzc1xyXG5cclxudWwuc2l0ZS1tYXB7XHJcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG5cdG1hcmdpbjogMDtcclxuXHRsaXtcclxuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHRcdEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbCgpO1xyXG5cdFx0Ji5tZW51LWl0ZW0tZGVwdGgtMHtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0bWFyZ2luLXRvcDoxNXB4O1xyXG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjVweDtcclxuXHRcdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG5cdFx0XHQ+IGF7XHJcblx0XHRcdFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn0iLCIvLyB0ZXh0eSB0aGluZ3NcclxuLnRleHQtd2VpZ2h0LWJvbGQge1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG59XHJcblxyXG4udGV4dC13ZWlnaHQtbm9ybWFsIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtd2VpZ2h0LW5vcm1hbCgpO1xyXG59XHJcblxyXG4udGV4dC13ZWlnaHQtbGlnaHQge1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtbGlnaHQoKTtcclxufVxyXG5cclxuLnRleHQtdXBwZXJjYXNlIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi50ZXh0LXVuZGVybGluZSB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLnRvcC1uYXZpZ2F0aW9uLXRleHQge1xyXG4gICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnNpZGViYXItbmF2aWdhdGlvbi10ZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogMS43NWVtO1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiAkbmF2eTtcclxufVxyXG5cclxuLy8gc3R5bGUgZnJvbSBvbGQgdGhlbWVcclxuYmxvY2txdW90ZSB7XHJcblx0bWFyZ2luOiAzMHB4IDA7XHJcblx0cGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjU4NzVyZW07XHJcblx0cCB7XHJcblx0XHRmb250LXNpemU6IDEuNWVtO1xyXG5cdFx0QGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuXHRcdGNvbG9yOiAkYmxhY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdFx0JjpsYXN0LWNoaWxke1xyXG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vLyBtYXliZSB0aGlzIHNob3VsZCBnbyBpbnRvIGEgY29tcG9uZW50cyAvIHNlY3Rpb24gP1xyXG4laGVhZGluZy1kZWZhdWx0cyB7XHJcbiAgICBjb2xvcjogJG5hdnk7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtbW9udHNlcnJhdDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XHJcbiAgICAmLml0YWxpYyB7XHJcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgfVxyXG4gICAgPiBhIHsgY29sb3I6IGluaGVyaXQ7fVxyXG59XHJcblxyXG4laGVhZGVyLXVuZGVybGluZSB7XHJcbiAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBmb250LXNpemU6IDIuNWVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgJGJsdWUtYnJpZ2h0O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uc2VjdGlvbi10aXRsZSB7XHJcbiAgICBjb2xvcjogJGJsdWUtYnJpZ2h0O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG5cclxuLmgxLFxyXG5oMSB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgQGluY2x1ZGUgZm9udC13ZWlnaHQtYm9sZCgpO1xyXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAgIC8vIGRvdWJsZSBjaGVjayB0aGVyZSBpcyBub3QgYXR0ZW1wdGVkIHN0eWxpbmdcclxuICAgICY6bm90KFtjbGFzc10pIHtcclxuICAgICAgICAuYXJ0aWNsZSAmLFxyXG4gICAgICAgICNjb250ZW50ICNtYWluIGFydGljbGUgJiB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgJWhlYWRlci11bmRlcmxpbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICAgICZfX3NlY3Rpb24ge1xyXG4gICAgICAgIEBleHRlbmQgJWhlYWRlci11bmRlcmxpbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oMixcclxuaDIge1xyXG4gICAgQGV4dGVuZCAlaGVhZGluZy1kZWZhdWx0cztcclxuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xyXG5cclxuICAgIC5hcnRpY2xlICYge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLmgzLFxyXG5oMyB7XHJcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWRlZmF1bHRzO1xyXG4gICAgZm9udC1zaXplOiAxLjkzNzVyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xyXG4gICAgLmFydGljbGUgJiB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC42MjVyZW07XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaDQsXHJcbmg0IHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTtcclxuICAgIC5hcnRpY2xlICYge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNjI1cmVtO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaDUsXHJcbmg1IHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uaDYsXHJcbmg2IHtcclxuICAgIEBleHRlbmQgJWhlYWRpbmctZGVmYXVsdHM7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgICBQQUk6IGdvdmVybm9yLlBBLmdvdlxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8vIE5PVEUgU3BhY2UgZm9yIHN0YWNrZWQgc2VjdGlvbnMgd2l0aGluIGFydGljbGVzLCBtYXkgbmVlZCB0d2Vha2VkXHJcbmFydGljbGUge1xyXG4gICAgc2VjdGlvbiB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuJWNvbHVtbi1kZWZhdWx0IHtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XHJcbiAgICB9XHJcbiAgICAlY29sdW1uLWRlZmF1bHQge1xyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5jb2x1bW4ge1xyXG4gICAgQGV4dGVuZCAlY29sdW1uLWRlZmF1bHQ7XHJcbn1cclxuXHJcbi5jb2x1bW5zIHtcclxuICAgIEBleHRlbmQgJWNvbHVtbi1kZWZhdWx0O1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICAgICZfX3Bob3RvLWNyZWQge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogNDBweDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIGJvdHRvbTogMjBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVhbDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gaW5zZXJ0IG1hcCBtYXJrZXIgYWZ0ZXIgbG9jYXRpb24gdGV4dFxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjA0MVwiO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZWFsO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuMjVyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFRPRE8gTWlncmF0ZSB0aGlzIHRvIHdoZXJlIGl0cyBhcHByb3ByaWF0ZVxyXG4vLyBBcmNoaXZlIHdpZGdldCwgaGlkZSBvbiBtb2JpbGVcclxuLndpZGdldF9hcmNoaXZlbGlzdF93aWRnZXQsXHJcbi53aWRnZXRfb3JkZXJzYXJjaGl2ZWxpc3Rfd2lkZ2V0IHtcclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBUT0RPIE1pZ3JhdGUgdGhpcyB0byB3aGVyZSBpdHMgYXBwcm9wcmlhdGVcclxuLndpZGdldF9uZXdzbGV0dGVyX3dpZGdldCB7XHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX17XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG4vLyBUT0RPIE1pZ3JhdGUgdGhpcyB0byB3aGVyZSBpdHMgYXBwcm9wcmlhdGVcclxuI3NjaGVkdWxlLXNpZGViYXIgLndpZGdldF9zY2hlZHVsZV9maWx0ZXJfd2lkZ2V0ICNzY2hlZHVsZS13aWRnZXQge1xyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgfVxyXG4gICAgaW5wdXQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XHJcbiAgICB9XHJcbn1cclxuLy9Hb29nbGUgVHJhbnNsYXRlXHJcbi5nb29nbGUtdHJhbnNsYXRlIHtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgaGVpZ2h0OiA0NnB4O1xyXG4gICAgPiBkaXYge1xyXG4gICAgICAgIHRvcDogMTZweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGhvdmVyKCkge1xyXG4gICAgICAgIC5nb29nbGUtYWx0IHtcclxuICAgICAgICAgICAgY29sb3I6ICR0ZWFsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjhlbSkge1xyXG4gICAgICAgIHdpZHRoOiA5MHB4O1xyXG4gICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbiAgICAgICAgPiBkaXYge1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4jZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50IHtcclxuICAgIGhlaWdodDogMDtcclxufVxyXG5cclxuLmdvb2ctdGUtYmFubmVyLWZyYW1lIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xyXG4gICAgdG9wOiA2NHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgei1pbmRleDogMTAwNCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZ29vZy10ZS1nYWRnZXQtaWNvbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uZ29vZ2xlLWFsdCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogMCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHJlZDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAuMWVtO1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgZWFzZTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2OGVtKSB7XHJcbiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1ncmlkO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgdG9wOiAxMHB4O1xyXG4gICAgICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgICAgIGxlZnQ6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMDU7XHJcblxyXG4gICAgICAgIGZvbnQtc2l6ZTogLjY1ZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGJsdWU7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgLmZhIHtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmZhLWNhcmV0LWRvd24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmVtYmVkLXJlc3BvbnNpdmUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLy8gW2RhdGEtYWJpZGVdIHtcclxuLy8gICAgIC5lcnJvciB7XHJcbi8vICAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbi8vICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuLy8gICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgIH1cclxuLy8gfVxyXG5cclxuLy8gRm9yIEpxdWVyeSBWYWxpZGF0ZVxyXG5bZGF0YS1hYmlkZV0ge1xyXG4gICAgLmVycm9yIHtcclxuICAgICAgICBzbWFsbC5lcnJvciwgc3Bhbi5lcnJvciB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XHJcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgICAgIHBhZGRpbmc6IC4zNzVyZW0gLjU2MjVyZW0gLjU2MjVyZW07XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2YwNDEyNDtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHNtYWxsLmVycm9yLCBzcGFuLmVycm9yIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcclxuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgcGFkZGluZzogLjM3NXJlbSAuNTYyNXJlbSAuNTYyNXJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjA0MTI0O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbiAgICBzbWFsbC5lcnJvciwgc3Bhbi5lcnJvciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZXJyb3Igc21hbGwuZXJyb3IsIHNtYWxsLmVycm9yLCBzcGFuLmVycm9yIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgbWFyZ2luLXRvcDogLTFweDtcclxuICAgIHBhZGRpbmc6IC4zNzVyZW0gLjU2MjVyZW0gLjU2MjVyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjA0MTI0O1xyXG4gICAgfVxyXG5cclxuICAgIHNtYWxsLmVycm9yLCBzcGFuLmVycm9yIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC5lcnJvciB7XHJcbiAgICBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIGlucHV0IHtcclxuICAgICAgICAmW3R5cGU9Y2hlY2tib3hdLCAmW3R5cGU9cmFkaW9dIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHNtYWxsLmVycm9yIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgfVxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIGNvbG9yOiAjZjA0MTI0O1xyXG4gICAgICAgICYuZXJyb3Ige1xyXG4gICAgICAgIGNvbG9yOiAjZjA0MTI0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHNtYWxsLmVycm9yIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG4gICAgPiBsYWJlbCA+IHNtYWxsIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAwIDA7XHJcbiAgICAgICAgY29sb3I6ICM2NzY3Njc7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNjAlO1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgIH1cclxufVxyXG5cclxuLmVycm9yIHNwYW4uZXJyb3ItbWVzc2FnZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuaW5wdXQuZXJyb3IsIHNlbGVjdC5lcnJvciwgdGV4dGFyZWEuZXJyb3Ige1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FhQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3lDQW9CeUM7QUE0RHpDLEFBQUEsT0FBTyxDQUFTO0VBQUUsVUFBVSxFQXhEaEIsT0FBTztDQXdEaUI7O0FBQ3BDLEFBQUEsT0FBTyxDQUFTO0VBQUUsVUFBVSxFQXhEaEIsT0FBTztDQXdEaUI7O0FBQ3BDLEFBQUEsVUFBVSxDQUFNO0VBQUUsVUFBVSxFQXhEaEIsT0FBTztDQXdEb0I7O0FBQ3ZDLEFBQUEsVUFBVSxDQUFNO0VBQUUsVUFBVSxFQXZEaEIsT0FBTztDQXVEb0I7O0FBQ3ZDLEFBQUEsV0FBVyxDQUFLO0VBQUUsVUFBVSxFQXpEaEIsSUFBSTtDQXlEd0I7O0FBRXhDLEFBQUEsT0FBTyxDQUFTO0VBQUUsVUFBVSxFQXhEaEIsT0FBTztDQXdEaUI7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 */
