@charset "UTF-8";
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
@import url(../fonts/foundation-icons/foundation-icons.css);
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove default margin.
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none; }

/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold; }

/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0; }

/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal; }

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

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

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

.slide-in-down.mui-enter, .slide-in-left.mui-enter, .slide-in-up.mui-enter, .slide-in-right.mui-enter, .slide-out-down.mui-leave, .slide-out-right.mui-leave, .slide-out-up.mui-leave, .slide-out-left.mui-leave, .fade-in.mui-enter, .fade-out.mui-leave, .hinge-in-from-top.mui-enter, .hinge-in-from-right.mui-enter, .hinge-in-from-bottom.mui-enter, .hinge-in-from-left.mui-enter, .hinge-in-from-middle-x.mui-enter, .hinge-in-from-middle-y.mui-enter, .hinge-out-from-top.mui-leave, .hinge-out-from-right.mui-leave, .hinge-out-from-bottom.mui-leave, .hinge-out-from-left.mui-leave, .hinge-out-from-middle-x.mui-leave, .hinge-out-from-middle-y.mui-leave, .scale-in-up.mui-enter, .scale-in-down.mui-enter, .scale-out-up.mui-leave, .scale-out-down.mui-leave, .spin-in.mui-enter, .spin-out.mui-leave, .spin-in-ccw.mui-enter, .spin-out-ccw.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear; }

html,
body {
  font-size: 15px;
  box-sizing: border-box; }

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

body {
  padding: 0;
  margin: 0;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #666666;
  background: #fefefe;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

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

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

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

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1; }

.row {
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto; }
  .row::before, .row::after {
    content: ' ';
    display: table; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row .row {
    margin-left: -0.9375rem;
    margin-right: -0.9375rem; }
    .row .row.collapse {
      margin-left: 0;
      margin-right: 0; }
  .row.small-collapse > .column, .row.small-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.small-uncollapse > .column, .row.small-uncollapse > .columns {
    padding-left: 30px;
    padding-right: 30px; }
  @media screen and (min-width: 40em) {
    .row.medium-collapse > .column, .row.medium-collapse > .columns {
      padding-left: 0;
      padding-right: 0; }
    .row.medium-uncollapse > .column, .row.medium-uncollapse > .columns {
      padding-left: 30px;
      padding-right: 30px; } }
  @media screen and (min-width: 64em) {
    .row.large-collapse > .column, .row.large-collapse > .columns {
      padding-left: 0;
      padding-right: 0; }
    .row.large-uncollapse > .column, .row.large-uncollapse > .columns {
      padding-left: 30px;
      padding-right: 30px; } }
  .row.expanded {
    max-width: none; }

.column, .columns {
  width: 100%;
  float: left;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child, .end.columns:last-child {
    float: left; }

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

.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 {
  width: 100%;
  float: left; }
  .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 {
  width: 50%;
  float: left; }
  .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 {
  width: 33.33333%;
  float: left; }
  .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 {
  width: 25%;
  float: left; }
  .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 {
  width: 20%;
  float: left; }
  .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 {
  width: 16.66667%;
  float: left; }
  .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; }

.column.small-centered, .small-centered.columns {
  float: none;
  margin-left: auto;
  margin-right: auto; }

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

@media 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 {
    width: 100%;
    float: left; }
    .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 {
    width: 50%;
    float: left; }
    .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 {
    width: 33.33333%;
    float: left; }
    .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 {
    width: 25%;
    float: left; }
    .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 {
    width: 20%;
    float: left; }
    .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 {
    width: 16.66667%;
    float: left; }
    .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; }
  .column.medium-centered, .medium-centered.columns {
    float: none;
    margin-left: auto;
    margin-right: auto; }
  .medium-uncenter,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0; } }

@media 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 {
    width: 100%;
    float: left; }
    .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 {
    width: 50%;
    float: left; }
    .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 {
    width: 33.33333%;
    float: left; }
    .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 {
    width: 25%;
    float: left; }
    .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 {
    width: 20%;
    float: left; }
    .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 {
    width: 16.66667%;
    float: left; }
    .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; }
  .column.large-centered, .large-centered.columns {
    float: none;
    margin-left: auto;
    margin-right: auto; }
  .large-uncenter,
  .large-push-0,
  .large-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 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 {
  font-size: inherit;
  line-height: 1.6;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility; }

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

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

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Times New Roman;
  font-weight: normal;
  font-style: normal;
  color: #444444;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    color: #cacaca;
    line-height: 0; }

h1 {
  font-size: 1.5rem; }

h2 {
  font-size: 1.375rem; }

h3 {
  font-size: 1.3125rem; }

h4 {
  font-size: 1.25rem; }

h5 {
  font-size: 1.1875rem; }

h6 {
  font-size: 1.125rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 2.25rem; }
  h2 {
    font-size: 1.875rem; }
  h3 {
    font-size: 1.625rem; }
  h4 {
    font-size: 1.375rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1.125rem; } }

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

a {
  color: #2199e8;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1585cf;
    text-decoration: underline; }
  a img {
    border: 0; }

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
  list-style-type: inherit; }

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: '\2014 \0020'; }

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

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

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

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

.lead {
  font-size: 18.75px;
  line-height: 1.6; }

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

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

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

@media screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left; } }

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

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

@media screen and (min-width: 40em) {
  .medium-text-right {
    text-align: right; } }

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

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

@media screen and (min-width: 40em) {
  .medium-text-center {
    text-align: center; } }

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

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

@media screen and (min-width: 40em) {
  .medium-text-justify {
    text-align: justify; } }

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

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

@media print {
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #999;
    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; } }

.button {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  transition: all 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 1rem 1rem 0;
  font-size: 0.9rem;
  background: #2199e8;
  color: #fff; }
  [data-whatinput="mouse"] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background: #1583cc;
    color: #fff; }
  .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-left: 0;
    margin-right: 0; }
  .button.primary {
    background: #2199e8;
    color: #fff; }
    .button.primary:hover, .button.primary:focus {
      background: #147cc0;
      color: #fff; }
  .button.secondary {
    background: #777;
    color: #fff; }
    .button.secondary:hover, .button.secondary:focus {
      background: #5f5f5f;
      color: #fff; }
  .button.success {
    background: #3adb76;
    color: #fff; }
    .button.success:hover, .button.success:focus {
      background: #22bb5b;
      color: #fff; }
  .button.alert {
    background: #ec5840;
    color: #fff; }
    .button.alert:hover, .button.alert:focus {
      background: #da3116;
      color: #fff; }
  .button.warning {
    background: #ffae00;
    color: #fff; }
    .button.warning:hover, .button.warning:focus {
      background: #cc8b00;
      color: #fff; }
  .button.hollow {
    border: 1px solid #2199e8;
    color: #2199e8; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #0c4d78;
      color: #0c4d78; }
    .button.hollow.primary {
      border: 1px solid #2199e8;
      color: #2199e8; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #0c4d78;
        color: #0c4d78; }
    .button.hollow.secondary {
      border: 1px solid #777;
      color: #777; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3c3c3c;
        color: #3c3c3c; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.alert {
      border: 1px solid #ec5840;
      color: #ec5840; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #881f0e;
        color: #881f0e; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
  .button.disabled {
    opacity: 0.25;
    cursor: not-allowed;
    pointer-events: none; }
  .button.dropdown::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    border-color: #fefefe transparent transparent;
    border-top-style: solid;
    position: relative;
    top: 0.4em;
    float: right;
    margin-left: 1em;
    display: inline-block; }
  .button.arrow-only::after {
    margin-left: 0;
    float: none;
    top: 0.2em; }

[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;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #8a8a8a;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  border-radius: 0;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-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 {
    border: 1px solid #8a8a8a;
    background: #fefefe;
    outline: none;
    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:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #ffffff;
  cursor: default; }

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

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;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline; }

label > [type="checkbox"],
label > [type="label"] {
  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: #333; }

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 1rem; }

.input-group-label, .input-group-field, .input-group-button {
  display: table-cell;
  margin: 0;
  vertical-align: middle; }

.input-group-label {
  text-align: center;
  width: 1%;
  height: 100%;
  padding: 0 1rem;
  background: #ffffff;
  color: #0a0a0a;
  border: 1px solid #cacaca; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-button {
  height: 100%;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  width: 1%; }

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

legend {
  margin-bottom: 0.5rem; }

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

select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #8a8a8a;
  background-color: #fafafa;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  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(51, 51, 51)"></polygon></svg>');
  background-size: 9px 6px;
  background-position: right 0.5rem center;
  background-repeat: no-repeat; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:disabled {
    background-color: #ffffff;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto; }

.is-invalid-input:not(:focus) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840; }

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

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

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (min-width: 0em) 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 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 screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

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

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

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

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

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

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

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

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

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

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

.clearfix::before, .clearfix::after {
  content: ' ';
  display: table; }

.clearfix::after {
  clear: both; }

.accordion {
  list-style-type: none;
  background: #fefefe;
  border: 1px solid #ffffff;
  border-radius: 0;
  margin-left: 0; }

.accordion-title {
  display: block;
  padding: 1.25rem 1rem;
  line-height: 1;
  font-size: 0.75rem;
  color: #2199e8;
  position: relative;
  border-bottom: 1px solid #ffffff; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #ffffff; }
  :last-child > .accordion-title {
    border-bottom-width: 0; }
  .accordion-title::before {
    content: '+';
    position: absolute;
    right: 1rem;
    top: 50%;
    margin-top: -0.5rem; }
  .is-active > .accordion-title::before {
    content: '–'; }

.accordion-content {
  padding: 1.25rem 1rem;
  display: none;
  border-bottom: 1px solid #ffffff; }

.badge {
  display: inline-block;
  padding: 0.3em;
  min-width: 2.1em;
  font-size: 0.6rem;
  text-align: center;
  border-radius: 50%;
  background: #2199e8;
  color: #fefefe; }
  .badge.secondary {
    background: #777;
    color: #fefefe; }
  .badge.success {
    background: #3adb76;
    color: #fefefe; }
  .badge.alert {
    background: #ec5840;
    color: #fefefe; }
  .badge.warning {
    background: #ffae00;
    color: #fefefe; }

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

.button-group {
  margin-bottom: 1rem;
  font-size: 0.9rem; }
  .button-group::before, .button-group::after {
    content: ' ';
    display: table; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    float: left;
    margin: 0;
    font-size: inherit; }
    .button-group .button:not(:last-child) {
      border-right: 1px solid #fefefe; }
  .button-group.tiny {
    font-size: 0.6rem; }
  .button-group.small {
    font-size: 0.75rem; }
  .button-group.large {
    font-size: 1.25rem; }
  .button-group.expanded .button:nth-last-child(2):first-child,
  .button-group.expanded .button:nth-last-child(2):first-child ~ .button {
    width: 50%; }
  .button-group.expanded .button:nth-last-child(3):first-child,
  .button-group.expanded .button:nth-last-child(3):first-child ~ .button {
    width: 33.33333%; }
  .button-group.expanded .button:nth-last-child(4):first-child,
  .button-group.expanded .button:nth-last-child(4):first-child ~ .button {
    width: 25%; }
  .button-group.expanded .button:nth-last-child(5):first-child,
  .button-group.expanded .button:nth-last-child(5):first-child ~ .button {
    width: 20%; }
  .button-group.expanded .button:nth-last-child(6):first-child,
  .button-group.expanded .button:nth-last-child(6):first-child ~ .button {
    width: 16.66667%; }
  .button-group.primary .button {
    background: #2199e8;
    color: #fff; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background: #147cc0;
      color: #fff; }
  .button-group.secondary .button {
    background: #777;
    color: #fff; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background: #5f5f5f;
      color: #fff; }
  .button-group.success .button {
    background: #3adb76;
    color: #fff; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background: #22bb5b;
      color: #fff; }
  .button-group.alert .button {
    background: #ec5840;
    color: #fff; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background: #da3116;
      color: #fff; }
  .button-group.warning .button {
    background: #ffae00;
    color: #fff; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background: #cc8b00;
      color: #fff; }
  .button-group.stacked .button, .button-group.stacked-for-small .button {
    width: 100%;
    border-right: 0; }
  @media screen and (min-width: 40em) {
    .button-group.stacked-for-small .button {
      width: auto; }
      .button-group.stacked-for-small .button:not(:last-child) {
        border-right: 1px solid #fefefe; } }

.callout {
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  position: relative;
  background-color: white; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #def0fc; }
    .callout.primary a {
      color: #116ca8; }
      .callout.primary a:hover {
        color: #0a4063; }
  .callout.secondary {
    background-color: #ebebeb; }
  .callout.success {
    background-color: #e1faea; }
    .callout.success a {
      color: #1ea450; }
      .callout.success a:hover {
        color: #126330; }
  .callout.alert {
    background-color: #fce6e2; }
    .callout.alert a {
      color: #bf2b13; }
      .callout.alert a:hover {
        color: #791b0c; }
  .callout.warning {
    background-color: #fff3d9; }
    .callout.warning a {
      color: #b37a00; }
      .callout.warning a:hover {
        color: #664600; }
  .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; }

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

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

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

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

.js-drilldown-back::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent #2199e8 transparent transparent;
  border-right-style: solid;
  float: left;
  margin-right: 0.75rem;
  margin-left: 0.6rem;
  margin-top: 14px; }

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

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

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

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

.dropdown.menu .has-submenu {
  position: relative; }
  .dropdown.menu .has-submenu a::after {
    float: right;
    margin-top: 3px;
    margin-left: 10px; }
  .dropdown.menu .has-submenu.is-down-arrow a {
    padding-right: 1.5rem;
    position: relative; }
  .dropdown.menu .has-submenu.is-down-arrow > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #2199e8 transparent transparent;
    border-top-style: solid;
    position: absolute;
    top: 12px;
    right: 5px; }
  .dropdown.menu .has-submenu.is-left-arrow > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #2199e8 transparent transparent;
    border-right-style: solid;
    float: left;
    margin-left: 0;
    margin-right: 10px; }
  .dropdown.menu .has-submenu.is-right-arrow > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #2199e8;
    border-left-style: solid; }
  .dropdown.menu .has-submenu.is-left-arrow.opens-inner .submenu {
    right: 0;
    left: auto; }
  .dropdown.menu .has-submenu.is-right-arrow.opens-inner .submenu {
    left: 0;
    right: auto; }
  .dropdown.menu .has-submenu.opens-inner .submenu {
    top: 100%; }

.dropdown.menu .submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #fefefe;
  border: 1px solid #cacaca; }
  .dropdown.menu .submenu > li {
    width: 100%; }
  .dropdown.menu .submenu.first-sub {
    top: 100%;
    left: 0;
    right: auto; }
  .dropdown.menu .submenu:not(.js-dropdown-nohover) > .has-submenu:hover > .dropdown.menu .submenu, .dropdown.menu .submenu.js-dropdown-active {
    display: block; }

.dropdown.menu .has-submenu.opens-left .submenu {
  left: auto;
  right: 100%; }

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

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }
  .is-dropdown-menu.vertical > li .submenu {
    top: 0;
    left: 100%; }

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

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 0;
  background: #2199e8;
  color: #fefefe; }
  .label.secondary {
    background: #777;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #fefefe; }
  .label.alert {
    background: #ec5840;
    color: #fefefe; }
  .label.warning {
    background: #ffae00;
    color: #fefefe; }

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

.media-object-section {
  display: table-cell;
  vertical-align: top; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not( + &:first-child) {
    padding-left: 1rem; }
  .media-object-section.middle {
    vertical-align: middle; }
  .media-object-section.bottom {
    vertical-align: bottom; }

.menu {
  margin: 0;
  list-style-type: none; }
  .menu > li {
    display: table-cell;
    vertical-align: middle; }
    [data-whatinput="mouse"] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a > img,
  .menu > li > a > i {
    vertical-align: middle; }
  .menu > li > a > span {
    vertical-align: middle; }
  .menu > li > a > img,
  .menu > li > a > i {
    display: inline-block;
    margin-right: 0.25rem; }
  .menu > li {
    display: table-cell; }
  .menu.vertical > li {
    display: block; }
  @media screen and (min-width: 40em) {
    .menu.medium-horizontal > li {
      display: table-cell; }
    .menu.medium-vertical > li {
      display: block; } }
  @media screen and (min-width: 64em) {
    .menu.large-horizontal > li {
      display: table-cell; }
    .menu.large-vertical > li {
      display: block; } }
  .menu.simple a {
    padding: 0;
    margin-right: 1rem; }
  .menu.align-right > li {
    float: right; }
  .menu.expanded {
    display: table;
    width: 100%; }
    .menu.expanded > li:nth-last-child(2):first-child,
    .menu.expanded > li:nth-last-child(2):first-child ~ li {
      width: 50%; }
    .menu.expanded > li:nth-last-child(3):first-child,
    .menu.expanded > li:nth-last-child(3):first-child ~ li {
      width: 33.33333%; }
    .menu.expanded > li:nth-last-child(4):first-child,
    .menu.expanded > li:nth-last-child(4):first-child ~ li {
      width: 25%; }
    .menu.expanded > li:nth-last-child(5):first-child,
    .menu.expanded > li:nth-last-child(5):first-child ~ li {
      width: 20%; }
    .menu.expanded > li:nth-last-child(6):first-child,
    .menu.expanded > li:nth-last-child(6):first-child ~ li {
      width: 16.66667%; }
    .menu.expanded > li:first-child:last-child {
      width: 100%; }
  .menu.icon-top > li > a {
    text-align: center; }
    .menu.icon-top > li > a > img,
    .menu.icon-top > li > a > i {
      display: block;
      margin: 0 auto 0.25rem; }
  .menu.nested {
    margin-left: 1rem; }

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

html,
body {
  height: 100%; }

.off-canvas-wrapper {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-overflow-scrolling: touch; }

.off-canvas-wrapper-inner {
  position: relative;
  width: 100%;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease; }
  .off-canvas-wrapper-inner::before, .off-canvas-wrapper-inner::after {
    content: ' ';
    display: table; }
  .off-canvas-wrapper-inner::after {
    clear: both; }

.off-canvas-content {
  min-height: 100%;
  background: #fefefe;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); }

.js-off-canvas-exit {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(254, 254, 254, 0.25);
  cursor: pointer;
  transition: background 0.5s ease; }
  .is-off-canvas-open .js-off-canvas-exit {
    display: block; }

.off-canvas {
  position: absolute;
  background: #ffffff;
  z-index: -1;
  max-height: 100%;
  overflow-y: auto;
  -webkit-transform: translateX(0px);
      -ms-transform: translateX(0px);
          transform: translateX(0px); }
  [data-whatinput="mouse"] .off-canvas {
    outline: 0; }
  .off-canvas.position-left {
    left: -250px;
    top: 0;
    width: 250px; }
    .is-open-left {
      -webkit-transform: translateX(250px);
          -ms-transform: translateX(250px);
              transform: translateX(250px); }
  .off-canvas.position-right {
    right: -250px;
    top: 0;
    width: 250px; }
    .is-open-right {
      -webkit-transform: translateX(-250px);
          -ms-transform: translateX(-250px);
              transform: translateX(-250px); }

@media screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    left: 0; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    right: 0; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; } }

@media screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    left: 0; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    right: 0; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; } }

.orbit {
  position: relative; }

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

.orbit-slide {
  width: 100%;
  max-height: 100%; }

.orbit-figure {
  margin: 0; }

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

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

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

.orbit-previous {
  left: 0; }

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

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput="mouse"] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    background-color: #cacaca;
    border-radius: 50%; }
    .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 {
    content: ' ';
    display: table; }
  .pagination::after {
    clear: both; }
  .pagination li {
    font-size: 0.875rem;
    margin-right: 0.0625rem;
    display: none;
    border-radius: 0; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media screen and (min-width: 40em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    color: #0a0a0a;
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0; }
    .pagination a:hover,
    .pagination button:hover {
      background: #ffffff; }
  .pagination [aria-label="previous"]::before {
    content: '«';
    display: inline-block;
    margin-right: 0.75rem; }
  .pagination [aria-label="next"]::after {
    content: '»';
    display: inline-block;
    margin-left: 0.75rem; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #2199e8;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: default; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    content: '…';
    padding: 0.1875rem 0.625rem;
    color: #0a0a0a; }

.progress {
  background-color: #cacaca;
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0; }
  .progress.primary .progress-meter {
    background-color: #2199e8; }
  .progress.secondary .progress-meter {
    background-color: #777; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.alert .progress-meter {
    background-color: #ec5840; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #2199e8;
  border-radius: 0; }
  .progress-meter .progress-meter-text {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    margin: 0;
    font-size: 0.75rem;
    font-weight: bold;
    color: #fefefe;
    white-space: nowrap; }

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

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

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

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

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

.sticky-container {
  position: relative; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

table {
  margin-bottom: 1rem;
  border-radius: 0; }
  thead,
  tbody,
  tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  caption {
    font-weight: bold;
    padding: 0.5rem 0.625rem 0.625rem; }
  thead,
  tfoot {
    background: #f8f8f8;
    color: #666666; }
    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 tr:nth-child(even) {
    background-color: #f1f1f1; }
  tbody th,
  tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }

@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-y: scroll; }

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

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

.tabs {
  margin: 0;
  list-style-type: none;
  background: #fefefe;
  border: 1px solid #ffffff; }
  .tabs::before, .tabs::after {
    content: ' ';
    display: table; }
  .tabs::after {
    clear: both; }
  .tabs.simple > li > a {
    padding: 0; }
    .tabs.simple > li > a:hover {
      background: transparent; }
  .tabs.vertical > li {
    width: auto;
    float: none;
    display: block; }
  .tabs.primary {
    background: #2199e8; }
    .tabs.primary > li > a {
      color: #fefefe; }
      .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
        background: #1893e4; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    line-height: 1;
    font-size: 12px;
    color: #2199e8; }
    .tabs-title > a:hover, .tabs-title > a:focus, .tabs-title > a[aria-selected="true"] {
      background: #ffffff; }

.tabs-content {
  background: #fefefe;
  transition: all 0.5s ease;
  border: 1px solid #ffffff;
  border-top: 0; }
  .tabs-content.vertical {
    border: 1px solid #ffffff;
    border-left: 0; }

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

.thumbnail {
  border: solid 4px #fefefe;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  display: inline-block;
  line-height: 0;
  max-width: 100%;
  transition: box-shadow 200ms ease-out;
  border-radius: 0;
  margin-bottom: 1rem; }
  .thumbnail:hover, .thumbnail:focus {
    box-shadow: 0 0 6px 1px rgba(33, 153, 232, 0.5); }

.title-bar {
  background: #0a0a0a;
  color: #fefefe;
  padding: 0.5rem; }
  .title-bar::before, .title-bar::after {
    content: ' ';
    display: table; }
  .title-bar::after {
    clear: both; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.5rem; }

.title-bar-left {
  float: left; }

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

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

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: white;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 white, 0 14px 0 white; }
  .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;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon.dark::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: black;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 black, 0 14px 0 black; }
  .menu-icon.dark:hover::after {
    background: #666;
    box-shadow: 0 7px 0 #666, 0 14px 0 #666; }

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

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

.top-bar {
  padding: 0rem; }
  .top-bar::before, .top-bar::after {
    content: ' ';
    display: table; }
  .top-bar::after {
    clear: both; }
  .top-bar, .top-bar ul {
    background-color: #fff; }
  .top-bar input {
    width: 200px;
    margin-right: 1rem; }

@media screen and (min-width: 40em) {
  .top-bar-left {
    float: left; }
  .top-bar-right {
    float: right; } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.fade-in.mui-enter {
  opacity: 0;
  transition-property: opacity; }

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

.fade-out.mui-leave {
  opacity: 1;
  transition-property: opacity; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

html,
body {
  height: 100%; }

.off-canvas-wrapper {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-overflow-scrolling: touch; }

.off-canvas-wrapper-inner {
  position: relative;
  width: 100%;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease; }
  .off-canvas-wrapper-inner::before, .off-canvas-wrapper-inner::after {
    content: ' ';
    display: table; }
  .off-canvas-wrapper-inner::after {
    clear: both; }

.off-canvas-content {
  min-height: 100%;
  background: #fefefe;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); }

.js-off-canvas-exit {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(254, 254, 254, 0.25);
  cursor: pointer;
  transition: background 0.5s ease; }
  .is-off-canvas-open .js-off-canvas-exit {
    display: block; }

[data-whatinput="mouse"] & {
  outline: 0; }

position: absolute;
background: #ffffff;
z-index: -1;
max-height: 100%;
overflow-y: auto;
-webkit-transform: translateX(0px);
-ms-transform: translateX(0px);
        transform: translateX(0px);
false: 0;
~ .off-canvas-content {
  margin-false: 250px; }

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

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi9zdGRpbiIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NsYXNzZXMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Ryb3Bkb3duLW1lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXgtdmlkZW8uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29mZi1jYW52YXMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmVzcy1iYXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3NsaWRlci5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3RpY2t5LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGh1bWJuYWlsLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RvcC1iYXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zbGlkZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3V0aWwvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL2VmZmVjdHMvX2hpbmdlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2hpbmdlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3pvb20uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc3Bpbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3V0aWwvX2FuaW1hdGlvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQiw0RUFBNEU7QUFFNUU7Ozs7R0FJRztBQ3NESCw0REFBTztBRHBEUDtFQUNFLHdCQUF3QjtFQUFFLE9BQU87RUFDakMsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFBK0I7RUFBRSxPQUFPLEVBQ3pDOztBQUVEOztHQUVHO0FBRUg7RUFDRSxVQUFVLEVBQ1g7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7OztHQUtHO0FBRUg7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFlLEVBQ2hCOztBQUVEOzs7R0FHRztBQUVIOzs7O0VBSUUsc0JBQXNCO0VBQUUsT0FBTztFQUMvQix5QkFBeUI7RUFBRSxPQUFPLEVBQ25DOztBQUVEOzs7R0FHRztBQUVIO0VBQ0UsY0FBYztFQUNkLFVBQVUsRUFDWDs7QUFFRDs7O0dBR0c7QURKSDs7RUNRRSxjQUFjLEVBQ2Y7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDRSw4QkFBOEIsRUFDL0I7O0FBRUQ7OztHQUdHO0FBRUg7O0VBRUUsV0FBVyxFQUNaOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsMEJBQTBCLEVBQzNCOztBQUVEOztHQUVHO0FBRUg7O0VBRUUsa0JBQWtC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O0VROUROLHVCRFJzQixFUHdFZjs7QUFwQkQ7RU1uRU4sV0Nlc0IsRVBzRGY7O0FBSUM7RVF6RU4sbUJBQW1CO0VBQ25CLFVBSG1CLEVSNkVaOztBQUVEO0VRN0VOLG1CQUFtQjtFQUNuQixXQUhtQixFUmlGWjs7QUFNSDtFUTlETix1QkRSc0IsRVB3RWY7O0FBcEJEO0VNbkVOLGlCQ2VzQixFUHNEZjs7QUFJQztFUXpFTixtQkFBbUI7RUFDbkIsZ0JBSG1CLEVSNkVaOztBQUVEO0VRN0VOLG1CQUFtQjtFQUNuQixpQkFIbUIsRVJpRlo7O0FBTUg7RVE5RE4saUJEUnNCLEVQd0VmOztBQXBCRDtFTW5FTixpQkNlc0IsRVBzRGY7O0FBSUM7RVF6RU4sbUJBQW1CO0VBQ25CLGdCQUhtQixFUjZFWjs7QUFFRDtFUTdFTixtQkFBbUI7RUFDbkIsaUJBSG1CLEVSaUZaOztBQU1IO0VROUROLHVCRFJzQixFUHdFZjs7QUFwQkQ7RU1uRU4sWUNlc0IsRVBzRGY7O0FBZ0JEO0VROUROLHVCRFJzQixFUHdFZjs7QUFLRDtFUzFGSixZQUFpQjtFQUNqQixZWDJGdUQsRVc5RXhEO0VUNEVLO0lTdEZGLFlBQVksRUFDYjtFVHFGRztJU2xGRixZQUFZLEVBQ2I7RVRpRkc7SVM5RUYsWUFBWSxFQUNiOztBVDZFRztFUzFGSixXQUFpQjtFQUNqQixZWDJGdUQsRVc5RXhEO0VUNEVLO0lTdEZGLFlBQVksRUFDYjtFVHFGRztJU2xGRixZQUFZLEVBQ2I7RVRpRkc7SVM5RUYsWUFBWSxFQUNiOztBVDZFRztFUzFGSixpQkFBaUI7RUFDakIsWVgyRnVELEVXOUV4RDtFVDRFSztJU3RGRixZQUFZLEVBQ2I7RVRxRkc7SVNsRkYsWUFBWSxFQUNiO0VUaUZHO0lTOUVGLFlBQVksRUFDYjs7QVQ2RUc7RVMxRkosV0FBaUI7RUFDakIsWVgyRnVELEVXOUV4RDtFVDRFSztJU3RGRixZQUFZLEVBQ2I7RVRxRkc7SVNsRkYsWUFBWSxFQUNiO0VUaUZHO0lTOUVGLFlBQVksRUFDYjs7QVQ2RUc7RVMxRkosV0FBaUI7RUFDakIsWVgyRnVELEVXOUV4RDtFVDRFSztJU3RGRixZQUFZLEVBQ2I7RVRxRkc7SVNsRkYsWUFBWSxFQUNiO0VUaUZHO0lTOUVGLFlBQVksRUFDYjs7QVQ2RUc7RVMxRkosaUJBQWlCO0VBQ2pCLFlYMkZ1RCxFVzlFeEQ7RVQ0RUs7SVN0RkYsWUFBWSxFQUNiO0VUcUZHO0lTbEZGLFlBQVksRUFDYjtFVGlGRztJUzlFRixZQUFZLEVBQ2I7O0FUbUZDO0VROUZGLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsbUJBQW1CLEVSOEZoQjs7QUFHRDs7O0VReEZKLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsZ0JBQWdCLEVSd0ZYOztBS2FIO0VMbkRJO0lNbkVOLGdCQ2VzQixFUHNEZjtFQUlDO0lRekVOLG1CQUFtQjtJQUNuQixlQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixnQkFIbUIsRVJpRlo7RUFNSDtJUTlETixnQkRYc0IsRVAyRWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETixzQkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4sV0Nlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsVUFIbUIsRVI2RVo7RUFFRDtJUTdFTixtQkFBbUI7SUFDbkIsV0FIbUIsRVJpRlo7RUFNSDtJUTlETix1QkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETixpQkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETix1QkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4sV0Nlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsVUFIbUIsRVI2RVo7RUFFRDtJUTdFTixtQkFBbUI7SUFDbkIsV0FIbUIsRVJpRlo7RUFNSDtJUTlETix1QkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETixpQkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETix1QkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4sV0Nlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsVUFIbUIsRVI2RVo7RUFFRDtJUTdFTixtQkFBbUI7SUFDbkIsV0FIbUIsRVJpRlo7RUFNSDtJUTlETix1QkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETixpQkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4saUJDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixpQkFIbUIsRVJpRlo7RUFNSDtJUTlETix1QkRSc0IsRVB3RWY7RUFwQkQ7SU1uRU4sWUNlc0IsRVBzRGY7RUFnQkQ7SVE5RE4sdUJEUnNCLEVQd0VmO0VBS0Q7SVMxRkosWUFBaUI7SUFDakIsWVgyRnVELEVXOUV4RDtJVDRFSztNU3RGRixZQUFZLEVBQ2I7SVRxRkc7TVNsRkYsWUFBWSxFQUNiO0lUaUZHO01TOUVGLFlBQVksRUFDYjtFVDZFRztJUzFGSixXQUFpQjtJQUNqQixZWDJGdUQsRVc5RXhEO0lUNEVLO01TdEZGLFlBQVksRUFDYjtJVHFGRztNU2xGRixZQUFZLEVBQ2I7SVRpRkc7TVM5RUYsWUFBWSxFQUNiO0VUNkVHO0lTMUZKLGlCQUFpQjtJQUNqQixZWDJGdUQsRVc5RXhEO0lUNEVLO01TdEZGLFlBQVksRUFDYjtJVHFGRztNU2xGRixZQUFZLEVBQ2I7SVRpRkc7TVM5RUYsWUFBWSxFQUNiO0VUNkVHO0lTMUZKLFdBQWlCO0lBQ2pCLFlYMkZ1RCxFVzlFeEQ7SVQ0RUs7TVN0RkYsWUFBWSxFQUNiO0lUcUZHO01TbEZGLFlBQVksRUFDYjtJVGlGRztNUzlFRixZQUFZLEVBQ2I7RVQ2RUc7SVMxRkosV0FBaUI7SUFDakIsWVgyRnVELEVXOUV4RDtJVDRFSztNU3RGRixZQUFZLEVBQ2I7SVRxRkc7TVNsRkYsWUFBWSxFQUNiO0lUaUZHO01TOUVGLFlBQVksRUFDYjtFVDZFRztJUzFGSixpQkFBaUI7SUFDakIsWVgyRnVELEVXOUV4RDtJVDRFSztNU3RGRixZQUFZLEVBQ2I7SVRxRkc7TVNsRkYsWUFBWSxFQUNiO0lUaUZHO01TOUVGLFlBQVksRUFDYjtFVG1GQztJUTlGRixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLG1CQUFtQixFUjhGaEI7RUFHRDs7O0lReEZKLGlCQUFpQjtJQUNqQixlQUFlO0lBQ2YsZ0JBQWdCLEVSd0ZYLEVBQUE7O0FLYUg7RUxuREk7SU1uRU4sZ0JDZXNCLEVQc0RmO0VBSUM7SVF6RU4sbUJBQW1CO0lBQ25CLGVBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGdCQUhtQixFUmlGWjtFQU1IO0lROUROLGdCRFhzQixFUDJFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLHNCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixXQ2VzQixFUHNEZjtFQUlDO0lRekVOLG1CQUFtQjtJQUNuQixVQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixXQUhtQixFUmlGWjtFQU1IO0lROUROLHVCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLGlCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLHVCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixXQ2VzQixFUHNEZjtFQUlDO0lRekVOLG1CQUFtQjtJQUNuQixVQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixXQUhtQixFUmlGWjtFQU1IO0lROUROLHVCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLGlCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLHVCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixXQ2VzQixFUHNEZjtFQUlDO0lRekVOLG1CQUFtQjtJQUNuQixVQUhtQixFUjZFWjtFQUVEO0lRN0VOLG1CQUFtQjtJQUNuQixXQUhtQixFUmlGWjtFQU1IO0lROUROLHVCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLGlCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixpQkNlc0IsRVBzRGY7RUFJQztJUXpFTixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVSNkVaO0VBRUQ7SVE3RU4sbUJBQW1CO0lBQ25CLGlCQUhtQixFUmlGWjtFQU1IO0lROUROLHVCRFJzQixFUHdFZjtFQXBCRDtJTW5FTixZQ2VzQixFUHNEZjtFQWdCRDtJUTlETix1QkRSc0IsRVB3RWY7RUFLRDtJUzFGSixZQUFpQjtJQUNqQixZWDJGdUQsRVc5RXhEO0lUNEVLO01TdEZGLFlBQVksRUFDYjtJVHFGRztNU2xGRixZQUFZLEVBQ2I7SVRpRkc7TVM5RUYsWUFBWSxFQUNiO0VUNkVHO0lTMUZKLFdBQWlCO0lBQ2pCLFlYMkZ1RCxFVzlFeEQ7SVQ0RUs7TVN0RkYsWUFBWSxFQUNiO0lUcUZHO01TbEZGLFlBQVksRUFDYjtJVGlGRztNUzlFRixZQUFZLEVBQ2I7RVQ2RUc7SVMxRkosaUJBQWlCO0lBQ2pCLFlYMkZ1RCxFVzlFeEQ7SVQ0RUs7TVN0RkYsWUFBWSxFQUNiO0lUcUZHO01TbEZGLFlBQVksRUFDYjtJVGlGRztNUzlFRixZQUFZLEVBQ2I7RVQ2RUc7SVMxRkosV0FBaUI7SUFDakIsWVgyRnVELEVXOUV4RDtJVDRFSztNU3RGRixZQUFZLEVBQ2I7SVRxRkc7TVNsRkYsWUFBWSxFQUNiO0lUaUZHO01TOUVGLFlBQVksRUFDYjtFVDZFRztJUzFGSixXQUFpQjtJQUNqQixZWDJGdUQsRVc5RXhEO0lUNEVLO01TdEZGLFlBQVksRUFDYjtJVHFGRztNU2xGRixZQUFZLEVBQ2I7SVRpRkc7TVM5RUYsWUFBWSxFQUNiO0VUNkVHO0lTMUZKLGlCQUFpQjtJQUNqQixZWDJGdUQsRVc5RXhEO0lUNEVLO01TdEZGLFlBQVksRUFDYjtJVHFGRztNU2xGRixZQUFZLEVBQ2I7SVRpRkc7TVM5RUYsWUFBWSxFQUNiO0VUbUZDO0lROUZGLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsbUJBQW1CLEVSOEZoQjtFQUdEOzs7SVF4RkosaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixnQkFBZ0IsRVJ3RlgsRUFBQTs7QVVnSEw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQkUsVUFBVTtFQUNWLFdBQVcsRUFDWjs7QUFHRDtFQUNFLG1CQUFtQjtFQUNuQixpQlh4SHNCO0VXeUh0QixvQlh4SDBCO0VXeUgxQixtQ1h4SHlDLEVXeUgxQzs7QUFHRDs7RUFFRSxtQkFBbUI7RUFDbkIscUJBQXFCLEVBQ3RCOztBQUdEOztFQUVFLGtCWDdNcUI7RVc4TXJCLHFCQUFxQixFQUN0Qjs7QUFHRDtFQUNFLGVYL0lpQjtFV2dKakIscUJBQXFCLEVBQ3RCOztBQUdEOzs7Ozs7RUFNRSw2QlgvTGdDO0VXZ01oQyxvQlhoT3lCO0VXaU96QixtQlgvTHNCO0VXZ010QixlWGpLa0I7RVdrS2xCLG1DWC9Kc0M7RVdnS3RDLGNBQWM7RUFDZCxzQlhsS3lCO0VXbUt6QixpQlhwS21CLEVXMEtwQjtFQW5CRDs7Ozs7O0lBZ0JJLGVYclBlO0lXc1BmLGVBQWUsRUFDaEI7O0FBT0c7RUFBRSxrQlJyUFksRVFxUHVCOztBQUFyQztFQUFFLG9CUnJQWSxFUXFQdUI7O0FBQXJDO0VBQUUscUJSclBZLEVRcVB1Qjs7QUFBckM7RUFBRSxtQlJyUFksRVFxUHVCOztBQUFyQztFQUFFLHFCUnJQWSxFUXFQdUI7O0FBQXJDO0VBQUUsb0JSclBZLEVRcVB1Qjs7QUxoTHpDO0VLZ0xJO0lBQUUsbUJSclBZLEVRcVB1QjtFQUFyQztJQUFFLG9CUnJQWSxFUXFQdUI7RUFBckM7SUFBRSxvQlJyUFksRVFxUHVCO0VBQXJDO0lBQUUsb0JSclBZLEVRcVB1QjtFQUFyQztJQUFFLG1CUnJQWSxFUXFQdUI7RUFBckM7SUFBRSxvQlJyUFksRVFxUHVCLEVBQUE7O0FMaEx6QztFS2dMSTtJQUFFLGdCUnJQWSxFUXFQdUI7RUFBckM7SUFBRSxrQlJyUFksRVFxUHVCO0VBQXJDO0lBQUUscUJSclBZLEVRcVB1QjtFQUFyQztJQUFFLHFCUnJQWSxFUXFQdUI7RUFBckM7SUFBRSxtQlJyUFksRVFxUHVCO0VBQXJDO0lBQUUsb0JSclBZLEVRcVB1QixFQUFBOztBQU0zQztFQUNFLGVYM1FtQjtFVzRRbkIsc0JYeEt5QjtFV3lLekIscUJBQXFCO0VBQ3JCLGdCQUFnQixFQWFqQjtFQWpCRDtJQVFJLGVYL0swQjtJV2lMeEIsMkJYOUtnQyxFV2dMbkM7RUFaSDtJQWVJLFVBQVUsRUFDWDs7QUFJSDtFQUNFLGlCUmhSa0I7RVFpUmxCLFVBQVU7RUFDVixjQUFjO0VBQ2QsaUNYNVJpQjtFVzZSakIscUJYMUx5QjtFVzJMekIsWUFBWSxFQUNiOztBQUdEOzs7RUFHRSxpQlhsTnNCO0VXbU50QixvQlhsTjBCO0VXbU4xQiw2QlhoTXlCLEVXaU0xQjs7QUFHRDtFQUNFLG1CQUFtQixFQUNwQjs7QUFHRDtFQUNFLHNCWDNNa0I7RVc0TWxCLHFCWDFNc0IsRVcyTXZCOztBQUdEO0VBQ0UscUJYL01zQixFV2dOdkI7O0FBR0Q7RUFFSSxxQlhwTjJCO0VXcU4zQixpQkFBaUI7RUFDakIseUJBQXlCLEVBQzFCOztBQUlIO0VBQ0Usb0JYM055QixFV2lPMUI7RUFQRDtJQUlJLHNCWDVOOEI7SVc2TjlCLGtCWDVUbUIsRVc2VHBCOztBQUlIO0VBQ0UsaUJYM1AwQjtFVzRQMUIsdUNSdlVrQjtFUXdVbEIsK0JYalZpQixFV3VWbEI7RUFURDtJQU1JLGlCWGpRb0I7SVdrUXBCLGVYcFZhLEVXcVZkOztBQUlIO0VBQ0UsZUFBZTtFQUNmLHFCUm5Wa0I7RVFvVmxCLGVYNVZlLEVXaVdoQjtFQVJEO0lBTUksdUJBQXVCLEVBQ3hCOztBQUlIO0VBQ0UsZVhqV3FCO0VXa1dyQixhQUFhO0VBQ2Isa0NYdFdXLEVXdVdaOztBQUdEO0VBQ0UsNkRYOVRtRTtFVytUbkUsb0JYbFd5QjtFV21XekIsZVg3V1c7RVc4V1gsMEJYalhnQjtFV2tYaEIsMEJYalhpQjtFV2tYakIsc0NSeldrQixFUTBXbkI7O0FBR0Q7RUFDRSw0QlIzVzhCO0VRNFc5QixVQUFVO0VBQ1YsMEJYMVhnQjtFVzJYaEIsZVh4WFc7RVd5WFgsNkRYNVVtRSxFVzZVcEU7O0FDbllEO0VBQ0Us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Zix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGtCQUwwQjtFQU0xQixnQkFBc0I7RUFDdEIsMEJoQmxCbUI7RWdCbUJuQixpQmJWb0I7RWFZcEIscUJoQmdSeUI7RWdCL1F6QixnQmJib0I7RWFjcEIsZWhCdEJpQjtFZ0J1QmpCLDBCaEJyQmE7RWdCc0JiLGtEaEJ2QmE7RWdCd0JiLGlCaEJaZTtFZ0JlYiw0RGhCa1I4RDtFZ0I5UDlELHlCQUF5QjtFQUN6QixzQkFBc0IsRUFDdkI7RXhCNDRDRDs7SXdCNzVDRSwwQmhCakNlO0lnQmtDZixvQmhCaENXO0lnQmlDWCxjQUFjO0lBQ2QsNEJoQnJDaUI7SWdCd0NmLDREaEJ1UTRELEVnQnJRL0Q7O0FBWUQ7RUFDRSxnQkFBZ0IsRUFLakI7RUFORDtJQUlJLGFBQWEsRUFDZDs7QUFJSDs7O0VBSUksMEJoQnBFYztFZ0JxRWQsZ0JoQjBPeUIsRWdCek8xQjs7QXhCNjRDTDs7RXdCdjRDSSxpQmhCN0RhO0VnQjhEYix5QkFBeUI7RUFDekIsc0JBQXNCLEVBQ3ZCOztBQUdEO0VBQ0UsdUJBQXVCLEVBQ3hCOztBeEJ3NENIOzs7RXlCcmdESSxpQmRtRGtCLEVjbERuQjs7QXpCeWdESDs7RXlCcGdESSxzQkFBc0I7RUFDdEIsb0JBQTRDO0VBQzVDLG1CZDJDa0I7RWMxQ2xCLGlCQUFpQjtFQUNqQix5QkFBeUIsRUFDMUI7O0FBR0Q7O0VBRUUscUJBQTZDLEVBQzlDOztBekJxZ0RIO0V5QmpnREksWUFBWSxFQUNiOztBQ01EO0VBZkEsZUFBZTtFQUNmLFVBQVU7RUFDVixvQmZvQ29CO0VlbkNwQixvQmxCc0MyQjtFa0JyQzNCLGlCbEJ5VDBCO0VrQnhUMUIsZWxCMEJhLEVrQlZaO0VBTkQ7SUFMQSxpQmY0Qm9CO0llM0JwQixxQkFBOEQsRUFTM0Q7O0FDeEJIO0VBR0Usb0JBRjJCO0VBRzNCLHFCaEJzQ2tCO0VnQnJDbEIsbUJuQm9Ud0I7RW1CblR4QixZbkJpVGlCLEVtQmhUbEI7O0FDSkQ7RUFDRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLG9CakJvQ2tCLEVpQm5DbkI7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aUI7VUFFakIsNkJBRmlCLEVFaEJoQjs7QTFEakJIO0V3RG1DRSxpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFQ3ZCZixnREFBd0M7RUFBeEMsd0NBQXdDO0VBRzFDLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUNSM0I7O0ExRExIO0V3RG1DRSxxQ0FGaUI7TUFFakIsaUNBRmlCO1VBRWpCLDZCQUZpQixFRWhCaEI7O0ExRGRIO0V3RGdDRSxXeERoQ2tDO0UyREFsQyw2QkFBNkIsRURFNUI7O0ExREZIO0V3RGdDRSxXeERoQ3FDLEUwRGNwQzs7QTFEYkg7RXdEK0JFLFd4RC9Ca0M7RTJERGxDLDZCQUE2QixFREU1Qjs7QTFEREg7RXdEK0JFLFd4RC9CcUMsRTBEYXBDOztBMURWSDtFd0Q0QkUsdURJckNZO1VKcUNaLCtDSXJDWTtFSnFDWiw4QkFGaUI7TUFFakIsMEJBRmlCO1VBRWpCLHNCQUZpQjtFS3ZCZixnREFBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBMURFSDtFd0Q0QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QTFEVEg7RXdEMkJFLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUpvQ2QsZ0NBRmlCO01BRWpCLDRCQUZpQjtVQUVqQix3QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QTFER0g7RXdEMkJFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0ExRFJIO0V3RDBCRSxzREluQ2U7VUptQ2YsOENJbkNlO0VKbUNmLGlDQUZpQjtNQUVqQiw2QkFGaUI7VUFFakIseUJBRmlCO0VLdkJmLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0ExRElIO0V3RDBCRSxvRElWc0M7VUpVdEMsNENJVnNDO0VDSnBDLFdBQTJCLEVISjVCOztBMURQSDtFd0R5QkUsc0RJbENhO1VKa0NiLDhDSWxDYTtFSmtDYiwrQkFGaUI7TUFFakIsMkJBRmlCO1VBRWpCLHVCQUZpQjtFS3ZCZixnREFBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBMURLSDtFd0R5QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QTFETkg7RXdEd0JFLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUpxQ1osaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QTFETUg7RXdEd0JFLG9ESVZzQztVSlV0Qyw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0ExRExIO0V3RHVCRSx1RElwQ2M7VUpvQ2QsK0NJcENjO0VKb0NkLGlDQUZpQjtNQUVqQiw2QkFGaUI7VUFFakIseUJBRmlCO0VLdkJmLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0ExRE9IO0V3RHVCRSxvRElWc0M7VUpVdEMsNENJVnNDO0VDSnBDLFdBQTJCLEVISjVCOztBMURKSDtFd0RzQkUsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4Qyw4QkFGaUI7TUFFakIsMEJBRmlCO1VBRWpCLHNCQUZpQjtFS3ZCZixnREFBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBMURRSDtFd0RzQkUsdURJckNZO1VKcUNaLCtDSXJDWTtFQ3VCVixXQUE4QixFSEovQjs7QTFESEg7RXdEcUJFLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsZ0NBRmlCO01BRWpCLDRCQUZpQjtVQUVqQix3QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QTFEU0g7RXdEcUJFLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUNzQlosV0FBOEIsRUhKL0I7O0ExREZIO0V3RG9CRSxvRElSd0M7VUpReEMsNENJUndDO0VKUXhDLGlDQUZpQjtNQUVqQiw2QkFGaUI7VUFFakIseUJBRmlCO0VLdkJmLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0ExRFVIO0V3RG9CRSxzREluQ2U7VUptQ2YsOENJbkNlO0VDcUJiLFdBQThCLEVISi9COztBMURESDtFd0RtQkUsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4QywrQkFGaUI7TUFFakIsMkJBRmlCO1VBRWpCLHVCQUZpQjtFS3ZCZixnREFBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBMURXSDtFd0RtQkUsc0RJbENhO1VKa0NiLDhDSWxDYTtFQ29CWCxXQUE4QixFSEovQjs7QTFEQUg7RXdEa0JFLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QTFEWUg7RXdEa0JFLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUN1QlYsV0FBOEIsRUhKL0I7O0ExRENIO0V3RGlCRSxvRElSd0M7VUpReEMsNENJUndDO0VKUXhDLGlDQUZpQjtNQUVqQiw2QkFGaUI7VUFFakIseUJBRmlCO0VLdkJmLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0ExRGFIO0V3RGlCRSx1RElwQ2M7VUpvQ2QsK0NJcENjO0VDc0JaLFdBQThCLEVISi9COztBMURJSDtFd0RjRSw4QkFGaUI7TUFFakIsMEJBRmlCO1VBRWpCLHNCQUZpQjtFTTNCZixnREFBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLFdBQTJCLEVKRjVCOztBMURnQkg7RXdEY0UsNEJBRmlCO01BRWpCLHdCQUZpQjtVQUVqQixvQkFGaUI7RU1oQmYsV0FBMkIsRUpBNUI7O0ExREtIO0V3RGFFLDhCQUZpQjtNQUVqQiwwQkFGaUI7VUFFakIsc0JBRmlCO0VNM0JmLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFDeEMsV0FBMkIsRUpGNUI7O0ExRGlCSDtFd0RhRSw0QkFGaUI7TUFFakIsd0JBRmlCO1VBRWpCLG9CQUZpQjtFTWhCZixXQUEyQixFSkE1Qjs7QTFETUg7RXdEWUUsNEJBRmlCO01BRWpCLHdCQUZpQjtVQUVq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LG9CdkNSVztFdUNTWCx3Q0F4QzhCO0VBd0M5QixnQ0F4QzhCO0VBeUM5QixvQ0FBNEI7VUFBNUIsNEJBQTRCO0VBQzVCLFdBQVc7RUFHVCwyQ3ZDZlMsRXVDaUJaOztBQUdEO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFlBQVk7RUFDWixhQUFhO0VBQ2Isc0N2QzFCVztFdUMyQlgsZ0JBQWdCO0VBQ2hCLGlDQTNEOEIsRUFnRS9CO0VBSEM7SUFDRSxlQUFlLEVBQ2hCOztBL0NzMEdMO0VZdndHSSxXQUFXLEVBQ1o7O0FtQ3pERCxtQkFBbUI7QUFDbkIsb0J2QzVDa0I7QXVDNkNsQixZQWhGbUI7QUFpRm5CLGlCQUFpQjtBQUNqQixpQkFBaUI7QUFDakIsbUNBQXFCO0FBQXJCLCtCQUFxQjtRQUFyQiwyQkFBcUI7QUFxQ3JCLFNBQWdCO0EvQyt4R2xCO0UrQzV4R0ksb0JBbklrQixFQW9JbkI7O0E3QzdGSDtFQUNFLGdDQUFnQztFQUNoQywyREFBUTtFQUNSLCtUQUcrQztFQUMvQyxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQUEiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cbkBpbXBvcnQgdXJsKC4uL2ZvbnRzL2ZvdW5kYXRpb24taWNvbnMvZm91bmRhdGlvbi1pY29ucy5jc3MpO1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbmJvZHkuaXMtcmV2ZWFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyLCAuc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIsIC5zbGlkZS1pbi11cC5tdWktZW50ZXIsIC5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIsIC5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUsIC5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLCAuc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSwgLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZSwgLmZhZGUtaW4ubXVpLWVudGVyLCAuZmFkZS1vdXQubXVpLWxlYXZlLCAuaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLCAuaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIsIC5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIsIC5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLCAuaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIsIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciwgLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUsIC5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUsIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLCAuaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUsIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUsIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUsIC5zY2FsZS1pbi11cC5tdWktZW50ZXIsIC5zY2FsZS1pbi1kb3duLm11aS1lbnRlciwgLnNjYWxlLW91dC11cC5tdWktbGVhdmUsIC5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUsIC5zcGluLWluLm11aS1lbnRlciwgLnNwaW4tb3V0Lm11aS1sZWF2ZSwgLnNwaW4taW4tY2N3Lm11aS1lbnRlciwgLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxuXG5odG1sLFxuYm9keSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNjY2NjY2O1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbiNtYXBfY2FudmFzIGltZyxcbiNtYXBfY2FudmFzIGVtYmVkLFxuI21hcF9jYW52YXMgb2JqZWN0LFxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAucm93OjpiZWZvcmUsIC5yb3c6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnJvdzo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtOyB9XG4gICAgLnJvdyAucm93LmNvbGxhcHNlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5yb3cuc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAucm93LnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5yb3cuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJvdy5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAucm93Lm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAucm93Lm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnJvdy5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLnJvdy5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMzBweDsgfSB9XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTsgfVxuICAuY29sdW1uOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5jb2x1bW5zOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAuY29sdW1uLmVuZDpsYXN0LWNoaWxkLCAuZW5kLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc21hbGwtMiB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0xNi42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC0zIHtcbiAgd2lkdGg6IDI1JTsgfVxuXG4uc21hbGwtcHVzaC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAyNSU7IH1cblxuLnNtYWxsLXB1bGwtMyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTI1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC00IHtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTMzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5zbWFsbC01IHtcbiAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtNSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTQxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC02IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uc21hbGwtcHVzaC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7IH1cblxuLnNtYWxsLXB1bGwtNiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTUwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC03IHtcbiAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLXB1bGwtNyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTU4LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtOCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTY2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC05IHtcbiAgd2lkdGg6IDc1JTsgfVxuXG4uc21hbGwtcHVzaC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA3NSU7IH1cblxuLnNtYWxsLXB1bGwtOSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTc1JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLXB1c2gtMTAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTgzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xMSB7XG4gIHdpZHRoOiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLXB1c2gtMTEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTkxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtMTIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtdXAtMSAuY29sdW1uLCAuc21hbGwtdXAtMSAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtMSAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTEgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtMSAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSAuY29sdW1uczpudGgtb2YtdHlwZSgxbisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTEgLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtMSAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMiAuY29sdW1uLCAuc21hbGwtdXAtMiAuY29sdW1ucyB7XG4gIHdpZHRoOiA1MCU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC0yIC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC0yIC5jb2x1bW46bnRoLW9mLXR5cGUoMm4rMSksIC5zbWFsbC11cC0yIC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMiAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC0yIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC0zIC5jb2x1bW4sIC5zbWFsbC11cC0zIC5jb2x1bW5zIHtcbiAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTMgLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC0zIC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTMgLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLnNtYWxsLXVwLTMgLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC0zIC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnNtYWxsLXVwLTQgLmNvbHVtbiwgLnNtYWxsLXVwLTQgLmNvbHVtbnMge1xuICB3aWR0aDogMjUlO1xuICBmbG9hdDogbGVmdDsgfVxuICAuc21hbGwtdXAtNCAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLnNtYWxsLXVwLTQgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtNCAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAuc21hbGwtdXAtNCAuY29sdW1uczpudGgtb2YtdHlwZSg0bisxKSB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNtYWxsLXVwLTQgLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtNCAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNSAuY29sdW1uLCAuc21hbGwtdXAtNSAuY29sdW1ucyB7XG4gIHdpZHRoOiAyMCU7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC5zbWFsbC11cC01IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNSAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgIGNsZWFyOiBub25lOyB9XG4gIC5zbWFsbC11cC01IC5jb2x1bW46bnRoLW9mLXR5cGUoNW4rMSksIC5zbWFsbC11cC01IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNSAuY29sdW1uOmxhc3QtY2hpbGQsIC5zbWFsbC11cC01IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC11cC02IC5jb2x1bW4sIC5zbWFsbC11cC02IC5jb2x1bW5zIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnNtYWxsLXVwLTYgLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC02IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTYgLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLnNtYWxsLXVwLTYgLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC02IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTYgLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbHVtbi5zbWFsbC1jZW50ZXJlZCwgLnNtYWxsLWNlbnRlcmVkLmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4uc21hbGwtdW5jZW50ZXIsXG4uc21hbGwtcHVzaC0wLFxuLnNtYWxsLXB1bGwtMCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1wdXNoLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS1wdWxsLTMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMjUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC00MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1wdXNoLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS1wdWxsLTYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTAlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC02Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1wdXNoLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS1wdWxsLTkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNzUlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1c2gtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC0xMSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC05MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC0xIC5jb2x1bW4sIC5tZWRpdW0tdXAtMSAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTEgLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtMSAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTEgLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xIC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC0xIC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC0xIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yIC5jb2x1bW4sIC5tZWRpdW0tdXAtMiAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtMiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0yIC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtMiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubWVkaXVtLXVwLTIgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTIgLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTIgLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTMgLmNvbHVtbiwgLm1lZGl1bS11cC0zIC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm1lZGl1bS11cC0zIC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTMgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0zIC5jb2x1bW46bnRoLW9mLXR5cGUoM24rMSksIC5tZWRpdW0tdXAtMyAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtMyAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMyAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZWRpdW0tdXAtNCAuY29sdW1uLCAubWVkaXVtLXVwLTQgLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubWVkaXVtLXVwLTQgLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5tZWRpdW0tdXAtNCAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTQgLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLm1lZGl1bS11cC00IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLm1lZGl1bS11cC00IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC00IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZWRpdW0tdXAtNSAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5tZWRpdW0tdXAtNSAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubWVkaXVtLXVwLTUgLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTUgLmNvbHVtbjpsYXN0LWNoaWxkLCAubWVkaXVtLXVwLTUgLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLXVwLTYgLmNvbHVtbiwgLm1lZGl1bS11cC02IC5jb2x1bW5zIHtcbiAgICB3aWR0aDogMTYuNjY2NjclO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLm1lZGl1bS11cC02IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTYgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC02IC5jb2x1bW46bnRoLW9mLXR5cGUoNm4rMSksIC5tZWRpdW0tdXAtNiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtNiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5jb2x1bW4ubWVkaXVtLWNlbnRlcmVkLCAubWVkaXVtLWNlbnRlcmVkLmNvbHVtbnMge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAubWVkaXVtLXVuY2VudGVyLFxuICAubWVkaXVtLXB1c2gtMCxcbiAgLm1lZGl1bS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSAuY29sdW1uLCAubGFyZ2UtdXAtMSAuY29sdW1ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtMSAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTEgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTEgLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLmxhcmdlLXVwLTEgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMSAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0xIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTIgLmNvbHVtbiwgLmxhcmdlLXVwLTIgLmNvbHVtbnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtMiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTIgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTIgLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLmxhcmdlLXVwLTIgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0yIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTMgLmNvbHVtbiwgLmxhcmdlLXVwLTMgLmNvbHVtbnMge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtMyAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTMgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTMgLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLmxhcmdlLXVwLTMgLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMyAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0zIC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTQgLmNvbHVtbiwgLmxhcmdlLXVwLTQgLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyNSU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtNCAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTQgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTQgLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLmxhcmdlLXVwLTQgLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNCAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC00IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTUgLmNvbHVtbiwgLmxhcmdlLXVwLTUgLmNvbHVtbnMge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtNSAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTUgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTUgLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLmxhcmdlLXVwLTUgLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNSAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC01IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTYgLmNvbHVtbiwgLmxhcmdlLXVwLTYgLmNvbHVtbnMge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAubGFyZ2UtdXAtNiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTYgLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTYgLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLmxhcmdlLXVwLTYgLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC02IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbHVtbi5sYXJnZS1jZW50ZXJlZCwgLmxhcmdlLWNlbnRlcmVkLmNvbHVtbnMge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAubGFyZ2UtdW5jZW50ZXIsXG4gIC5sYXJnZS1wdXNoLTAsXG4gIC5sYXJnZS1wdWxsLTAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cbiAgaDEgc21hbGwsXG4gIGgyIHNtYWxsLFxuICBoMyBzbWFsbCxcbiAgaDQgc21hbGwsXG4gIGg1IHNtYWxsLFxuICBoNiBzbWFsbCB7XG4gICAgY29sb3I6ICNjYWNhY2E7XG4gICAgbGluZS1oZWlnaHQ6IDA7IH1cblxuaDEge1xuICBmb250LXNpemU6IDEuNXJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cblxuaDMge1xuICBmb250LXNpemU6IDEuMzEyNXJlbTsgfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07IH1cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07IH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtOyB9XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTsgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIGg2IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9IH1cblxuYSB7XG4gIGNvbG9yOiAjMjE5OWU4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICMxNTg1Y2Y7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYSBpbWcge1xuICAgIGJvcmRlcjogMDsgfVxuXG5ociB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIG1hcmdpbjogMS4yNXJlbSBhdXRvO1xuICBjbGVhcjogYm90aDsgfVxuXG51bCxcbm9sLFxuZGwge1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlOyB9XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0OyB9XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtOyB9XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogaW5oZXJpdDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgY29sb3I6ICM4YThhOGE7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJzsgfVxuXG5hYmJyIHtcbiAgY29sb3I6ICM2NjY2NjY7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMGEwYTBhOyB9XG5cbmNvZGUge1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07IH1cblxua2JkIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTsgfVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOGE4YThhOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxOC43NXB4O1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxuLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cbiAgLmlyIGE6YWZ0ZXIsXG4gIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gIGFbaHJlZl49JyMnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7IH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9IH1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIG1hcmdpbjogMCAxcmVtIDFyZW0gMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGJhY2tncm91bmQ6ICMyMTk5ZTg7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogIzE1ODNjYztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLnRpbnkge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24uc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLmxhcmdlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi5leHBhbmRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5idXR0b24ucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzIxOTllODtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idXR0b24ucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5wcmltYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICMxNDdjYzA7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzc3NztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNWY1ZjVmO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogIzIyYmI1YjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24uYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNlYzU4NDA7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICNkYTMxMTY7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLndhcm5pbmc6aG92ZXIsIC5idXR0b24ud2FybmluZzpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5ob2xsb3cge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMTk5ZTg7XG4gICAgY29sb3I6ICMyMTk5ZTg7IH1cbiAgICAuYnV0dG9uLmhvbGxvdywgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzBjNGQ3ODtcbiAgICAgIGNvbG9yOiAjMGM0ZDc4OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5OWU4O1xuICAgICAgY29sb3I6ICMyMTk5ZTg7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMwYzRkNzg7XG4gICAgICAgIGNvbG9yOiAjMGM0ZDc4OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Nzc7XG4gICAgICBjb2xvcjogIzc3NzsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMzYzNjM2M7XG4gICAgICAgIGNvbG9yOiAjM2MzYzNjOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2VzcyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICAgICAgY29sb3I6ICMzYWRiNzY7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uaG9sbG93LnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICMxNTc1Mzk7XG4gICAgICAgIGNvbG9yOiAjMTU3NTM5OyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cuYWxlcnQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VjNTg0MDtcbiAgICAgIGNvbG9yOiAjZWM1ODQwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuYWxlcnQ6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4ODFmMGU7XG4gICAgICAgIGNvbG9yOiAjODgxZjBlOyB9XG4gICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZyB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICAgICAgY29sb3I6ICNmZmFlMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmc6aG92ZXIsIC5idXR0b24uaG9sbG93Lndhcm5pbmc6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICM4MDU3MDA7XG4gICAgICAgIGNvbG9yOiAjODA1NzAwOyB9XG4gIC5idXR0b24uZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gICAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0b3A6IDAuMmVtOyB9XG5cblt0eXBlPVwidGV4dFwiXSwgW3R5cGU9XCJwYXNzd29yZFwiXSwgW3R5cGU9XCJkYXRlXCJdLCBbdHlwZT1cImRhdGV0aW1lXCJdLCBbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLCBbdHlwZT1cIm1vbnRoXCJdLCBbdHlwZT1cIndlZWtcIl0sIFt0eXBlPVwiZW1haWxcIl0sIFt0eXBlPVwibnVtYmVyXCJdLCBbdHlwZT1cInNlYXJjaFwiXSwgW3R5cGU9XCJ0ZWxcIl0sIFt0eXBlPVwidGltZVwiXSwgW3R5cGU9XCJ1cmxcIl0sIFt0eXBlPVwiY29sb3JcIl0sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM4YThhOGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT1cInRleHRcIl06Zm9jdXMsIFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsIFt0eXBlPVwiZGF0ZVwiXTpmb2N1cywgW3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cywgW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cywgW3R5cGU9XCJtb250aFwiXTpmb2N1cywgW3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLCBbdHlwZT1cImVtYWlsXCJdOmZvY3VzLCBbdHlwZT1cIm51bWJlclwiXTpmb2N1cywgW3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsIFt0eXBlPVwidGVsXCJdOmZvY3VzLCBbdHlwZT1cInRpbWVcIl06Zm9jdXMsIFt0eXBlPVwidXJsXCJdOmZvY3VzLCBbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuICB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG5cbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIHRleHRhcmVhW3Jvd3NdIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXQ6ZGlzYWJsZWQsIGlucHV0W3JlYWRvbmx5XSxcbnRleHRhcmVhOmRpc2FibGVkLFxudGV4dGFyZWFbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cblt0eXBlPVwic3VibWl0XCJdLFxuW3R5cGU9XCJidXR0b25cIl0ge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5bdHlwZT1cImZpbGVcIl0sXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuW3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5sYWJlbCA+IFt0eXBlPVwiY2hlY2tib3hcIl0sXG5sYWJlbCA+IFt0eXBlPVwibGFiZWxcIl0ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG5bdHlwZT1cImZpbGVcIl0ge1xuICB3aWR0aDogMTAwJTsgfVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIGxhYmVsLm1pZGRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBwYWRkaW5nOiAwLjU2MjVyZW0gMDsgfVxuXG4uaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMzMzM7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgbWFyZ2luOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDElO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMSU7IH1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xODc1cmVtOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjOGE4YThhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiByZ2IoNTEsIDUxLCA1MSlcIj48L3BvbHlnb24+PC9zdmc+Jyk7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC41cmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT1cIik7IH0gfVxuICBzZWxlY3Q6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgODgsIDY0LCAwLjEpO1xuICBib3JkZXItY29sb3I6ICNlYzU4NDA7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2VjNTg0MDsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZWM1ODQwOyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMGVtKSBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1zbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAwZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bzsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLmNsZWFyZml4OjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5hY2NvcmRpb24ge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogIzIxOTllODtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZmZmZjsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIDpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcrJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTAuNXJlbTsgfVxuICAuaXMtYWN0aXZlID4gLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4oCTJzsgfVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmZmZmOyB9XG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zZW07XG4gIG1pbi13aWR0aDogMi4xZW07XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogIzIxOTllODtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzc3NztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmFkZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYmFkZ2UuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNlYzU4NDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuLmJyZWFkY3J1bWJzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwOyB9XG4gIC5icmVhZGNydW1iczo6YmVmb3JlLCAuYnJlYWRjcnVtYnM6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJyZWFkY3J1bWJzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjb2xvcjogIzBhMGEwYTtcbiAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICBjb2xvcjogI2NhY2FjYTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgbWFyZ2luOiAwIDAuNzVyZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIGNvbG9yOiAjMjE5OWU4OyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNjYWNhY2E7IH1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC45cmVtOyB9XG4gIC5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuYnV0dG9uLWdyb3VwOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0OyB9XG4gICAgLmJ1dHRvbi1ncm91cCAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnRpbnkge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLmxhcmdlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOmZpcnN0LWNoaWxkLFxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246bnRoLWxhc3QtY2hpbGQoMik6Zmlyc3QtY2hpbGQgfiAuYnV0dG9uIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpudGgtbGFzdC1jaGlsZCgzKTpmaXJzdC1jaGlsZCxcbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOm50aC1sYXN0LWNoaWxkKDMpOmZpcnN0LWNoaWxkIH4gLmJ1dHRvbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246bnRoLWxhc3QtY2hpbGQoNCk6Zmlyc3QtY2hpbGQsXG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpudGgtbGFzdC1jaGlsZCg0KTpmaXJzdC1jaGlsZCB+IC5idXR0b24ge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOm50aC1sYXN0LWNoaWxkKDUpOmZpcnN0LWNoaWxkLFxuICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246bnRoLWxhc3QtY2hpbGQoNSk6Zmlyc3QtY2hpbGQgfiAuYnV0dG9uIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpudGgtbGFzdC1jaGlsZCg2KTpmaXJzdC1jaGlsZCxcbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOm50aC1sYXN0LWNoaWxkKDYpOmZpcnN0LWNoaWxkIH4gLmJ1dHRvbiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogIzIxOTllODtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTQ3Y2MwO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogIzc3NztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogIzVmNWY1ZjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNlYzU4NDA7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZGEzMTE2O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b246bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZWZlZmU7IH0gfVxuXG4uY2FsbG91dCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICAuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY2FsbG91dCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYWxsb3V0LnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWYwZmM7IH1cbiAgICAuY2FsbG91dC5wcmltYXJ5IGEge1xuICAgICAgY29sb3I6ICMxMTZjYTg7IH1cbiAgICAgIC5jYWxsb3V0LnByaW1hcnkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMGE0MDYzOyB9XG4gIC5jYWxsb3V0LnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsgfVxuICAuY2FsbG91dC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmYWVhOyB9XG4gICAgLmNhbGxvdXQuc3VjY2VzcyBhIHtcbiAgICAgIGNvbG9yOiAjMWVhNDUwOyB9XG4gICAgICAuY2FsbG91dC5zdWNjZXNzIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzEyNjMzMDsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTZlMjsgfVxuICAgIC5jYWxsb3V0LmFsZXJ0IGEge1xuICAgICAgY29sb3I6ICNiZjJiMTM7IH1cbiAgICAgIC5jYWxsb3V0LmFsZXJ0IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzc5MWIwYzsgfVxuICAuY2FsbG91dC53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2Q5OyB9XG4gICAgLmNhbGxvdXQud2FybmluZyBhIHtcbiAgICAgIGNvbG9yOiAjYjM3YTAwOyB9XG4gICAgICAuY2FsbG91dC53YXJuaW5nIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzY2NDYwMDsgfVxuICAuY2FsbG91dC5zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAuY2FsbG91dC5sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICM4YThhOGE7XG4gIHJpZ2h0OiAxcmVtO1xuICB0b3A6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuY2xvc2UtYnV0dG9uOmhvdmVyLCAuY2xvc2UtYnV0dG9uOmZvY3VzIHtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uaXMtZHJpbGxkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5pcy1kcmlsbGRvd24tc3ViIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyOyB9XG4gIC5pcy1kcmlsbGRvd24tc3ViLmlzLWFjdGl2ZSB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5pcy1kcmlsbGRvd24tc3ViLmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMyMTk5ZTg7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5qcy1kcmlsbGRvd24tYmFjazo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMjE5OWU4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICBtYXJnaW4tbGVmdDogMC42cmVtO1xuICBtYXJnaW4tdG9wOiAxNHB4OyB9XG5cbi5kcm9wZG93bi1wYW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIC5kcm9wZG93bi1wYW5lLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmRyb3Bkb3duLXBhbmUudGlueSB7XG4gIHdpZHRoOiAxMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5zbWFsbCB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZHJvcGRvd24tcGFuZS5sYXJnZSB7XG4gIHdpZHRoOiA0MDBweDsgfVxuXG4uZHJvcGRvd24ubWVudSAuaGFzLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51IGE6OmFmdGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG4gIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5pcy1kb3duLWFycm93IGEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWRvd24tYXJyb3cgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzIxOTllOCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMnB4O1xuICAgIHJpZ2h0OiA1cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWxlZnQtYXJyb3cgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzIxOTllOCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuZHJvcGRvd24ubWVudSAuaGFzLXN1Ym1lbnUuaXMtcmlnaHQtYXJyb3cgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIxOTllODtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLWxlZnQtYXJyb3cub3BlbnMtaW5uZXIgLnN1Ym1lbnUge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51LmlzLXJpZ2h0LWFycm93Lm9wZW5zLWlubmVyIC5zdWJtZW51IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51IC5oYXMtc3VibWVudS5vcGVucy1pbm5lciAuc3VibWVudSB7XG4gICAgdG9wOiAxMDAlOyB9XG5cbi5kcm9wZG93bi5tZW51IC5zdWJtZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLmRyb3Bkb3duLm1lbnUgLnN1Ym1lbnUgPiBsaSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUgLnN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudSAuc3VibWVudTpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmhhcy1zdWJtZW51OmhvdmVyID4gLmRyb3Bkb3duLm1lbnUgLnN1Ym1lbnUsIC5kcm9wZG93bi5tZW51IC5zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmRyb3Bkb3duLm1lbnUgLmhhcy1zdWJtZW51Lm9wZW5zLWxlZnQgLnN1Ym1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgd2lkdGg6IDEwMHB4OyB9XG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsLmFsaWduLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwgPiBsaSAuc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDEwMCU7IH1cblxuLmZsZXgtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy10b3A6IDEuNTYyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZmxleC12aWRlbyBpZnJhbWUsXG4gIC5mbGV4LXZpZGVvIG9iamVjdCxcbiAgLmZsZXgtdmlkZW8gZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5mbGV4LXZpZGVvLndpZGVzY3JlZW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cbiAgLmZsZXgtdmlkZW8udmltZW8ge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjMjE5OWU4O1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNzc3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5sYWJlbC5hbGVydCB7XG4gICAgYmFja2dyb3VuZDogI2VjNTg0MDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1lZGlhLW9iamVjdCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwZW0pIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpsYXN0LWNoaWxkOm5vdCggKyAmOmZpcnN0LWNoaWxkKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbi5taWRkbGUge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uLmJvdHRvbSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuXG4ubWVudSB7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gIC5tZW51ID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5tZW51ID4gbGkge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAubWVudSA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSA+IGxpID4gYSA+IGltZyxcbiAgLm1lbnUgPiBsaSA+IGEgPiBpIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZW51ID4gbGkgPiBhID4gc3BhbiB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWVudSA+IGxpID4gYSA+IGltZyxcbiAgLm1lbnUgPiBsaSA+IGEgPiBpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG4gIC5tZW51ID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgLm1lbnUudmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5tZW51LnNpbXBsZSBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubWVudS5hbGlnbi1yaWdodCA+IGxpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLm1lbnUuZXhwYW5kZWQge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaTpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZCxcbiAgICAubWVudS5leHBhbmRlZCA+IGxpOm50aC1sYXN0LWNoaWxkKDIpOmZpcnN0LWNoaWxkIH4gbGkge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5tZW51LmV4cGFuZGVkID4gbGk6bnRoLWxhc3QtY2hpbGQoMyk6Zmlyc3QtY2hpbGQsXG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaTpudGgtbGFzdC1jaGlsZCgzKTpmaXJzdC1jaGlsZCB+IGxpIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubWVudS5leHBhbmRlZCA+IGxpOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkLFxuICAgIC5tZW51LmV4cGFuZGVkID4gbGk6bnRoLWxhc3QtY2hpbGQoNCk6Zmlyc3QtY2hpbGQgfiBsaSB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaTpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZCxcbiAgICAubWVudS5leHBhbmRlZCA+IGxpOm50aC1sYXN0LWNoaWxkKDUpOmZpcnN0LWNoaWxkIH4gbGkge1xuICAgICAgd2lkdGg6IDIwJTsgfVxuICAgIC5tZW51LmV4cGFuZGVkID4gbGk6bnRoLWxhc3QtY2hpbGQoNik6Zmlyc3QtY2hpbGQsXG4gICAgLm1lbnUuZXhwYW5kZWQgPiBsaTpudGgtbGFzdC1jaGlsZCg2KTpmaXJzdC1jaGlsZCB+IGxpIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubWVudS5leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhID4gaW1nLFxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhID4gaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMCBhdXRvIDAuMjVyZW07IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4ubWVudS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTsgfVxuICAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyOjpiZWZvcmUsIC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4uanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNTQsIDI1NCwgMC4yNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjVzIGVhc2U7IH1cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiAuanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ub2ZmLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgei1pbmRleDogLTE7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLnBvc2l0aW9uLWxlZnQge1xuICAgIGxlZnQ6IC0yNTBweDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDI1MHB4OyB9XG4gICAgLmlzLW9wZW4tbGVmdCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICByaWdodDogLTI1MHB4O1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMjUwcHg7IH1cbiAgICAuaXMtb3Blbi1yaWdodCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICBsZWZ0OiAwOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHJpZ2h0OiAwOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICBsZWZ0OiAwOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICByaWdodDogMDsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9IH1cblxuLm9yYml0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4ub3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTsgfVxuXG4ub3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1pbWFnZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMsIC5vcmJpdC1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gLm9yYml0LXByZXZpb3VzLCBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAub3JiaXQtbmV4dCB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDphY3RpdmUsIC5vcmJpdC1wcmV2aW91czpmb2N1cywgLm9yYml0LW5leHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLm9yYml0LWJ1bGxldHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gLm9yYml0LWJ1bGxldHMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LWJ1bGxldHMgYnV0dG9uIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIG1hcmdpbjogMC4xcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cblxuLnBhZ2luYXRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAucGFnaW5hdGlvbjo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC4wNjI1cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAgIC5wYWdpbmF0aW9uIGxpOmxhc3QtY2hpbGQsIC5wYWdpbmF0aW9uIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdpbmF0aW9uIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnBhZ2luYXRpb24gYSxcbiAgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgICBjb2xvcjogIzBhMGEwYTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAgIC5wYWdpbmF0aW9uIGE6aG92ZXIsXG4gICAgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgLnBhZ2luYXRpb24gW2FyaWEtbGFiZWw9XCJwcmV2aW91c1wiXTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnwqsnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07IH1cbiAgLnBhZ2luYXRpb24gW2FyaWEtbGFiZWw9XCJuZXh0XCJdOjphZnRlciB7XG4gICAgY29udGVudDogJ8K7JztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07IH1cbiAgLnBhZ2luYXRpb24gLmN1cnJlbnQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMjE5OWU4O1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAucGFnaW5hdGlvbiAuZGlzYWJsZWQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgY29udGVudDogJ+KApic7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk5ZTg7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzc7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy5hbGVydCAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzU4NDA7IH1cbiAgLnByb2dyZXNzLndhcm5pbmcgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwOyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5OWU4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIC5wcm9ncmVzcy1tZXRlciAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTsgfVxuXG4uc2xpZGVyLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMC41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuICAuc2xpZGVyLWZpbGwuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7IH1cblxuLnNsaWRlci1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMS40cmVtO1xuICBoZWlnaHQ6IDEuNHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTllODtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTU4M2NjOyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnNsaWRlci52ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMC41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1OyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgICB0b3A6IDA7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bzsgfVxuICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNDUpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cblxuLnJldmVhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDY7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIG1hcmdpbjogMTAwcHggYXV0byAwIGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSAucmV2ZWFsIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH0gfVxuICAucmV2ZWFsIC5jb2x1bW4sIC5yZXZlYWwgLmNvbHVtbnMsXG4gIC5yZXZlYWwgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIC5yZXZlYWwuY29sbGFwc2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwgLnJldmVhbCB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLnRpbnkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC5zbWFsbCB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsLmxhcmdlIHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgLnJldmVhbC5mdWxsIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnN3aXRjaCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG91dGxpbmU6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4uc3dpdGNoLWlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi5zd2l0Y2gtcGFkZGxlIHtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuICBpbnB1dCArIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgYmFja2dyb3VuZDogIzIxOTllODsgfVxuICAgIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICAgbGVmdDogMi4yNXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSBpbnB1dDpmb2N1cyB+IC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG5cbi5zd2l0Y2gtYWN0aXZlLCAuc3dpdGNoLWluYWN0aXZlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5zd2l0Y2gtYWN0aXZlIHtcbiAgbGVmdDogOCU7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zd2l0Y2gtaW5hY3RpdmUge1xuICByaWdodDogMTUlOyB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlIHtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBmb250LXNpemU6IDAuNjI1cmVtOyB9XG5cbi5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtOyB9XG5cbi5zd2l0Y2gudGlueSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6YWZ0ZXIge1xuICBsZWZ0OiAxLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4uc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07IH1cblxuLnN3aXRjaC5zbWFsbCBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6YWZ0ZXIge1xuICBsZWZ0OiAycmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogNXJlbTtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4uc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07IH1cblxuLnN3aXRjaC5sYXJnZSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6YWZ0ZXIge1xuICBsZWZ0OiAyLjc1cmVtOyB9XG5cbnRhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjFmMWYxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgY2FwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBjb2xvcjogIzY2NjY2NjsgfVxuICAgIHRoZWFkIHRyLFxuICAgIHRmb290IHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgdGhlYWQgdGgsXG4gICAgdGhlYWQgdGQsXG4gICAgdGZvb3QgdGgsXG4gICAgdGZvb3QgdGQge1xuICAgICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICB0Ym9keSB0aCxcbiAgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuXG50YWJsZS5ob3ZlciB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cblxudGFibGUuaG92ZXIgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOyB9XG5cbi50YWJzIHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7IH1cbiAgLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnRhYnM6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAudGFicy5zaW1wbGUgPiBsaSA+IGEge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAudGFicy5zaW1wbGUgPiBsaSA+IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYnMudmVydGljYWwgPiBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnRhYnMucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzIxOTllODsgfVxuICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGEge1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTg5M2U0OyB9XG5cbi50YWJzLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnRhYnMtdGl0bGUgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICMyMTk5ZTg7IH1cbiAgICAudGFicy10aXRsZSA+IGE6aG92ZXIsIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDA7IH1cbiAgLnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udGh1bWJuYWlsIHtcbiAgYm9yZGVyOiBzb2xpZCA0cHggI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMTAsIDEwLCAxMCwgMC4yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC50aHVtYm5haWw6aG92ZXIsIC50aHVtYm5haWw6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoMzMsIDE1MywgMjMyLCAwLjUpOyB9XG5cbi50aXRsZS1iYXIge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMC41cmVtOyB9XG4gIC50aXRsZS1iYXI6OmJlZm9yZSwgLnRpdGxlLWJhcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAudGl0bGUtYmFyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnRpdGxlLWJhciAubWVudS1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG4udGl0bGUtYmFyLWxlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4udGl0bGUtYmFyLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ubWVudS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDsgfVxuICAubWVudS1pY29uOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgd2hpdGUsIDAgMTRweCAwIHdoaXRlOyB9XG4gIC5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2NhY2FjYSwgMCAxNHB4IDAgI2NhY2FjYTsgfVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG4gIC5tZW51LWljb24uZGFyazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwIGJsYWNrLCAwIDE0cHggMCBibGFjazsgfVxuICAubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNjY2O1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzY2NiwgMCAxNHB4IDAgIzY2NjsgfVxuXG4uaGFzLXRpcCB7XG4gIGJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggIzhhOGE4YTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5oYXMtdGlwOmhvdmVyIHtcbiAgICBjdXJzb3I6IGhlbHA7IH1cblxuLnRvb2x0aXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1zaXplOiA4MCU7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG4gIHRvcDogY2FsYygxMDAlICsgMC42NDk1cmVtKTtcbiAgbWF4LXdpZHRoOiAxMHJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMGEwYTBhO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC50b3A6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bzsgfVxuICAudG9vbHRpcC5sZWZ0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMGEwYTBhO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnRvcC1iYXIge1xuICBwYWRkaW5nOiAwcmVtOyB9XG4gIC50b3AtYmFyOjpiZWZvcmUsIC50b3AtYmFyOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC50b3AtYmFyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnRvcC1iYXIsIC50b3AtYmFyIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC50b3AtYmFyIGlucHV0IHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnRvcC1iYXItbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnRvcC1iYXItcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbGVmdC5tdWktZW50ZXIge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS10b3AubXVpLWxlYXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1vdXQtZG93bi5tdWktbGVhdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZS03OyB9XG5cbkBrZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpOyB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTsgfSB9XG5cbi5zcGluLWN3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc3Bpbi1jY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9IH1cblxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGUtN2RlZzsgfVxuXG5Aa2V5ZnJhbWVzIHdpZ2dsZS03ZGVnIHtcbiAgNDAlLCA1MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbiAgMzUlLCA0NSUsIDU1JSwgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7IH1cbiAgMCUsIDMwJSwgNzAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbi5zbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbmh0bWwsXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlOyB9XG4gIC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXI6OmJlZm9yZSwgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLm9mZi1jYW52YXMtY29udGVudCB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjUpOyB9XG5cbi5qcy1vZmYtY2FudmFzLWV4aXQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjI1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNXMgZWFzZTsgfVxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIC5qcy1vZmYtY2FudmFzLWV4aXQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbltkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICYge1xuICBvdXRsaW5lOiAwOyB9XG5cbnBvc2l0aW9uOiBhYnNvbHV0ZTtcbmJhY2tncm91bmQ6ICNmZmZmZmY7XG56LWluZGV4OiAtMTtcbm1heC1oZWlnaHQ6IDEwMCU7XG5vdmVyZmxvdy15OiBhdXRvO1xudHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG5mYWxzZTogMDtcbn4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gIG1hcmdpbi1mYWxzZTogMjUwcHg7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImZvdW5kYXRpb24taWNvbnNcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb3VuZGF0aW9uLWljb25zL2ZvdW5kYXRpb24taWNvbnMuZW90XCIpO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ZvdW5kYXRpb24taWNvbnMvZm91bmRhdGlvbi1pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb3VuZGF0aW9uLWljb25zL2ZvdW5kYXRpb24taWNvbnMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9mb3VuZGF0aW9uLWljb25zL2ZvdW5kYXRpb24taWNvbnMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb3VuZGF0aW9uLWljb25zL2ZvdW5kYXRpb24taWNvbnMuc3ZnI2ZvbnRjdXN0b21cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCJAY2hhcnNldCAndXRmLTgnO1xuXG5AaW1wb3J0ICdzZXR0aW5ncyc7XG5AaW1wb3J0ICdmb3VuZGF0aW9uJztcbkBpbXBvcnQgJ21vdGlvbi11aSc7XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC12aWRlbztcbkBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbkBpbmNsdWRlIG1vdGlvbi11aS10cmFuc2l0aW9ucztcbkBpbmNsdWRlIG1vdGlvbi11aS1hbmltYXRpb25zO1xuXG5AaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcbkBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcbkBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGZhbHNlKTtcblxuJGZvbnQtcGF0aDogXCIuLi9mb250cy9mb3VuZGF0aW9uLWljb25zL2ZvdW5kYXRpb24taWNvbnNcIjtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJmb3VuZGF0aW9uLWljb25zXCI7XG4gIHNyYzogdXJsKFwiI3skZm9udC1wYXRofS5lb3RcIik7XG4gIHNyYzogdXJsKFwiI3skZm9udC1wYXRofS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgICAgIHVybChcIiN7JGZvbnQtcGF0aH0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgIHVybChcIiN7JGZvbnQtcGF0aH0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgICAgIHVybChcIiN7JGZvbnQtcGF0aH0uc3ZnI2ZvbnRjdXN0b21cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbkBpbXBvcnQgXCIuLi9mb250cy9mb3VuZGF0aW9uLWljb25zL2ZvdW5kYXRpb24taWNvbnMuY3NzXCI7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gT2Zmc2V0IGZyb20gdGhlIHRvcCBvZiB0aGUgd2luZG93IHdoZW4gYSBtb2RhbCBpcyBhZGRlZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtb2Zmc2V0OiByZW0tY2FsYygxMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDU7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgcGFkZGluZzogJHJldmVhbC1wYWRkaW5nO1xuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICAvLyBtYXJnaW46IDEwMHB4IGF1dG8gMCAxMDBweDtcbiAgbWFyZ2luOiAxMDBweCBhdXRvIDAgYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgLmNvbHVtbixcbiAgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFN0cmlwIG1hcmdpbnMgZnJvbSB0aGUgbGFzdCBpdGVtIGluIHRoZSBtb2RhbFxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGp1c3RzIHRoZSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXgtd2lkdGggWyRyZXZlYWwtbWF4LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIG1vZGFsLlxuQG1peGluIHJldmVhbC1tb2RhbC13aWR0aChcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxuICAkbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aFxuKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgQGV4dGVuZCAlcmV2ZWFsLWNlbnRlcmVkO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGZ1bGwtc2NyZWVuIG1vZGFsLCB3aGljaCBzdHJldGNoZXMgdGhlIGZ1bGwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgd2luZG93LlxuQG1peGluIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgRHVwbGljYXRlUHJvcGVydHlcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbiAgICAvLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICVyZXZlYWwtY2VudGVyZWQge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuICB9XG59XG5cbmJvZHkuaXMtcmV2ZWFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFRoaXJkLXBhcnR5IGxpYnJhcmllc1xuQGltcG9ydCAndmVuZG9yL25vcm1hbGl6ZSc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleC12aWRlbyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byA8bWV0YT4gdGFncywgd2hpY2ggYXJlIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCIjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX1cIjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LXZpZGVvO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG4lbXVpLWRlZmF1bHRzIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XG59XG5cbi8vIFRyYW5zaXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS10cmFuc2l0aW9ucyB7XG4gIC8vIFNsaWRlXG4gIC5zbGlkZS1pbi1kb3duICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgZG93bik7IH1cbiAgLnNsaWRlLWluLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICByaWdodCk7IH1cbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBib3R0b20pOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBib3R0b20pOyB9XG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XG4gIC5zbGlkZS1vdXQtdXAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgdG9wKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgYWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxuKSAhZGVmYXVsdDtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBQcmltYXJ5IGNvbG9yIGZvciBpbnRlcmFjdGl2ZSBjb21wb25lbnRzIGxpa2UgbGlua3MgYW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcmltYXJ5LWNvbG9yOiAjMjE5OWU4ICFkZWZhdWx0O1xuXG4vLy8gU2Vjb25kYXJ5IGNvbG9yLCB1c2VkIHdpdGggY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgdGhlIGAuc2Vjb25kYXJ5YCBjbGFzcy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlY29uZGFyeS1jb2xvcjogIzc3NyAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIGluZGljYXRlIGEgcG9zaXRpdmUgc3RhdHVzIG9yIGFjdGlvbiwgdXNlZCB3aXRoIHRoZSBgLnN1Y2Nlc3NgIGNsYXNzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIGluZGljYXRlIGEgY2F1dGlvbiBzdGF0dXMgb3IgYWN0aW9uLCB1c2VkIHdpdGggdGhlIGAud2FybmluZ2AgY2xhc3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR3YXJuaW5nLWNvbG9yOiAjZmZhZTAwICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gaW5kaWNhdGUgYSBuZWdhdGl2ZSBzdGF0dXMgb3IgYWN0aW9uLCB1c2VkIHdpdGggdGhlIGAuYWxlcnRgIGNsYXNzLlxuLy8vIEB0eXBlIENvbG9yXG4kYWxlcnQtY29sb3I6ICNlYzU4NDAgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgZGlyZWN0aW9uIGZvciB0aGUgZG9jdW1lbnQuIFNldCB0byBgcnRsYCB0byByZXZlcnNlIHRoZSBvcmllbnRhdGlvbiBhbmQgZGlyZWN0aW9uIG9mIGFsbCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBiZXR3ZWVuIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCBtYXAgdXNlZCB0byBpdGVyYXRlIHRocm91Z2ggY29sb3JzLCB0byBnZW5lcmF0ZSBDU1MgY2xhc3NlcyB3aXRoIGxlc3MgY29kZVxuJGZvdW5kYXRpb24tY29sb3JzOiAoXG4gIHByaW1hcnk6ICRwcmltYXJ5LWNvbG9yLFxuICBzZWNvbmRhcnk6ICRzZWNvbmRhcnktY29sb3IsXG4gIHN1Y2Nlc3M6ICRzdWNjZXNzLWNvbG9yLFxuICBhbGVydDogJGFsZXJ0LWNvbG9yLFxuICB3YXJuaW5nOiAkd2FybmluZy1jb2xvcixcbik7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBodG1sLFxuICBib2R5IHtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcblxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJZFNlbGVjdG9yXG4gICNtYXBfY2FudmFzLFxuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG59XG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAgMTUuIERyaWxsZG93blxuLy8gIDE2LiBEcm9wZG93blxuLy8gIDE3LiBEcm9wZG93biBNZW51XG4vLyAgMTguIEZsZXggVmlkZW9cbi8vICAxOS4gRm9ybXNcbi8vICAyMC4gTGFiZWxcbi8vICAyMS4gTWVkaWEgT2JqZWN0XG4vLyAgMjIuIE1lbnVcbi8vICAyMy4gT2ZmLWNhbnZhc1xuLy8gIDI0LiBPcmJpdFxuLy8gIDI1LiBQYWdpbmF0aW9uXG4vLyAgMjYuIFByb2dyZXNzIEJhclxuLy8gIDI3LiBSZXZlYWxcbi8vICAyOC4gU2xpZGVyXG4vLyAgMjkuIFN3aXRjaFxuLy8gIDMwLiBUYWJsZVxuLy8gIDMxLiBUYWJzXG4vLyAgMzIuIFRodW1ibmFpbFxuLy8gIDMzLiBUb29sdGlwXG4vLyAgMzQuIFRvcCBCYXJcblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTVweDsgLy8xNHB4OyAvLzEwMCVcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJHByaW1hcnktY29sb3I6ICMyMTk5ZTg7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjNzc3O1xuJHN1Y2Nlc3MtY29sb3I6ICMzYWRiNzY7XG4kd2FybmluZy1jb2xvcjogI2ZmYWUwMDtcbiRhbGVydC1jb2xvcjogI2VjNTg0MDtcbiRsaWdodC1ncmF5OiAjZmZmZmZmOyAvLyNlNmU2ZTY7IGbDvHIgb2ZmLWNhbnZhc1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzBhMGEwYTtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICM2NjY2NjY7IC8vJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsICBBcmlhbCwgc2Fucy1zZXJpZjsgLy9DYWxpYnJpLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuJHRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kcmVtLWJhc2U6IDE2cHg7XG5cbi8vJGdsb2JhbC1mb250LXNpemU6IChzbWFsbDogMTAwJSwgbWVkaXVtOiAxMDAlLCBsYXJnZTogMTAwJSk7XG5cblxuLy8gMi4gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbik7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKTtcblxuLy8gMy4gVGhlIEdyaWRcbi8vIC0tLS0tLS0tLS0tXG5cbiRncmlkLXJvdy13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudDogMTI7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAzMHB4O1xuJGJsb2NrLWdyaWQtbWF4OiA2O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLXNpemVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogMjQsXG4gICAgJ2gyJzogMjIsXG4gICAgJ2gzJzogMjEsXG4gICAgJ2g0JzogMjAsXG4gICAgJ2g1JzogMTksXG4gICAgJ2g2JzogMTgsXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6IDM2LFxuICAgICdoMic6IDMwLFxuICAgICdoMyc6IDI2LFxuICAgICdoNCc6IDIyLFxuICAgICdoNSc6IDIwLFxuICAgICdoNic6IDE4LFxuICApLFxuICAgIGxhcmdlOiAoXG4gICAgJ2gxJzogNDgsXG4gICAgJ2gyJzogNDAsXG4gICAgJ2gzJzogMzEsXG4gICAgJ2g0JzogMjUsXG4gICAgJ2g1JzogMjAsXG4gICAgJ2g2JzogMTgsXG4gICksXG4pO1xuXG4vLyRwYXJhZ3JhcGgtc2l6ZTogcmVtLWNhbGMoMjApO1xuXG4kaGVhZGVyLWNvbG9yOiAjNDQ0NDQ0OyAvL2luaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yOy8vIzFlNGJjYjsgLy8kYmxhY2s7IC8vIzFlNGJjYjsgXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvL25vbmU7XG4vLyRhbmNob3ItdGV4dC13ZWlnaHQ6IGJvbGQ7IC8vbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiB1bmRlcmxpbmU7IC8vbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6ICRhbGVydC1jb2xvcjtcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6ICRhbGVydC1jb2xvcjtcbiRpbnB1dC1lcnJvci1jb2xvcjogJGFsZXJ0LWNvbG9yO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCk7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGw6IHNvbGlkO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiRidXR0b24tY29sb3I6ICNmZmY7XG4kYnV0dG9uLWNvbG9yLWFsdDogIzAwMDtcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAxcmVtO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtO1xuJGNsb3NlYnV0dG9uLXNpemU6IDJlbTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE1LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG5cbi8vIDE2LiBEcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDE2cmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE3LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtbWluLXdpZHRoOiAyMDBweDtcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcblxuLy8gMTguIEZsZXggVmlkZW9cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRmbGV4dmlkZW8tcGFkZGluZy10b3A6IHJlbS1jYWxjKDI1KTtcbiRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzO1xuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5O1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAjMzMzO1xuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xuJHNlbGVjdC1iYWNrZ3JvdW5kOiAjZmFmYWZhO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogIzMzMztcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGRhcmstZ3JheTtcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBkZWZhdWx0O1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMC4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6IGZvcmVncm91bmQoJGxhYmVsLWJhY2tncm91bmQpO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbTsgXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1leHBhbmQtbWF4OiA2O1xuXG4vLyAyMy4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAgMjUwcHg7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICR3aGl0ZTsgLy8kbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtemluZGV4OiAtMTtcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlOyAvL2RlZmF1bHQ6IHRydWVcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMCAwcHggcmdiYSgkYmxhY2ssIDAuNSk7IC8vMCAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpOyBcblxuXG4vLyAyNC4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI1LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogZm9yZWdyb3VuZCgkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCk7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjYuIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyNy4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtb2Zmc2V0OiByZW0tY2FsYygxMDApO1xuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRyZXZlYWwtemluZGV4OiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjQ1KTtcblxuLy8gMjguIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLWhlaWdodDogMC41cmVtO1xuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogJHNsaWRlci1oZWlnaHQ7XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcblxuLy8gMjkuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW07XG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAzMC4gVGFibGVcbi8vIC0tLS0tLS0tLVxuXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JTtcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcblxuLy8gMzEuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItYm9yZGVyOiAkbGlnaHQtZ3JheTtcbiR0YWItaXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gMzIuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDMzLiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcGlwLW9mZnNldDogMS4yNXJlbTtcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDM0LiBUb3AgQmFyXG4vLyAtLS0tLS0tLS0tLVxuXG4kdG9wYmFyLXBhZGRpbmc6IDAuMHJlbTsgLy8wLjVcbiR0b3BiYXItYmFja2dyb3VuZDogI2ZmZjsgLy9lZWVlXG4kdG9wYmFyLWxpbmstY29sb3I6ICNmZmY7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gT3V0cHV0cyBDU1MgY2xhc3NlcyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gZm91bmRhdGlvbi1ncmlkKFxuICAkcm93OiAncm93JyxcbiAgJGNvbHVtbjogJ2NvbHVtbicsXG4gICRjb2x1bW4tcm93OiAnY29sdW1uLXJvdycsXG4gICRwdXNoOiAncHVzaCcsXG4gICRwdWxsOiAncHVsbCcsXG4gICRjZW50ZXI6ICdjZW50ZXJlZCcsXG4gICR1bmNlbnRlcjogJ3VuY2VudGVyJyxcbiAgJGNvbGxhcHNlOiAnY29sbGFwc2UnLFxuICAkdW5jb2xsYXBzZTogJ3VuY29sbGFwc2UnLFxuICAkb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgJGVuZDogJ2VuZCcsXG4gICRleHBhbmRlZDogJ2V4cGFuZGVkJyxcbiAgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludC1jbGFzc2VzXG4pIHtcbiAgLy8gUm93XG4gIC4jeyRyb3d9IHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgIC8vIENvbGxhcHNpbmdcbiAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJiAmIHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdCwgJGNmOiBmYWxzZSk7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0IGNvbGxhcHNlLCAkY2Y6IGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgJi4jeyRzaXplfS0jeyRjb2xsYXBzZX0ge1xuICAgICAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRzaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLXVuY29sbGFwc2U7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIChmdWxsLXdpZHRoKSByb3dcbiAgICAmLiN7JGV4cGFuZGVkfSB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC4jeyRjb2x1bW59IHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbDtcblxuICAgICYuI3skZW5kfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLy8gQ29sdW1uIHdpZHRoXG4gICAgICAgIC4jeyRzaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtc2l6ZSgkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgICAgQGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKC0kaSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gT2Zmc2V0c1xuICAgICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAgIC4jeyRzaXplfS0jeyRvZmZzZXR9LSN7JG99IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEJsb2NrIGdyaWRcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLiN7JHNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUG9zaXRpb25pbmdcbiAgICAgIC4jeyRjb2x1bW59LiN7JHNpemV9LSN7JGNlbnRlcn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICAgIH1cblxuICAgICAgLy8gR3V0dGVyIGFkanVzdG1lbnRcbiAgICAgIC4jeyRzaXplfS0jeyR1bmNlbnRlcn0sXG4gICAgICAuI3skc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAgIC4jeyRzaXplfS0jeyRwdWxsfS0wIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicge1xuICAgIC5jb2x1bW5zIHtcbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFBsYWNlaG9sZGVySW5FeHRlbmRcbiAgICAgIEBleHRlbmQgLmNvbHVtbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFtfSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zO1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLXJvdy13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSByb3cuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICR3aWR0aDogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWVcbikge1xuICAkYmVoYXZpb3I6IC16Zi1nZXQtb3B0aW9ucygkYmVoYXZpb3IsIG5lc3QgY29sbGFwc2UpO1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBtYXAtZ2V0KCRiZWhhdmlvciwgbmVzdCkge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKCRncmlkLWNvbHVtbi1ndXR0ZXIpIC8gMiAqIC0xO1xuXG4gICAgQGlmIG1hcC1nZXQoJGJlaGF2aW9yLCBjb2xsYXBzZSkge1xuICAgICAgJG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1heC13aWR0aDogJHdpZHRoO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG5cbi8vLyBEZWZpbmVzIHRoZSBiYXNlIGZvbnQgc2l6ZSBvZiB0aGUgcGFnZSwgd2hpY2ggaXMgdGhlIHZhbHVlIGAxcmVtYCBpcyBlcXVhbCB0by5cbi8vLyBAdHlwZSBOdW1iZXJcbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcmVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgWyRyZW0tYmFzZV0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiAkcmVtLWJhc2UpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRyZW0tYmFzZTtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXQoJHZhbHVlKSA9PSAnJyB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkcmVtLWJhc2VgIHZhcmlhYmxlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiAkcmVtLWJhc2UpIHtcbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmICh1bml0KCR2YWx1ZSkgIT0gJ3JlbScpIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9XG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogIzY2NixcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGZsb29yKCgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSkpO1xuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IoI3tyZWQoJGNvbG9yKX0sICN7Z3JlZW4oJGNvbG9yKX0sICN7Ymx1ZSgkY29sb3IpfSknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA1MCUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1NcbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4vLy8gVmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5IGNlbnRlcnMgYW4gZWxlbWVudCB1c2luZyBgdHJhbnNmb3JtYC5cbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIGFuIGVsZW1lbnQgdXNpbmcgYHRyYW5zZm9ybWAuXG5AbWl4aW4gdi1hbGlnbi1taWRkbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSgpIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB7XG4gIHBhZGRpbmctbGVmdDogJGdyaWQtY29sdW1uLWd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGdyaWQtY29sdW1uLWd1dHRlcjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlKCkge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCkge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBzbWFsbDogMCxcbiAgbWVkaXVtOiA2NDBweCxcbiAgbGFyZ2U6IDEwMjRweCxcbiAgeGxhcmdlOiAxMjAwcHgsXG4gIHh4bGFyZ2U6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6IHNtYWxsKSB7XG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJyc7XG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XG4gICRuYW1lZDogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG4gIEBlbHNlIGlmICRicCA9PSAncmV0aW5hJyB7XG4gICAgQHJldHVybiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSc7XG4gIH1cblxuICAvLyBUcnkgdG8gcHVsbCBhIG5hbWVkIGJyZWFrcG9pbnQgb3V0IG9mIHRoZSAkYnJlYWtwb2ludHMgbWFwXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJG5leHQtYnA6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG5cbiAgICAgICAgQGlmICRuZXh0LWJwID09IG51bGwge1xuICAgICAgICAgICRicC1tYXg6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRicC1tYXg6ICRuZXh0LWJwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiB0aGUgaW5wdXQgaXMgXCIwIHVwXCIgb3IgXCIwIGRvd25cIlxuICBAaWYgJGJwID4gMCBvciAkZGlyID09ICdvbmx5JyB7XG4gICAgLy8gXCJPbmx5XCIgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IFwiKG1pbi13aWR0aDogbikgYW5kIChtYXgtd2lkdGg6IG4pXCJcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBcIkRvd25cIiByYW5nZXMgdXNlIHRoZSBmb3JtYXQgXCIobWF4LXdpZHRoOiBuKVwiXG4gICAgQGVsc2UgaWYgJGRpciA9PSAnZG93bicge1xuICAgICAgJG1heDogMDtcblxuICAgICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzLCBzdWJ0cmFjdCB0aGUgYnJlYWtwb2ludCB2YWx1ZSBieSBvbmUgXCJwaXhlbFwiLCBvciAxLzE2ZW0uXG4gICAgICBAaWYgJG5hbWVkIHtcbiAgICAgICAgJG1heDogJGJwLW1heDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG1heDogJGJwO1xuICAgICAgfVxuXG4gICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICB9XG5cbiAgICAvLyBcIlVwXCIgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IFwiKG1pbi13aWR0aDogbilcIlxuICAgIEBlbHNlIGlmIHN0cmlwLXVuaXQoJGJwKSA+IDAge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkcmVtLWJhc2VgLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vLyBAY29udGVudFxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuICAvLyBTdG9yZSB0aGUgdmFsdWVzIG9mIHRoZSBtYXAgYXMgYSBsaXN0LCBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gd2l0aCBudGhcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcblxuICAvLyBHaGV0dG8gZm9yIGxvb3BcbiAgJGk6IDE7XG4gICRmb3VuZDogZmFsc2U7XG4gIEBlYWNoICR2YWwgaW4gbWFwLWtleXMoJG1hcCkge1xuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xuICAgICAgQGlmICgka2V5ID09ICR2YWwpIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfVxuICAgICAgJGk6ICRpICsgMTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBudGgoJHZhbHVlcywgJGkpO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIHdpZHRoIG9mIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkd2lkdGggWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCB0byBtYWtlIHRoZSBjb2x1bW4uIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXNpemUoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXNpemVcbkBtaXhpbiBncmlkLWNvbC1zaXplKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGNvbHVtbnNcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBtYWtlIHRoZSBjb2x1bW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIHNpbmdsZSBkaWdpdCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBzcGFuIHRoYXQgbnVtYmVyIG9mIGNvbHVtbnMgd2lkZSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sdW1uIGNvdW50IG9mIHRoZSBwYXJlbnQgcm93LlxuLy8vICAgLSBBIHN0cmluZyBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gICR3aWR0aDogMCU7XG5cbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaWYgKCRjb2x1bW5zIDw9ICRncmlkLWNvbHVtbi1jb3VudCkge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLXNpemUoJGNvbHVtbnMpO1xuICB9XG5cbiAgJGd1dHRlcjogcmVtLWNhbGMoJGd1dHRlcikgLyAyO1xuXG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcblxuICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyOiAkZ3V0dGVyKTtcbiAgXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXJvdygpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcm93XG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXIpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBvc2l0aW9uIC0gRGlyZWN0aW9uIGFuZCBhbW91bnQgdG8gbW92ZS4gVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnQgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZSgkcG9zaXRpb24gLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24oKSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kKCkge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcygpIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCgpIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2l6ZXMgY2hpbGQgZWxlbWVudHMgc28gdGhhdCBgJG5gIG51bWJlciBvZiBpdGVtcyBhcHBlYXIgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiwgLmNvbHVtbnMnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG5AbWl4aW4gZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY29sdW1uJ1xuKSB7XG4gICN7JHNlbGVjdG9yfSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAgICY6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoI3skbn1uKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPuKAlDxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgb2YgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzaXplcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc2l6ZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAyNCxcbiAgICAnaDInOiAyMCxcbiAgICAnaDMnOiAxOSxcbiAgICAnaDQnOiAxOCxcbiAgICAnaDUnOiAxNyxcbiAgICAnaDYnOiAxNixcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogNDgsXG4gICAgJ2gyJzogNDAsXG4gICAgJ2gzJzogMzEsXG4gICAgJ2g0JzogMjUsXG4gICAgJ2g1JzogMjAsXG4gICAgJ2g2JzogMTYsXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZWhlaWdodDtcblxuICAgIHNtYWxsIHtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHNpemVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICAgI3skaGVhZGVyfSB7IGZvbnQtc2l6ZTogcmVtLWNhbGMoJGZvbnQtc2l6ZSk7IH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciB7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgfVxuXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgLy8gVXNlIHRvIHJlbW92ZSB0aGUgYnVsbGV0cyBmcm9tIGFuIHVub3JkZXJlZCBsaXN0XG4gIC5uby1idWxsZXQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICdzbWFsbCcge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5XG4vLy8vXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvblxuLy8vL1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLCBpZiB0aGUgYmFja2dyb3VuZCBpcyBsaWdodC5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogIzAwMCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbjtcbn1cblxuLy8gVE9ETzogRG9jdW1lbnQgYnV0dG9uLWJhc2UoKSBtaXhpblxuQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBpc2l0bGlnaHQoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTIwJSk7XG4gIH1cblxuICBAaWYgbGlnaHRuZXNzKCRiYWNrZ3JvdW5kKSA+PSA3MCUge1xuICAgICRjb2xvcjogJGJ1dHRvbi1jb2xvci1hbHQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRjb2xvcjogJGJ1dHRvbi1jb2xvcjtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcjogJHByaW1hcnktY29sb3IpIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC01MCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICAmLnRpbnkgICAgIHsgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIHRpbnkpOyB9XG4gICAgJi5zbWFsbCAgICB7IGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBzbWFsbCk7IH1cbiAgICAmLmxhcmdlICAgIHsgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGxhcmdlKTsgfVxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLWNvbG9ycyB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1jb2xvcnMge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuICAgICYuYXJyb3ctb25seTo6YWZ0ZXIge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgdG9wOiAwLjJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IGRlZmF1bHQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9XCJudW1iZXJcIj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtcmFkaXVzO1xuXG4gIEBpZiBoYXN2YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXN2YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPVwic3VibWl0XCJdLFxuICBbdHlwZT1cImJ1dHRvblwiXSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QoJGlucHV0LW51bWJlci1zcGlubmVycykge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPVwiZmlsZVwiXSxcbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuICBbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIGxhYmVsID4gW3R5cGU9XCJsYWJlbFwiXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT1cImZpbGVcIl0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3IgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgZm9ybSBsYWJlbHMuIFRoZSBoaWdoZXIgdGhlIG51bWJlciwgdGhlIG1vcmUgc3BhY2UgYmV0d2VlbiB0aGUgbGFiZWwgYW5kIGl0cyBpbnB1dCBmaWVsZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHN0eWxlIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1oZWxwdGV4dCB7XG4gIC5oZWxwLXRleHQge1xuICAgICRtYXJnaW4tdG9wOiAoJGZvcm0tc3BhY2luZyAqIDAuNSkgKiAtMTtcblxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xuICAgIGZvbnQtc2l6ZTogJGhlbHB0ZXh0LWZvbnQtc2l6ZTtcbiAgICBmb250LXN0eWxlOiAkaGVscHRleHQtZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQ29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0L3JpZ2h0IHBhZGRpbmcgb2YgYW4gcHJlL3Bvc3RmaXhlZCBpbnB1dCBsYWJlbFxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXByZXBvc3RmaXgge1xuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgbWFyZ2luOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMSU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDAgJGlucHV0LXByZWZpeC1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuXG4gICAgQGlmIGhhc3ZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDElO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogI2ZhZmFmYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaWYgJHNlbGVjdC10cmlhbmdsZS1jb2xvciAhPSB0cmFuc3BhcmVudCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGdsb2JhbC1yaWdodCAoJGZvcm0tc3BhY2luZyAvIDIpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIEhpZGUgdGhlIGRyb3Bkb3duIGFycm93IHNob3duIGluIG5ld2VyIElFIHZlcnNpb25zXG4gICY6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmW211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB0byB1c2UgZm9yIGxhYmVscyBvZiBpbnZhbGlkIGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkYWxlcnQtY29sb3Jcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAwLjEpO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxLzE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxLzE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiAkbG93ZXItYm91bmQtc2l6ZSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9IHNtYWxsIHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj1cInRydWVcIiB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb25cbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIHBsdXMgYW5kIG1pbnVzIGljb25zIHRvIHRoZSBzaWRlIG9mIGVhY2ggYWNjb3JkaW9uIHRpdGxlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKTtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxuQG1peGluIGFjY29yZGlvbi10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICBjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiB0aGUgbGFzdCB0aXRsZVxuICA6bGFzdC1jaGlsZCA+ICYge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAkyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250YWluZXI7XG4gIH1cblxuICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgIC8vIFRoaXMgY2xhc3MgZG9lc24ndCBuZWVkIHN0eWxlcyFcbiAgfVxuXG4gIC5hY2NvcmRpb24tdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi10aXRsZTtcbiAgfVxuXG4gIC5hY2NvcmRpb24tY29udGVudCB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJhZGdlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1taW53aWR0aDogMi4xZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBiYWRnZS5cbkBtaXhpbiBiYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xuICBmb250LXNpemU6ICRiYWRnZS1mb250LXNpemU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1iYWRnZSB7XG4gIC5iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2U7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1jb2xvcnMge1xuICAgICAgQGlmICRuYW1lICE9IHByaW1hcnkge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgICAgY29sb3I6IGZvcmVncm91bmQoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcbi8vLy9cblxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gT3BhY2l0eSBvZiBkaXNhYmxlZCBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJyZWFkY3J1bWIgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBhIHNsYXNoIGJldHdlZW4gYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lciwgYWxvbmcgd2l0aCB0aGUgc3R5bGVzIGZvciB0aGUgYDxsaT5gIGFuZCBgPGE+YCBlbGVtZW50cyBpbnNpZGUgb2YgaXQuXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcblxuICAvLyBJdGVtIHdyYXBwZXJcbiAgbGkge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2xhc2g6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICcvJywgJ1xcXFwnKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgIGNvbnRlbnQ6ICRzbGFzaDtcbiAgICAgICAgbWFyZ2luOiAwICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1yaWdodH06ICRidXR0b25ncm91cC1zcGFjaW5nIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkY291bnQgW2F1dG9dIC0gTnVtYmVyIG9mIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuIFNldCB0byBgYXV0b2AgdG8gZ2VuZXJhdGUgQ1NTIHRoYXQgd2lsbCBhY2NvdW50IGZvciBhIHZhcmlhYmxlIG51bWJlciBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1leHBhbmQoXG4gICRjb3VudDogYXV0byxcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkY291bnQgPT0gYXV0byB7XG4gICAgICBAaW5jbHVkZSBhdXRvLXdpZHRoKCRidXR0b25ncm91cC1leHBhbmQtbWF4LCAkc2VsZWN0b3IpO1xuICAgIH1cbiAgICBAZWxzZSBpZiB0eXBlLW9mKCRjb3VudCkgPT0gJ251bWJlcicge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRjb3VudCk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICB3aWR0aDogYXV0bztcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmcgc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwIHtcbiAgLmJ1dHRvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwO1xuXG4gICAgLy8gU2l6ZXNcbiAgICAmLnRpbnkgICAgIHsgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIHRpbnkpOyB9XG4gICAgJi5zbWFsbCAgICB7IGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBzbWFsbCk7IH1cbiAgICAmLmxhcmdlICAgIHsgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGxhcmdlKTsgfVxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLWNvbG9ycyB7XG4gICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2tlZCxcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmdWFsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuIElmIGAkY2FsbG91dC1saW5rLXRpbnRgIGlzIGVuYWJsZWQsIGxpbmtzIHdpdGhpbiBjb2xvcmVkIHBhbmVscyB3aWxsIGJlIGEgZGFya2VyIHZlcnNpb24gb2YgdGhlIGJhY2tncm91bmQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuICAkbGluay1jb2xvcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtJGNhbGxvdXQtbGluay10aW50KTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICBAaWYgJGNhbGxvdXQtbGluay10aW50IGFuZCBodWUoJGJhY2tncm91bmQpID4gMGRlZyB7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLWNvbG9ycyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICAjeyR4fTogJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsO1xuICAjeyR5fTogJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDtcbiAgZm9udC1zaXplOiAkY2xvc2VidXR0b24tc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBBcHBsaWVkIHRvIG5lc3RlZCA8dWw+c1xuICAuaXMtZHJpbGxkb3duLXN1YiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRwcmltYXJ5LWNvbG9yLCByaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjazo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRwcmltYXJ5LWNvbG9yLCBsZWZ0KTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuICAgICAgbWFyZ2luLWxlZnQ6IDAuNnJlbTsgLy8gTGluZXMgdGhlIHRpcCBvZiB0aGUgYXJyb3cgd2l0aCB0aGUgaXRlbXMgYmVsb3dcbiAgICAgIG1hcmdpbi10b3A6IDE0cHg7IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dFxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd25cbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tZm9udC1zaXplOiAxNnJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iYWNrZ3JvdW5kO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAzMDBweDtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG5cbiAgJi5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcbiAgLmRyb3Bkb3duLXBhbmUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcjtcbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkZHJvcGRvd24tc2l6ZXMge1xuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcbiAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIC5oYXMtc3VibWVudSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIGE6OmFmdGVyIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgfVxuXG4gICAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgICAmLmlzLWRvd24tYXJyb3cgYSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLWRvd24tYXJyb3cgPiBhOjphZnRlciB7XG4gICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGFuY2hvci1jb2xvciwgZG93bik7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgICAgICYuaXMtbGVmdC1hcnJvdyA+IGE6OmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkYW5jaG9yLWNvbG9yLCBsZWZ0KTtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgJi5pcy1yaWdodC1hcnJvdyA+IGE6OmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkYW5jaG9yLWNvbG9yLCByaWdodCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5pcy1sZWZ0LWFycm93Lm9wZW5zLWlubmVyIC5zdWJtZW51e1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICAgICYuaXMtcmlnaHQtYXJyb3cub3BlbnMtaW5uZXIgLnN1Ym1lbnV7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgJi5vcGVucy1pbm5lciAuc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VibWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogJGRyb3Bkb3dubWVudS1taW4td2lkdGg7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cblxuICAgICAgJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmhhcy1zdWJtZW51OmhvdmVyID4gJixcbiAgICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhhcy1zdWJtZW51Lm9wZW5zLWxlZnQgLnN1Ym1lbnUge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgLnN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgPiBsaSAuc3VibWVudSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC12aWRlb1xuLy8vL1xuXG4vLy8gUGFkZGluZyBhYm92ZSBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1wYWRkaW5nLXRvcDogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSA0OjMgYXNwZWN0IHJhdGlvLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyB1c2VkIHRvIGNyZWF0ZSBhIDE2OjkgYXNwZWN0IHJhdGlvLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHBlcmNlbnRhZ2UgaGVpZ2h0IHRoYXQgY2FuIGJlIHVzZWQgYXMgcGFkZGluZyBpbiBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgYHBhZGRpbmctYm90dG9tYCBwYXJhbWV0ZXIgb2YgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbkBmdW5jdGlvbiBmbGV4LXZpZGVvKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cblxuLy8vIENyZWF0ZXMgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyBbJGZsZXh2aWRlby1yYXRpb10gLSBSYXRpbyB0byB1c2UgZm9yIHRoZSBjb250YWluZXIsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJGZsZXh2aWRlby1yYXRpbykge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy10b3A6ICRmbGV4dmlkZW8tcGFkZGluZy10b3A7XG4gIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRyYXRpbyk7XG4gIG1hcmdpbi1ib3R0b206ICRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSBmbGV4LXZpZGVvO1xuXG4gICAgJi53aWRlc2NyZWVuIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBmbGV4LXZpZGVvKCRmbGV4dmlkZW8tcmF0aW8td2lkZXNjcmVlbik7XG4gICAgfVxuXG4gICAgJi52aW1lbyB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogZm9yZWdyb3VuZCgkbGFiZWwtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tY29sb3JzIHtcbiAgICAgIEBpZiAkbmFtZSAhPSBwcmltYXJ5IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2l0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCgrICY6Zmlyc3QtY2hpbGQpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcblxuICAgICYubWlkZGxlIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICYuYm90dG9tIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgLy8gUmVzZXQgbGluZSBoZWlnaHQgdG8gbWFrZSB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyYWxsIGl0ZW0gZWFzaWVyIHRvIGNhbGN1bGF0ZVxuICA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9mIGlubmVyIGVsZW1lbnRzXG4gIGlucHV0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRjb3VudCBbYXV0b10gLSBOdW1iZXIgb2YgaXRlbXMgaW4gdGhlIE1lbnUuIFlvdSBjYW4gaGFyZGNvZGUgYSBudW1iZXIsIG9yIHVzZSBgYXV0b2AgdG8gZ2VuZXJhdGUgQ1NTIHRoYXQgd2lsbCBhZGFwdCB0byB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluc2lkZSB0aGUgbWVudS5cbkBtaXhpbiBtZW51LWV4cGFuZCgkY291bnQ6IGF1dG8pIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gbGkge1xuICAgIEBpZiAkY291bnQgPT0gYXV0byB7XG4gICAgICBAaW5jbHVkZSBhdXRvLXdpZHRoKCRtZW51LWV4cGFuZC1tYXgpO1xuICAgIH1cbiAgICBAZWxzZSBpZiB0eXBlLW9mKCRjb3VudCkgPT0gJ251bWJlcicge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRjb3VudCk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG5AbWl4aW4gbWVudS1zaW1wbGUge1xuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRnbG9iYWwtcmlnaHQpO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG5AbWl4aW4gbWVudS1uZXN0ZWQoJG1hcmdpbjogJG1lbnUtbWFyZ2luLW5lc3RlZCkge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xufVxuXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIHNoYXJlZCBDU1MgYmV0d2VlbiBzaWRlLSBhbmQgdG9wLWFsaWduZWQgaWNvbnMgZnJvbSBiZWluZyBwcmludGVkLiBTZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSdyZSBjYWxsaW5nIHRoZSBtaXhpbiBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LlxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xuICBAaWYgJGJhc2Uge1xuICAgID4gbGkgPiBhIHtcbiAgICAgID4gaW1nLFxuICAgICAgPiBpIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IHNpZGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgID4gaW1nLFxuICAgICAgPiBpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgID4gaW1nLFxuICAgICAgPiBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuXG4gICAgLy8gT3JpZW50YXRpb25cbiAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9IHNtYWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aFxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG5cbiAgICAgID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIGljb25zXG4gICAgJi5pY29uLXRvcCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb25zKHRvcCwgJGJhc2U6IGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtemluZGV4OiAtMTtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXM7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgbWVudSBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpO1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBib2R5LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8vIEJveCBzaGFkb3cgdG8gcGxhY2UgdW5kZXIgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGlzIHNoYWRvdyBvdmVybGFwcyB0aGUgb2ZmLWNhbnZhcyBtZW51cy5cbi8vLyBAdHlwZSBTaGFkb3dcbiRtYWluY29udGVudC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjUpO1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcbiAgLy8gRXh0cmEgcHJvcGVydGllcyBuZWVkZWQgb24gPGh0bWw+IGFuZCA8Ym9keT4gdG8gbWFrZSBvZmYtY2FudmFzIHdvcmtcbiAgaHRtbCxcbiAgYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG5cbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cblxuICAvLyBDb250YWluZXIgZm9yIHBhZ2UgY29udGVudFxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcblxuICAgIEBpZiBoYXN2YWx1ZSgkbWFpbmNvbnRlbnQtc2hhZG93KSB7XG4gICAgICBib3gtc2hhZG93OiAkbWFpbmNvbnRlbnQtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIENsaWNrLXRvLWV4aXQgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLWV4aXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG5cbiAgICAuaXMtb2ZmLWNhbnZhcy1vcGVuICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBtZW51LlxuQG1peGluIG9mZi1jYW52YXMtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQ7XG4gIHotaW5kZXg6ICRvZmZjYW52YXMtemluZGV4O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbn1cblxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJHNpemU6ICRvZmZjYW52YXMtc2l6ZSxcbiAgJGZpeGVkOiBmYWxzZVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgbGVmdDogLSRzaXplO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICByaWdodDogLSRzaXplO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gIH1cblxuICAvLyBHZW5lcmF0ZXMgYW4gb3BlbiBzdGF0ZSBjbGFzcyB0aGF0IG1hdGNoZXMgdGhlIHdpZHRoIG9mIHRoZSBtZW51XG4gIEBhdC1yb290IHtcbiAgICAuaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtsZWZ0XSAtIFBvc2l0aW9uIG9mIHRoZSBvZmYtY2FudmFzIG1lbnUgYmVpbmcgcmV2ZWFsZWQuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4gICRwb3NpdGlvbjogbGVmdFxuKSB7XG4gICN7JHBvc2l0aW9ufTogMDtcblxuICAmIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgJi5wb3NpdGlvbi1sZWZ0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQpOyB9XG4gICAgJi5wb3NpdGlvbi1yaWdodCAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0KTsgfVxuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgbWVudSBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSBzbWFsbCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9yYml0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBhY3RpdmUgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlhbWV0ZXIgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGJldHdlZW4gT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGlzdGFuY2UgZnJvbSBzbGlkZSByZWdpb24gZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZyb20gT3JiaXQncyBidWxsZXRzIHRvIHdoYXRldmVyIGNvbnRlbnQgbWF5IGx1cmsgYmVsb3cgaXQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjYXB0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgT3JiaXQncyBjb250cm9scyB3aGVuIGhvdmVyZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgei1pbmRleCBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIG91dGVyIE9yYml0IHdyYXBwZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgT3JiaXQgc2xpZGUgY29udGFpbmVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY29udGFpbmVyYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5kaXZpZHVhbCBzbGlkZXMgb2YgYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtc2xpZGVgIGNsYXNzLlxuQG1peGluIG9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6IGZvcmVncm91bmQoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdi1hbGlnbi1taWRkbGU7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcbiAgLm9yYml0IHtcbiAgICBAaW5jbHVkZSBvcmJpdC13cmFwcGVyO1xuICB9XG5cbiAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xuICB9XG5cbiAgLm9yYml0LXNsaWRlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1zbGlkZTtcbiAgfVxuXG4gIC5vcmJpdC1maWd1cmUge1xuICAgIEBpbmNsdWRlIG9yYml0LWZpZ3VyZTtcbiAgfVxuXG4gIC5vcmJpdC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XG4gIH1cblxuICAub3JiaXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY2FwdGlvbjtcbiAgfVxuXG4gICVvcmJpdC1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250cm9sO1xuICB9XG5cbiAgLm9yYml0LXByZXZpb3VzIHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LXByZXZpb3VzO1xuICB9XG5cbiAgLm9yYml0LW5leHQge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcbiAgfVxuXG4gIC5vcmJpdC1idWxsZXRzIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1idWxsZXRzO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBwYWdpbmF0aW9uXG4vLy8vXG5cbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIG9mIHRoZSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzO1xuXG4gICAgQGlmIG5vdCAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTeW1ib2xzXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIFthcmlhLWxhYmVsPVwicHJldmlvdXNcIl0ge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ8KrJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbYXJpYS1sYWJlbD1cIm5leHRcIl0ge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnwrsnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNzVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IHtcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCB7XG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyB7XG4gIGNvbnRlbnQ6ICfigKYnO1xuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvZ3Jlc3MtYmFyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgcHJvZ3Jlc3MgYmFyJ3MgbWV0ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gICN7JGdsb2JhbC1sZWZ0fTogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLWNvbG9ycyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcm9ncmVzcyBiYXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcblxuICAgIC8vIFByb2dyZXNzIGJhciBtZXRlciB0ZXh0XG4gICAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXItdGV4dDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNsaWRlciB3aWR0aCBvZiBhIHZlcnRpY2FsIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6ICRzbGlkZXItaGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzbGlkZXIncyB0cmFjay5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGFjdGl2ZSBmaWxsIGNvbG9yIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGhhbmRsZSBmb3IgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgYW1vdW50IG9mIGEgZGlzYWJsZWQgc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgYWN0aXZlIGZpbGwgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2LWFsaWduLW1pZGRsZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDRyZW07XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwLjI1cmVtO1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcbiAgaW5wdXQ6Y2hlY2tlZCB+ICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IDIuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbNHJlbV0gLSBXaWR0aCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzJyZW1dIC0gSGVpZ2h0IG9mIHRoZSBzd2l0Y2ggYm9keS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS13aWR0aCBbMS41cmVtXSAtIFdpZHRoIG9mIHRoZSBzd2l0Y2ggcGFkZGxlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHdpZHRoOiA0cmVtLFxuICAkaGVpZ2h0OiAycmVtLFxuICAkcGFkZGxlLXdpZHRoOiAxLjVyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRoZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1sZWZ0LWFjdGl2ZTogJHdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6YWZ0ZXIge1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1sZWZ0LWFjdGl2ZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAzcmVtLCAkc3dpdGNoLWhlaWdodC10aW55LCAxcmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAzLjVyZW0sICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAxLjI1cmVtLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCA1cmVtLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgMnJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIE1lcmdlYWJsZVNlbGVjdG9yLCBRdWFsaWZ5aW5nRWxlbWVudFxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZ1YWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZ1YWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnlvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleW93b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZnVhbHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmdWFsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmdWFsdCB2YWx1ZSBpcyBldmVuLlxuQG1peGluIHRhYmxlKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4gIEBhdC1yb290IHtcbiAgICB0aGVhZCxcbiAgICB0Ym9keSxcbiAgICB0Zm9vdCB7XG4gICAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBDYXB0aW9uXG4gICAgY2FwdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8vIFRhYmxlIGhlYWQgYW5kIGZvb3RcbiAgICB0aGVhZCxcbiAgICB0Zm9vdCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGFibGUtaGVhZC1iYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG5cbiAgICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICAgIHRyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGFibGUgcm93c1xuICAgIHRib2R5IHtcbiAgICAgIHRyIHtcbiAgICAgICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICAgICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICAgICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuXG4gICAgLy9EYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9EYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICY6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRoZWFkZXIgWyRzaG93LWhlYWRlci1mb3Itc3RhY2tlZF0gLSBTaG93IHRoZSBmaXJzdCB0aCBvZiBoZWFkZXIgd2hlbiBzdGFja2VkLlxuQG1peGluIHRhYmxlLXN0YWNrKCRoZWFkZXI6ICRzaG93LWhlYWRlci1mb3Itc3RhY2tlZCkge1xuICBAaWYgJGhlYWRlciB7XG4gICAgdGhlYWQge1xuICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgdGgge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHRyLFxuICB0aCxcbiAgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFibGUge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGU7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsaWdodG5lc3Mgb2YgYCRjb2xvcmAsIGFuZCBpZiBpdCBwYXNzZXMgdGhlIGAkdGhyZXNob2xkYCBvZiBsaWdodG5lc3MsIGl0IHJldHVybnMgdGhlIGAkeWVzYCBjb2xvci4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIHRoZSBgJG5vYCBjb2xvci4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gZHluYW1pY2FsbHkgb3V0cHV0IGEgZm9yZWdyb3VuZCBjb2xvciBiYXNlZCBvbiBhIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbGlnaHRuZXNzIG9mLlxuLy8vIEBwYXJhbSB7Y29sb3J9ICR5ZXMgWyRibGFja10gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgbGlnaHQuXG4vLy8gQHBhcmFtIHtjb2xvcn0gJG5vIFskd2hpdGVdIC0gQ29sb3IgdG8gcmV0dXJuIGlmIGAkY29sb3JgIGlzIGRhcmsuXG4vLy8gQHBhcmFtIHtwZXJjZW50YWdlfSAkdGhyZXNob2xkIFs2MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBUaGUgJHllcyBjb2xvciBvciAkbm8gY29sb3IuXG5AZnVuY3Rpb24gZm9yZWdyb3VuZCgkY29sb3IsICR5ZXM6ICRibGFjaywgJG5vOiAkd2hpdGUsICR0aHJlc2hvbGQ6IDYwJSkge1xuICBAaWYgJGNvbG9yID09IHRyYW5zcGFyZW50IHtcbiAgICAkY29sb3I6ICRib2R5LWJhY2tncm91bmQ7XG4gIH1cbiAgQGlmIChsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQpIHtcbiAgICBAcmV0dXJuICR5ZXM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJG5vO1xuICB9XG59XG5cbi8vLyBTY2FsZXMgYSBjb2xvciB0byBiZSBsaWdodGVyIGlmIGl0J3MgbGlnaHQsIG9yIGRhcmtlciBpZiBpdCdzIGRhcmsuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRpbnQgYSBjb2xvciBhcHByb3ByaWF0ZSB0byBpdHMgbGlnaHRuZXNzLlxuLy8vXG4vLy8gQHBhcmFtIHtjb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXG4vLy8gQHBhcmFtIHtwZXJjZW50YWdlfSAkc2NhbGUgWzUlXSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7cGVyY2VudGFnZX0gJHRocmVzaG9sZCBbNDAlXSAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnQtc2NhbGUoJGNvbG9yLCAkc2NhbGU6IDUlLCAkdGhyZXNob2xkOiA0MCUpIHtcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XG4gICAgJHNjYWxlOiAtJHNjYWxlO1xuICB9XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGFic1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gb2YgdGhlIHRhYiBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gYWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgYSB0YWIgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYnMge1xuICAudGFicyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgbWFyZ2luOiAkdGFiLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbFxuICAgICYudmVydGljYWwge1xuICAgICAgPiBsaSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJpbWFyeSBjb2xvclxuICAgICYucHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblxuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkcHJpbWFyeS1jb2xvcik7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtdGl0bGUge1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgICA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICR0YWItaXRlbS1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMsXG4gICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG4gICAgYm9yZGVyLXRvcDogMDtcblxuICAgICYudmVydGljYWwge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgfVxuICB9XG5cbiAgLnRhYnMtcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmc7XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogJHRodW1ibmFpbC10cmFuc2l0aW9uO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgbWFyZ2luLWJvdHRvbTogJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93LWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC4yNXJlbTtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuXG4gIC50aXRsZS1iYXItcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLm1lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCRjb2xvcjogd2hpdGUsICRjb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5KTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwaXAgb2Zmc2V0IGZvciB0b29sdGlwcy4gVGhpcyBjb250cm9scyBob3cgZmFyIHRoZSBwaXAgaXMgaW5kZW50ZWQgZnJvbSB0aGUgbGVmdCBlZGdlIG9mIHRoZSB0b29sdGlwLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGlwLW9mZnNldDogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBoZWxwO1xuICB9XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgbWF4LXdpZHRoOiAxMHJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIC8vIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHVwKTtcbiAgICBib3R0b206IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cblxuICAmLnRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHJpZ2h0KTtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmLnJpZ2h0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAjZWVlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgZm9yIGxpbmtzIGluc2lkZSBhIHRvcCBiYXIgbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1saW5rLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgcGFkZGluZzogJHRvcGJhci1wYWRkaW5nO1xuXG4gICYsIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFN1Yi1zZWN0aW9uc1xuICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHRcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbWFwOiBjYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbGVmdF0gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHNsaWRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGxlZnQsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGV4dGVuZCAlbXVpLWRlZmF1bHRzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXk7XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgc2V0dXAgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIGFjdGl2ZSBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSwgdHJ1ZSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWdnZXIgYW5pbWF0aW9uLCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFuZ3VsYXIncyBgbmctcmVwZWF0YC5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxuQG1peGluIHN0YWdnZXIoJGRlbGF5LWFtb3VudCkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXktYW1vdW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrXG4pIHtcbiAgLy8gUm90YXRpb24gZGlyZWN0aW9ucyB3aGVuIGhpbmdpbmcgZnJvbSBiYWNrIHZzLiBmcm9udFxuICAkcm90YXRpb24tYW1vdW50OiA5MGRlZztcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgKTtcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkaXJlY3Rpb24gW2N3XSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
