/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
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/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 when focused and also mouse hovered in all browsers.
 */
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 {
  -moz-box-sizing: content-box;
  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
 *    (include `-moz` to future-proof).
 */
input[type=search] {
  -webkit-appearance: textfield; /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; /* 2 */
  box-sizing: content-box;
}

/**
 * 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;
}
@charset "UTF-8";
/*=================================================================
Include the Foundation settings
=================================================================*/
/*=================================================================  

    Import Foundation Components
    REMOVE what you don't use in _foundation to keep the CSS as small as possible :)

=================================================================*/
meta.foundation-version {
  font-family: "/5.5.1/";
}

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0;
}

meta.foundation-mq-small-only {
  font-family: "/only screen and (max-width: 40em)/";
  width: 0;
}

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em;
}

meta.foundation-mq-medium-only {
  font-family: "/only screen and (min-width:40.063em) and (max-width:64em)/";
  width: 40.063em;
}

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64.063em)/";
  width: 64.063em;
}

meta.foundation-mq-large-only {
  font-family: "/only screen and (min-width:64.063em) and (max-width:90em)/";
  width: 64.063em;
}

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  width: 90.063em;
}

meta.foundation-mq-xlarge-only {
  font-family: "/only screen and (min-width:90.063em) and (max-width:120em)/";
  width: 90.063em;
}

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.063em)/";
  width: 120.063em;
}

meta.foundation-data-attribute-namespace {
  font-family: false;
}

html, body {
  height: 100%;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html,
body {
  font-size: 100%;
}

body {
  background: #fff;
  color: #222;
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto;
}

a:hover {
  cursor: pointer;
}

img {
  max-width: 100%;
  height: auto;
}

img {
  -ms-interpolation-mode: bicubic;
}

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

.left {
  float: left !important;
}

.right {
  float: right !important;
}

.clearfix:before, .clearfix:after {
  content: " ";
  display: table;
}
.clearfix:after {
  clear: both;
}

.hide {
  display: none;
}

.invisible {
  visibility: hidden;
}

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  display: inline-block;
  vertical-align: middle;
}

textarea {
  height: auto;
  min-height: 50px;
}

select {
  width: 100%;
}

.row {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 75rem;
}
.row:before, .row:after {
  content: " ";
  display: table;
}
.row:after {
  clear: both;
}
.row.collapse > .column,
.row.collapse > .columns {
  padding-left: 0;
  padding-right: 0;
}
.row.collapse .row {
  margin-left: 0;
  margin-right: 0;
}
.row .row {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none;
}
.row .row:before, .row .row:after {
  content: " ";
  display: table;
}
.row .row:after {
  clear: both;
}
.row .row.collapse {
  width: auto;
  margin: 0;
  max-width: none;
}
.row .row.collapse:before, .row .row.collapse:after {
  content: " ";
  display: table;
}
.row .row.collapse:after {
  clear: both;
}

.column,
.columns {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left;
}

[class*=column] + [class*=column]:last-child {
  float: right;
}

[class*=column] + [class*=column].end {
  float: left;
}

@media only screen {
  .small-push-0 {
    position: relative;
    left: 0%;
    right: auto;
  }
  .small-pull-0 {
    position: relative;
    right: 0%;
    left: auto;
  }
  .small-push-1 {
    position: relative;
    left: 8.3333333333%;
    right: auto;
  }
  .small-pull-1 {
    position: relative;
    right: 8.3333333333%;
    left: auto;
  }
  .small-push-2 {
    position: relative;
    left: 16.6666666667%;
    right: auto;
  }
  .small-pull-2 {
    position: relative;
    right: 16.6666666667%;
    left: auto;
  }
  .small-push-3 {
    position: relative;
    left: 25%;
    right: auto;
  }
  .small-pull-3 {
    position: relative;
    right: 25%;
    left: auto;
  }
  .small-push-4 {
    position: relative;
    left: 33.3333333333%;
    right: auto;
  }
  .small-pull-4 {
    position: relative;
    right: 33.3333333333%;
    left: auto;
  }
  .small-push-5 {
    position: relative;
    left: 41.6666666667%;
    right: auto;
  }
  .small-pull-5 {
    position: relative;
    right: 41.6666666667%;
    left: auto;
  }
  .small-push-6 {
    position: relative;
    left: 50%;
    right: auto;
  }
  .small-pull-6 {
    position: relative;
    right: 50%;
    left: auto;
  }
  .small-push-7 {
    position: relative;
    left: 58.3333333333%;
    right: auto;
  }
  .small-pull-7 {
    position: relative;
    right: 58.3333333333%;
    left: auto;
  }
  .small-push-8 {
    position: relative;
    left: 66.6666666667%;
    right: auto;
  }
  .small-pull-8 {
    position: relative;
    right: 66.6666666667%;
    left: auto;
  }
  .small-push-9 {
    position: relative;
    left: 75%;
    right: auto;
  }
  .small-pull-9 {
    position: relative;
    right: 75%;
    left: auto;
  }
  .small-push-10 {
    position: relative;
    left: 83.3333333333%;
    right: auto;
  }
  .small-pull-10 {
    position: relative;
    right: 83.3333333333%;
    left: auto;
  }
  .small-push-11 {
    position: relative;
    left: 91.6666666667%;
    right: auto;
  }
  .small-pull-11 {
    position: relative;
    right: 91.6666666667%;
    left: auto;
  }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left;
  }
  .small-1 {
    width: 8.3333333333%;
  }
  .small-2 {
    width: 16.6666666667%;
  }
  .small-3 {
    width: 25%;
  }
  .small-4 {
    width: 33.3333333333%;
  }
  .small-5 {
    width: 41.6666666667%;
  }
  .small-6 {
    width: 50%;
  }
  .small-7 {
    width: 58.3333333333%;
  }
  .small-8 {
    width: 66.6666666667%;
  }
  .small-9 {
    width: 75%;
  }
  .small-10 {
    width: 83.3333333333%;
  }
  .small-11 {
    width: 91.6666666667%;
  }
  .small-12 {
    width: 100%;
  }
  .small-offset-0 {
    margin-left: 0% !important;
  }
  .small-offset-1 {
    margin-left: 8.3333333333% !important;
  }
  .small-offset-2 {
    margin-left: 16.6666666667% !important;
  }
  .small-offset-3 {
    margin-left: 25% !important;
  }
  .small-offset-4 {
    margin-left: 33.3333333333% !important;
  }
  .small-offset-5 {
    margin-left: 41.6666666667% !important;
  }
  .small-offset-6 {
    margin-left: 50% !important;
  }
  .small-offset-7 {
    margin-left: 58.3333333333% !important;
  }
  .small-offset-8 {
    margin-left: 66.6666666667% !important;
  }
  .small-offset-9 {
    margin-left: 75% !important;
  }
  .small-offset-10 {
    margin-left: 83.3333333333% !important;
  }
  .small-offset-11 {
    margin-left: 91.6666666667% !important;
  }
  .small-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left;
  }
  .column.small-centered,
  .columns.small-centered {
    margin-left: auto;
    margin-right: auto;
    float: none;
  }
  .column.small-uncentered,
  .columns.small-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left;
  }
  .column.small-centered:last-child,
  .columns.small-centered:last-child {
    float: none;
  }
  .column.small-uncentered:last-child,
  .columns.small-uncentered:last-child {
    float: left;
  }
  .column.small-uncentered.opposite,
  .columns.small-uncentered.opposite {
    float: right;
  }
  .row.small-collapse > .column,
  .row.small-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .row.small-collapse .row {
    margin-left: 0;
    margin-right: 0;
  }
  .row.small-uncollapse > .column,
  .row.small-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left;
  }
}
@media only screen and (min-width:40.063em) {
  .medium-push-0 {
    position: relative;
    left: 0%;
    right: auto;
  }
  .medium-pull-0 {
    position: relative;
    right: 0%;
    left: auto;
  }
  .medium-push-1 {
    position: relative;
    left: 8.3333333333%;
    right: auto;
  }
  .medium-pull-1 {
    position: relative;
    right: 8.3333333333%;
    left: auto;
  }
  .medium-push-2 {
    position: relative;
    left: 16.6666666667%;
    right: auto;
  }
  .medium-pull-2 {
    position: relative;
    right: 16.6666666667%;
    left: auto;
  }
  .medium-push-3 {
    position: relative;
    left: 25%;
    right: auto;
  }
  .medium-pull-3 {
    position: relative;
    right: 25%;
    left: auto;
  }
  .medium-push-4 {
    position: relative;
    left: 33.3333333333%;
    right: auto;
  }
  .medium-pull-4 {
    position: relative;
    right: 33.3333333333%;
    left: auto;
  }
  .medium-push-5 {
    position: relative;
    left: 41.6666666667%;
    right: auto;
  }
  .medium-pull-5 {
    position: relative;
    right: 41.6666666667%;
    left: auto;
  }
  .medium-push-6 {
    position: relative;
    left: 50%;
    right: auto;
  }
  .medium-pull-6 {
    position: relative;
    right: 50%;
    left: auto;
  }
  .medium-push-7 {
    position: relative;
    left: 58.3333333333%;
    right: auto;
  }
  .medium-pull-7 {
    position: relative;
    right: 58.3333333333%;
    left: auto;
  }
  .medium-push-8 {
    position: relative;
    left: 66.6666666667%;
    right: auto;
  }
  .medium-pull-8 {
    position: relative;
    right: 66.6666666667%;
    left: auto;
  }
  .medium-push-9 {
    position: relative;
    left: 75%;
    right: auto;
  }
  .medium-pull-9 {
    position: relative;
    right: 75%;
    left: auto;
  }
  .medium-push-10 {
    position: relative;
    left: 83.3333333333%;
    right: auto;
  }
  .medium-pull-10 {
    position: relative;
    right: 83.3333333333%;
    left: auto;
  }
  .medium-push-11 {
    position: relative;
    left: 91.6666666667%;
    right: auto;
  }
  .medium-pull-11 {
    position: relative;
    right: 91.6666666667%;
    left: auto;
  }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left;
  }
  .medium-1 {
    width: 8.3333333333%;
  }
  .medium-2 {
    width: 16.6666666667%;
  }
  .medium-3 {
    width: 25%;
  }
  .medium-4 {
    width: 33.3333333333%;
  }
  .medium-5 {
    width: 41.6666666667%;
  }
  .medium-6 {
    width: 50%;
  }
  .medium-7 {
    width: 58.3333333333%;
  }
  .medium-8 {
    width: 66.6666666667%;
  }
  .medium-9 {
    width: 75%;
  }
  .medium-10 {
    width: 83.3333333333%;
  }
  .medium-11 {
    width: 91.6666666667%;
  }
  .medium-12 {
    width: 100%;
  }
  .medium-offset-0 {
    margin-left: 0% !important;
  }
  .medium-offset-1 {
    margin-left: 8.3333333333% !important;
  }
  .medium-offset-2 {
    margin-left: 16.6666666667% !important;
  }
  .medium-offset-3 {
    margin-left: 25% !important;
  }
  .medium-offset-4 {
    margin-left: 33.3333333333% !important;
  }
  .medium-offset-5 {
    margin-left: 41.6666666667% !important;
  }
  .medium-offset-6 {
    margin-left: 50% !important;
  }
  .medium-offset-7 {
    margin-left: 58.3333333333% !important;
  }
  .medium-offset-8 {
    margin-left: 66.6666666667% !important;
  }
  .medium-offset-9 {
    margin-left: 75% !important;
  }
  .medium-offset-10 {
    margin-left: 83.3333333333% !important;
  }
  .medium-offset-11 {
    margin-left: 91.6666666667% !important;
  }
  .medium-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left;
  }
  .column.medium-centered,
  .columns.medium-centered {
    margin-left: auto;
    margin-right: auto;
    float: none;
  }
  .column.medium-uncentered,
  .columns.medium-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left;
  }
  .column.medium-centered:last-child,
  .columns.medium-centered:last-child {
    float: none;
  }
  .column.medium-uncentered:last-child,
  .columns.medium-uncentered:last-child {
    float: left;
  }
  .column.medium-uncentered.opposite,
  .columns.medium-uncentered.opposite {
    float: right;
  }
  .row.medium-collapse > .column,
  .row.medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .row.medium-collapse .row {
    margin-left: 0;
    margin-right: 0;
  }
  .row.medium-uncollapse > .column,
  .row.medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left;
  }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto;
  }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto;
  }
  .push-1 {
    position: relative;
    left: 8.3333333333%;
    right: auto;
  }
  .pull-1 {
    position: relative;
    right: 8.3333333333%;
    left: auto;
  }
  .push-2 {
    position: relative;
    left: 16.6666666667%;
    right: auto;
  }
  .pull-2 {
    position: relative;
    right: 16.6666666667%;
    left: auto;
  }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto;
  }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto;
  }
  .push-4 {
    position: relative;
    left: 33.3333333333%;
    right: auto;
  }
  .pull-4 {
    position: relative;
    right: 33.3333333333%;
    left: auto;
  }
  .push-5 {
    position: relative;
    left: 41.6666666667%;
    right: auto;
  }
  .pull-5 {
    position: relative;
    right: 41.6666666667%;
    left: auto;
  }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto;
  }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto;
  }
  .push-7 {
    position: relative;
    left: 58.3333333333%;
    right: auto;
  }
  .pull-7 {
    position: relative;
    right: 58.3333333333%;
    left: auto;
  }
  .push-8 {
    position: relative;
    left: 66.6666666667%;
    right: auto;
  }
  .pull-8 {
    position: relative;
    right: 66.6666666667%;
    left: auto;
  }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto;
  }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto;
  }
  .push-10 {
    position: relative;
    left: 83.3333333333%;
    right: auto;
  }
  .pull-10 {
    position: relative;
    right: 83.3333333333%;
    left: auto;
  }
  .push-11 {
    position: relative;
    left: 91.6666666667%;
    right: auto;
  }
  .pull-11 {
    position: relative;
    right: 91.6666666667%;
    left: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .large-push-0 {
    position: relative;
    left: 0%;
    right: auto;
  }
  .large-pull-0 {
    position: relative;
    right: 0%;
    left: auto;
  }
  .large-push-1 {
    position: relative;
    left: 8.3333333333%;
    right: auto;
  }
  .large-pull-1 {
    position: relative;
    right: 8.3333333333%;
    left: auto;
  }
  .large-push-2 {
    position: relative;
    left: 16.6666666667%;
    right: auto;
  }
  .large-pull-2 {
    position: relative;
    right: 16.6666666667%;
    left: auto;
  }
  .large-push-3 {
    position: relative;
    left: 25%;
    right: auto;
  }
  .large-pull-3 {
    position: relative;
    right: 25%;
    left: auto;
  }
  .large-push-4 {
    position: relative;
    left: 33.3333333333%;
    right: auto;
  }
  .large-pull-4 {
    position: relative;
    right: 33.3333333333%;
    left: auto;
  }
  .large-push-5 {
    position: relative;
    left: 41.6666666667%;
    right: auto;
  }
  .large-pull-5 {
    position: relative;
    right: 41.6666666667%;
    left: auto;
  }
  .large-push-6 {
    position: relative;
    left: 50%;
    right: auto;
  }
  .large-pull-6 {
    position: relative;
    right: 50%;
    left: auto;
  }
  .large-push-7 {
    position: relative;
    left: 58.3333333333%;
    right: auto;
  }
  .large-pull-7 {
    position: relative;
    right: 58.3333333333%;
    left: auto;
  }
  .large-push-8 {
    position: relative;
    left: 66.6666666667%;
    right: auto;
  }
  .large-pull-8 {
    position: relative;
    right: 66.6666666667%;
    left: auto;
  }
  .large-push-9 {
    position: relative;
    left: 75%;
    right: auto;
  }
  .large-pull-9 {
    position: relative;
    right: 75%;
    left: auto;
  }
  .large-push-10 {
    position: relative;
    left: 83.3333333333%;
    right: auto;
  }
  .large-pull-10 {
    position: relative;
    right: 83.3333333333%;
    left: auto;
  }
  .large-push-11 {
    position: relative;
    left: 91.6666666667%;
    right: auto;
  }
  .large-pull-11 {
    position: relative;
    right: 91.6666666667%;
    left: auto;
  }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left;
  }
  .large-1 {
    width: 8.3333333333%;
  }
  .large-2 {
    width: 16.6666666667%;
  }
  .large-3 {
    width: 25%;
  }
  .large-4 {
    width: 33.3333333333%;
  }
  .large-5 {
    width: 41.6666666667%;
  }
  .large-6 {
    width: 50%;
  }
  .large-7 {
    width: 58.3333333333%;
  }
  .large-8 {
    width: 66.6666666667%;
  }
  .large-9 {
    width: 75%;
  }
  .large-10 {
    width: 83.3333333333%;
  }
  .large-11 {
    width: 91.6666666667%;
  }
  .large-12 {
    width: 100%;
  }
  .large-offset-0 {
    margin-left: 0% !important;
  }
  .large-offset-1 {
    margin-left: 8.3333333333% !important;
  }
  .large-offset-2 {
    margin-left: 16.6666666667% !important;
  }
  .large-offset-3 {
    margin-left: 25% !important;
  }
  .large-offset-4 {
    margin-left: 33.3333333333% !important;
  }
  .large-offset-5 {
    margin-left: 41.6666666667% !important;
  }
  .large-offset-6 {
    margin-left: 50% !important;
  }
  .large-offset-7 {
    margin-left: 58.3333333333% !important;
  }
  .large-offset-8 {
    margin-left: 66.6666666667% !important;
  }
  .large-offset-9 {
    margin-left: 75% !important;
  }
  .large-offset-10 {
    margin-left: 83.3333333333% !important;
  }
  .large-offset-11 {
    margin-left: 91.6666666667% !important;
  }
  .large-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left;
  }
  .column.large-centered,
  .columns.large-centered {
    margin-left: auto;
    margin-right: auto;
    float: none;
  }
  .column.large-uncentered,
  .columns.large-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left;
  }
  .column.large-centered:last-child,
  .columns.large-centered:last-child {
    float: none;
  }
  .column.large-uncentered:last-child,
  .columns.large-uncentered:last-child {
    float: left;
  }
  .column.large-uncentered.opposite,
  .columns.large-uncentered.opposite {
    float: right;
  }
  .row.large-collapse > .column,
  .row.large-collapse > .columns {
    padding-left: 0;
    padding-right: 0;
  }
  .row.large-collapse .row {
    margin-left: 0;
    margin-right: 0;
  }
  .row.large-uncollapse > .column,
  .row.large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left;
  }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto;
  }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto;
  }
  .push-1 {
    position: relative;
    left: 8.3333333333%;
    right: auto;
  }
  .pull-1 {
    position: relative;
    right: 8.3333333333%;
    left: auto;
  }
  .push-2 {
    position: relative;
    left: 16.6666666667%;
    right: auto;
  }
  .pull-2 {
    position: relative;
    right: 16.6666666667%;
    left: auto;
  }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto;
  }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto;
  }
  .push-4 {
    position: relative;
    left: 33.3333333333%;
    right: auto;
  }
  .pull-4 {
    position: relative;
    right: 33.3333333333%;
    left: auto;
  }
  .push-5 {
    position: relative;
    left: 41.6666666667%;
    right: auto;
  }
  .pull-5 {
    position: relative;
    right: 41.6666666667%;
    left: auto;
  }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto;
  }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto;
  }
  .push-7 {
    position: relative;
    left: 58.3333333333%;
    right: auto;
  }
  .pull-7 {
    position: relative;
    right: 58.3333333333%;
    left: auto;
  }
  .push-8 {
    position: relative;
    left: 66.6666666667%;
    right: auto;
  }
  .pull-8 {
    position: relative;
    right: 66.6666666667%;
    left: auto;
  }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto;
  }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto;
  }
  .push-10 {
    position: relative;
    left: 83.3333333333%;
    right: auto;
  }
  .pull-10 {
    position: relative;
    right: 83.3333333333%;
    left: auto;
  }
  .push-11 {
    position: relative;
    left: 91.6666666667%;
    right: auto;
  }
  .pull-11 {
    position: relative;
    right: 91.6666666667%;
    left: auto;
  }
}
.accordion {
  margin-bottom: 0;
}
.accordion:before, .accordion:after {
  content: " ";
  display: table;
}
.accordion:after {
  clear: both;
}
.accordion .accordion-navigation, .accordion dd {
  display: block;
  margin-bottom: 0 !important;
}
.accordion .accordion-navigation.active > a, .accordion dd.active > a {
  background: #56284f;
}
.accordion .accordion-navigation > a, .accordion dd > a {
  background: #f2f2f2;
  color: #333;
  padding: 1rem;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
}
.accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
  background: #56284f;
}
.accordion .accordion-navigation > .content, .accordion dd > .content {
  display: none;
  padding: 0.9375rem;
}
.accordion .accordion-navigation > .content.active, .accordion dd > .content.active {
  display: block;
  background: #FFFFFF;
}

.alert-box {
  border-style: solid;
  border-width: 1px;
  display: block;
  font-weight: normal;
  margin-bottom: 1.25rem;
  position: relative;
  padding: 0.875rem 1.5rem 0.875rem 0.875rem;
  font-size: 0.8125rem;
  transition: opacity 300ms ease-out;
  background-color: #56284f;
  border-color: #4a2244;
  color: #FFFFFF;
}
.alert-box .close {
  font-size: 1.375rem;
  padding: 0 6px 4px;
  line-height: 0.9;
  position: absolute;
  top: 50%;
  margin-top: -0.6875rem;
  right: 0.25rem;
  color: #333333;
  opacity: 0.3;
  background: inherit;
}
.alert-box .close:hover, .alert-box .close:focus {
  opacity: 0.5;
}
.alert-box.radius {
  border-radius: 3px;
}
.alert-box.round {
  border-radius: 1000px;
}
.alert-box.success {
  background-color: #43AC6A;
  border-color: #3a945b;
  color: #FFFFFF;
}
.alert-box.alert {
  background-color: #f04124;
  border-color: #de2d0f;
  color: #FFFFFF;
}
.alert-box.secondary {
  background-color: #dbd9ca;
  border-color: #c3c0a7;
  color: #55523a;
}
.alert-box.warning {
  background-color: #f08a24;
  border-color: #de770f;
  color: #FFFFFF;
}
.alert-box.info {
  background-color: #a0d3e8;
  border-color: #74bfdd;
  color: #55523a;
}
.alert-box.alert-close {
  opacity: 0;
}

[class*=block-grid-] {
  display: block;
  padding: 0;
  margin: 0 -0.625rem;
}
[class*=block-grid-]:before, [class*=block-grid-]:after {
  content: " ";
  display: table;
}
[class*=block-grid-]:after {
  clear: both;
}
[class*=block-grid-] > li {
  display: block;
  height: auto;
  float: left;
  padding: 0 0.625rem 1.25rem;
}

@media only screen {
  .small-block-grid-1 > li {
    width: 100%;
    list-style: none;
  }
  .small-block-grid-1 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-1 > li:nth-of-type(1n+1) {
    clear: both;
  }
  .small-block-grid-2 > li {
    width: 50%;
    list-style: none;
  }
  .small-block-grid-2 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-2 > li:nth-of-type(2n+1) {
    clear: both;
  }
  .small-block-grid-3 > li {
    width: 33.3333333333%;
    list-style: none;
  }
  .small-block-grid-3 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-3 > li:nth-of-type(3n+1) {
    clear: both;
  }
  .small-block-grid-4 > li {
    width: 25%;
    list-style: none;
  }
  .small-block-grid-4 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-4 > li:nth-of-type(4n+1) {
    clear: both;
  }
  .small-block-grid-5 > li {
    width: 20%;
    list-style: none;
  }
  .small-block-grid-5 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-5 > li:nth-of-type(5n+1) {
    clear: both;
  }
  .small-block-grid-6 > li {
    width: 16.6666666667%;
    list-style: none;
  }
  .small-block-grid-6 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-6 > li:nth-of-type(6n+1) {
    clear: both;
  }
  .small-block-grid-7 > li {
    width: 14.2857142857%;
    list-style: none;
  }
  .small-block-grid-7 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-7 > li:nth-of-type(7n+1) {
    clear: both;
  }
  .small-block-grid-8 > li {
    width: 12.5%;
    list-style: none;
  }
  .small-block-grid-8 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-8 > li:nth-of-type(8n+1) {
    clear: both;
  }
  .small-block-grid-9 > li {
    width: 11.1111111111%;
    list-style: none;
  }
  .small-block-grid-9 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-9 > li:nth-of-type(9n+1) {
    clear: both;
  }
  .small-block-grid-10 > li {
    width: 10%;
    list-style: none;
  }
  .small-block-grid-10 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-10 > li:nth-of-type(10n+1) {
    clear: both;
  }
  .small-block-grid-11 > li {
    width: 9.0909090909%;
    list-style: none;
  }
  .small-block-grid-11 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-11 > li:nth-of-type(11n+1) {
    clear: both;
  }
  .small-block-grid-12 > li {
    width: 8.3333333333%;
    list-style: none;
  }
  .small-block-grid-12 > li:nth-of-type(1n) {
    clear: none;
  }
  .small-block-grid-12 > li:nth-of-type(12n+1) {
    clear: both;
  }
}
@media only screen and (min-width:40.063em) {
  .medium-block-grid-1 > li {
    width: 100%;
    list-style: none;
  }
  .medium-block-grid-1 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-1 > li:nth-of-type(1n+1) {
    clear: both;
  }
  .medium-block-grid-2 > li {
    width: 50%;
    list-style: none;
  }
  .medium-block-grid-2 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-2 > li:nth-of-type(2n+1) {
    clear: both;
  }
  .medium-block-grid-3 > li {
    width: 33.3333333333%;
    list-style: none;
  }
  .medium-block-grid-3 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-3 > li:nth-of-type(3n+1) {
    clear: both;
  }
  .medium-block-grid-4 > li {
    width: 25%;
    list-style: none;
  }
  .medium-block-grid-4 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-4 > li:nth-of-type(4n+1) {
    clear: both;
  }
  .medium-block-grid-5 > li {
    width: 20%;
    list-style: none;
  }
  .medium-block-grid-5 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-5 > li:nth-of-type(5n+1) {
    clear: both;
  }
  .medium-block-grid-6 > li {
    width: 16.6666666667%;
    list-style: none;
  }
  .medium-block-grid-6 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-6 > li:nth-of-type(6n+1) {
    clear: both;
  }
  .medium-block-grid-7 > li {
    width: 14.2857142857%;
    list-style: none;
  }
  .medium-block-grid-7 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-7 > li:nth-of-type(7n+1) {
    clear: both;
  }
  .medium-block-grid-8 > li {
    width: 12.5%;
    list-style: none;
  }
  .medium-block-grid-8 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-8 > li:nth-of-type(8n+1) {
    clear: both;
  }
  .medium-block-grid-9 > li {
    width: 11.1111111111%;
    list-style: none;
  }
  .medium-block-grid-9 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-9 > li:nth-of-type(9n+1) {
    clear: both;
  }
  .medium-block-grid-10 > li {
    width: 10%;
    list-style: none;
  }
  .medium-block-grid-10 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-10 > li:nth-of-type(10n+1) {
    clear: both;
  }
  .medium-block-grid-11 > li {
    width: 9.0909090909%;
    list-style: none;
  }
  .medium-block-grid-11 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-11 > li:nth-of-type(11n+1) {
    clear: both;
  }
  .medium-block-grid-12 > li {
    width: 8.3333333333%;
    list-style: none;
  }
  .medium-block-grid-12 > li:nth-of-type(1n) {
    clear: none;
  }
  .medium-block-grid-12 > li:nth-of-type(12n+1) {
    clear: both;
  }
}
@media only screen and (min-width:64.063em) {
  .large-block-grid-1 > li {
    width: 100%;
    list-style: none;
  }
  .large-block-grid-1 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-1 > li:nth-of-type(1n+1) {
    clear: both;
  }
  .large-block-grid-2 > li {
    width: 50%;
    list-style: none;
  }
  .large-block-grid-2 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-2 > li:nth-of-type(2n+1) {
    clear: both;
  }
  .large-block-grid-3 > li {
    width: 33.3333333333%;
    list-style: none;
  }
  .large-block-grid-3 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-3 > li:nth-of-type(3n+1) {
    clear: both;
  }
  .large-block-grid-4 > li {
    width: 25%;
    list-style: none;
  }
  .large-block-grid-4 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-4 > li:nth-of-type(4n+1) {
    clear: both;
  }
  .large-block-grid-5 > li {
    width: 20%;
    list-style: none;
  }
  .large-block-grid-5 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-5 > li:nth-of-type(5n+1) {
    clear: both;
  }
  .large-block-grid-6 > li {
    width: 16.6666666667%;
    list-style: none;
  }
  .large-block-grid-6 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-6 > li:nth-of-type(6n+1) {
    clear: both;
  }
  .large-block-grid-7 > li {
    width: 14.2857142857%;
    list-style: none;
  }
  .large-block-grid-7 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-7 > li:nth-of-type(7n+1) {
    clear: both;
  }
  .large-block-grid-8 > li {
    width: 12.5%;
    list-style: none;
  }
  .large-block-grid-8 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-8 > li:nth-of-type(8n+1) {
    clear: both;
  }
  .large-block-grid-9 > li {
    width: 11.1111111111%;
    list-style: none;
  }
  .large-block-grid-9 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-9 > li:nth-of-type(9n+1) {
    clear: both;
  }
  .large-block-grid-10 > li {
    width: 10%;
    list-style: none;
  }
  .large-block-grid-10 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-10 > li:nth-of-type(10n+1) {
    clear: both;
  }
  .large-block-grid-11 > li {
    width: 9.0909090909%;
    list-style: none;
  }
  .large-block-grid-11 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-11 > li:nth-of-type(11n+1) {
    clear: both;
  }
  .large-block-grid-12 > li {
    width: 8.3333333333%;
    list-style: none;
  }
  .large-block-grid-12 > li:nth-of-type(1n) {
    clear: none;
  }
  .large-block-grid-12 > li:nth-of-type(12n+1) {
    clear: both;
  }
}
.breadcrumbs {
  display: block;
  padding: 0.5625rem 0.875rem 0.5625rem;
  overflow: hidden;
  margin-left: 0;
  list-style: none;
  border-style: solid;
  border-width: 1px;
  background-color: #efeee7;
  border-color: #dcdacb;
  border-radius: 3px;
}
.breadcrumbs > * {
  margin: 0;
  float: left;
  font-size: 0.6875rem;
  line-height: 0.6875rem;
  text-transform: uppercase;
  color: #56284f;
}
.breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
  text-decoration: underline;
}
.breadcrumbs > * a {
  color: #56284f;
}
.breadcrumbs > *.current {
  cursor: default;
  color: #333333;
}
.breadcrumbs > *.current a {
  cursor: default;
  color: #333333;
}
.breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
  text-decoration: none;
}
.breadcrumbs > *.unavailable {
  color: #999999;
}
.breadcrumbs > *.unavailable a {
  color: #999999;
}
.breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
.breadcrumbs > *.unavailable a:focus {
  text-decoration: none;
  color: #999999;
  cursor: not-allowed;
}
.breadcrumbs > *:before {
  content: "/";
  color: #AAAAAA;
  margin: 0 0.75rem;
  position: relative;
  top: 1px;
}
.breadcrumbs > *:first-child:before {
  content: " ";
  margin: 0;
}

/* Accessibility - hides the forward slash */
[aria-label=breadcrumbs] [aria-hidden=true]:after {
  content: "/";
}

button, .button {
  border-style: solid;
  border-width: 0;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: normal;
  margin: 0 0 1.25rem;
  position: relative;
  text-decoration: none;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  display: inline-block;
  padding-top: 1rem;
  padding-right: 2rem;
  padding-bottom: 1.0625rem;
  padding-left: 2rem;
  font-size: 1rem;
  background-color: #56284f;
  border-color: #45203f;
  color: #FFFFFF;
  transition: background-color 300ms ease-out;
}
button:hover, button:focus, .button:hover, .button:focus {
  background-color: #45203f;
}
button:hover, button:focus, .button:hover, .button:focus {
  color: #FFFFFF;
}
button.secondary, .button.secondary {
  background-color: #dbd9ca;
  border-color: #b9b598;
  color: #333333;
}
button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
  background-color: #b9b598;
}
button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
  color: #FFFFFF;
}
button.success, .button.success {
  background-color: #43AC6A;
  border-color: #368a55;
  color: #FFFFFF;
}
button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
  background-color: #368a55;
}
button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
  color: #FFFFFF;
}
button.alert, .button.alert {
  background-color: #f04124;
  border-color: #cf2a0e;
  color: #FFFFFF;
}
button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
  background-color: #cf2a0e;
}
button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
  color: #FFFFFF;
}
button.warning, .button.warning {
  background-color: #f08a24;
  border-color: #cf6e0e;
  color: #FFFFFF;
}
button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
  background-color: #cf6e0e;
}
button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
  color: #FFFFFF;
}
button.info, .button.info {
  background-color: #a0d3e8;
  border-color: #61b6d9;
  color: #333333;
}
button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
  background-color: #61b6d9;
}
button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
  color: #FFFFFF;
}
button.large, .button.large {
  padding-top: 1.125rem;
  padding-right: 2.25rem;
  padding-bottom: 1.1875rem;
  padding-left: 2.25rem;
  font-size: 1.25rem;
}
button.small, .button.small {
  padding-top: 0.875rem;
  padding-right: 1.75rem;
  padding-bottom: 0.9375rem;
  padding-left: 1.75rem;
  font-size: 0.8125rem;
}
button.tiny, .button.tiny {
  padding-top: 0.625rem;
  padding-right: 1.25rem;
  padding-bottom: 0.6875rem;
  padding-left: 1.25rem;
  font-size: 0.6875rem;
}
button.expand, .button.expand {
  padding-right: 0;
  padding-left: 0;
  width: 100%;
}
button.left-align, .button.left-align {
  text-align: left;
  text-indent: 0.75rem;
}
button.right-align, .button.right-align {
  text-align: right;
  padding-right: 0.75rem;
}
button.radius, .button.radius {
  border-radius: 3px;
}
button.round, .button.round {
  border-radius: 1000px;
}
button.disabled, button[disabled], .button.disabled, .button[disabled] {
  background-color: #56284f;
  border-color: #45203f;
  color: #FFFFFF;
  cursor: default;
  opacity: 0.7;
  box-shadow: none;
}
button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
  background-color: #45203f;
}
button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
  color: #FFFFFF;
}
button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
  background-color: #56284f;
}
button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
  background-color: #dbd9ca;
  border-color: #b9b598;
  color: #333333;
  cursor: default;
  opacity: 0.7;
  box-shadow: none;
}
button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  background-color: #b9b598;
}
button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  color: #FFFFFF;
}
button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  background-color: #dbd9ca;
}
button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
  background-color: #43AC6A;
  border-color: #368a55;
  color: #FFFFFF;
  cursor: default;
  opacity: 0.7;
  box-shadow: none;
}
button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #368a55;
}
button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
  color: #FFFFFF;
}
button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #43AC6A;
}
button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
  background-color: #f04124;
  border-color: #cf2a0e;
  color: #FFFFFF;
  cursor: default;
  opacity: 0.7;
  box-shadow: none;
}
button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #cf2a0e;
}
button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
  color: #FFFFFF;
}
button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #f04124;
}
button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
  background-color: #f08a24;
  border-color: #cf6e0e;
  color: #FFFFFF;
  cursor: default;
  opacity: 0.7;
  box-shadow: none;
}
button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #cf6e0e;
}
button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
  color: #FFFFFF;
}
button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #f08a24;
}
button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
  background-color: #a0d3e8;
  border-color: #61b6d9;
  color: #333333;
  cursor: default;
  opacity: 0.7;
  box-shadow: none;
}
button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
  background-color: #61b6d9;
}
button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
  color: #FFFFFF;
}
button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
  background-color: #a0d3e8;
}

button::-moz-focus-inner {
  border: 0;
  padding: 0;
}

@media only screen and (min-width:40.063em) {
  button, .button {
    display: inline-block;
  }
}
.button-group {
  list-style: none;
  margin: 0;
  left: 0;
}
.button-group:before, .button-group:after {
  content: " ";
  display: table;
}
.button-group:after {
  clear: both;
}
.button-group.even-2 li {
  margin: 0 -2px;
  display: inline-block;
  width: 50%;
}
.button-group.even-2 li > button, .button-group.even-2 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
  border-left: 0;
}
.button-group.even-2 li button, .button-group.even-2 li .button {
  width: 100%;
}
.button-group.even-3 li {
  margin: 0 -2px;
  display: inline-block;
  width: 33.3333333333%;
}
.button-group.even-3 li > button, .button-group.even-3 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
  border-left: 0;
}
.button-group.even-3 li button, .button-group.even-3 li .button {
  width: 100%;
}
.button-group.even-4 li {
  margin: 0 -2px;
  display: inline-block;
  width: 25%;
}
.button-group.even-4 li > button, .button-group.even-4 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
  border-left: 0;
}
.button-group.even-4 li button, .button-group.even-4 li .button {
  width: 100%;
}
.button-group.even-5 li {
  margin: 0 -2px;
  display: inline-block;
  width: 20%;
}
.button-group.even-5 li > button, .button-group.even-5 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
  border-left: 0;
}
.button-group.even-5 li button, .button-group.even-5 li .button {
  width: 100%;
}
.button-group.even-6 li {
  margin: 0 -2px;
  display: inline-block;
  width: 16.6666666667%;
}
.button-group.even-6 li > button, .button-group.even-6 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
  border-left: 0;
}
.button-group.even-6 li button, .button-group.even-6 li .button {
  width: 100%;
}
.button-group.even-7 li {
  margin: 0 -2px;
  display: inline-block;
  width: 14.2857142857%;
}
.button-group.even-7 li > button, .button-group.even-7 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
  border-left: 0;
}
.button-group.even-7 li button, .button-group.even-7 li .button {
  width: 100%;
}
.button-group.even-8 li {
  margin: 0 -2px;
  display: inline-block;
  width: 12.5%;
}
.button-group.even-8 li > button, .button-group.even-8 li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
  border-left: 0;
}
.button-group.even-8 li button, .button-group.even-8 li .button {
  width: 100%;
}
.button-group > li {
  margin: 0 -2px;
  display: inline-block;
}
.button-group > li > button, .button-group > li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group > li:first-child button, .button-group > li:first-child .button {
  border-left: 0;
}
.button-group.stack > li {
  margin: 0 -2px;
  display: inline-block;
  display: block;
  margin: 0;
  float: none;
}
.button-group.stack > li > button, .button-group.stack > li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
  border-left: 0;
}
.button-group.stack > li > button, .button-group.stack > li .button {
  border-top: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
  border-left-width: 0;
  margin: 0;
  display: block;
}
.button-group.stack > li > button {
  width: 100%;
}
.button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
  border-top: 0;
}
.button-group.stack-for-small > li {
  margin: 0 -2px;
  display: inline-block;
}
.button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
  border-left: 0;
}
@media only screen and (max-width: 40em) {
  .button-group.stack-for-small > li {
    margin: 0 -2px;
    display: inline-block;
    display: block;
    margin: 0;
  }
  .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
    border-left: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
  }
  .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
    border-left: 0;
  }
  .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
    border-top: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
    border-left-width: 0;
    margin: 0;
    display: block;
  }
  .button-group.stack-for-small > li > button {
    width: 100%;
  }
  .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
    border-top: 0;
  }
}
.button-group.radius > * {
  margin: 0 -2px;
  display: inline-block;
}
.button-group.radius > * > button, .button-group.radius > * .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
  border-left: 0;
}
.button-group.radius > *, .button-group.radius > * > a, .button-group.radius > * > button, .button-group.radius > * > .button {
  border-radius: 0;
}
.button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button {
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button {
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.button-group.radius.stack > * {
  margin: 0 -2px;
  display: inline-block;
  display: block;
  margin: 0;
}
.button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
  border-left: 0;
}
.button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
  border-top: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
  border-left-width: 0;
  margin: 0;
  display: block;
}
.button-group.radius.stack > * > button {
  width: 100%;
}
.button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
  border-top: 0;
}
.button-group.radius.stack > *, .button-group.radius.stack > * > a, .button-group.radius.stack > * > button, .button-group.radius.stack > * > .button {
  border-radius: 0;
}
.button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button {
  -webkit-top-left-radius: 3px;
  -webkit-top-right-radius: 3px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button {
  -webkit-bottom-left-radius: 3px;
  -webkit-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
}
@media only screen and (min-width:40.063em) {
  .button-group.radius.stack-for-small > * {
    margin: 0 -2px;
    display: inline-block;
  }
  .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
    border-left: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
  }
  .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
    border-left: 0;
  }
  .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button {
    border-radius: 0;
  }
  .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
    -webkit-border-bottom-left-radius: 3px;
    -webkit-border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    border-top-left-radius: 3px;
  }
  .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
    -webkit-border-bottom-right-radius: 3px;
    -webkit-border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border-top-right-radius: 3px;
  }
}
@media only screen and (max-width: 40em) {
  .button-group.radius.stack-for-small > * {
    margin: 0 -2px;
    display: inline-block;
    display: block;
    margin: 0;
  }
  .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
    border-left: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
  }
  .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
    border-left: 0;
  }
  .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
    border-top: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
    border-left-width: 0;
    margin: 0;
    display: block;
  }
  .button-group.radius.stack-for-small > * > button {
    width: 100%;
  }
  .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
    border-top: 0;
  }
  .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button {
    border-radius: 0;
  }
  .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
    -webkit-top-left-radius: 3px;
    -webkit-top-right-radius: 3px;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
  }
  .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
    -webkit-bottom-left-radius: 3px;
    -webkit-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
  }
}
.button-group.round > * {
  margin: 0 -2px;
  display: inline-block;
}
.button-group.round > * > button, .button-group.round > * .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.round > *:first-child button, .button-group.round > *:first-child .button {
  border-left: 0;
}
.button-group.round > *, .button-group.round > * > a, .button-group.round > * > button, .button-group.round > * > .button {
  border-radius: 0;
}
.button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button {
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px;
}
.button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button {
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px;
}
.button-group.round.stack > * {
  margin: 0 -2px;
  display: inline-block;
  display: block;
  margin: 0;
}
.button-group.round.stack > * > button, .button-group.round.stack > * .button {
  border-left: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
}
.button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
  border-left: 0;
}
.button-group.round.stack > * > button, .button-group.round.stack > * .button {
  border-top: 1px solid;
  border-color: rgba(255, 255, 255, 0.5);
  border-left-width: 0;
  margin: 0;
  display: block;
}
.button-group.round.stack > * > button {
  width: 100%;
}
.button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
  border-top: 0;
}
.button-group.round.stack > *, .button-group.round.stack > * > a, .button-group.round.stack > * > button, .button-group.round.stack > * > .button {
  border-radius: 0;
}
.button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button {
  -webkit-top-left-radius: 1rem;
  -webkit-top-right-radius: 1rem;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
.button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button {
  -webkit-bottom-left-radius: 1rem;
  -webkit-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}
@media only screen and (min-width:40.063em) {
  .button-group.round.stack-for-small > * {
    margin: 0 -2px;
    display: inline-block;
  }
  .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
    border-left: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
  }
  .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
    border-left: 0;
  }
  .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button {
    border-radius: 0;
  }
  .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
    -webkit-border-bottom-left-radius: 1000px;
    -webkit-border-top-left-radius: 1000px;
    border-bottom-left-radius: 1000px;
    border-top-left-radius: 1000px;
  }
  .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
    -webkit-border-bottom-right-radius: 1000px;
    -webkit-border-top-right-radius: 1000px;
    border-bottom-right-radius: 1000px;
    border-top-right-radius: 1000px;
  }
}
@media only screen and (max-width: 40em) {
  .button-group.round.stack-for-small > * {
    margin: 0 -2px;
    display: inline-block;
    display: block;
    margin: 0;
  }
  .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
    border-left: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
  }
  .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
    border-left: 0;
  }
  .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
    border-top: 1px solid;
    border-color: rgba(255, 255, 255, 0.5);
    border-left-width: 0;
    margin: 0;
    display: block;
  }
  .button-group.round.stack-for-small > * > button {
    width: 100%;
  }
  .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
    border-top: 0;
  }
  .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button {
    border-radius: 0;
  }
  .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
    -webkit-top-left-radius: 1rem;
    -webkit-top-right-radius: 1rem;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
  }
  .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
    -webkit-bottom-left-radius: 1rem;
    -webkit-bottom-right-radius: 1rem;
    border-bottom-left-radius: 1rem;
    border-bottom-right-radius: 1rem;
  }
}

.button-bar:before, .button-bar:after {
  content: " ";
  display: table;
}
.button-bar:after {
  clear: both;
}
.button-bar .button-group {
  float: left;
  margin-right: 0.625rem;
}
.button-bar .button-group div {
  overflow: hidden;
}

/* Clearing Styles */
.clearing-thumbs, [data-clearing] {
  margin-bottom: 0;
  margin-left: 0;
  list-style: none;
}
.clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after {
  content: " ";
  display: table;
}
.clearing-thumbs:after, [data-clearing]:after {
  clear: both;
}
.clearing-thumbs li, [data-clearing] li {
  float: left;
  margin-right: 10px;
}
.clearing-thumbs[class*=block-grid-] li, [data-clearing][class*=block-grid-] li {
  margin-right: 0;
}

.clearing-blackout {
  background: #333333;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 998;
}
.clearing-blackout .clearing-close {
  display: block;
}

.clearing-container {
  position: relative;
  z-index: 998;
  height: 100%;
  overflow: hidden;
  margin: 0;
}

.clearing-touch-label {
  position: absolute;
  top: 50%;
  left: 50%;
  color: #AAAAAA;
  font-size: 0.6em;
}

.visible-img {
  height: 95%;
  position: relative;
}
.visible-img img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  -ms-transform: translateY(-50%) translateX(-50%);
  max-height: 100%;
  max-width: 100%;
}

.clearing-caption {
  color: #CCCCCC;
  font-size: 0.875em;
  line-height: 1.3;
  margin-bottom: 0;
  text-align: center;
  bottom: 0;
  background: #333333;
  width: 100%;
  padding: 10px 30px 20px;
  position: absolute;
  left: 0;
}

.clearing-close {
  z-index: 999;
  padding-left: 20px;
  padding-top: 10px;
  font-size: 30px;
  line-height: 1;
  color: #CCCCCC;
  display: none;
}
.clearing-close:hover, .clearing-close:focus {
  color: #CCCCCC;
}

.clearing-assembled .clearing-container {
  height: 100%;
}
.clearing-assembled .clearing-container .carousel > ul {
  display: none;
}

.clearing-feature li {
  display: none;
}
.clearing-feature li.clearing-featured-img {
  display: block;
}

@media only screen and (min-width:40.063em) {
  .clearing-main-prev,
  .clearing-main-next {
    position: absolute;
    height: 100%;
    width: 40px;
    top: 0;
  }
  .clearing-main-prev > span,
  .clearing-main-next > span {
    position: absolute;
    top: 50%;
    display: block;
    width: 0;
    height: 0;
    border: solid 12px;
  }
  .clearing-main-prev > span:hover,
  .clearing-main-next > span:hover {
    opacity: 0.8;
  }
  .clearing-main-prev {
    left: 0;
  }
  .clearing-main-prev > span {
    left: 5px;
    border-color: transparent;
    border-right-color: #CCCCCC;
  }
  .clearing-main-next {
    right: 0;
  }
  .clearing-main-next > span {
    border-color: transparent;
    border-left-color: #CCCCCC;
  }
  .clearing-main-prev.disabled,
  .clearing-main-next.disabled {
    opacity: 0.3;
  }
  .clearing-assembled .clearing-container .carousel {
    background: rgba(51, 51, 51, 0.8);
    height: 120px;
    margin-top: 10px;
    text-align: center;
  }
  .clearing-assembled .clearing-container .carousel > ul {
    display: inline-block;
    z-index: 999;
    height: 100%;
    position: relative;
    float: none;
  }
  .clearing-assembled .clearing-container .carousel > ul li {
    display: block;
    width: 120px;
    min-height: inherit;
    float: left;
    overflow: hidden;
    margin-right: 0;
    padding: 0;
    position: relative;
    cursor: pointer;
    opacity: 0.4;
    clear: none;
  }
  .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
    height: 100%;
    max-width: none;
  }
  .clearing-assembled .clearing-container .carousel > ul li a.th {
    border: none;
    box-shadow: none;
    display: block;
  }
  .clearing-assembled .clearing-container .carousel > ul li img {
    cursor: pointer !important;
    width: 100% !important;
  }
  .clearing-assembled .clearing-container .carousel > ul li.visible {
    opacity: 1;
  }
  .clearing-assembled .clearing-container .carousel > ul li:hover {
    opacity: 0.8;
  }
  .clearing-assembled .clearing-container .visible-img {
    background: #333333;
    overflow: hidden;
    height: 85%;
  }
  .clearing-close {
    position: absolute;
    top: 10px;
    right: 20px;
    padding-left: 0;
    padding-top: 0;
  }
}
/* Foundation Dropdowns */
.f-dropdown {
  position: absolute;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  outline: none;
  width: 100%;
  max-height: none;
  height: auto;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  z-index: 89;
  margin-top: 2px;
  max-width: 200px;
}
.f-dropdown > *:first-child {
  margin-top: 0;
}
.f-dropdown > *:last-child {
  margin-bottom: 0;
}
.f-dropdown:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent transparent #FFFFFF transparent;
  border-bottom-style: solid;
  position: absolute;
  top: -12px;
  left: 10px;
  z-index: 89;
}
.f-dropdown:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 7px;
  border-color: transparent transparent #cccccc transparent;
  border-bottom-style: solid;
  position: absolute;
  top: -14px;
  left: 9px;
  z-index: 88;
}
.f-dropdown.right:before {
  left: auto;
  right: 10px;
}
.f-dropdown.right:after {
  left: auto;
  right: 9px;
}
.f-dropdown.drop-right {
  position: absolute;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  outline: none;
  width: 100%;
  max-height: none;
  height: auto;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  z-index: 89;
  margin-top: 0;
  margin-left: 2px;
  max-width: 200px;
}
.f-dropdown.drop-right > *:first-child {
  margin-top: 0;
}
.f-dropdown.drop-right > *:last-child {
  margin-bottom: 0;
}
.f-dropdown.drop-right:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent #FFFFFF transparent transparent;
  border-right-style: solid;
  position: absolute;
  top: 10px;
  left: -12px;
  z-index: 89;
}
.f-dropdown.drop-right:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 7px;
  border-color: transparent #cccccc transparent transparent;
  border-right-style: solid;
  position: absolute;
  top: 9px;
  left: -14px;
  z-index: 88;
}
.f-dropdown.drop-left {
  position: absolute;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  outline: none;
  width: 100%;
  max-height: none;
  height: auto;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  z-index: 89;
  margin-top: 0;
  margin-left: -2px;
  max-width: 200px;
}
.f-dropdown.drop-left > *:first-child {
  margin-top: 0;
}
.f-dropdown.drop-left > *:last-child {
  margin-bottom: 0;
}
.f-dropdown.drop-left:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent transparent transparent #FFFFFF;
  border-left-style: solid;
  position: absolute;
  top: 10px;
  right: -12px;
  left: auto;
  z-index: 89;
}
.f-dropdown.drop-left:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 7px;
  border-color: transparent transparent transparent #cccccc;
  border-left-style: solid;
  position: absolute;
  top: 9px;
  right: -14px;
  left: auto;
  z-index: 88;
}
.f-dropdown.drop-top {
  position: absolute;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  outline: none;
  width: 100%;
  max-height: none;
  height: auto;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  z-index: 89;
  margin-top: -2px;
  margin-left: 0;
  max-width: 200px;
}
.f-dropdown.drop-top > *:first-child {
  margin-top: 0;
}
.f-dropdown.drop-top > *:last-child {
  margin-bottom: 0;
}
.f-dropdown.drop-top:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: #FFFFFF transparent transparent transparent;
  border-top-style: solid;
  position: absolute;
  top: auto;
  bottom: -12px;
  left: 10px;
  right: auto;
  z-index: 89;
}
.f-dropdown.drop-top:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 7px;
  border-color: #cccccc transparent transparent transparent;
  border-top-style: solid;
  position: absolute;
  top: auto;
  bottom: -14px;
  left: 9px;
  right: auto;
  z-index: 88;
}
.f-dropdown li {
  font-size: 0.875rem;
  cursor: pointer;
  line-height: 1.125rem;
  margin: 0;
}
.f-dropdown li:hover, .f-dropdown li:focus {
  background: #EEEEEE;
}
.f-dropdown li.radius {
  border-radius: 3px;
}
.f-dropdown li a {
  display: block;
  padding: 0.5rem;
  color: #555555;
}
.f-dropdown.content {
  position: absolute;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  outline: none;
  padding: 1.25rem;
  width: 100%;
  height: auto;
  max-height: none;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  z-index: 89;
  max-width: 200px;
}
.f-dropdown.content > *:first-child {
  margin-top: 0;
}
.f-dropdown.content > *:last-child {
  margin-bottom: 0;
}
.f-dropdown.tiny {
  max-width: 200px;
}
.f-dropdown.small {
  max-width: 300px;
}
.f-dropdown.medium {
  max-width: 500px;
}
.f-dropdown.large {
  max-width: 800px;
}
.f-dropdown.mega {
  width: 100% !important;
  max-width: 100% !important;
}
.f-dropdown.mega.open {
  left: 0 !important;
}

.dropdown.button, button.dropdown {
  position: relative;
  outline: none;
  padding-right: 3.5625rem;
}
.dropdown.button::after, button.dropdown::after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  display: block;
  border-style: solid;
  border-color: #FFFFFF transparent transparent transparent;
  top: 50%;
}
.dropdown.button::after, button.dropdown::after {
  border-width: 0.375rem;
  right: 1.40625rem;
  margin-top: -0.15625rem;
}
.dropdown.button::after, button.dropdown::after {
  border-color: #FFFFFF transparent transparent transparent;
}
.dropdown.button.tiny, button.dropdown.tiny {
  padding-right: 2.625rem;
}
.dropdown.button.tiny:after, button.dropdown.tiny:after {
  border-width: 0.375rem;
  right: 1.125rem;
  margin-top: -0.125rem;
}
.dropdown.button.tiny::after, button.dropdown.tiny::after {
  border-color: #FFFFFF transparent transparent transparent;
}
.dropdown.button.small, button.dropdown.small {
  padding-right: 3.0625rem;
}
.dropdown.button.small::after, button.dropdown.small::after {
  border-width: 0.4375rem;
  right: 1.3125rem;
  margin-top: -0.15625rem;
}
.dropdown.button.small::after, button.dropdown.small::after {
  border-color: #FFFFFF transparent transparent transparent;
}
.dropdown.button.large, button.dropdown.large {
  padding-right: 3.625rem;
}
.dropdown.button.large::after, button.dropdown.large::after {
  border-width: 0.3125rem;
  right: 1.71875rem;
  margin-top: -0.15625rem;
}
.dropdown.button.large::after, button.dropdown.large::after {
  border-color: #FFFFFF transparent transparent transparent;
}
.dropdown.button.secondary:after, button.dropdown.secondary:after {
  border-color: #333333 transparent transparent transparent;
}

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

/* Standard Forms */
form {
  margin: 0 0 1rem;
}

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.5rem;
}
form .row .row .column,
form .row .row .columns {
  padding: 0 0.5rem;
}
form .row .row.collapse {
  margin: 0;
}
form .row .row.collapse .column,
form .row .row.collapse .columns {
  padding: 0;
}
form .row .row.collapse input {
  -webkit-border-bottom-right-radius: 0;
  -webkit-border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
form .row input.column,
form .row input.columns,
form .row textarea.column,
form .row textarea.columns {
  padding-left: 0.5rem;
}

/* Label Styles */
label {
  font-size: 0.875rem;
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-weight: normal;
  line-height: 1.5;
  margin-bottom: 0;
  /* Styles for required inputs */
}
label.right {
  float: none !important;
  text-align: right;
}
label.inline {
  margin: 0 0 1rem 0;
  padding: 0.5625rem 0;
}
label small {
  text-transform: capitalize;
  color: #676767;
}

/* Attach elements to the beginning or end of an input */
.prefix,
.postfix {
  display: block;
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  border-style: solid;
  border-width: 1px;
  overflow: visible;
  font-size: 0.875rem;
  height: 2.3125rem;
  line-height: 2.3125rem;
}

/* Adjust padding, alignment and radius if pre/post element is a button */
.postfix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none;
}

.prefix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none;
}

.prefix.button.radius {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}

.postfix.button.radius {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}

.prefix.button.round {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px;
}

.postfix.button.round {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px;
}

/* Separate prefix and postfix styles when on span or label so buttons keep their own */
span.prefix, label.prefix {
  background: #f2f2f2;
  border-right: none;
  color: #333333;
  border-color: #cccccc;
}

span.postfix, label.postfix {
  background: #f2f2f2;
  border-left: none;
  color: #333333;
  border-color: #cccccc;
}

/* We use this to get basic styling on all basic form elements */
input[type=text], input[type=password], input[type=date], input[type=datetime], input[type=datetime-local], input[type=month], input[type=week], input[type=email], input[type=number], input[type=search], input[type=tel], input[type=time], input[type=url], input[type=color], textarea {
  -webkit-appearance: none;
  border-radius: 0;
  background-color: #FFFFFF;
  font-family: inherit;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 0.875rem;
  margin: 0 0 1rem 0;
  padding: 0.5rem;
  height: 2.3125rem;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.15s linear;
}
input[type=text]:focus, input[type=password]:focus, input[type=date]:focus, input[type=datetime]:focus, input[type=datetime-local]:focus, input[type=month]:focus, input[type=week]:focus, input[type=email]:focus, input[type=number]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=time]:focus, input[type=url]:focus, input[type=color]:focus, textarea:focus {
  background: #fafafa;
  border-color: #999999;
  outline: none;
}
input[type=text]:disabled, input[type=password]:disabled, input[type=date]:disabled, input[type=datetime]:disabled, input[type=datetime-local]:disabled, input[type=month]:disabled, input[type=week]:disabled, input[type=email]:disabled, input[type=number]:disabled, input[type=search]:disabled, input[type=tel]:disabled, input[type=time]:disabled, input[type=url]:disabled, input[type=color]:disabled, textarea:disabled {
  background-color: #DDDDDD;
  cursor: default;
}
input[type=text][disabled], input[type=text][readonly], fieldset[disabled] input[type=text], input[type=password][disabled], input[type=password][readonly], fieldset[disabled] input[type=password], input[type=date][disabled], input[type=date][readonly], fieldset[disabled] input[type=date], input[type=datetime][disabled], input[type=datetime][readonly], fieldset[disabled] input[type=datetime], input[type=datetime-local][disabled], input[type=datetime-local][readonly], fieldset[disabled] input[type=datetime-local], input[type=month][disabled], input[type=month][readonly], fieldset[disabled] input[type=month], input[type=week][disabled], input[type=week][readonly], fieldset[disabled] input[type=week], input[type=email][disabled], input[type=email][readonly], fieldset[disabled] input[type=email], input[type=number][disabled], input[type=number][readonly], fieldset[disabled] input[type=number], input[type=search][disabled], input[type=search][readonly], fieldset[disabled] input[type=search], input[type=tel][disabled], input[type=tel][readonly], fieldset[disabled] input[type=tel], input[type=time][disabled], input[type=time][readonly], fieldset[disabled] input[type=time], input[type=url][disabled], input[type=url][readonly], fieldset[disabled] input[type=url], input[type=color][disabled], input[type=color][readonly], fieldset[disabled] input[type=color], textarea[disabled], textarea[readonly], fieldset[disabled] textarea {
  background-color: #DDDDDD;
  cursor: default;
}
input[type=text].radius, input[type=password].radius, input[type=date].radius, input[type=datetime].radius, input[type=datetime-local].radius, input[type=month].radius, input[type=week].radius, input[type=email].radius, input[type=number].radius, input[type=search].radius, input[type=tel].radius, input[type=time].radius, input[type=url].radius, input[type=color].radius, textarea.radius {
  border-radius: 3px;
}

form .row .prefix-radius.row.collapse input,
form .row .prefix-radius.row.collapse textarea,
form .row .prefix-radius.row.collapse select,
form .row .prefix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
form .row .prefix-radius.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
form .row .postfix-radius.row.collapse input,
form .row .postfix-radius.row.collapse textarea,
form .row .postfix-radius.row.collapse select,
form .row .postfix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
form .row .postfix-radius.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
form .row .prefix-round.row.collapse input,
form .row .prefix-round.row.collapse textarea,
form .row .prefix-round.row.collapse select,
form .row .prefix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px;
}
form .row .prefix-round.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px;
}
form .row .postfix-round.row.collapse input,
form .row .postfix-round.row.collapse textarea,
form .row .postfix-round.row.collapse select,
form .row .postfix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px;
}
form .row .postfix-round.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px;
}

input[type=submit] {
  -webkit-appearance: none;
  border-radius: 0;
}

/* Respect enforced amount of rows for textarea */
textarea[rows] {
  height: auto;
}

/* Not allow resize out of parent */
textarea {
  max-width: 100%;
}

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  border-radius: 0;
  background-color: #FAFAFA;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  padding: 0.5rem;
  font-size: 0.875rem;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.3125rem;
}
select::-ms-expand {
  display: none;
}
select.radius {
  border-radius: 3px;
}
select:hover {
  background-color: #f3f3f3;
  border-color: #999999;
}
select:disabled {
  background-color: #DDDDDD;
  cursor: default;
}
select[multiple] {
  height: auto;
}

/* Adjust margin for form elements below */
input[type=file],
input[type=checkbox],
input[type=radio],
select {
  margin: 0 0 1rem 0;
}

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

/* Normalize file input width */
input[type=file] {
  width: 100%;
}

/* HTML5 Number spinners settings */
/* We add basic fieldset styling */
fieldset {
  border: 1px solid #DDDDDD;
  padding: 1.25rem;
  margin: 1.125rem 0;
}
fieldset legend {
  font-weight: bold;
  background: #FFFFFF;
  padding: 0 0.1875rem;
  margin: 0;
  margin-left: -0.1875rem;
}

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #f04124;
  color: #FFFFFF;
}
[data-abide] span.error, [data-abide] small.error {
  display: none;
}

span.error, small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #f04124;
  color: #FFFFFF;
}

.error input,
.error textarea,
.error select {
  margin-bottom: 0;
}
.error input[type=checkbox],
.error input[type=radio] {
  margin-bottom: 1rem;
}
.error label,
.error label.error {
  color: #f04124;
}
.error small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #f04124;
  color: #FFFFFF;
}
.error > label > small {
  color: #676767;
  background: transparent;
  padding: 0;
  text-transform: capitalize;
  font-style: normal;
  font-size: 60%;
  margin: 0;
  display: inline;
}
.error span.error-message {
  display: block;
}

input.error,
textarea.error,
select.error {
  margin-bottom: 0;
}

label.error {
  color: #f04124;
}

.icon-bar {
  width: 100%;
  font-size: 0;
  display: inline-block;
  background: #333333;
}
.icon-bar > * {
  text-align: center;
  font-size: 1rem;
  width: 25%;
  margin: 0 auto;
  display: block;
  padding: 1.25rem;
  float: left;
}
.icon-bar > * i, .icon-bar > * img {
  display: block;
  margin: 0 auto;
}
.icon-bar > * i + label, .icon-bar > * img + label {
  margin-top: 0.0625rem;
}
.icon-bar > * i {
  font-size: 1.875rem;
  vertical-align: middle;
}
.icon-bar > * img {
  width: 1.875rem;
  height: 1.875rem;
}
.icon-bar.label-right > * i, .icon-bar.label-right > * img {
  margin: 0 0.0625rem 0 0;
  display: inline-block;
}
.icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label {
  margin-top: 0;
}
.icon-bar.label-right > * label {
  display: inline-block;
}
.icon-bar.vertical.label-right > * {
  text-align: left;
}
.icon-bar.vertical, .icon-bar.small-vertical {
  height: 100%;
  width: auto;
}
.icon-bar.vertical .item, .icon-bar.small-vertical .item {
  width: auto;
  margin: auto;
  float: none;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.medium-vertical {
    height: 100%;
    width: auto;
  }
  .icon-bar.medium-vertical .item {
    width: auto;
    margin: auto;
    float: none;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.large-vertical {
    height: 100%;
    width: auto;
  }
  .icon-bar.large-vertical .item {
    width: auto;
    margin: auto;
    float: none;
  }
}
.icon-bar > * {
  font-size: 1rem;
  padding: 1.25rem;
}
.icon-bar > * i + label, .icon-bar > * img + label {
  margin-top: 0.0625rem;
}
.icon-bar > * i {
  font-size: 1.875rem;
}
.icon-bar > * img {
  width: 1.875rem;
  height: 1.875rem;
}
.icon-bar > * label {
  color: #FFFFFF;
}
.icon-bar > * i {
  color: #FFFFFF;
}
.icon-bar > a:hover {
  background: #56284f;
}
.icon-bar > a:hover label {
  color: #FFFFFF;
}
.icon-bar > a:hover i {
  color: #FFFFFF;
}
.icon-bar > a.active {
  background: #56284f;
}
.icon-bar > a.active label {
  color: #FFFFFF;
}
.icon-bar > a.active i {
  color: #FFFFFF;
}
.icon-bar .item.disabled {
  opacity: 0.7;
  cursor: not-allowed;
  pointer-events: none;
}
.icon-bar .item.disabled > * {
  opacity: 0.7;
  cursor: not-allowed;
}

.icon-bar.two-up .item {
  width: 50%;
}
.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.two-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.two-up.large-vertical .item {
    width: auto;
  }
}
.icon-bar.three-up .item {
  width: 33.3333%;
}
.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.three-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.three-up.large-vertical .item {
    width: auto;
  }
}
.icon-bar.four-up .item {
  width: 25%;
}
.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.four-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.four-up.large-vertical .item {
    width: auto;
  }
}
.icon-bar.five-up .item {
  width: 20%;
}
.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.five-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.five-up.large-vertical .item {
    width: auto;
  }
}
.icon-bar.six-up .item {
  width: 16.66667%;
}
.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.six-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.six-up.large-vertical .item {
    width: auto;
  }
}
.icon-bar.seven-up .item {
  width: 14.28571%;
}
.icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.seven-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.seven-up.large-vertical .item {
    width: auto;
  }
}
.icon-bar.eight-up .item {
  width: 12.5%;
}
.icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
  width: auto;
}
@media only screen and (min-width:40.063em) {
  .icon-bar.eight-up.medium-vertical .item {
    width: auto;
  }
}
@media only screen and (min-width:64.063em) {
  .icon-bar.eight-up.large-vertical .item {
    width: auto;
  }
}

.inline-list {
  margin: 0 auto 1.0625rem auto;
  margin-left: -1.375rem;
  margin-right: 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
}
.inline-list > li {
  list-style: none;
  float: left;
  margin-left: 1.375rem;
  display: block;
}
.inline-list > li > * {
  display: block;
} /* Foundation Joyride */
.joyride-list {
  display: none;
}

/* Default styles for the container */
.joyride-tip-guide {
  display: none;
  position: absolute;
  background: #333333;
  color: #FFFFFF;
  z-index: 101;
  top: 0;
  left: 2.5%;
  font-family: inherit;
  font-weight: normal;
  width: 95%;
}

.lt-ie9 .joyride-tip-guide {
  max-width: 800px;
  left: 50%;
  margin-left: -400px;
}

.joyride-content-wrapper {
  width: 100%;
  padding: 1.125rem 1.25rem 1.5rem;
}
.joyride-content-wrapper .button {
  margin-bottom: 0 !important;
}
.joyride-content-wrapper .joyride-prev-tip {
  margin-right: 10px;
}

/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
.joyride-tip-guide .joyride-nub {
  display: block;
  position: absolute;
  left: 22px;
  width: 0;
  height: 0;
  border: 10px solid #333333;
}
.joyride-tip-guide .joyride-nub.top {
  border-top-style: solid;
  border-color: #333333;
  border-top-color: transparent !important;
  border-left-color: transparent !important;
  border-right-color: transparent !important;
  top: -20px;
}
.joyride-tip-guide .joyride-nub.bottom {
  border-bottom-style: solid;
  border-color: #333333 !important;
  border-bottom-color: transparent !important;
  border-left-color: transparent !important;
  border-right-color: transparent !important;
  bottom: -20px;
}
.joyride-tip-guide .joyride-nub.right {
  right: -20px;
}
.joyride-tip-guide .joyride-nub.left {
  left: -20px;
}

/* Typography */
.joyride-tip-guide h1,
.joyride-tip-guide h2,
.joyride-tip-guide h3,
.joyride-tip-guide h4,
.joyride-tip-guide h5,
.joyride-tip-guide h6 {
  line-height: 1.25;
  margin: 0;
  font-weight: bold;
  color: #FFFFFF;
}

.joyride-tip-guide p {
  margin: 0 0 1.125rem 0;
  font-size: 0.875rem;
  line-height: 1.3;
}

.joyride-timer-indicator-wrap {
  width: 50px;
  height: 3px;
  border: solid 1px #555555;
  position: absolute;
  right: 1.0625rem;
  bottom: 1rem;
}

.joyride-timer-indicator {
  display: block;
  width: 0;
  height: inherit;
  background: #666666;
}

.joyride-close-tip {
  position: absolute;
  right: 12px;
  top: 10px;
  color: #777777 !important;
  text-decoration: none;
  font-size: 24px;
  font-weight: normal;
  line-height: 0.5 !important;
}
.joyride-close-tip:hover, .joyride-close-tip:focus {
  color: #EEEEEE !important;
}

.joyride-modal-bg {
  position: fixed;
  height: 100%;
  width: 100%;
  background: transparent;
  background: rgba(0, 0, 0, 0.5);
  z-index: 100;
  display: none;
  top: 0;
  left: 0;
  cursor: pointer;
}

.joyride-expose-wrapper {
  background-color: #FFFFFF;
  position: absolute;
  border-radius: 3px;
  z-index: 102;
  box-shadow: 0 0 15px #FFFFFF;
}

.joyride-expose-cover {
  background: transparent;
  border-radius: 3px;
  position: absolute;
  z-index: 9999;
  top: 0;
  left: 0;
}

/* Styles for screens that are at least 768px; */
@media only screen and (min-width:40.063em) {
  .joyride-tip-guide {
    width: 300px;
    left: inherit;
  }
  .joyride-tip-guide .joyride-nub.bottom {
    border-color: #333333 !important;
    border-bottom-color: transparent !important;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
    bottom: -20px;
  }
  .joyride-tip-guide .joyride-nub.right {
    border-color: #333333 !important;
    border-top-color: transparent !important;
    border-right-color: transparent !important;
    border-bottom-color: transparent !important;
    top: 22px;
    left: auto;
    right: -20px;
  }
  .joyride-tip-guide .joyride-nub.left {
    border-color: #333333 !important;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    border-bottom-color: transparent !important;
    top: 22px;
    left: -20px;
    right: auto;
  }
}
.keystroke,
kbd {
  background-color: #ededed;
  border-color: #dddddd;
  color: #222222;
  border-style: solid;
  border-width: 1px;
  margin: 0;
  font-family: "Consolas", "Menlo", "Courier", monospace;
  font-size: inherit;
  padding: 0.125rem 0.25rem 0;
  border-radius: 3px;
}

.label {
  font-weight: normal;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  text-align: center;
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  display: inline-block;
  position: relative;
  margin-bottom: auto;
  padding: 0.25rem 0.5rem 0.25rem;
  font-size: 0.6875rem;
  background-color: #56284f;
  color: #FFFFFF;
}
.label.radius {
  border-radius: 3px;
}
.label.round {
  border-radius: 1000px;
}
.label.alert {
  background-color: #f04124;
  color: #FFFFFF;
}
.label.warning {
  background-color: #f08a24;
  color: #FFFFFF;
}
.label.success {
  background-color: #43AC6A;
  color: #FFFFFF;
}
.label.secondary {
  background-color: #dbd9ca;
  color: #333333;
}
.label.info {
  background-color: #a0d3e8;
  color: #333333;
}

[data-magellan-expedition], [data-magellan-expedition-clone] {
  background: #FFFFFF;
  z-index: 50;
  min-width: 100%;
  padding: 10px;
}
[data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav {
  margin-bottom: 0;
}
[data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd {
  margin-bottom: 0;
}
[data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a {
  line-height: 1.8em;
}

@-webkit-keyframes rotate {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
  }
}
@-moz-keyframes rotate {
  from {
    -moz-transform: rotate(0deg);
  }
  to {
    -moz-transform: rotate(360deg);
  }
}
@-o-keyframes rotate {
  from {
    -o-transform: rotate(0deg);
  }
  to {
    -o-transform: rotate(360deg);
  }
}
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* Orbit Graceful Loading */
.slideshow-wrapper {
  position: relative;
}
.slideshow-wrapper ul {
  list-style-type: none;
  margin: 0;
}
.slideshow-wrapper ul li,
.slideshow-wrapper ul li .orbit-caption {
  display: none;
}
.slideshow-wrapper ul li:first-child {
  display: block;
}
.slideshow-wrapper .orbit-container {
  background-color: transparent;
}
.slideshow-wrapper .orbit-container li {
  display: block;
}
.slideshow-wrapper .orbit-container li .orbit-caption {
  display: block;
}
.slideshow-wrapper .orbit-container .orbit-bullets li {
  display: inline-block;
}
.slideshow-wrapper .preloader {
  display: block;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
  border: solid 3px;
  border-color: #555555 #FFFFFF;
  border-radius: 1000px;
  animation-name: rotate;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

.orbit-container {
  overflow: hidden;
  width: 100%;
  position: relative;
  background: none;
}
.orbit-container .orbit-slides-container {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  -webkit-transform: translateZ(0);
}
.orbit-container .orbit-slides-container img {
  display: block;
  max-width: 100%;
}
.orbit-container .orbit-slides-container > * {
  position: absolute;
  top: 0;
  width: 100%;
  margin-left: 100%;
}
.orbit-container .orbit-slides-container > *:first-child {
  margin-left: 0;
}
.orbit-container .orbit-slides-container > * .orbit-caption {
  position: absolute;
  bottom: 0;
  background-color: rgba(51, 51, 51, 0.8);
  color: #FFFFFF;
  width: 100%;
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem;
}
.orbit-container .orbit-slide-number {
  position: absolute;
  top: 10px;
  left: 10px;
  font-size: 12px;
  color: #FFFFFF;
  background: rgba(0, 0, 0, 0);
  z-index: 10;
}
.orbit-container .orbit-slide-number span {
  font-weight: 700;
  padding: 0.3125rem;
}
.orbit-container .orbit-timer {
  position: absolute;
  top: 12px;
  right: 10px;
  height: 6px;
  width: 100px;
  z-index: 10;
}
.orbit-container .orbit-timer .orbit-progress {
  height: 3px;
  background-color: rgba(255, 255, 255, 0.3);
  display: block;
  width: 0;
  position: relative;
  right: 20px;
  top: 5px;
}
.orbit-container .orbit-timer > span {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  width: 11px;
  height: 14px;
  border: solid 4px #FFFFFF;
  border-top: none;
  border-bottom: none;
}
.orbit-container .orbit-timer.paused > span {
  right: -4px;
  top: 0;
  width: 11px;
  height: 14px;
  border: inset 8px;
  border-left-style: solid;
  border-color: transparent;
  border-left-color: #FFFFFF;
}
.orbit-container .orbit-timer.paused > span.dark {
  border-left-color: #333333;
}
.orbit-container:hover .orbit-timer > span {
  display: block;
}
.orbit-container .orbit-prev,
.orbit-container .orbit-next {
  position: absolute;
  top: 45%;
  margin-top: -25px;
  width: 36px;
  height: 60px;
  line-height: 50px;
  color: white;
  background-color: transparent;
  text-indent: -9999px !important;
  z-index: 10;
}
.orbit-container .orbit-prev:hover,
.orbit-container .orbit-next:hover {
  background-color: rgba(0, 0, 0, 0.3);
}
.orbit-container .orbit-prev > span,
.orbit-container .orbit-next > span {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  display: block;
  width: 0;
  height: 0;
  border: inset 10px;
}
.orbit-container .orbit-prev {
  left: 0;
}
.orbit-container .orbit-prev > span {
  border-right-style: solid;
  border-color: transparent;
  border-right-color: #FFFFFF;
}
.orbit-container .orbit-prev:hover > span {
  border-right-color: #FFFFFF;
}
.orbit-container .orbit-next {
  right: 0;
}
.orbit-container .orbit-next > span {
  border-color: transparent;
  border-left-style: solid;
  border-left-color: #FFFFFF;
  left: 50%;
  margin-left: -4px;
}
.orbit-container .orbit-next:hover > span {
  border-left-color: #FFFFFF;
}

.orbit-bullets-container {
  text-align: center;
}

.orbit-bullets {
  margin: 0 auto 30px auto;
  overflow: hidden;
  position: relative;
  top: 10px;
  float: none;
  text-align: center;
  display: block;
}
.orbit-bullets li {
  cursor: pointer;
  display: inline-block;
  width: 0.5625rem;
  height: 0.5625rem;
  background: #CCCCCC;
  float: none;
  margin-right: 6px;
  border-radius: 1000px;
}
.orbit-bullets li.active {
  background: #999999;
}
.orbit-bullets li:last-child {
  margin-right: 0;
}

.touch .orbit-container .orbit-prev,
.touch .orbit-container .orbit-next {
  display: none;
}
.touch .orbit-bullets {
  display: none;
}

@media only screen and (min-width:40.063em) {
  .touch .orbit-container .orbit-prev,
  .touch .orbit-container .orbit-next {
    display: inherit;
  }
  .touch .orbit-bullets {
    display: block;
  }
}
@media only screen and (max-width: 40em) {
  .orbit-stack-on-small .orbit-slides-container {
    height: auto !important;
  }
  .orbit-stack-on-small .orbit-slides-container > * {
    position: relative;
    margin: 0 !important;
    opacity: 1 !important;
  }
  .orbit-stack-on-small .orbit-slide-number {
    display: none;
  }
  .orbit-timer {
    display: none;
  }
  .orbit-next, .orbit-prev {
    display: none;
  }
  .orbit-bullets {
    display: none;
  }
}
ul.pagination {
  display: block;
  min-height: 1.5rem;
  margin-left: -0.3125rem;
}
ul.pagination li {
  height: 1.5rem;
  color: #222222;
  font-size: 0.875rem;
  margin-left: 0.3125rem;
}
ul.pagination li a, ul.pagination li button {
  display: block;
  padding: 0.0625rem 0.625rem 0.0625rem;
  color: #999999;
  background: none;
  border-radius: 3px;
  font-weight: normal;
  font-size: 1em;
  line-height: inherit;
  transition: background-color 300ms ease-out;
}
ul.pagination li:hover a,
ul.pagination li a:focus, ul.pagination li:hover button,
ul.pagination li button:focus {
  background: #e6e6e6;
}
ul.pagination li.unavailable a, ul.pagination li.unavailable button {
  cursor: default;
  color: #999999;
}
ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus {
  background: transparent;
}
ul.pagination li.current a, ul.pagination li.current button {
  background: #56284f;
  color: #FFFFFF;
  font-weight: bold;
  cursor: default;
}
ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus {
  background: #56284f;
}
ul.pagination li {
  float: left;
  display: block;
}

/* Pagination centred wrapper */
.pagination-centered {
  text-align: center;
}
.pagination-centered ul.pagination li {
  float: none;
  display: inline-block;
}

/* Panels */
.panel {
  border-style: solid;
  border-width: 1px;
  border-color: #d8d8d8;
  margin-bottom: 1.25rem;
  padding: 1.25rem;
  background: #f2f2f2;
  color: #333333;
}
.panel > :first-child {
  margin-top: 0;
}
.panel > :last-child {
  margin-bottom: 0;
}
.panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl {
  color: #333333;
}
.panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
  line-height: 1;
  margin-bottom: 0.625rem;
}
.panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader {
  line-height: 1.4;
}
.panel.callout {
  border-style: solid;
  border-width: 1px;
  border-color: #e7cbe2;
  margin-bottom: 1.25rem;
  padding: 1.25rem;
  background: #f8eff6;
  color: #333333;
}
.panel.callout > :first-child {
  margin-top: 0;
}
.panel.callout > :last-child {
  margin-bottom: 0;
}
.panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl {
  color: #333333;
}
.panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 {
  line-height: 1;
  margin-bottom: 0.625rem;
}
.panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader {
  line-height: 1.4;
}
.panel.callout a:not(.button) {
  color: #56284f;
}
.panel.callout a:not(.button):hover, .panel.callout a:not(.button):focus {
  color: #4a2244;
}
.panel.radius {
  border-radius: 3px;
}

/* Pricing Tables */
.pricing-table {
  border: solid 1px #DDDDDD;
  margin-left: 0;
  margin-bottom: 1.25rem;
}
.pricing-table * {
  list-style: none;
  line-height: 1;
}
.pricing-table .title {
  background-color: #333333;
  padding: 0.9375rem 1.25rem;
  text-align: center;
  color: #EEEEEE;
  font-weight: normal;
  font-size: 1rem;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
}
.pricing-table .price {
  background-color: #F6F6F6;
  padding: 0.9375rem 1.25rem;
  text-align: center;
  color: #333333;
  font-weight: normal;
  font-size: 2rem;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
}
.pricing-table .description {
  background-color: #FFFFFF;
  padding: 0.9375rem;
  text-align: center;
  color: #777777;
  font-size: 0.75rem;
  font-weight: normal;
  line-height: 1.4;
  border-bottom: dotted 1px #DDDDDD;
}
.pricing-table .bullet-item {
  background-color: #FFFFFF;
  padding: 0.9375rem;
  text-align: center;
  color: #333333;
  font-size: 0.875rem;
  font-weight: normal;
  border-bottom: dotted 1px #DDDDDD;
}
.pricing-table .cta-button {
  background-color: #FFFFFF;
  text-align: center;
  padding: 1.25rem 1.25rem 0;
}

/* Progress Bar */
.progress {
  background-color: #F6F6F6;
  height: 1.5625rem;
  border: 1px solid white;
  padding: 0.125rem;
  margin-bottom: 0.625rem;
}
.progress .meter {
  background: #56284f;
  height: 100%;
  display: block;
}
.progress.secondary .meter {
  background: #dbd9ca;
  height: 100%;
  display: block;
}
.progress.success .meter {
  background: #43AC6A;
  height: 100%;
  display: block;
}
.progress.alert .meter {
  background: #f04124;
  height: 100%;
  display: block;
}
.progress.radius {
  border-radius: 3px;
}
.progress.radius .meter {
  border-radius: 2px;
}
.progress.round {
  border-radius: 1000px;
}
.progress.round .meter {
  border-radius: 999px;
}

.range-slider {
  position: relative;
  border: 1px solid #DDDDDD;
  margin: 1.25rem 0;
  -ms-touch-action: none;
  touch-action: none;
  display: block;
  width: 100%;
  height: 1rem;
  background: #FAFAFA;
}
.range-slider.vertical-range {
  position: relative;
  border: 1px solid #DDDDDD;
  margin: 1.25rem 0;
  -ms-touch-action: none;
  touch-action: none;
  display: inline-block;
  width: 1rem;
  height: 12.5rem;
}
.range-slider.vertical-range .range-slider-handle {
  margin-top: 0;
  margin-left: -0.5rem;
  position: absolute;
  bottom: -10.5rem;
}
.range-slider.vertical-range .range-slider-active-segment {
  width: 0.875rem;
  height: auto;
  bottom: 0;
}
.range-slider.radius {
  background: #FAFAFA;
  border-radius: 3px;
}
.range-slider.radius .range-slider-handle {
  background: #56284f;
  border-radius: 3px;
}
.range-slider.radius .range-slider-handle:hover {
  background: #4c2346;
}
.range-slider.round {
  background: #FAFAFA;
  border-radius: 1000px;
}
.range-slider.round .range-slider-handle {
  background: #56284f;
  border-radius: 1000px;
}
.range-slider.round .range-slider-handle:hover {
  background: #4c2346;
}
.range-slider.disabled, .range-slider[disabled] {
  background: #FAFAFA;
  cursor: not-allowed;
  opacity: 0.7;
}
.range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle {
  background: #56284f;
  cursor: default;
  opacity: 0.7;
}
.range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover {
  background: #4c2346;
}

.range-slider-active-segment {
  display: inline-block;
  position: absolute;
  height: 0.875rem;
  background: #d9d7c7;
}

.range-slider-handle {
  display: inline-block;
  position: absolute;
  z-index: 1;
  top: -0.3125rem;
  width: 2rem;
  height: 1.375rem;
  border: 1px solid none;
  cursor: pointer;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  background: #56284f;
}
.range-slider-handle:hover {
  background: #4c2346;
}

.reveal-modal-bg {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1004;
  display: none;
  left: 0;
}

.reveal-modal {
  visibility: hidden;
  display: none;
  position: absolute;
  z-index: 1005;
  width: 100%;
  top: 0;
  border-radius: 3px;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.875rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
}
@media only screen and (max-width: 40em) {
  .reveal-modal {
    min-height: 100vh;
  }
}
.reveal-modal .column, .reveal-modal .columns {
  min-width: 0;
}
.reveal-modal > :first-child {
  margin-top: 0;
}
.reveal-modal > :last-child {
  margin-bottom: 0;
}
@media only screen and (min-width:40.063em) {
  .reveal-modal {
    width: 80%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal {
    top: 6.25rem;
  }
}
.reveal-modal.radius {
  border-radius: 3px;
}
.reveal-modal.round {
  border-radius: 1000px;
}
.reveal-modal.collapse {
  padding: 0;
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.tiny {
    width: 30%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.small {
    width: 40%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.medium {
    width: 60%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.large {
    width: 70%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.xlarge {
    width: 95%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
.reveal-modal.full {
  top: 0;
  left: 0;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  max-width: none !important;
  margin-left: 0 !important;
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.full {
    width: 100%;
    max-width: 75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
.reveal-modal.toback {
  z-index: 1003;
}
.reveal-modal .close-reveal-modal {
  font-size: 2.5rem;
  line-height: 1;
  position: absolute;
  top: 0.625rem;
  right: 1.375rem;
  color: #AAAAAA;
  font-weight: bold;
  cursor: pointer;
}

.side-nav {
  display: block;
  margin: 0;
  padding: 0.875rem 0;
  list-style-type: none;
  list-style-position: outside;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
}
.side-nav li {
  margin: 0 0 0.4375rem 0;
  font-size: 0.875rem;
  font-weight: normal;
}
.side-nav li a:not(.button) {
  display: block;
  color: #56284f;
  margin: 0;
  padding: 0.4375rem 0.875rem;
}
.side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
  background: hsla(0deg, 0%, 0%, 0.025);
  color: #a54d97;
}
.side-nav li.active > a:first-child:not(.button) {
  color: #a54d97;
  font-weight: normal;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
}
.side-nav li.divider {
  border-top: 1px solid;
  height: 0;
  padding: 0;
  list-style: none;
  border-top-color: white;
}
.side-nav li.heading {
  color: #56284f;
  font-size: 0.875rem;
  font-weight: bold;
  text-transform: uppercase;
}

.split.button {
  position: relative;
  padding-right: 5.0625rem;
}
.split.button span {
  display: block;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  border-left: solid 1px;
}
.split.button span:after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  display: block;
  border-style: inset;
  top: 50%;
  left: 50%;
}
.split.button span:active {
  background-color: rgba(0, 0, 0, 0.1);
}
.split.button span {
  border-left-color: rgba(255, 255, 255, 0.5);
}
.split.button span {
  width: 3.09375rem;
}
.split.button span:after {
  border-top-style: solid;
  border-width: 0.375rem;
  top: 48%;
  margin-left: -0.375rem;
}
.split.button span:after {
  border-color: #FFFFFF transparent transparent transparent;
}
.split.button.secondary span {
  border-left-color: rgba(255, 255, 255, 0.5);
}
.split.button.secondary span:after {
  border-color: #FFFFFF transparent transparent transparent;
}
.split.button.alert span {
  border-left-color: rgba(255, 255, 255, 0.5);
}
.split.button.success span {
  border-left-color: rgba(255, 255, 255, 0.5);
}
.split.button.tiny {
  padding-right: 3.75rem;
}
.split.button.tiny span {
  width: 2.25rem;
}
.split.button.tiny span:after {
  border-top-style: solid;
  border-width: 0.375rem;
  top: 48%;
  margin-left: -0.375rem;
}
.split.button.small {
  padding-right: 4.375rem;
}
.split.button.small span {
  width: 2.625rem;
}
.split.button.small span:after {
  border-top-style: solid;
  border-width: 0.4375rem;
  top: 48%;
  margin-left: -0.375rem;
}
.split.button.large {
  padding-right: 5.5rem;
}
.split.button.large span {
  width: 3.4375rem;
}
.split.button.large span:after {
  border-top-style: solid;
  border-width: 0.3125rem;
  top: 48%;
  margin-left: -0.375rem;
}
.split.button.expand {
  padding-left: 2rem;
}
.split.button.secondary span:after {
  border-color: #333333 transparent transparent transparent;
}
.split.button.radius span {
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.split.button.round span {
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px;
}
.split.button.no-pip span:before {
  border-style: none;
}
.split.button.no-pip span:after {
  border-style: none;
}
.split.button.no-pip span > i {
  top: 50%;
  display: block;
  position: absolute;
  left: 50%;
  margin-left: -0.28889em;
  margin-top: -0.48889em;
}

.sub-nav {
  display: block;
  width: auto;
  overflow: hidden;
  margin-bottom: -0.25rem 0 1.125rem;
  padding-top: 0.25rem;
}
.sub-nav dt {
  text-transform: uppercase;
}
.sub-nav dt,
.sub-nav dd,
.sub-nav li {
  float: left;
  margin-left: 1rem;
  margin-bottom: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-size: 0.875rem;
  color: #999999;
}
.sub-nav dt a,
.sub-nav dd a,
.sub-nav li a {
  text-decoration: none;
  color: #999999;
  padding: 0.1875rem 1rem;
}
.sub-nav dt a:hover,
.sub-nav dd a:hover,
.sub-nav li a:hover {
  color: #737373;
}
.sub-nav dt.active a,
.sub-nav dd.active a,
.sub-nav li.active a {
  border-radius: 3px;
  font-weight: normal;
  background: #56284f;
  padding: 0.1875rem 1rem;
  cursor: default;
  color: #FFFFFF;
}
.sub-nav dt.active a:hover,
.sub-nav dd.active a:hover,
.sub-nav li.active a:hover {
  background: #4a2244;
}

.switch {
  padding: 0;
  border: none;
  position: relative;
  outline: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.switch label {
  display: block;
  margin-bottom: 1rem;
  position: relative;
  color: transparent;
  background: #DDDDDD;
  text-indent: 100%;
  width: 4rem;
  height: 2rem;
  cursor: pointer;
  transition: left 0.15s ease-out;
}
.switch input {
  opacity: 0;
  position: absolute;
  top: 9px;
  left: 10px;
  padding: 0;
}
.switch input + label {
  margin-left: 0;
  margin-right: 0;
}
.switch label:after {
  content: "";
  display: block;
  background: #FFFFFF;
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  width: 1.5rem;
  height: 1.5rem;
  -webkit-transition: left 0.15s ease-out;
  -moz-transition: left 0.15s ease-out;
  -o-transition: translate3d(0, 0, 0);
  transition: left 0.15s ease-out;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.switch input:checked + label {
  background: #56284f;
}
.switch input:checked + label:after {
  left: 2.25rem;
}
.switch label {
  width: 4rem;
  height: 2rem;
}
.switch label:after {
  width: 1.5rem;
  height: 1.5rem;
}
.switch input:checked + label:after {
  left: 2.25rem;
}
.switch label {
  color: transparent;
  background: #DDDDDD;
}
.switch label:after {
  background: #FFFFFF;
}
.switch input:checked + label {
  background: #56284f;
}
.switch.large label {
  width: 5rem;
  height: 2.5rem;
}
.switch.large label:after {
  width: 2rem;
  height: 2rem;
}
.switch.large input:checked + label:after {
  left: 2.75rem;
}
.switch.small label {
  width: 3.5rem;
  height: 1.75rem;
}
.switch.small label:after {
  width: 1.25rem;
  height: 1.25rem;
}
.switch.small input:checked + label:after {
  left: 2rem;
}
.switch.tiny label {
  width: 3rem;
  height: 1.5rem;
}
.switch.tiny label:after {
  width: 1rem;
  height: 1rem;
}
.switch.tiny input:checked + label:after {
  left: 1.75rem;
}
.switch.radius label {
  border-radius: 4px;
}
.switch.radius label:after {
  border-radius: 3px;
}
.switch.round {
  border-radius: 1000px;
}
.switch.round label {
  border-radius: 2rem;
}
.switch.round label:after {
  border-radius: 2rem;
}

table {
  background: #FFFFFF;
  margin-bottom: 1.25rem;
  border: solid 1px #DDDDDD;
  table-layout: auto;
}
table caption {
  background: transparent;
  color: #222222;
  font-size: 1rem;
  font-weight: bold;
}
table thead {
  background: #F5F5F5;
}
table thead tr th,
table thead tr td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-size: 0.875rem;
  font-weight: bold;
  color: #222222;
}
table tfoot {
  background: #F5F5F5;
}
table tfoot tr th,
table tfoot tr td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-size: 0.875rem;
  font-weight: bold;
  color: #222222;
}
table tr th,
table tr td {
  padding: 0.5625rem 0.625rem;
  font-size: 0.875rem;
  color: #222222;
  text-align: left;
}
table tr.even, table tr.alt, table tr:nth-of-type(even) {
  background: #F9F9F9;
}
table thead tr th,
table tfoot tr th,
table tfoot tr td,
table tbody tr th,
table tbody tr td,
table tr td {
  display: table-cell;
  line-height: 1.125rem;
}

.tabs {
  margin-bottom: 0 !important;
  margin-left: 0;
}
.tabs:before, .tabs:after {
  content: " ";
  display: table;
}
.tabs:after {
  clear: both;
}
.tabs dd, .tabs .tab-title {
  position: relative;
  margin-bottom: 0 !important;
  list-style: none;
  float: left;
}
.tabs dd > a, .tabs .tab-title > a {
  display: block;
  background-color: #EFEFEF;
  color: #222222;
  padding: 1rem 2rem;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
}
.tabs dd > a:hover, .tabs .tab-title > a:hover {
  background-color: #e1e1e1;
}
.tabs dd > a:focus, .tabs .tab-title > a:focus {
  outline: none;
}
.tabs dd.active a, .tabs .tab-title.active a {
  background-color: #FFFFFF;
  color: #222222;
}
.tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.tabs.vertical dd, .tabs.vertical .tab-title {
  position: inherit;
  float: none;
  display: block;
  top: auto;
}

.tabs-content {
  margin-bottom: 1.5rem;
  width: 100%;
}
.tabs-content:before, .tabs-content:after {
  content: " ";
  display: table;
}
.tabs-content:after {
  clear: both;
}
.tabs-content > .content {
  display: none;
  float: left;
  padding: 0.9375rem 0;
  width: 100%;
}
.tabs-content > .content.active {
  display: block;
  float: none;
}
.tabs-content > .content.contained {
  padding: 0.9375rem;
}
.tabs-content.vertical {
  display: block;
}
.tabs-content.vertical > .content {
  padding: 0 0.9375rem;
}

@media only screen and (min-width:40.063em) {
  .tabs.vertical {
    width: 20%;
    max-width: 20%;
    float: left;
    margin: 0 0 1.25rem;
  }
  .tabs-content.vertical {
    width: 80%;
    max-width: 80%;
    float: left;
    margin-left: -1px;
    padding-left: 1rem;
  }
}
.no-js .tabs-content > .content {
  display: block;
  float: none;
}

/* Image Thumbnails */
.th {
  line-height: 0;
  display: inline-block;
  border: solid 4px #FFFFFF;
  max-width: 100%;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
  transition: all 200ms ease-out;
}
.th:hover, .th:focus {
  box-shadow: 0 0 6px 1px rgba(86, 40, 79, 0.5);
}
.th.radius {
  border-radius: 3px;
}

/* Tooltips */
.has-tip {
  border-bottom: dotted 1px #CCCCCC;
  cursor: help;
  font-weight: bold;
  color: #333333;
}
.has-tip:hover, .has-tip:focus {
  border-bottom: dotted 1px #271224;
  color: #56284f;
}
.has-tip.tip-left, .has-tip.tip-right {
  float: none !important;
}

.tooltip {
  display: none;
  position: absolute;
  z-index: 1006;
  font-weight: normal;
  font-size: 0.875rem;
  line-height: 1.3;
  padding: 0.75rem;
  max-width: 300px;
  left: 50%;
  width: 100%;
  color: #FFFFFF;
  background: #333333;
}
.tooltip > .nub {
  display: block;
  left: 5px;
  position: absolute;
  width: 0;
  height: 0;
  border: solid 5px;
  border-color: transparent transparent #333333 transparent;
  top: -10px;
  pointer-events: none;
}
.tooltip > .nub.rtl {
  left: auto;
  right: 5px;
}
.tooltip.radius {
  border-radius: 3px;
}
.tooltip.round {
  border-radius: 1000px;
}
.tooltip.round > .nub {
  left: 2rem;
}
.tooltip.opened {
  color: #56284f !important;
  border-bottom: dotted 1px #271224 !important;
}

.tap-to-close {
  display: block;
  font-size: 0.625rem;
  color: #777777;
  font-weight: normal;
}

@media only screen and (min-width:40.063em) {
  .tooltip > .nub {
    border-color: transparent transparent #333333 transparent;
    top: -10px;
  }
  .tooltip.tip-top > .nub {
    border-color: #333333 transparent transparent transparent;
    top: auto;
    bottom: -10px;
  }
  .tooltip.tip-left, .tooltip.tip-right {
    float: none !important;
  }
  .tooltip.tip-left > .nub {
    border-color: transparent transparent transparent #333333;
    right: -10px;
    left: auto;
    top: 50%;
    margin-top: -5px;
  }
  .tooltip.tip-right > .nub {
    border-color: transparent #333333 transparent transparent;
    right: auto;
    left: -10px;
    top: 50%;
    margin-top: -5px;
  }
}
meta.foundation-mq-topbar {
  font-family: "/only screen and (min-width:40.063em)/";
  width: 40.063em;
}

/* Wrapped around .top-bar to contain to grid width */
.contain-to-grid {
  width: 100%;
  background: #dbd9ca;
}
.contain-to-grid .top-bar {
  margin-bottom: 0;
}

.fixed {
  width: 100%;
  left: 0;
  position: fixed;
  top: 0;
  z-index: 99;
}
.fixed.expanded:not(.top-bar) {
  overflow-y: auto;
  height: auto;
  width: 100%;
  max-height: 100%;
}
.fixed.expanded:not(.top-bar) .title-area {
  position: fixed;
  width: 100%;
  z-index: 99;
}
.fixed.expanded:not(.top-bar) .top-bar-section {
  z-index: 98;
  margin-top: 2.8125rem;
}

.top-bar {
  overflow: hidden;
  height: 2.8125rem;
  line-height: 2.8125rem;
  position: relative;
  background: #dbd9ca;
  margin-bottom: 0;
}
.top-bar ul {
  margin-bottom: 0;
  list-style: none;
}
.top-bar .row {
  max-width: none;
}
.top-bar form,
.top-bar input {
  margin-bottom: 0;
}
.top-bar input {
  height: 1.75rem;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
  font-size: 0.75rem;
}
.top-bar .button, .top-bar button {
  padding-top: 0.4125rem;
  padding-bottom: 0.4125rem;
  margin-bottom: 0;
  font-size: 0.75rem;
}
@media only screen and (max-width: 40em) {
  .top-bar .button, .top-bar button {
    position: relative;
    top: -1px;
  }
}
.top-bar .title-area {
  position: relative;
  margin: 0;
}
.top-bar .name {
  height: 2.8125rem;
  margin: 0;
  font-size: 16px;
}
.top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span {
  line-height: 2.8125rem;
  font-size: 1.0625rem;
  margin: 0;
}
.top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a {
  font-weight: normal;
  color: #56284f;
  width: 75%;
  display: block;
  padding: 0 0.9375rem;
}
.top-bar .toggle-topbar {
  position: absolute;
  right: 0;
  top: 0;
}
.top-bar .toggle-topbar a {
  color: #56284f;
  text-transform: uppercase;
  font-size: 0.8125rem;
  font-weight: bold;
  position: relative;
  display: block;
  padding: 0 0.9375rem;
  height: 2.8125rem;
  line-height: 2.8125rem;
}
.top-bar .toggle-topbar.menu-icon {
  top: 50%;
  margin-top: -16px;
}
.top-bar .toggle-topbar.menu-icon a {
  height: 34px;
  line-height: 33px;
  padding: 0 2.5rem 0 0.9375rem;
  color: #56284f;
  position: relative;
}
.top-bar .toggle-topbar.menu-icon a span::after {
  content: "";
  position: absolute;
  display: block;
  height: 0;
  top: 50%;
  margin-top: -8px;
  right: 0.9375rem;
  box-shadow: 0 0 0 1px #56284f, 0 7px 0 1px #56284f, 0 14px 0 1px #56284f;
  width: 16px;
}
.top-bar .toggle-topbar.menu-icon a span:hover:after {
  box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px "";
}
.top-bar.expanded {
  height: auto;
  background: transparent;
}
.top-bar.expanded .title-area {
  background: #dbd9ca;
}
.top-bar.expanded .toggle-topbar a {
  color: #56284f;
}
.top-bar.expanded .toggle-topbar a span::after {
  box-shadow: 0 0 0 1px #56284f, 0 7px 0 1px #56284f, 0 14px 0 1px #56284f;
}

.top-bar-section {
  left: 0;
  position: relative;
  width: auto;
  transition: left 300ms ease-out;
}
.top-bar-section ul {
  padding: 0;
  width: 100%;
  height: auto;
  display: block;
  font-size: 16px;
  margin: 0;
}
.top-bar-section .divider,
.top-bar-section [role=separator] {
  border-top: solid 1px #7d7955;
  clear: both;
  height: 1px;
  width: 100%;
}
.top-bar-section ul li {
  background: #56284f;
}
.top-bar-section ul li > a {
  display: block;
  width: 100%;
  color: #56284f;
  padding: 12px 0 12px 0;
  padding-left: 0.9375rem;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.0625rem;
  font-weight: normal;
  text-transform: none;
}
.top-bar-section ul li > a.button {
  font-size: 1.0625rem;
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  background-color: #56284f;
  border-color: #45203f;
  color: #FFFFFF;
}
.top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
  background-color: #45203f;
}
.top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.secondary {
  background-color: #dbd9ca;
  border-color: #b9b598;
  color: #333333;
}
.top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
  background-color: #b9b598;
}
.top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.success {
  background-color: #43AC6A;
  border-color: #368a55;
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
  background-color: #368a55;
}
.top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.alert {
  background-color: #f04124;
  border-color: #cf2a0e;
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
  background-color: #cf2a0e;
}
.top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.warning {
  background-color: #f08a24;
  border-color: #cf6e0e;
  color: #FFFFFF;
}
.top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
  background-color: #cf6e0e;
}
.top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > button {
  font-size: 1.0625rem;
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  background-color: #56284f;
  border-color: #45203f;
  color: #FFFFFF;
}
.top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
  background-color: #45203f;
}
.top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > button.secondary {
  background-color: #dbd9ca;
  border-color: #b9b598;
  color: #333333;
}
.top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
  background-color: #b9b598;
}
.top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > button.success {
  background-color: #43AC6A;
  border-color: #368a55;
  color: #FFFFFF;
}
.top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
  background-color: #368a55;
}
.top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > button.alert {
  background-color: #f04124;
  border-color: #cf2a0e;
  color: #FFFFFF;
}
.top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
  background-color: #cf2a0e;
}
.top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
  color: #FFFFFF;
}
.top-bar-section ul li > button.warning {
  background-color: #f08a24;
  border-color: #cf6e0e;
  color: #FFFFFF;
}
.top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
  background-color: #cf6e0e;
}
.top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
  color: #FFFFFF;
}
.top-bar-section ul li:hover:not(.has-form) > a {
  background-color: #56284f;
  background: #56284f;
  color: #FFFFFF;
}
.top-bar-section ul li.active > a {
  background: #56284f;
  color: #FFFFFF;
}
.top-bar-section ul li.active > a:hover {
  background: #4a2244;
  color: #FFFFFF;
}
.top-bar-section .has-form {
  padding: 0.9375rem;
}
.top-bar-section .has-dropdown {
  position: relative;
}
.top-bar-section .has-dropdown > a:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent transparent transparent rgba(255, 255, 255, 0.4);
  border-left-style: solid;
  margin-right: 0.9375rem;
  margin-top: -4.5px;
  position: absolute;
  top: 50%;
  right: 0;
}
.top-bar-section .has-dropdown.moved {
  position: static;
}
.top-bar-section .has-dropdown.moved > .dropdown {
  display: block;
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto;
  position: absolute !important;
  width: 100%;
}
.top-bar-section .has-dropdown.moved > a:after {
  display: none;
}
.top-bar-section .dropdown {
  padding: 0;
  position: absolute;
  left: 100%;
  top: 0;
  z-index: 99;
  display: block;
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}
.top-bar-section .dropdown li {
  width: 100%;
  height: auto;
}
.top-bar-section .dropdown li a {
  font-weight: normal;
  padding: 8px 0.9375rem;
}
.top-bar-section .dropdown li a.parent-link {
  font-weight: normal;
}
.top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
  margin-bottom: 0;
  margin-top: 0;
  font-size: 1.125rem;
}
.top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
  color: #56284f;
  display: block;
}
.top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
  background: none;
}
.top-bar-section .dropdown li.has-form {
  padding: 8px 0.9375rem;
}
.top-bar-section .dropdown li .button, .top-bar-section .dropdown li button {
  top: auto;
}
.top-bar-section .dropdown label {
  padding: 8px 0.9375rem 2px;
  margin-bottom: 0;
  text-transform: uppercase;
  color: #777777;
  font-weight: bold;
  font-size: 0.625rem;
}

.js-generated {
  display: block;
}

@media only screen and (min-width:40.063em) {
  .top-bar {
    background: #dbd9ca;
    overflow: visible;
  }
  .top-bar:before, .top-bar:after {
    content: " ";
    display: table;
  }
  .top-bar:after {
    clear: both;
  }
  .top-bar .toggle-topbar {
    display: none;
  }
  .top-bar .title-area {
    float: left;
  }
  .top-bar .name h1 a,
  .top-bar .name h2 a,
  .top-bar .name h3 a,
  .top-bar .name h4 a,
  .top-bar .name h5 a,
  .top-bar .name h6 a {
    width: auto;
  }
  .top-bar input,
  .top-bar .button,
  .top-bar button {
    font-size: 0.875rem;
    position: relative;
    height: 1.75rem;
    top: 0.53125rem;
  }
  .top-bar.expanded {
    background: #dbd9ca;
  }
  .contain-to-grid .top-bar {
    max-width: 75rem;
    margin: 0 auto;
    margin-bottom: 0;
  }
  .top-bar-section {
    transition: none 0 0;
    left: 0 !important;
  }
  .top-bar-section ul {
    width: auto;
    height: auto !important;
    display: inline;
  }
  .top-bar-section ul li {
    float: left;
  }
  .top-bar-section ul li .js-generated {
    display: none;
  }
  .top-bar-section li.hover > a:not(.button) {
    background-color: #56284f;
    background: #56284f;
    color: #FFFFFF;
  }
  .top-bar-section li:not(.has-form) a:not(.button) {
    padding: 0 0.9375rem;
    line-height: 2.8125rem;
    background: #dbd9ca;
  }
  .top-bar-section li:not(.has-form) a:not(.button):hover {
    background-color: #56284f;
    background: #56284f;
  }
  .top-bar-section li.active:not(.has-form) a:not(.button) {
    padding: 0 0.9375rem;
    line-height: 2.8125rem;
    color: #FFFFFF;
    background: #56284f;
  }
  .top-bar-section li.active:not(.has-form) a:not(.button):hover {
    background: #4a2244;
    color: #FFFFFF;
  }
  .top-bar-section .has-dropdown > a {
    padding-right: 2.1875rem !important;
  }
  .top-bar-section .has-dropdown > a:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent;
    border-top-style: solid;
    margin-top: -2.5px;
    top: 1.40625rem;
  }
  .top-bar-section .has-dropdown.moved {
    position: relative;
  }
  .top-bar-section .has-dropdown.moved > .dropdown {
    display: block;
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
  }
  .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
    display: block;
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    position: absolute !important;
  }
  .top-bar-section .has-dropdown > a:focus + .dropdown {
    display: block;
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    position: absolute !important;
  }
  .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
    border: none;
    content: "»";
    top: 1rem;
    margin-top: -1px;
    right: 5px;
    line-height: 1.2;
  }
  .top-bar-section .dropdown {
    left: 0;
    top: auto;
    background: transparent;
    min-width: 100%;
  }
  .top-bar-section .dropdown li a {
    color: #fff;
    line-height: 2.8125rem;
    white-space: nowrap;
    padding: 12px 0.9375rem;
    background: #56284f;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
    color: #fff;
    background: #56284f;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
    color: #FFFFFF;
    background-color: #56284f;
    background: #333333;
  }
  .top-bar-section .dropdown li label {
    white-space: nowrap;
    background: #56284f;
  }
  .top-bar-section .dropdown li .dropdown {
    left: 100%;
    top: 0;
  }
  .top-bar-section > ul > .divider, .top-bar-section > ul > [role=separator] {
    border-bottom: none;
    border-top: none;
    border-right: solid 1px #e0ded1;
    clear: none;
    height: 2.8125rem;
    width: 0;
  }
  .top-bar-section .has-form {
    background: #dbd9ca;
    padding: 0 0.9375rem;
    height: 2.8125rem;
  }
  .top-bar-section .right li .dropdown {
    left: auto;
    right: 0;
  }
  .top-bar-section .right li .dropdown li .dropdown {
    right: 100%;
  }
  .top-bar-section .left li .dropdown {
    right: auto;
    left: 0;
  }
  .top-bar-section .left li .dropdown li .dropdown {
    left: 100%;
  }
  .no-js .top-bar-section ul li:hover > a {
    background-color: #56284f;
    background: #56284f;
    color: #FFFFFF;
  }
  .no-js .top-bar-section ul li:active > a {
    background: #56284f;
    color: #FFFFFF;
  }
  .no-js .top-bar-section .has-dropdown:hover > .dropdown {
    display: block;
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    position: absolute !important;
  }
  .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
    display: block;
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    position: absolute !important;
  }
}
.text-left {
  text-align: left !important;
}

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

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

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

@media only screen and (max-width: 40em) {
  .small-only-text-left {
    text-align: left !important;
  }
  .small-only-text-right {
    text-align: right !important;
  }
  .small-only-text-center {
    text-align: center !important;
  }
  .small-only-text-justify {
    text-align: justify !important;
  }
}
@media only screen {
  .small-text-left {
    text-align: left !important;
  }
  .small-text-right {
    text-align: right !important;
  }
  .small-text-center {
    text-align: center !important;
  }
  .small-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:40.063em) and (max-width:64em) {
  .medium-only-text-left {
    text-align: left !important;
  }
  .medium-only-text-right {
    text-align: right !important;
  }
  .medium-only-text-center {
    text-align: center !important;
  }
  .medium-only-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:40.063em) {
  .medium-text-left {
    text-align: left !important;
  }
  .medium-text-right {
    text-align: right !important;
  }
  .medium-text-center {
    text-align: center !important;
  }
  .medium-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:64.063em) and (max-width:90em) {
  .large-only-text-left {
    text-align: left !important;
  }
  .large-only-text-right {
    text-align: right !important;
  }
  .large-only-text-center {
    text-align: center !important;
  }
  .large-only-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:64.063em) {
  .large-text-left {
    text-align: left !important;
  }
  .large-text-right {
    text-align: right !important;
  }
  .large-text-center {
    text-align: center !important;
  }
  .large-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:90.063em) and (max-width:120em) {
  .xlarge-only-text-left {
    text-align: left !important;
  }
  .xlarge-only-text-right {
    text-align: right !important;
  }
  .xlarge-only-text-center {
    text-align: center !important;
  }
  .xlarge-only-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:90.063em) {
  .xlarge-text-left {
    text-align: left !important;
  }
  .xlarge-text-right {
    text-align: right !important;
  }
  .xlarge-text-center {
    text-align: center !important;
  }
  .xlarge-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:120.063em) and (max-width:99999999em) {
  .xxlarge-only-text-left {
    text-align: left !important;
  }
  .xxlarge-only-text-right {
    text-align: right !important;
  }
  .xxlarge-only-text-center {
    text-align: center !important;
  }
  .xxlarge-only-text-justify {
    text-align: justify !important;
  }
}
@media only screen and (min-width:120.063em) {
  .xxlarge-text-left {
    text-align: left !important;
  }
  .xxlarge-text-right {
    text-align: right !important;
  }
  .xxlarge-text-center {
    text-align: center !important;
  }
  .xxlarge-text-justify {
    text-align: justify !important;
  }
}
/* Typography resets */
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

/* Default Link Styles */
a {
  color: #56284f;
  text-decoration: none;
  line-height: inherit;
}
a:hover, a:focus {
  color: #4a2244;
}
a img {
  border: none;
}

/* Default paragraph styles */
p {
  font-family: inherit;
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  text-rendering: optimizeLegibility;
}
p.lead {
  font-size: 1.21875rem;
  line-height: 1.6;
}
p aside {
  font-size: 0.875rem;
  line-height: 1.35;
  font-style: italic;
}

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  color: #222222;
  text-rendering: optimizeLegibility;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
  font-size: 60%;
  color: #6f6f6f;
  line-height: 0;
}

h1 {
  font-size: 1.875rem;
}

h2 {
  font-size: 1.125rem;
}

h3 {
  font-size: 1.3125rem;
}

h4 {
  font-size: 1.1875rem;
}

h5 {
  font-size: 1.25rem;
}

h6 {
  font-size: 1rem;
}

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

hr {
  border: solid #DDDDDD;
  border-width: 1px 0 0;
  clear: both;
  margin: 1.25rem 0 1.1875rem;
  height: 0;
}

/* Helpful Typography Defaults */
em,
i {
  font-style: italic;
  line-height: inherit;
}

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

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

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #333333;
  background-color: #f4f4ef;
  border-width: 1px;
  border-style: solid;
  border-color: #e1dfd2;
  padding: 0.125rem 0.3125rem 0.0625rem;
}

/* Lists */
ul,
ol,
dl {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  list-style-position: outside;
  font-family: inherit;
}

ul {
  margin-left: 1.1rem;
}
ul.no-bullet {
  margin-left: 0;
}
ul.no-bullet li ul,
ul.no-bullet li ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
  list-style: none;
}

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}
ul.square li ul, ul.circle li ul, ul.disc li ul {
  list-style: inherit;
}
ul.square {
  list-style-type: square;
  margin-left: 1.1rem;
}
ul.circle {
  list-style-type: circle;
  margin-left: 1.1rem;
}
ul.disc {
  list-style-type: disc;
  margin-left: 1.1rem;
}
ul.no-bullet {
  list-style: none;
}

/* Ordered Lists */
ol {
  margin-left: 1.4rem;
}
ol li ul,
ol li ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}

/* Definition Lists */
dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold;
}
dl dd {
  margin-bottom: 0.75rem;
}

/* Abbreviations */
abbr,
acronym {
  text-transform: uppercase;
  font-size: 90%;
  color: #222;
  cursor: help;
}

abbr {
  text-transform: none;
}
abbr[title] {
  border-bottom: 1px dotted #DDDDDD;
}

/* Blockquotes */
blockquote {
  margin: 0 0 1.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #DDDDDD;
}
blockquote cite {
  display: block;
  font-size: 0.8125rem;
  color: #555555;
}
blockquote cite:before {
  content: "— ";
}
blockquote cite a,
blockquote cite a:visited {
  color: #555555;
}

blockquote,
blockquote p {
  line-height: 1.6;
  color: #6f6f6f;
}

/* Microformats */
.vcard {
  display: inline-block;
  margin: 0 0 1.25rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.625rem 0.75rem;
}
.vcard li {
  margin: 0;
  display: block;
}
.vcard .fn {
  font-weight: bold;
  font-size: 0.9375rem;
}

.vevent .summary {
  font-weight: bold;
}
.vevent abbr {
  cursor: default;
  text-decoration: none;
  font-weight: bold;
  border: none;
  padding: 0 0.0625rem;
}

@media only screen and (min-width:40.063em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4;
  }
  h1 {
    font-size: 2.5rem;
  }
  h2 {
    font-size: 1.75rem;
  }
  h3 {
    font-size: 1.625rem;
  }
  h4 {
    font-size: 1.5rem;
  }
  h5 {
    font-size: 1.25rem;
  }
  h6 {
    font-size: 1rem;
  }
}
.off-canvas-wrap {
  -webkit-backface-visibility: hidden;
  position: relative;
  width: 100%;
  overflow: hidden;
}
.off-canvas-wrap.move-right, .off-canvas-wrap.move-left {
  min-height: 100%;
  -webkit-overflow-scrolling: touch;
}

.inner-wrap {
  position: relative;
  width: 100%;
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease;
}
.inner-wrap:before, .inner-wrap:after {
  content: " ";
  display: table;
}
.inner-wrap:after {
  clear: both;
}

.tab-bar {
  -webkit-backface-visibility: hidden;
  background: #333333;
  color: #FFFFFF;
  height: 2.8125rem;
  line-height: 2.8125rem;
  position: relative;
}
.tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
  color: #FFFFFF;
  font-weight: bold;
  line-height: 2.8125rem;
  margin: 0;
}
.tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
  font-size: 1.25rem;
}

.left-small {
  width: 2.8125rem;
  height: 2.8125rem;
  position: absolute;
  top: 0;
  border-right: solid 1px #1a1a1a;
  left: 0;
}

.right-small {
  width: 2.8125rem;
  height: 2.8125rem;
  position: absolute;
  top: 0;
  border-left: solid 1px #1a1a1a;
  right: 0;
}

.tab-bar-section {
  padding: 0 0.625rem;
  position: absolute;
  text-align: center;
  height: 2.8125rem;
  top: 0;
}
@media only screen and (min-width:40.063em) {
  .tab-bar-section.left {
    text-align: left;
  }
  .tab-bar-section.right {
    text-align: right;
  }
}
.tab-bar-section.left {
  left: 0;
  right: 2.8125rem;
}
.tab-bar-section.right {
  left: 2.8125rem;
  right: 0;
}
.tab-bar-section.middle {
  left: 2.8125rem;
  right: 2.8125rem;
}

.tab-bar .menu-icon {
  text-indent: 2.1875rem;
  width: 2.8125rem;
  height: 2.8125rem;
  display: block;
  padding: 0;
  color: #FFFFFF;
  position: relative;
  transform: translate3d(0, 0, 0);
}
.tab-bar .menu-icon span::after {
  content: "";
  position: absolute;
  display: block;
  height: 0;
  top: 50%;
  margin-top: -0.5rem;
  left: 0.90625rem;
  box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
  width: 1rem;
}
.tab-bar .menu-icon span:hover:after {
  box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3;
}

.left-off-canvas-menu {
  -webkit-backface-visibility: hidden;
  width: 15.625rem;
  top: 0;
  bottom: 0;
  position: absolute;
  overflow-x: hidden;
  overflow-y: auto;
  background: #333333;
  z-index: 1001;
  box-sizing: content-box;
  transition: transform 500ms ease 0s;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  -ms-transform: translate(-100%, 0);
  -webkit-transform: translate3d(-100%, 0, 0);
  -moz-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  -o-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  left: 0;
}
.left-off-canvas-menu * {
  -webkit-backface-visibility: hidden;
}

.right-off-canvas-menu {
  -webkit-backface-visibility: hidden;
  width: 15.625rem;
  top: 0;
  bottom: 0;
  position: absolute;
  overflow-x: hidden;
  overflow-y: auto;
  background: #333333;
  z-index: 1001;
  box-sizing: content-box;
  transition: transform 500ms ease 0s;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  -ms-transform: translate(100%, 0);
  -webkit-transform: translate3d(100%, 0, 0);
  -moz-transform: translate3d(100%, 0, 0);
  -ms-transform: translate3d(100%, 0, 0);
  -o-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  right: 0;
}
.right-off-canvas-menu * {
  -webkit-backface-visibility: hidden;
}

ul.off-canvas-list {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
ul.off-canvas-list li label {
  display: block;
  padding: 0.3rem 0.9375rem;
  color: #999999;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: bold;
  background: #444444;
  border-top: 1px solid #5e5e5e;
  border-bottom: none;
  margin: 0;
}
ul.off-canvas-list li a {
  display: block;
  padding: 0.6666666667rem;
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid #262626;
  transition: background 300ms ease;
}
ul.off-canvas-list li a:hover {
  background: #242424;
}

.move-right > .inner-wrap {
  -ms-transform: translate(15.625rem, 0);
  -webkit-transform: translate3d(15.625rem, 0, 0);
  -moz-transform: translate3d(15.625rem, 0, 0);
  -ms-transform: translate3d(15.625rem, 0, 0);
  -o-transform: translate3d(15.625rem, 0, 0);
  transform: translate3d(15.625rem, 0, 0);
}
.move-right .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  transition: background 300ms ease;
  cursor: pointer;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  display: block;
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1002;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@media only screen and (min-width:40.063em) {
  .move-right .exit-off-canvas:hover {
    background: rgba(255, 255, 255, 0.05);
  }
}

.move-left > .inner-wrap {
  -ms-transform: translate(-15.625rem, 0);
  -webkit-transform: translate3d(-15.625rem, 0, 0);
  -moz-transform: translate3d(-15.625rem, 0, 0);
  -ms-transform: translate3d(-15.625rem, 0, 0);
  -o-transform: translate3d(-15.625rem, 0, 0);
  transform: translate3d(-15.625rem, 0, 0);
}
.move-left .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  transition: background 300ms ease;
  cursor: pointer;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  display: block;
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1002;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@media only screen and (min-width:40.063em) {
  .move-left .exit-off-canvas:hover {
    background: rgba(255, 255, 255, 0.05);
  }
}

.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu {
  -ms-transform: none;
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  z-index: 1003;
}
.offcanvas-overlap .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  transition: background 300ms ease;
  cursor: pointer;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  display: block;
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1002;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@media only screen and (min-width:40.063em) {
  .offcanvas-overlap .exit-off-canvas:hover {
    background: rgba(255, 255, 255, 0.05);
  }
}

.offcanvas-overlap-left .right-off-canvas-menu {
  -ms-transform: none;
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  z-index: 1003;
}
.offcanvas-overlap-left .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  transition: background 300ms ease;
  cursor: pointer;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  display: block;
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1002;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@media only screen and (min-width:40.063em) {
  .offcanvas-overlap-left .exit-off-canvas:hover {
    background: rgba(255, 255, 255, 0.05);
  }
}

.offcanvas-overlap-right .left-off-canvas-menu {
  -ms-transform: none;
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  z-index: 1003;
}
.offcanvas-overlap-right .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  transition: background 300ms ease;
  cursor: pointer;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  display: block;
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1002;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@media only screen and (min-width:40.063em) {
  .offcanvas-overlap-right .exit-off-canvas:hover {
    background: rgba(255, 255, 255, 0.05);
  }
}

.no-csstransforms .left-off-canvas-menu {
  left: -15.625rem;
}
.no-csstransforms .right-off-canvas-menu {
  right: -15.625rem;
}
.no-csstransforms .move-left > .inner-wrap {
  right: 15.625rem;
}
.no-csstransforms .move-right > .inner-wrap {
  left: 15.625rem;
}

.left-submenu {
  -webkit-backface-visibility: hidden;
  width: 15.625rem;
  top: 0;
  bottom: 0;
  position: absolute;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: #333333;
  z-index: 1002;
  box-sizing: content-box;
  -webkit-overflow-scrolling: touch;
  -ms-transform: translate(-100%, 0);
  -webkit-transform: translate3d(-100%, 0, 0);
  -moz-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  -o-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  left: 0;
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease;
}
.left-submenu * {
  -webkit-backface-visibility: hidden;
}
.left-submenu .back > a {
  padding: 0.3rem 0.9375rem;
  color: #999999;
  text-transform: uppercase;
  font-weight: bold;
  background: #444;
  border-top: 1px solid #5e5e5e;
  border-bottom: none;
  margin: 0;
}
.left-submenu .back > a:hover {
  background: #303030;
  border-top: 1px solid #5e5e5e;
  border-bottom: none;
}
.left-submenu .back > a:before {
  content: "«";
  margin-right: 0.5rem;
  display: inline;
}
.left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap {
  -ms-transform: translate(0%, 0);
  -webkit-transform: translate3d(0%, 0, 0);
  -moz-transform: translate3d(0%, 0, 0);
  -ms-transform: translate3d(0%, 0, 0);
  -o-transform: translate3d(0%, 0, 0);
  transform: translate3d(0%, 0, 0);
}

.right-submenu {
  -webkit-backface-visibility: hidden;
  width: 15.625rem;
  top: 0;
  bottom: 0;
  position: absolute;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: #333333;
  z-index: 1002;
  box-sizing: content-box;
  -webkit-overflow-scrolling: touch;
  -ms-transform: translate(100%, 0);
  -webkit-transform: translate3d(100%, 0, 0);
  -moz-transform: translate3d(100%, 0, 0);
  -ms-transform: translate3d(100%, 0, 0);
  -o-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  right: 0;
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease;
}
.right-submenu * {
  -webkit-backface-visibility: hidden;
}
.right-submenu .back > a {
  padding: 0.3rem 0.9375rem;
  color: #999999;
  text-transform: uppercase;
  font-weight: bold;
  background: #444;
  border-top: 1px solid #5e5e5e;
  border-bottom: none;
  margin: 0;
}
.right-submenu .back > a:hover {
  background: #303030;
  border-top: 1px solid #5e5e5e;
  border-bottom: none;
}
.right-submenu .back > a:after {
  content: "»";
  margin-left: 0.5rem;
  display: inline;
}
.right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap {
  -ms-transform: translate(0%, 0);
  -webkit-transform: translate3d(0%, 0, 0);
  -moz-transform: translate3d(0%, 0, 0);
  -ms-transform: translate3d(0%, 0, 0);
  -o-transform: translate3d(0%, 0, 0);
  transform: translate3d(0%, 0, 0);
}

.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
  content: "»";
  margin-left: 0.5rem;
  display: inline;
}

.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
  content: "«";
  margin-right: 0.5rem;
  display: inline;
}

/* small displays */
@media only screen {
  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important;
  }
  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important;
  }
  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
  }
  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
  }
  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important;
  }
  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important;
  }
  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important;
  }
  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row;
  }
  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important;
  }
}
/* medium displays */
@media only screen and (min-width:40.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important;
  }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important;
  }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
  }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
  }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important;
  }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important;
  }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important;
  }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row;
  }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important;
  }
}
/* large displays */
@media only screen and (min-width:64.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important;
  }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important;
  }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
  }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
  }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important;
  }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important;
  }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important;
  }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row;
  }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important;
  }
}
/* xlarge displays */
@media only screen and (min-width:90.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important;
  }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important;
  }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
  }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
  }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important;
  }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important;
  }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important;
  }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row;
  }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important;
  }
}
/* xxlarge displays */
@media only screen and (min-width:120.063em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important;
  }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important;
  }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
  }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
  }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important;
  }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important;
  }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important;
  }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row;
  }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important;
  }
}
/* Orientation targeting */
.show-for-landscape,
.hide-for-portrait {
  display: inherit !important;
}

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

/* Specific visibility for tables */
table.hide-for-landscape, table.show-for-portrait {
  display: table !important;
}

thead.hide-for-landscape, thead.show-for-portrait {
  display: table-header-group !important;
}

tbody.hide-for-landscape, tbody.show-for-portrait {
  display: table-row-group !important;
}

tr.hide-for-landscape, tr.show-for-portrait {
  display: table-row !important;
}

td.hide-for-landscape, td.show-for-portrait,
th.hide-for-landscape,
th.show-for-portrait {
  display: table-cell !important;
}

@media only screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: inherit !important;
  }
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important;
  }
  /* Specific visibility for tables */
  table.show-for-landscape, table.hide-for-portrait {
    display: table !important;
  }
  thead.show-for-landscape, thead.hide-for-portrait {
    display: table-header-group !important;
  }
  tbody.show-for-landscape, tbody.hide-for-portrait {
    display: table-row-group !important;
  }
  tr.show-for-landscape, tr.hide-for-portrait {
    display: table-row !important;
  }
  td.show-for-landscape, td.hide-for-portrait,
  th.show-for-landscape,
  th.hide-for-portrait {
    display: table-cell !important;
  }
}
@media only screen and (orientation: portrait) {
  .show-for-portrait,
  .hide-for-landscape {
    display: inherit !important;
  }
  .hide-for-portrait,
  .show-for-landscape {
    display: none !important;
  }
  /* Specific visibility for tables */
  table.show-for-portrait, table.hide-for-landscape {
    display: table !important;
  }
  thead.show-for-portrait, thead.hide-for-landscape {
    display: table-header-group !important;
  }
  tbody.show-for-portrait, tbody.hide-for-landscape {
    display: table-row-group !important;
  }
  tr.show-for-portrait, tr.hide-for-landscape {
    display: table-row !important;
  }
  td.show-for-portrait, td.hide-for-landscape,
  th.show-for-portrait,
  th.hide-for-landscape {
    display: table-cell !important;
  }
}
/* Touch-enabled device targeting */
.show-for-touch {
  display: none !important;
}

.hide-for-touch {
  display: inherit !important;
}

.touch .show-for-touch {
  display: inherit !important;
}

.touch .hide-for-touch {
  display: none !important;
}

/* Specific visibility for tables */
table.hide-for-touch {
  display: table !important;
}

.touch table.show-for-touch {
  display: table !important;
}

thead.hide-for-touch {
  display: table-header-group !important;
}

.touch thead.show-for-touch {
  display: table-header-group !important;
}

tbody.hide-for-touch {
  display: table-row-group !important;
}

.touch tbody.show-for-touch {
  display: table-row-group !important;
}

tr.hide-for-touch {
  display: table-row !important;
}

.touch tr.show-for-touch {
  display: table-row !important;
}

td.hide-for-touch {
  display: table-cell !important;
}

.touch td.show-for-touch {
  display: table-cell !important;
}

th.hide-for-touch {
  display: table-cell !important;
}

.touch th.show-for-touch {
  display: table-cell !important;
}

/*
 * Print styles.
 *
 * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
 * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
*/
.print-only {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    color: #000000 !important; /* Black prints faster: h5bp.com/s */
    box-shadow: none !important;
    text-shadow: none !important;
  }
  .show-for-print {
    display: block;
  }
  .hide-for-print {
    display: none;
  }
  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) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group; /* h5bp.com/t */
  }
  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;
  }
  .hide-on-print {
    display: none !important;
  }
  .print-only {
    display: block !important;
  }
  .hide-for-print {
    display: none !important;
  }
  .show-for-print {
    display: inherit !important;
  }
}
/* Print visibility */
@media print {
  .show-for-print {
    display: block;
  }
  .hide-for-print {
    display: none;
  }
  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;
  }
}
/*=================================================================
Import Roots Components - Do your SASS awesomeness here! Goodspeed young traveler :)
=================================================================*/
.top-bar,
.main h1.title {
  opacity: 0;
  transition: opacity 0.5s;
}
.top-bar .force-lc,
.main h1.title .force-lc {
  font-family: Verdana, sans-serif;
  font-size: 0.7em;
  margin: 0 1px 0 2.5px;
}

body.loaded .top-bar,
body.loaded .main h1.title {
  opacity: 1;
}

.hl {
  font-family: "orator-std", sans-serif;
  margin: auto;
}

.main h1.title {
  color: #b2a583 !important;
  text-transform: uppercase;
  margin: auto auto 1rem;
  text-indent: -0.3rem;
}
.main h2 {
  font-size: 1.25em;
  margin: 1rem auto 0.4rem;
  padding: 0;
  line-height: 1em;
}
.main h2, .main h3, .main h4, .main h5, .main h6 {
  color: #861d6d;
}
.main p,
.main ul,
.main ol {
  font-family: Verdana, sans-serif;
  font-size: 0.95em;
}
.main p {
  padding-top: 0;
  padding-bottom: 0.5rem;
  margin: 0 auto;
}
.main a {
  font-weight: bold;
}

a.disabled {
  pointer-events: none;
  cursor: pointer;
}

::selection {
  background: #56284f; /* WebKit/Blink Browsers */
}

p::selection, h1::selection, h2::selection, h3::selection, h4::selection,
h5::selection, h6::selection, ul::selection, li::selection, td::selection,
strong::selection, a::selection {
  color: white;
  background: #56284f;
}

::-moz-selection {
  color: white;
  background: #56284f;
}

@media only screen and (min-width: 64.063em) and (max-width: 999999em) {
  .main {
    margin: 3rem auto !important;
  }
  h2, h3, h4, h5, h6 {
    font-family: Verdana, sans-serif;
  }
  h1 {
    font-family: "orator-std", sans-serif;
    letter-spacing: -0.15em;
    line-height: 0.9;
    margin: 2rem auto 1rem;
    color: #dbd9ca;
  }
  h2 {
    font-size: 1.45rem;
    line-height: 1.125;
    margin: 1rem auto;
  }
  body h2 p {
    float: left;
    display: inline-block;
  }
  .main {
    margin: auto auto 2rem;
  }
  .img-sidebar {
    float: right;
    padding-left: 5.5rem;
    margin-top: 1rem;
  }
}
/* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .main {
    margin: 3rem auto !important;
  }
  h2, h3, h4, h5, h6 {
    font-family: Verdana, sans-serif;
  }
  h1 {
    font-family: "orator-std", sans-serif;
    letter-spacing: -0.15em;
    line-height: 0.9;
    margin: 2rem auto 1rem;
    color: #dbd9ca;
  }
  h2 {
    font-size: 1.5rem;
    line-height: 1.125;
  }
}
/* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
@media only screen and (max-width: 40em) {
  h2, h3, h4, h5, h6 {
    font-family: Verdana, sans-serif;
  }
  h1 {
    font-family: "orator-std", sans-serif;
    letter-spacing: -0.15em;
    font-size: 3rem;
    line-height: 1.125;
    margin: 1.5rem auto !important;
    color: #dbd9ca;
  }
  h1 {
    font-size: 3rem;
    line-height: 1.125;
    margin: 1.5rem auto auto !important;
  }
  h2 {
    font-size: 1.5rem;
    line-height: 1.125;
    margin: 1rem auto auto;
  }
}
/* max-width 640px, mobile-only styles, use when QAing mobile issues */
.button-2024 {
  text-transform: uppercase;
  font-size: 23px;
  letter-spacing: normal;
  padding: 4px 20px;
  border: 5px solid #fff;
  border-radius: 14px;
  outline: 5px solid #000;
}
.button-2024:hover {
  border: 7px solid #fff;
  outline: 3px solid #000;
  padding-left: 18px;
  padding-right: 18px;
}

textarea:focus, input[type=text]:focus, input[type=password]:focus, input[type=datetime]:focus, input[type=datetime-local]:focus, input[type=date]:focus, input[type=month]:focus, input[type=time]:focus, input[type=week]:focus, input[type=number]:focus, input[type=email]:focus, input[type=url]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=color]:focus, .uneditable-input:focus {
  border-color: #7c0040;
  box-shadow: 0 0 1px #7c0040 inset, 0 0 4px #7c0040;
  outline: 0 none;
}

.gallery-row {
  padding: 0.75 0;
}

.media,
.media-body {
  overflow: hidden;
  zoom: 1;
}

.media,
.media .media {
  margin-top: 15px;
}

.media:first-child {
  margin-top: 0;
}

.media-object {
  display: block;
}

.media-heading {
  margin-bottom: 5px;
}

.media .left {
  margin-right: 10px;
}
.media .right {
  margin-left: 10px;
}

.media-list {
  padding-left: 0;
  list-style: none;
}

figure.alignnone {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

.alignleft,
.alignright,
.aligncenter {
  margin-right: 0;
  margin-left: 0;
}

@media only screen and (min-width:40.063em) {
  .aligncenter {
    display: block;
    margin: 0.75 auto;
  }
  .alignleft {
    float: left;
    margin-right: 0.75;
  }
  .alignright {
    float: right;
    margin-left: 0.75;
  }
}
.img-vc-right {
  padding: 5px;
  background-color: #ffffff;
  border-radius: 6px;
  border: 1px solid #333;
  box-shadow: none !important;
  margin: 10px auto;
  position: relative;
  display: block;
  float: right;
}

.img-vc-left {
  padding: 5px;
  background-color: #ffffff;
  border-radius: 6px;
  border: 1px solid #333;
  box-shadow: none !important;
  margin: 0 20px 10px 0;
  position: relative;
  display: inline-block;
  float: left;
}

.vc-btn {
  display: block;
  float: left;
  margin: auto auto;
  border-radius: 10px;
  transition: border-radius 500ms ease-in-out;
  -moz-transition: border-radius 500ms ease-in-out;
  -webkit-transition: border-radius 500ms ease-in-out;
}

.vc-btn:hover {
  border-radius: 0;
}

#site-notification {
  position: relative;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  background: #b2a97e;
  color: #fff;
  padding: 15px;
  display: flex;
  justify-content: space-between;
}
#site-notification.hidden {
  display: none;
}
#site-notification .content-container {
  display: flex;
  flex-wrap: wrap;
}
#site-notification .icon {
  width: 45px;
  font-size: 30px;
  padding-right: 15px;
}
#site-notification .content {
  display: flex;
  flex-direction: column;
}
#site-notification .content :last-child {
  margin-bottom: 0;
}
#site-notification .content h2 {
  color: #fff;
  font-size: 24px;
  line-height: 24px;
  margin: 0 0 10px 0;
}
#site-notification .content p {
  color: #fff;
}
#site-notification .content a {
  color: #fff;
  text-decoration: underline;
}
#site-notification .controls {
  width: 45px;
  padding-left: 15px;
  font-size: 30px;
}
#site-notification .controls button {
  color: rgba(255, 255, 255, 0.25);
  cursor: pointer;
  margin: 0;
  padding: 0;
  background: transparent;
}
#site-notification .controls button:hover {
  color: rgba(255, 255, 255, 0.5);
}
#site-notification .close-icon {
  fill: #fff;
  width: 30px;
}

.top-header {
  width: 100%;
  min-height: 90px;
  max-height: auto;
  background: #56284f;
  margin: 0;
  padding: 0;
}
.top-header .social {
  list-style-type: none;
  margin: -10px 0 48px 0;
  padding: 0;
  line-height: 0;
}
@media only screen and (min-width: 766px) {
  .top-header .social {
    position: absolute;
    width: 48px;
    height: 24px;
    right: 215px;
    top: 13px;
  }
}
.top-header .social li {
  display: block;
  float: left;
  margin: 0 4px 4px 0;
  padding: 0;
}
.top-header .social li a {
  display: block;
  width: 20px;
  height: 20px;
  background: url(../img/social-2.png) 0 0 no-repeat;
  background-size: auto 100%;
  text-indent: 4000px;
  white-space: nowrap;
  overflow: hidden;
}
.top-header .social li.facebook a {
  background-position: 0 0;
}
.top-header .social li.google-plus a {
  background-position: 50% 0;
}
.top-header .social li.google-maps a {
  background-position: 100% 0;
}
.top-header .social:hover li a {
  opacity: 0.5;
}
.top-header .social:hover li a:hover {
  opacity: 1;
}

.bottom-header {
  background: #dbd9ca;
}

.top-bar {
  background: #dbd9ca !important;
}

.top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
  background: #56284f !important;
}

.top-bar-section ul li a {
  text-transform: uppercase !important;
}

@media only screen and (min-width: 64.063em) and (max-width: 2500em) {
  .logo {
    display: block;
    position: relative;
    width: 300px;
    height: 100px;
    float: left;
    margin: 0.4rem auto 1rem !important;
    padding: 0;
    opacity: 1;
    transition: opacity 500ms ease;
  }
  .logo:hover {
    opacity: 0.75;
  }
}
@media only screen and (min-width: 40.063em) and (max-width: 999999em) {
  .logo {
    display: block;
    position: relative;
    width: 300px;
    height: 100px;
    float: left;
    margin: 8px auto 0;
    padding: 0;
    opacity: 1;
    transition: opacity 500ms ease;
  }
  .access {
    display: block;
    float: right;
    margin: 40px 0 0 50px;
    opacity: 1;
    border-radius: 10px;
    transition: border-radius 500ms ease-in-out;
    -moz-transition: border-radius 500ms ease-in-out;
    -webkit-transition: border-radius 500ms ease-in-out;
  }
  .access:hover {
    border-radius: 0;
  }
  .phone {
    position: relative;
    color: white;
    font-size: 24px;
    float: right;
    display: block;
    line-height: 1.1;
    margin: 40px auto auto;
    font-weight: 300;
  }
  .phone span {
    font-size: 16px;
  }
  .phone p {
    color: #aea87f;
    font-size: 16px;
  }
  .phone a:link {
    color: white;
    text-decoration: none;
    -webkit-transition: color 500ms linear;
    -moz-transition: color 500ms linear;
    -o-transition: color 500ms linear;
    -ms-transition: color 500ms linear;
    transition: color 500ms linear;
  }
  .phone a:hover {
    color: #c3b2c2;
    text-decoration: none;
  }
}
/* min-width 1441px, xlarge screens */
@media only screen and (min-width: 64.063em) and (max-width: 99999em) {
  .bottom-header {
    background: #dbd9ca;
  }
  .top-bar {
    background-color: #dbd9ca !important;
    min-height: 55px;
    max-height: auto;
    width: 100%;
    margin: 10px auto;
    padding-top: 0.3rem;
  }
  .top-bar-section ul {
    padding-bottom: 0.3rem;
    background: #dbd9ca;
  }
  .top-bar-section ul li {
    border-right: solid 1px white;
  }
  .top-bar-section ul li:last-child {
    border: none !important;
  }
  .top-bar-section ul li a {
    font-family: "orator-std", sans-serif !important;
    transition: all 100ms ease-in-out;
  }
  .top-bar-section li.active:not(.has-form) a:not(.button) {
    color: white;
    background: #56284f !important;
  }
  .top-bar-section li.active:not(.has-form):hover a:not(.button):hover {
    color: white;
    background: #56284f !important;
  }
  .top-bar-section .has-dropdown, .top-bar-section ul li {
    background: #56284f !important;
  }
  .top-bar-section .dropdown li.active:not(.has-form) a:not(.button) {
    background: #56284f;
    color: #eaeaea;
  }
  .top-bar-section .dropdown li:not(.has-form):hover a:not(.button):hover {
    color: #eaeaea;
  }
  .top-bar-section .dropdown li a {
    font-size: 14px;
  }
  .top-bar .toggle-topbar.menu-icon {
    margin-top: -20px;
  }
  .top-bar-section ul.dropdown li {
    border-right: none !important;
  }
  .top-bar-section ul li:hover:not(.has-form) > a {
    background: #56284f;
  }
  .top-bar-section ul li {
    background: #56284f !important;
  }
  .top-bar-section .has-dropdown {
    background: #56284f !important;
  }
  .top-bar-section .left li .dropdown {
    border-right: none !important;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button), .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
    border: none !important;
  }
}
/* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .bottom-header {
    background: #dbd9ca;
  }
  .top-bar {
    background-color: #dbd9ca !important;
    min-height: 55px;
    max-height: auto;
    width: 100%;
    margin: 10px auto;
    padding-top: 0.3rem;
  }
  .top-bar-section ul {
    padding-bottom: 0.3rem;
    background: #dbd9ca;
  }
  .top-bar-section ul li {
    border-right: solid 1px white;
  }
  .top-bar-section ul li:last-child {
    border: none !important;
  }
  .top-bar-section ul li a {
    font-family: "orator-std", sans-serif !important;
    transition: all 100ms ease-in-out;
  }
  .top-bar-section li.active:not(.has-form) a:not(.button) {
    color: white;
    background: #56284f !important;
  }
  .top-bar-section li.active:not(.has-form):hover a:not(.button):hover {
    color: white;
    background: #56284f !important;
  }
  .top-bar-section .has-dropdown, .top-bar-section ul li {
    background: #56284f !important;
  }
  .top-bar-section .dropdown li.active:not(.has-form) a:not(.button) {
    background: #56284f;
    color: #eaeaea;
  }
  .top-bar-section .dropdown li:not(.has-form):hover a:not(.button):hover {
    color: #eaeaea;
  }
  .top-bar-section .dropdown li a {
    font-size: 14px;
  }
  .top-bar .toggle-topbar.menu-icon {
    margin-top: -20px;
  }
  .top-bar-section ul.dropdown li {
    border-right: none !important;
  }
  .top-bar-section ul li:hover:not(.has-form) > a {
    background: #56284f;
  }
  .top-bar-section ul li {
    background: #56284f !important;
  }
  .top-bar-section .has-dropdown {
    background: #56284f !important;
  }
  .top-bar-section .left li .dropdown {
    border-right: none !important;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button), .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
    border: none !important;
  }
}
/* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
@media only screen and (max-width: 40em) {
  .bottom-header {
    background: #dbd9ca;
  }
  .top-bar {
    background-color: none !important;
    height: 55px;
    max-height: auto;
    width: 100%;
    margin: 10px auto;
    padding-top: 0.3rem;
  }
  .top-bar .top-bar-section .dropdown li.title h5 a {
    color: white;
  }
  .top-bar span {
    color: #56284f;
  }
  .top-bar .top-bar .toggle-topbar.menu-icon a span::after {
    color: #56284f !important;
  }
  .top-bar-section ul {
    padding-bottom: 0.3rem;
    background: #dbd9ca;
  }
  .top-bar-section ul li:last-child {
    border: none !important;
  }
  .top-bar-section ul li a {
    color: white;
    font-family: "orator-std", sans-serif !important;
    transition: all 500ms ease-in-out;
  }
  .top-bar-section ul li.active > a {
    background: #56284f;
    color: white;
    overflow: hidden;
  }
  .top-bar-section li.active:not(.has-form):hover a:not(.button):hover {
    color: white;
    background: transparent !important;
  }
  .top-bar-section .has-dropdown, .top-bar-section ul li {
    background: #56284f !important;
  }
  .top-bar-section .dropdown li.active:not(.has-form) a:not(.button) {
    background: #56284f;
    color: #eaeaea;
  }
  .top-bar-section .dropdown li:not(.has-form):hover a:not(.button):hover {
    color: #eaeaea;
  }
  .top-bar-section .dropdown li a {
    font-size: 14px;
  }
  .top-bar .toggle-topbar.menu-icon {
    margin-top: -20px;
  }
  .top-bar-section ul.dropdown li {
    border-right: none !important;
  }
  .top-bar-section ul li:hover:not(.has-form) > a {
    background: #56284f;
  }
  .top-bar-section ul li {
    background: #56284f !important;
  }
  .top-bar-section .has-dropdown {
    background: #56284f !important;
  }
  .top-bar-section .left li .dropdown {
    border-right: none !important;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button), .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
    border: none !important;
  }
  .top-header .logo {
    display: block;
    position: relative;
    width: auto;
    height: 100%;
    float: left;
    margin: 1rem auto auto;
    padding: 0;
    opacity: 1;
    transition: opacity 500ms ease;
  }
  .top-header .access {
    display: inline-block !important;
    float: right;
    margin: 1rem auto auto;
    opacity: 1;
    border-radius: 10px;
    transition: border-radius 500ms ease-in-out;
    -moz-transition: border-radius 500ms ease-in-out;
    -webkit-transition: border-radius 500ms ease-in-out;
  }
  .top-header .phone {
    position: relative;
    color: white;
    font-size: 22px !important;
    float: none;
    display: inline-block;
    line-height: 1;
    margin: 0 !important;
    font-weight: 300;
    padding-top: 1.125rem !important;
  }
  .top-header .phone span {
    font-size: 15px;
  }
  .top-header .phone p {
    color: #aea87f;
    font-size: 16px;
  }
  .top-header .phone a:link {
    color: white;
    text-decoration: none;
    -webkit-transition: color 500ms linear;
    -moz-transition: color 500ms linear;
    -o-transition: color 500ms linear;
    -ms-transition: color 500ms linear;
    transition: color 500ms linear;
  }
  .top-header .phone a:hover {
    color: #c3b2c2;
    text-decoration: none;
  }
}
/* max-width 640px, mobile-only styles, use when QAing mobile issues */
.sidebar-img {
  margin: 1.25rem auto;
  position: relative;
  display: inline-block;
  float: none;
}

.sidebar img {
  max-width: auto;
  min-width: auto;
  height: auto;
}

.sidebar .form-inline .input-group {
  float: right;
  margin-right: 0.625em;
}

.sidebar ul {
  margin: auto;
  padding: auto;
}

.sidebar ul li {
  list-style: none;
  margin: auto;
  padding: auto;
  text-indent: none;
}

.sidebar-nav {
  width: 100%;
  height: auto;
  float: left;
  display: inline-block;
  margin: 30.313em auto;
  background-color: #56284f;
}

.sidebar-nav h4 {
  color: #fff;
  margin-left: 10.313em;
  margin-top: 20px;
  font-weight: 600;
  line-height: 0.9;
}

.sidebar-nav ul {
  margin: 10.313em 10.313em 20px;
  padding: 0;
  width: auto;
}

.sidebar-nav ul li {
  list-style: none;
  border-top: solid 0.063em;
  border-top-color: #861d6d;
  margin: 0.25em 0;
  display: block;
  font-size: 10.125em;
  padding-top: 0.25em;
  padding-right: 0.625em;
  line-height: 1.2;
}

.sidebar-nav ul li:nth-child(9) {
  border-bottom: solid 0.063em #861d6d;
  padding-bottom: 0.25em;
}

.sidebar-nav ul li a {
  color: #fff;
  width: 100%;
  text-decoration: none;
  -webkit-transition: color 500ms ease-out;
  -moz-transition: color 500ms ease-out;
  -o-transition: color 500ms ease-out;
  -ms-transition: color 500ms ease-out;
  transition: color 500ms ease-out;
}

.sidebar-nav ul li a:hover {
  color: #b9a6b7;
}

@media only screen and (min-width: 64.063em) and (max-width: 320em) {
  .sidebar {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    background-size: 102% auto;
    min-height: 20em;
    max-height: auto;
    margin: 0.5rem auto auto;
    /* End Widget Class */
  }
  .sidebar .widget {
    padding-top: 2.5rem;
    padding-left: 4rem;
    /* End UL Class */
  }
  .sidebar .widget h3 {
    text-transform: uppercase;
    font-family: "orator-std", sans-serif;
    letter-spacing: -0.15em;
    margin-bottom: 0.6rem;
    margin-top: -0.125em !important;
  }
  .sidebar .widget ul {
    /* End List Item Class */
  }
  .sidebar .widget ul li {
    margin-bottom: 1rem;
    line-height: 1;
  }
  /* End Sidebar Class */
} /* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .sidebar {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    background-size: 100% auto;
    min-height: 20em;
    max-height: auto;
    margin: 0.5rem auto auto;
    /* End Widget Class */
  }
  .sidebar .widget {
    padding-top: 2.5rem;
    padding-left: 1.4rem;
    /* End UL Class */
  }
  .sidebar .widget h3 {
    text-transform: uppercase;
    font-family: "orator-std", sans-serif;
    letter-spacing: -0.15em;
    margin-top: -0.125em !important;
    margin-bottom: 0.6rem;
  }
  .sidebar .widget ul {
    /* End List Item Class */
  }
  .sidebar .widget ul li {
    margin-bottom: 1rem;
    line-height: 1;
  }
  /* End Sidebar Class */
} /* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
@media only screen and (max-width: 40em) {
  .sidebar {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    min-height: 20em;
    max-height: auto;
    margin: 0.5rem auto auto;
    /* End Widget Class */
  }
  .sidebar .widget {
    padding-top: 2.5rem;
    padding-left: 1.4rem;
    /* End UL Class */
  }
  .sidebar .widget h3 {
    text-transform: uppercase;
    font-family: "orator-std", sans-serif;
    letter-spacing: -0.15em;
    margin-bottom: 0.6rem;
  }
  .sidebar .widget ul {
    /* End List Item Class */
  }
  .sidebar .widget ul li {
    margin-bottom: 1rem;
    line-height: 1;
  }
  /* End Sidebar Class */
} /* max-width 640px, mobile-only styles, use when QAing mobile issues */
.content-info h1, .content-info h2, .content-info h3, .content-info h4, .content-info h5, .content-info h6 {
  color: #56284f !important;
}
.content-info .upper-footer {
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzU2Mjg0ZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzU2Mjg0ZiIgc3RvcC1vcGFjaXR5PSIwLjIiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzU2Mjg0ZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
  background: -moz-linear-gradient(left, rgb(86, 40, 79) 0%, rgba(86, 40, 79, 0.2) 50%, rgb(86, 40, 79) 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgb(86, 40, 79)), color-stop(50%, rgba(86, 40, 79, 0.2)), color-stop(100%, rgb(86, 40, 79))); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(left, rgb(86, 40, 79) 0%, rgba(86, 40, 79, 0.2) 50%, rgb(86, 40, 79) 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(left, rgb(86, 40, 79) 0%, rgba(86, 40, 79, 0.2) 50%, rgb(86, 40, 79) 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(left, rgb(86, 40, 79) 0%, rgba(86, 40, 79, 0.2) 50%, rgb(86, 40, 79) 100%); /* IE10+ */
  background: linear-gradient(to right, rgb(86, 40, 79) 0%, rgba(86, 40, 79, 0.2) 50%, rgb(86, 40, 79) 100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#56284f", endColorstr="#56284f",GradientType=1 ); /* IE6-8 */
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.content-info .upper-footer img {
  margin: 30px auto 20px;
  float: none;
  position: relative;
  opacity: 1;
}
.content-info .lower-footer {
  width: 100%;
  height: 100%;
  float: none !important;
  background: #dbd9ca;
}
.content-info .location h3 {
  margin: auto;
}
.content-info .location p {
  margin: 0;
  line-height: 1.5;
}
.content-info .location address {
  font-style: normal;
}
.content-info .location a:link {
  color: #000;
  text-decoration: none;
  transition: color 500ms ease-in-out;
}
.content-info .location a:visited {
  color: #000;
}
.content-info .location a:hover, .content-info .location a:focus {
  color: #56284f;
  text-decoration: none;
}
.content-info .location .map {
  padding: 2%;
  background: white;
  border-radius: 6px;
  margin: 20px auto;
}
.content-info .footer-space {
  padding-top: 40px;
  padding-bottom: 40px;
}
.content-info .footer-space ul {
  margin-left: 0;
}
.content-info .footer-space ul li {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0;
  text-indent: none !important;
  font-size: 1.75rem;
  line-height: 1.75;
  margin-bottom: auto;
  list-style-position: inside;
  font-family: inherit;
  display: block;
  -webkit-margin-before: auto;
  -webkit-margin-after: auto;
  -webkit-margin-start: auto;
  -webkit-margin-end: auto;
  -webkit-padding-start: auto;
}
.content-info .footer-space ul li {
  font-size: 12px;
  margin: auto;
}
.content-info .footer-space .widget h3 {
  font-size: 15px;
  font-weight: 700;
}
.content-info .footer-space .site-map {
  text-indent: 15px;
}
.content-info .footer-bottom {
  background: #56284f;
  margin: 0 auto !important;
}
.content-info .footer-bottom p {
  color: white;
  padding-top: 1.5rem;
  padding-bottom: 1.25rem;
  margin: 0 auto !important;
}

footer {
  margin: 0 auto !important;
}

.site-map ul {
  margin-bottom: 0 !important;
}

.accordion .accordion-navigation > a, .accordion dd > a {
  color: #333;
  padding: 1rem;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
}

.accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
  color: #fff;
  padding: 1rem;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 1rem;
}

.accordion .accordion-navigation.active > a, .accordion dd.active > a {
  color: white;
}

.page-template-template-physician table {
  background: #dbd9ca;
  margin-bottom: 0 !important;
  border: 1px solid #dbd9ca;
  table-layout: auto;
  width: 100%;
}
.page-template-template-physician table tbody tr:nth-of-type(2n) {
  background: #fff;
}
.page-template-template-physician table tbody tr td.content {
  width: 500px;
}
.page-template-template-physician table tbody tr td.date {
  text-align: right;
}

.template-content-centered {
  margin: 0 auto;
  max-width: 800px;
}

.page-id-145 table:nth-child(3n+3), .page-id-807 table:nth-child(3n+3) {
  background: #FFF !important;
}
.page-id-145 table:nth-child(12), .page-id-807 table:nth-child(12) {
  background: #dbd9ca !important;
}

.page-id-151 ul.accordion {
  margin-left: 0;
}
.page-id-151 .faq-side {
  background: url(../img_min/logo-purp-sm.png) center top no-repeat;
  background-size: 300px 300px;
  min-width: 400px;
  height: 450px;
  overflow: visible !important;
}
.page-id-151 .faq-side h2 {
  text-align: center;
  font-size: 2.6em;
  color: #b2a583;
  line-height: 1.75em;
  padding-top: 1.3rem;
  padding-bottom: 2rem;
}

@media only screen and (min-width: 64.063em) and (max-width: 999999em) {
  li.gallery:first-child {
    padding-left: 1.85rem;
  }
  li.gallery:nth-child(2) {
    padding-left: 1.65rem;
  }
  li.gallery:nth-child(3) {
    padding-left: 1.4rem;
  }
  .callout-top h2 {
    color: #56284f;
    font-size: 1.6em;
    text-align: center;
    text-transform: uppercase;
  }
  .callout-top h3 {
    color: #b2a583;
    text-align: center;
    max-width: 65%;
    float: none;
    display: block;
    margin: auto auto 2rem;
  }
  /* End callout-top class */
}
/* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  li.gallery:first-child {
    padding-left: auto;
  }
  li.gallery:nth-child(2) {
    padding-left: auto;
  }
  li.gallery:nth-child(3) {
    padding-left: auto;
  }
}
/* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
@media only screen and (max-width: 40em) {
  .large-block-grid-3.medium-block-grid-3.small-block-grid-1 {
    float: none !important;
    display: block;
    margin: 2rem auto !important;
  }
}
/* max-width 640px, mobile-only styles, use when QAing mobile issues */
h2.side-img-title {
  color: white;
  margin: 0 auto !important;
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-family: "orator-std", sans-serif;
  font-size: 1rem;
  text-align: center;
}

.side-img-large {
  margin: 0 auto 1rem;
  border-bottom: 0.4rem solid #56284f;
}

.img-sidebar li {
  border: 0.2rem solid #56284f;
  display: inline-block !important;
  margin: 0 0.2rem !important;
  width: auto;
  height: auto;
}
.img-sidebar li .bottom-thumbs {
  width: 100%;
  height: auto;
  padding: 0 !important;
  margin: 0 !important;
}
.img-sidebar li .bottom-thumbs .clearing-thumbs li {
  margin: 0 !important;
  padding: 0 !important;
}
.img-sidebar li .bottom-thumbs [data-clearing] li {
  margin: 0 !important;
  padding: 0 !important;
}
.img-sidebar li .bottom-thumbs img {
  display: inline-block !important;
  float: none !important;
  margin: 0 !important;
  width: auto;
  height: auto;
}

.img-bottom {
  float: none !important;
  display: block;
  margin: auto auto !important;
}

.home .main {
  margin-bottom: 2rem !important;
}

.hero {
  display: block;
  position: relative;
  margin: 0.8rem auto;
  float: none;
  z-index: 1;
  width: 100%;
  height: auto;
  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.4);
}
.hero img {
  width: 100%;
}
.hero a {
  display: block;
}
.hero .text {
  display: flex;
  align-items: center;
  position: absolute;
  width: 100%;
  left: 0;
  bottom: calc(40px + 5vw);
  background: rgba(255, 255, 255, 0.6);
  padding: 12px 16px;
}
@media only screen and (min-width: 40.063em) {
  .hero .text {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 60%, rgba(255, 255, 255, 0) 100%);
    bottom: 51px;
    padding: 0 53px;
  }
}
.hero .text h2 {
  margin: 0;
}
.hero .text h2 a {
  font-family: arial, sans-serif;
  letter-spacing: normal;
  text-transform: uppercase;
  color: #000;
  font-size: 2rem;
  line-height: 1.2;
}
@media only screen and (min-width: 40.063em) {
  .hero .text h2 a {
    font-size: calc(0.5rem + 5vw);
    letter-spacing: 0.6px;
  }
}
@media only screen and (min-width: 64.063em) {
  .hero .text h2 a {
    font-size: 3.6rem;
  }
}
.hero .text .button {
  margin: 0 0 0 54px;
}

.left-box {
  max-width: none;
  height: auto;
  float: left;
  display: inline-block;
  margin: 0.5rem auto;
}
.left-box h2 {
  text-align: left !important;
  margin-bottom: 0.6rem;
}
.left-box p {
  font-family: Verdana, sans-serif;
  font-size: 14px;
  line-height: 2.2;
  margin-bottom: 10px;
  max-width: 100%;
}
.left-box img {
  display: block;
  float: left;
  margin: auto;
  border-radius: 10px;
  transition: border-radius 0.5s ease-in-out;
  -moz-transition: border-radius 0.5s ease-in-out;
  -webkit-transition: border-radius 0.5s ease-in-out;
}

.middle-area {
  margin: 0.9rem auto;
}

.left-box img:hover {
  border-radius: 0;
}

.left-box h2 {
  text-align: center;
  font-family: "orator-std", sans-serif;
  letter-spacing: -0.125em;
}

.middle-box {
  max-width: none;
  height: auto;
  float: left;
  display: inline-block;
  margin: 0.5rem auto;
}

.middle-box span {
  font-size: 15px;
  font-weight: 800;
  margin: 20px auto 2px;
}

.middle-box h2 {
  font-family: "orator-std", sans-serif !important;
  letter-spacing: -0.125em;
  margin-bottom: 1rem;
}
.middle-box ul {
  margin-left: 0;
  padding: 0;
}
.middle-box ul li {
  font-family: Verdana, sans-serif;
  font-size: 13px;
  list-style: none;
  margin: auto auto;
  display: block;
}
.middle-box ul li img {
  display: inline;
  float: left;
  margin: 3px 15px 5px 0;
}
.middle-box ul li p {
  font-size: 13px;
  margin: auto;
  line-height: 1.125em;
  width: auto;
  padding-bottom: 0.15rem !important;
}
.middle-box ul li h3 {
  font: 900 14px/1 Verdana, sans-serif;
  letter-spacing: normal;
  margin: 0.25rem auto 2px;
  padding-top: 0.15rem;
}
.middle-box ul li a {
  margin: auto;
  color: #56284f;
  transition: color 500ms ease-in-out;
}
.middle-box ul li a:hover {
  color: black;
}
.middle-box ul li p span {
  font-size: 12px;
  font-weight: bold;
}
.middle-box ul li .cv-link {
  margin: 3px auto;
  padding: 0;
  font: italic 14px/1 sans-serif;
}

.right-box {
  max-width: 23.125em;
  background: transparent;
  height: auto;
  float: left;
  display: inline-block;
  margin: 0.75rem auto;
}
.right-box .box-inner {
  background: #56284f;
  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.4);
}
.right-box .box-inner h2 {
  color: #dbd9ca;
  text-align: center;
  margin: 1.1rem auto;
  padding-top: 1.25rem;
  padding-bottom: 0.125rem;
  max-width: 100%;
  font-family: "orator-std", sans-serif;
  font-size: 26px;
  line-height: 0.9;
  background: #56284f;
}
.right-box .box-inner img {
  opacity: 1;
  transition: opacity 500ms ease-in-out;
  margin: 0 auto;
}
.right-box .box-inner img:hover {
  opacity: 0.8;
}
.right-box .box-inner .caption {
  background: #56284f;
  text-align: center;
  color: white;
  padding-top: 1.125rem;
  padding-bottom: 1.125rem;
  text-transform: uppercase;
  font-family: "orator-std", sans-serif;
  transition: color 500ms ease-in-out;
  margin: 0 auto;
}
.right-box .box-inner .caption .caption:hover {
  color: #dbd9ca;
}

@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .right-box {
    max-width: 23.125em;
    background: transparent;
    height: auto;
    float: none;
    display: block;
    margin: 1.1rem auto;
  }
  .right-box .box-inner {
    background: #56284f;
    box-shadow: 0 3px 30px rgba(0, 0, 0, 0.4);
  }
  .right-box .box-inner h2 {
    color: #dbd9ca;
    text-align: center;
    margin: 1rem auto;
    padding-top: 1rem;
    padding-bottom: 0.125rem;
    max-width: 100%;
    font-family: "orator-std", sans-serif;
    font-size: 26px;
    line-height: 0.9;
    background: #56284f;
  }
  .right-box .box-inner img {
    opacity: 1;
    transition: opacity 500ms ease-in-out;
    margin: 0 auto;
  }
  .right-box .box-inner img:hover {
    opacity: 0.8;
  }
  .right-box .box-inner .caption {
    background: #56284f;
    text-align: center;
    color: white;
    padding-top: 1rem;
    padding-bottom: 1rem;
    text-transform: uppercase;
    font-family: "orator-std", sans-serif;
    transition: color 500ms ease-in-out;
    margin: 0 auto;
  }
  .right-box .box-inner .caption .caption:hover {
    color: #dbd9ca;
  }
}
/* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
body.page-template-template-physician .main h1.title {
  text-transform: none;
}
body.page-template-template-physician .dr-intro {
  font-size: inherit;
  line-height: 2.25;
  margin: 10px auto 20px;
  padding-top: 0;
  width: 100%;
  height: auto;
  position: relative;
  display: block;
  min-height: 220px;
}
body.page-template-template-physician .dr-intro .special-title {
  max-width: none;
  font-family: "orator-std", sans-serif;
  text-transform: uppercase;
  color: #56284f;
  font-size: 1.25rem;
  margin: -0.5rem 0 0.5rem 0;
}
body.page-template-template-physician .dr-intro .image-and-quote {
  display: flex;
  align-items: center;
}
body.page-template-template-physician .dr-intro .image-and-quote .image {
  width: 160px;
  min-width: 160px;
}
body.page-template-template-physician .dr-intro .image-and-quote .image img {
  padding: 5px;
  background-color: #fff;
  border-radius: 6px;
  border: 1px solid #333;
  box-shadow: none !important;
  margin: 0 20px 10px 0;
}
body.page-template-template-physician .dr-intro .image-and-quote .quote blockquote {
  display: flex;
  align-items: center;
  background: #b2a583;
  padding: 1.5rem 3rem;
}
body.page-template-template-physician .dr-intro .image-and-quote .quote blockquote > :last-child {
  margin: 0;
}
body.page-template-template-physician .dr-intro .image-and-quote .quote blockquote p {
  position: relative;
  font-size: 18px;
  line-height: 23px;
  color: #fff;
}
body.page-template-template-physician .dr-intro .image-and-quote .quote blockquote p:first-child:before {
  content: "“";
  color: #7c0040;
  position: absolute;
  left: -23px;
  top: 0;
  font-size: 48px;
}
body.page-template-template-physician .dr-intro .image-and-quote .quote blockquote p:last-of-type:after {
  content: "”";
  color: #56284f;
  display: inline-block;
  margin-top: -12px;
  position: relative;
  top: 24px;
  left: 4px;
  font-size: 48px;
}
body.page-template-template-physician .physician-hero {
  margin: 0 0 2rem 0;
}
body.page-template-template-physician .physician-hero .video-embed {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
}
body.page-template-template-physician .physician-hero .video-embed iframe,
body.page-template-template-physician .physician-hero .video-embed .image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}
body.page-template-template-physician .physician-hero .video-embed .image {
  background-position: 50% 50%;
  background-size: cover;
}
body.page-template-template-physician .certification-logos {
  list-style-type: none;
  margin: 10px 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
body.page-template-template-physician .certification-logos li {
  max-width: 150px;
  margin: 0 10px 10px;
}

@media only screen and (min-width: 90.063em) and (max-width: 320em) {
  body {
    background: url(../img_min/gradient-tan_xl.png) left top repeat-y;
  }
  .page-template-template-image-none {
    background: url(../img_min/gradient-tan_xl.png) left top repeat-y;
  }
} /* min-width 1441px and max-width 1920px, use when QAing xlarge screen-only issues */
@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  body {
    background: url(../img_min/gradient-tan_lg.png) left top repeat-y;
    background-size: 20em 20em;
  }
  .page-template-template-image-none {
    background: url(../img_min/gradient-tan_lg.png) left top repeat-y;
  }
} /* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  body {
    background: url(../img_min/gradient-tan_lg.png) left top repeat-y;
  }
  .page-template-template-image-none {
    background: url(../img_min/gradient-tan_lg.png) left top repeat-y;
  }
} /* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
@media only screen and (max-width: 40em) {
  body {
    background: url(../img_min/gradient-tan_sm.png) left top repeat-y;
  }
  .page-template-template-image-none {
    background: url(../img_min/gradient-tan_sm.png) left top repeat-y;
  }
} /* max-width 640px, mobile-only styles, use when QAing mobile issues */
.page-template-template-image-one {
  overflow-x: hidden !important;
  /* min-width 1440.063em and max-width 1920px, use when QAing xlarge screen-only issues */
  /* min-width 101.563em and max-width 1440px, use when QAing large screen-only issues */
  /* min-width 640.063em and max-width 1020.250em, use when QAing tablet-only issues */
  /* max-width 640px, mobile-only styles, use when QAing mobile issues */
}
@media only screen and (min-width: 90.063em) and (max-width: 300em) {
  .page-template-template-image-one {
    /* End featured-img class */
  }
  .page-template-template-image-one .featured-img {
    margin-top: -3rem !important;
  }
  .page-template-template-image-one .featured-img img {
    border-radius: 50%;
    max-width: 24em;
    min-width: auto;
    max-height: 24em;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-one .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 24em 24em;
    display: block;
    float: none;
    margin: -2.25rem auto auto !important;
    width: auto;
    min-height: 27.5em;
    max-height: none;
    overflow: visible;
  }
  .page-template-template-image-one .featured-img .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 6rem;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-one .featured-img .callout h3 {
    text-align: center;
    max-width: 440px;
    color: #b2a583;
    font-size: 1.3em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .page-template-template-image-one {
    /* End Featured Image Class */
  }
  .page-template-template-image-one .featured-img {
    min-height: auto;
    max-height: none;
    min-width: auto;
    margin-top: -3.2rem !important;
  }
  .page-template-template-image-one .featured-img img {
    border-radius: 50%;
    max-width: 25em;
    max-height: 25em;
    min-width: auto;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-one .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 24em 24em;
    display: block;
    float: none;
    margin: -2.25rem auto auto !important;
    width: auto;
    min-height: 27.5em;
    overflow: visible;
  }
  .page-template-template-image-one .featured-img .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 5.5rem;
    padding-bottom: 0 !important;
    margin-bottom: 0.75rem !important;
  }
  .page-template-template-image-one .featured-img .callout h3 {
    text-align: center;
    max-width: 400px !important;
    color: #b2a583;
    font-size: 1.3125rem;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
    text-wrap: balance;
  }
}
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .page-template-template-image-one {
    /* End Featured Image Class */
  }
  .page-template-template-image-one .main {
    margin-bottom: 2.5rem;
  }
  .page-template-template-image-one .featured-img {
    margin-top: -2.75rem !important;
  }
  .page-template-template-image-one .featured-img img {
    border-radius: 50%;
    max-width: 16em;
    min-width: auto;
    float: none;
    display: block;
    margin: 0.8rem auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-one .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) top center no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto 1rem !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-image-one .featured-img .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 4rem;
    max-width: 80%;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-one .featured-img .callout h3 {
    text-align: center;
    max-width: 90% !important;
    color: #b2a583;
    font-size: 1.1em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (max-width: 40em) {
  .page-template-template-image-one {
    /* End Featured Image Class */
  }
  .page-template-template-image-one .main p:last-child {
    margin-bottom: 1.75rem;
  }
  .page-template-template-image-one .featured-img {
    padding-top: 1.75rem !important;
  }
  .page-template-template-image-one .featured-img img {
    border-radius: 50%;
    max-width: 20em;
    min-width: auto;
    max-height: 20em;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-one .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 2rem auto auto !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-image-one .featured-img .callout h2 {
    text-align: center;
    font-size: 1.4em;
    color: #56284f;
    padding-top: 2.125rem;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-one .featured-img .callout h3 {
    text-align: center;
    min-height: 15rem;
    color: #b2a583;
    font-size: 1em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 2rem;
  }
}

/* End Two and Three Page Template Classes */
.page-template-template-image-two {
  overflow-x: hidden !important;
  /* min-width 1440.063em and max-width 1920px, use when QAing xlarge screen-only issues */
  /* min-width 101.563em and max-width 1440px, use when QAing large screen-only issues */
  /* min-width 640.063em and max-width 1020.250em, use when QAing tablet-only issues */
  /* max-width 640px, mobile-only styles, use when QAing mobile issues */
}
@media only screen and (min-width: 90.063em) and (max-width: 300em) {
  .page-template-template-image-two {
    /* End featured-img class */
  }
  .page-template-template-image-two .featured-img {
    margin-top: -2.9rem !important;
  }
  .page-template-template-image-two .featured-img img {
    border-radius: 50%;
    max-width: 24em;
    min-width: auto;
    max-height: 24em;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-two .featured-img .small-bottom {
    display: block;
    position: absolute;
    box-shadow: -0.25em 0.188em 0px 0.25em #dbd9ca;
    width: 11.25em;
    height: 11.25em;
    top: 16em;
    left: 4.313em;
  }
  .page-template-template-image-two .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 24em 24em;
    display: block;
    float: none;
    margin: -2.25rem auto auto !important;
    width: auto;
    min-height: 27.5em;
    overflow: visible;
  }
  .page-template-template-image-two .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 6rem;
    padding-bottom: 0 !important;
    margin-bottom: 0.75rem !important;
  }
  .page-template-template-image-two .callout h3 {
    text-align: center;
    max-width: 20em !important;
    color: #b2a583;
    font-size: 1.3em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
    text-wrap: balance;
  }
}
@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .page-template-template-image-two {
    /* End Featured Image Class */
  }
  .page-template-template-image-two .featured-img {
    min-height: auto;
    min-width: auto;
    margin-top: -3.2rem !important;
  }
  .page-template-template-image-two .featured-img img {
    border-radius: 50%;
    max-width: 25em;
    min-width: auto;
    max-height: 25em;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-two .featured-img .small-bottom {
    display: block;
    position: absolute;
    box-shadow: -0.25em 0.188em 0px 0.25em #dbd9ca;
    width: 11.25em;
    height: 11.25em;
    top: 16.25em;
    left: 2.5em;
  }
  .page-template-template-image-two .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 24em 24em;
    display: block;
    float: none;
    margin: -2.25rem auto auto !important;
    width: auto;
    min-height: 27.5em;
    overflow: visible;
  }
  .page-template-template-image-two .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 5.5rem;
    padding-bottom: 0 !important;
    margin-bottom: 0.75rem !important;
  }
  .page-template-template-image-two .callout h3 {
    text-align: center;
    max-width: 20em !important;
    color: #b2a583;
    font-size: 1.3em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .page-template-template-image-two {
    /* End Featured Image Class */
  }
  .page-template-template-image-two .main {
    margin-bottom: 2.5rem;
  }
  .page-template-template-image-two .featured-img {
    margin-top: 0.25rem !important;
  }
  .page-template-template-image-two .featured-img img {
    border-radius: 50%;
    max-width: 17.5em;
    min-width: auto;
    float: none;
    display: block;
    margin: 0.8rem auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-two .callout {
    background: url(../img_min/purple-swoops.svg) top center no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto 1rem !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-image-two .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 2rem;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-two .callout h3 {
    text-align: center;
    max-width: 90% !important;
    color: #b2a583;
    font-size: 1.1em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (max-width: 40em) {
  .page-template-template-image-two {
    /* End Featured Image Class */
  }
  .page-template-template-image-two .main p:last-child {
    margin-bottom: 1.75rem;
  }
  .page-template-template-image-two .featured-img img {
    border-radius: 50%;
    min-width: auto;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-two .callout {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto auto !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-image-two .callout h2 {
    text-align: center;
    font-size: 1.4em;
    color: #56284f;
    padding-top: 3.5rem;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-two .callout h3 {
    text-align: center;
    min-height: 15rem;
    color: #b2a583;
    font-size: 1.33em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 2rem;
  }
}

/* End Two Page Template Classes */
.page-template-template-image-three {
  overflow-x: hidden !important;
  /* min-width 1440.063em and max-width 1920px, use when QAing xlarge screen-only issues */
  /* min-width 101.563em and max-width 1440px, use when QAing large screen-only issues */
  /* min-width 640.063em and max-width 1020.250em, use when QAing tablet-only issues */
  /* max-width 640px, mobile-only styles, use when QAing mobile issues */
}
@media only screen and (min-width: 90.063em) and (max-width: 300em) {
  .page-template-template-image-three {
    /* End featured-img class */
  }
  .page-template-template-image-three .featured-img {
    margin-top: -3rem !important;
  }
  .page-template-template-image-three .featured-img img {
    border-radius: 50%;
    max-width: 24em;
    min-width: auto;
    max-height: 24em;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-three .featured-img .small-top {
    display: block;
    position: absolute;
    box-shadow: 0.35em -0.08em 0em 0.1em #dbd9ca;
    width: 8em;
    height: 8em;
    top: -2.75em;
    right: 5.938em;
  }
  .page-template-template-image-three .featured-img .small-bottom {
    display: block;
    position: absolute;
    box-shadow: -0.25em 0.188em 0px 0.25em #dbd9ca;
    width: 11.25em;
    height: 11.25em;
    top: 14em;
    left: 4.313em;
  }
  .page-template-template-image-three .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 24em 24em;
    display: block;
    float: none;
    margin: -2.25rem auto auto !important;
    width: auto;
    min-height: 27.5em;
    overflow: visible;
  }
  .page-template-template-image-three .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 6rem;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-three .callout h3 {
    text-align: center;
    max-width: 20em !important;
    color: #b2a583;
    font-size: 1.3em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .page-template-template-image-three {
    /* End Featured Image Class */
  }
  .page-template-template-image-three .featured-img {
    min-height: auto;
    min-width: auto;
    margin-top: -3.2rem !important;
  }
  .page-template-template-image-three .featured-img img {
    border-radius: 50%;
    max-width: 25em;
    min-width: auto;
    max-height: 25em;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-three .featured-img .small-top {
    display: block;
    position: absolute;
    box-shadow: 0.35em -0.08em 0em 0.1em #dbd9ca;
    width: 8em;
    height: 8em;
    top: -3.125em;
    right: 5.938em;
  }
  .page-template-template-image-three .featured-img .small-bottom {
    display: block;
    position: absolute;
    box-shadow: -0.25em 0.188em 0px 0.25em #dbd9ca;
    width: 11.25em;
    height: 11.25em;
    top: 28%;
    left: 4.313em;
  }
  .page-template-template-image-three .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 24em 24em;
    display: block;
    float: none;
    margin: -2.25rem auto auto !important;
    width: auto;
    min-height: 27.5em;
    overflow: visible;
  }
  .page-template-template-image-three .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 5.5rem;
    padding-bottom: 0 !important;
    margin-bottom: 0.75rem !important;
  }
  .page-template-template-image-three .callout h3 {
    text-align: center;
    max-width: 20em !important;
    color: #b2a583;
    font-size: 1.3em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
    text-wrap: balance;
  }
}
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .page-template-template-image-three {
    /* End Featured Image Class */
  }
  .page-template-template-image-three .main {
    margin-bottom: 2.5rem;
  }
  .page-template-template-image-three .featured-img {
    margin-top: 1.5rem !important;
  }
  .page-template-template-image-three .featured-img img {
    border-radius: 50%;
    min-width: auto;
    float: none;
    display: block;
    margin: 0.8rem auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-three .callout {
    background: url(../img_min/purple-swoops.svg) top center no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto 1rem !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-image-three .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 2rem;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-three .callout h3 {
    text-align: center;
    max-width: 90% !important;
    color: #b2a583;
    font-size: 1.1em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (max-width: 40em) {
  .page-template-template-image-three {
    /* End Featured Image Class */
  }
  .page-template-template-image-three .main p:last-child {
    margin-bottom: 1.75rem;
  }
  .page-template-template-image-three .featured-img {
    padding-top: 1.75rem !important;
  }
  .page-template-template-image-three .featured-img img {
    border-radius: 50%;
    min-width: auto;
    float: none;
    display: block;
    margin: auto auto 1rem !important;
    box-shadow: 0.313em 0.625em 0 0.438em #dbd9ca;
  }
  .page-template-template-image-three .callout {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto auto !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-image-three .callout h2 {
    text-align: center;
    font-size: 1.4em;
    color: #56284f;
    padding-top: 2.65rem;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-image-three .callout h3 {
    text-align: center;
    min-height: 15rem;
    color: #b2a583;
    font-size: 1.33em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 2rem;
  }
}

/* End Three Page Template Classes */
.page-template-template-image-none {
  /* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
  /* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
  /* max-width 640px, mobile-only styles, use when QAing mobile issues */
}
.page-template-template-image-none .title {
  display: none !important;
  visibility: hidden !important;
}
@media only screen and (min-width: 64.063em) and (max-width: 320em) {
  .page-template-template-image-none .main {
    margin: 0 auto 2rem !important;
  }
  .page-template-template-image-none .callout-top {
    margin-top: 0rem;
    padding-top: 22.5rem;
    background: url(../img_min/purple-swoops.svg) right center no-repeat;
    background-size: 28em 28em;
    padding-left: 0.973rem;
    padding-right: 0.973rem;
  }
  .page-template-template-image-none .callout-top h1 {
    font-size: 1.75em;
    text-align: center;
    color: #56284f !important;
    font-family: Verdana, sans-serif;
    letter-spacing: normal;
    margin-top: -18rem;
    text-transform: uppercase;
  }
  .page-template-template-image-none .callout-top h2 {
    color: #b2a583;
    text-transform: none;
    max-width: 40em;
    line-height: 1.3em;
    margin: 0.4rem auto auto !important;
  }
  .page-template-template-image-none .left-column p::first-child {
    margin: 0 auto 1rem !important;
  }
  .page-template-template-image-none .right-column h2:first-child {
    margin: 0.8rem auto 0.6rem !important;
  }
  .page-template-template-image-none .right-column p:last-child {
    margin-bottom: 2.5rem;
  }
}
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .page-template-template-image-none .main {
    margin: 0 auto 2rem !important;
  }
  .page-template-template-image-none .callout-top {
    margin-top: 0rem;
    padding-top: 22.5rem;
    background: url(../img_min/purple-swoops.svg) right center no-repeat;
    background-size: 28em 28em;
    padding-left: 0.973rem;
    padding-right: 0.973rem;
  }
  .page-template-template-image-none .callout-top h1 {
    font-size: 1.75em;
    text-align: center;
    color: #56284f !important;
    font-family: Verdana, sans-serif;
    letter-spacing: normal;
    margin-top: -18rem;
    text-transform: uppercase;
  }
  .page-template-template-image-none .callout-top h2 {
    color: #b2a583;
    text-transform: none;
    max-width: 40em;
    line-height: 1.3em;
    margin: 0.4rem auto auto !important;
    text-align: center;
  }
  .page-template-template-image-none .right-column h2:nth-child(2) {
    margin: 1rem auto auto !important;
  }
  .page-template-template-image-none .right-column p:last-child {
    margin-bottom: 2.5rem;
  }
}
@media only screen and (max-width: 40em) {
  .page-template-template-image-none .callout-top {
    padding-left: 0.973rem;
    padding-right: 0.973rem;
  }
  .page-template-template-image-none .callout-top h1 {
    font-size: 1.75em;
    text-align: left;
    color: #56284f !important;
    font-family: Verdana, sans-serif;
    letter-spacing: normal;
    margin: 2em auto 0;
  }
  .page-template-template-image-none .callout-top h2 {
    color: #b2a583;
    text-transform: none;
    max-width: 30em;
    line-height: 1.3em;
    margin: 0.4rem auto 2rem !important;
  }
  .page-template-template-image-none .left-column p::first-child {
    margin: 0 auto 1rem !important;
  }
  .page-template-template-image-none .right-column h2:first-child {
    margin: 0 auto 1rem !important;
  }
  .page-template-template-image-none .right-column p:last-child {
    margin-bottom: 2.5rem;
  }
}

@media only screen and (min-width: 90.063em) and (max-width: 250em) {
  .page-template-template-gallery {
    overflow-x: hidden !important;
  }
  .page-template-template-gallery aside {
    display: none !important;
    visibility: hidden !important;
  }
  li.gallery {
    background: transparent !important;
  }
  li.gallery h2 {
    color: #56284f;
    font-family: Verdana, sans-serif;
    margin-bottom: 0;
    text-align: center;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    letter-spacing: normal;
    line-height: 1;
    font-size: 1.1rem;
    text-transform: uppercase;
    min-height: 2.75em;
    max-height: auto;
  }
  li.gallery .bna {
    margin-bottom: 0;
  }
  li.gallery .ba-bottom {
    background: none;
    max-width: 360px;
    margin: -2rem auto auto;
  }
  li.gallery .gallery-inner {
    max-width: 360px;
    min-width: auto !important;
  }
  li.gallery .gallery-inner img {
    border-radius: 10px;
    box-shadow: 0px 15px 16px 0px rgba(0, 0, 0, 0.25);
  }
  li.gallery .gallery-inner h6 {
    color: white;
    font-size: 1rem;
    text-transform: uppercase;
    padding-top: 0;
    padding-bottom: 0.4rem;
  }
} /* min-width 1441px and max-width 1920px, use when QAing xlarge screen-only issues */
@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .page-template-template-gallery {
    overflow-x: hidden !important;
  }
  .page-template-template-gallery aside {
    display: none !important;
    visibility: hidden !important;
  }
  li.gallery {
    background: transparent !important;
  }
  li.gallery h2 {
    color: #56284f;
    font-family: Verdana, sans-serif;
    margin-bottom: 0;
    text-align: center;
    padding-top: 1.5rem;
    padding-bottom: 0.95rem;
    letter-spacing: normal;
    line-height: 1;
    font-size: 1.1rem;
    text-transform: uppercase;
    min-height: 3em;
    max-height: auto;
  }
  li.gallery .bna {
    margin-bottom: 0;
  }
  li.gallery .ba-bottom {
    background: none;
    max-width: 360px;
    margin: -2rem auto auto;
  }
  li.gallery .gallery-inner {
    max-width: 360px;
    min-width: auto !important;
  }
  li.gallery .gallery-inner img {
    border-radius: 10px;
    box-shadow: 0px 15px 16px 0px rgba(0, 0, 0, 0.25);
  }
  li.gallery .gallery-inner h6 {
    color: white;
    font-size: 1rem;
    text-transform: uppercase;
    padding-top: 0;
    padding-bottom: 0.4rem;
  }
} /* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .page-template-template-gallery {
    overflow-x: hidden !important;
  }
  .page-template-template-gallery aside {
    display: none !important;
    visibility: hidden !important;
  }
  li.gallery {
    background: transparent !important;
  }
  li.gallery h2 {
    color: #56284f;
    font-family: Verdana, sans-serif;
    margin-bottom: 0;
    text-align: center;
    padding-top: 1.5rem;
    padding-bottom: 0.95rem;
    letter-spacing: normal;
    line-height: 1;
    font-size: 1.1rem;
    text-transform: uppercase;
    min-height: 4em;
    max-height: auto;
  }
  li.gallery .bna {
    margin-bottom: 0;
  }
  li.gallery .ba-bottom {
    background: none;
    max-width: 360px;
    margin: -2rem auto auto;
  }
  li.gallery .gallery-inner {
    max-width: 360px;
    min-width: auto !important;
  }
  li.gallery .gallery-inner img {
    border-radius: 10px;
    box-shadow: 0px 15px 16px 0px rgba(0, 0, 0, 0.25);
  }
  li.gallery .gallery-inner h6 {
    color: white;
    font-size: 1rem;
    text-transform: uppercase;
    padding-top: 0;
    padding-bottom: 0.4rem;
  }
} /* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
@media only screen and (max-width: 40em) {
  .page-template-template-gallery-php aside {
    display: none !important;
    visibility: hidden !important;
  }
  li.gallery {
    background: transparent !important;
  }
  li.gallery h2 {
    color: #56284f;
    font-family: Verdana, sans-serif;
    margin-bottom: 0;
    text-align: center;
    padding-top: 1.5rem;
    padding-bottom: 0.95rem;
    letter-spacing: normal;
    line-height: 1;
    font-size: 1.1rem;
    text-transform: uppercase;
    min-height: auto;
    max-height: auto;
  }
  li.gallery .bna {
    margin-bottom: 0;
  }
  li.gallery .ba-bottom {
    background: none;
    max-width: 360px;
    margin: -2rem auto auto;
  }
  li.gallery .gallery-inner {
    max-width: auto;
    min-width: auto !important;
  }
  li.gallery .gallery-inner img {
    border-radius: 10px;
    box-shadow: 0px 15px 16px 0px rgba(0, 0, 0, 0.25);
  }
  li.gallery .gallery-inner h6 {
    color: white;
    font-size: 1rem;
    text-transform: uppercase;
    padding-top: 0;
    padding-bottom: 0.4rem;
    max-width: 7.813em;
  }
} /* max-width 640px, mobile-only styles, use when QAing mobile issues */
.page-template-template-callout {
  overflow-x: hidden !important;
  /* min-width 1440.063em and max-width 1920px, use when QAing xlarge screen-only issues */
  /* min-width 101.563em and max-width 1440px, use when QAing large screen-only issues */
  /* min-width 640.063em and max-width 1020.250em, use when QAing tablet-only issues */
  /* max-width 640px, mobile-only styles, use when QAing mobile issues */
}
@media only screen and (min-width: 90.063em) and (max-width: 300em) {
  .page-template-template-callout {
    /* End featured-img class */
  }
  .page-template-template-callout .featured-img {
    margin-top: -7rem !important;
  }
  .page-template-template-callout .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: auto auto !important;
    width: auto;
    min-height: 33em;
    overflow: visible;
  }
  .page-template-template-callout .featured-img .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 3rem;
    margin-bottom: 0.5rem !important;
  }
  .page-template-template-callout .featured-img .callout h3 {
    text-align: center;
    max-width: 440px;
    color: #b2a583;
    font-size: 1.3em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (min-width: 64.063em) and (max-width: 90em) {
  .page-template-template-callout {
    /* End Featured Image Class */
  }
  .page-template-template-callout .featured-img {
    margin-top: 0 !important;
  }
  .page-template-template-callout .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) center top no-repeat;
    background-size: 77.25% auto;
    display: block;
    float: none;
    margin: -7rem auto !important;
    width: auto;
    min-height: 17.5rem;
    overflow: visible;
  }
  .page-template-template-callout .featured-img .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 3rem;
    margin-bottom: 0.5rem !important;
  }
  .page-template-template-callout .featured-img .callout h3 {
    text-align: center;
    max-width: 440px !important;
    color: #b2a583;
    font-size: 1.3125rem;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
    text-wrap: balance;
  }
}
@media only screen and (min-width: 40.063em) and (max-width: 64em) {
  .page-template-template-callout {
    /* End Featured Image Class */
  }
  .page-template-template-callout .main {
    margin-bottom: 2.5rem;
  }
  .page-template-template-callout .featured-img {
    margin-top: -4em !important;
  }
  .page-template-template-callout .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) top center no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto 1rem !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-callout .featured-img .callout h2 {
    text-align: center;
    font-size: 1.5em;
    color: #56284f;
    padding-top: 4rem;
    max-width: 80%;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-callout .featured-img .callout h3 {
    text-align: center;
    max-width: 90% !important;
    color: #b2a583;
    font-size: 1.1em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 4rem;
  }
}
@media only screen and (max-width: 40em) {
  .page-template-template-callout {
    /* End Featured Image Class */
  }
  .page-template-template-callout .featured-img {
    margin: -0.75rem auto 1.5rem !important;
  }
  .page-template-template-callout .featured-img .callout {
    background: url(../img_min/purple-swoops.svg) left top no-repeat;
    background-size: 100% auto;
    display: block;
    float: none;
    margin: 0 auto auto !important;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .page-template-template-callout .featured-img .callout h2 {
    text-align: center;
    font-size: 1.4em;
    color: #56284f;
    padding-top: 2.125rem;
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
  }
  .page-template-template-callout .featured-img .callout h3 {
    text-align: center;
    min-height: 15rem;
    color: #b2a583;
    font-size: 1em;
    float: none;
    display: block;
    margin: auto auto;
    padding-bottom: 2rem;
  }
}

/* End Two and Three Page Template Classes */
.page-id-15 main {
  margin-left: auto !important;
  margin-right: auto !important;
  float: none;
}

.physician-list {
  list-style-type: none;
  margin: 16px 0 40px 0;
  padding: 0;
}
.physician-list li {
  min-height: 80px;
  margin: 0 0 12px 0;
}
.physician-list li img {
  margin: 0 15px 0 0;
  max-width: 60px;
  vertical-align: middle;
  display: block;
  float: left;
}
.physician-list li .text-link {
  display: table-cell;
  height: 80px;
  vertical-align: middle;
}
.physician-list li .text-link .special-title {
  display: block;
  font-style: italic;
  font-size: 0.75rem;
}

.page-id-11 main {
  margin-left: auto !important;
  margin-right: auto !important;
  float: none;
}

.vein-procedures-list {
  margin: 2rem 0;
}
.vein-procedures-list .procedure {
  margin: 0 0 2rem 0;
  background: #56284f;
  transition: background-color 0.2s;
  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.4);
}
.vein-procedures-list .procedure a {
  display: block;
}
.vein-procedures-list .procedure a .image {
  width: 100%;
  height: 0;
  padding: 0 0 75% 0;
  background: 50% 50%/cover;
  margin: 0;
  transition: opacity 0.2s;
}
.vein-procedures-list .procedure h2 {
  margin: 0;
}
.vein-procedures-list .procedure h2 a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  color: #dbd9ca;
  text-align: center;
  padding: 0.75rem;
  font-family: "orator-std", sans-serif;
  font-size: 18px;
  line-height: 0.9;
}
.vein-procedures-list .procedure h2 a:hover {
  background: #773e6e;
}
.vein-procedures-list .procedure:hover {
  background: #773e6e;
}
.vein-procedures-list .procedure:hover .image {
  opacity: 0.9;
}

/*==========  Foundation Media Queries - copy/paste from here if needed  ==========*/
/*==========  Define Variables  ==========*/
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vcm1hbGl6ZS5zY3NzIiwiYXBwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2dsb2JhbC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19ncmlkLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2FsZXJ0LWJveGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Jsb2NrLWdyaWQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19idXR0b24tZ3JvdXBzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2NsZWFyaW5nLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Ryb3Bkb3duLWJ1dHRvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZmxleC12aWRlby5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19pY29uLWJhci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19pbmxpbmUtbGlzdHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fam95cmlkZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19rZXlzdHJva2VzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2xhYmVscy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19tYWdlbGxhbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3BhbmVscy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19wcmljaW5nLXRhYmxlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19wcm9ncmVzcy1iYXJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3JhbmdlLXNsaWRlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fc2lkZS1uYXYuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fc3BsaXQtYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19zdWItbmF2LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3N3aXRjaGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190YWJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RodW1icy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190b29sdGlwcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdHlwZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19vZmZjYW52YXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiX2dsb2JhbC5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsImNvbXBvbmVudHMvX21lZGlhLnNjc3MiLCJjb21wb25lbnRzL193cC1jbGFzc2VzLnNjc3MiLCJsYXlvdXRzL19nZW5lcmFsLnNjc3MiLCJsYXlvdXRzL19oZWFkZXIuc2NzcyIsImxheW91dHMvX3NpZGViYXIuc2NzcyIsImxheW91dHMvX2Zvb3Rlci5zY3NzIiwibGF5b3V0cy9fcGFnZXMuc2NzcyIsImxheW91dHMvcGFnZXMvX2hvbWUuc2NzcyIsImxheW91dHMvcG9zdHMvcGh5c2ljaWFuLnNjc3MiLCJsYXlvdXRzL3BhZ2VzL19iZy5zY3NzIiwibGF5b3V0cy9wYWdlcy9fMS1pbWcuc2NzcyIsImxheW91dHMvcGFnZXMvXzItaW1nLnNjc3MiLCJsYXlvdXRzL3BhZ2VzL18zLWltZy5zY3NzIiwibGF5b3V0cy9wYWdlcy9fbm8taW1hZ2Uuc2NzcyIsImxheW91dHMvcGFnZXMvX2dhbGxlcnkuc2NzcyIsImxheW91dHMvcGFnZXMvX2NhbGxvdXQuc2NzcyIsImxheW91dHMvcGFnZXMvcGh5c2ljaWFucy5zY3NzIiwibGF5b3V0cy9wYWdlcy92ZWluLXByb2NlZHVyZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBYUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUN6YUY7QUFBQTtBQUFBO0FBTUE7O0FBQUE7QUFBQTs7QUFBQTtBQ3FWRTtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFNQTtFQUFhOzs7QUFHYjtBQUFBO0FBQUE7RUFyVUYsb0JBd1V3QjtFQXZVckIsaUJBdVVxQjtFQXRVaEIsWUFzVWdCOzs7QUFHdEI7QUFBQTtFQUNPLFdBMVlNOzs7QUE2WWI7RUFDRSxZQTdKSTtFQThKSixPQTdKWTtFQThKWjtFQUNBO0VBQ0EsYUExS21CO0VBMktuQixhQXRLZTtFQXVLZixZQS9KWTtFQWdLWixhQWxaYTtFQW1aYjtFQUNBLFFBOUZjOzs7QUFpR2xCO0VBQVUsUUE3Rlc7OztBQWdHbkI7RUFBTTtFQUFpQjs7O0FBRXZCO0VBQU07OztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVTOzs7QUFLWDtFQUFROzs7QUFDUjtFQUFTOzs7QUFuUlg7RUFBb0I7RUFBYzs7QUFDbEM7RUFBVTs7O0FBc1JSO0VBQ0U7OztBQUlGO0VBQWE7OztBQU1iO0VBQWU7RUFBcUM7OztBQUdwRDtFQUNFO0VBQ0E7OztBQVFGO0VBQVc7RUFBYzs7O0FBR3pCO0VBQVM7OztBQzFOWDtFQTdMQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0N0Q1U7O0FGc0lWO0VBQW9CO0VBQWM7O0FBQ2xDO0VBQVU7O0FDMkZSO0FBQUE7RUF4SkY7RUFDQTs7QUE0SkU7RUFDQztFQUNBOztBQUlGO0VBcE9EO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUR3SEE7RUFBb0I7RUFBYzs7QUFDbEM7RUFBVTs7QUN5R1I7RUF0TkY7RUFDQTtFQUNBOztBRDBHQTtFQUFvQjtFQUFjOztBQUNsQztFQUFVOzs7QUMrR1Y7QUFBQTtFQXJLQTtFQUNBO0VBS0E7RUFvQkMsT0RrSWU7OztBQ2NoQjtFQUNDLE9EZG9COzs7QUNnQnJCO0VBQ0MsT0RsQmU7OztBQ3FCaEI7RUEzSEE7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUFpQ0E7SUFsRUE7SUE0QkE7SUFDQTs7RUF3Q0E7SUFyRUE7SUFnQ0E7SUFDQTs7RUF5Q0Q7QUFBQTtJQTFFQztJQVlBO0lBQ0E7SUF5QkMsT0RrSWU7O0VDdkZoQjtJQS9EQTs7RUErREE7SUEvREE7O0VBK0RBO0lBL0RBOztFQStEQTtJQS9EQTs7RUErREE7SUEvREE7O0VBK0RBO0lBL0RBOztFQStEQTtJQS9EQTs7RUErREE7SUEvREE7O0VBK0RBO0lBL0RBOztFQStEQTtJQS9EQTs7RUErREE7SUEvREE7O0VBK0RBO0lBL0RBOztFQXFFQTtJQWhDQTs7RUFnQ0E7SUFoQ0E7O0VBZ0NBO0lBaENBOztFQWdDQTtJQWhDQTs7RUFnQ0E7SUFoQ0E7O0VBZ0NBO0lBaENBOztFQWdDQTtJQWhDQTs7RUFnQ0E7SUFoQ0E7O0VBZ0NBO0lBaENBOztFQWdDQTtJQWhDQTs7RUFnQ0E7SUFoQ0E7O0VBZ0NB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IjoibWFpbi5taW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkluY2x1ZGUgdGhlIEZvdW5kYXRpb24gc2V0dGluZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuQGltcG9ydCBcIl9zZXR0aW5nc1wiO1xuXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICBcbiAgXG4gICAgSW1wb3J0IEZvdW5kYXRpb24gQ29tcG9uZW50c1xuICAgIFJFTU9WRSB3aGF0IHlvdSBkb24ndCB1c2UgaW4gX2ZvdW5kYXRpb24gdG8ga2VlcCB0aGUgQ1NTIGFzIHNtYWxsIGFzIHBvc3NpYmxlIDopXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuQGltcG9ydCBcIl9mb3VuZGF0aW9uXCI7XG5cbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkltcG9ydCBSb290cyBDb21wb25lbnRzIC0gRG8geW91ciBTQVNTIGF3ZXNvbWVuZXNzIGhlcmUhIEdvb2RzcGVlZCB5b3VuZyB0cmF2ZWxlciA6KVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG5AaW1wb3J0IFwiX2dsb2JhbFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19mb3Jtc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX21lZGlhXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fd3AtY2xhc3Nlc1wiO1xuQGltcG9ydCBcImxheW91dHMvX2dlbmVyYWxcIjtcbkBpbXBvcnQgXCJsYXlvdXRzL19oZWFkZXJcIjtcbkBpbXBvcnQgXCJsYXlvdXRzL19zaWRlYmFyXCI7XG5AaW1wb3J0IFwibGF5b3V0cy9fZm9vdGVyXCI7XG5AaW1wb3J0IFwibGF5b3V0cy9fcGFnZXNcIjtcbkBpbXBvcnQgXCJsYXlvdXRzL3BhZ2VzL19ob21lXCI7XG5AaW1wb3J0IFwibGF5b3V0cy9fcG9zdHNcIjtcbkBpbXBvcnQgXCJsYXlvdXRzL3Bvc3RzL3BoeXNpY2lhblwiO1xuQGltcG9ydCBcImxheW91dHMvcGFnZXMvX2JnXCI7XG5AaW1wb3J0IFwibGF5b3V0cy9wYWdlcy9fMS1pbWdcIjtcbkBpbXBvcnQgXCJsYXlvdXRzL3BhZ2VzL18yLWltZ1wiO1xuQGltcG9ydCBcImxheW91dHMvcGFnZXMvXzMtaW1nXCI7XG5AaW1wb3J0IFwibGF5b3V0cy9wYWdlcy9fbm8taW1hZ2VcIjtcbkBpbXBvcnQgXCJsYXlvdXRzL3BhZ2VzL19nYWxsZXJ5XCI7XG5AaW1wb3J0IFwibGF5b3V0cy9wYWdlcy9fY2FsbG91dFwiO1xuQGltcG9ydCBcImxheW91dHMvcGFnZXMvcGh5c2ljaWFuc1wiO1xuQGltcG9ydCBcImxheW91dHMvcGFnZXMvdmVpbi1wcm9jZWR1cmVzXCI7XG5cblxuLyo9PT09PT09PT09ICBGb3VuZGF0aW9uIE1lZGlhIFF1ZXJpZXMgLSBjb3B5L3Bhc3RlIGZyb20gaGVyZSBpZiBuZWVkZWQgID09PT09PT09PT0qL1xuXG5AbWVkaWEgI3skc21hbGwtdXB9IHtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG59XG5cbkBtZWRpYSAjeyRsYXJnZS1vbmx5fSB7XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbn1cblxuQG1lZGlhICN7JHhsYXJnZS1vbmx5fSB7XG59XG5cbkBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG59XG5cbkBtZWRpYSAjeyR4eGxhcmdlLW9ubHl9IHtcbn1cblxuLyo9PT09PT09PT09ICBEZWZpbmUgVmFyaWFibGVzICA9PT09PT09PT09Ki9cbiRwcmltYXJ5LWNvbG9yOiAjNTYyODRmO1xuJHNlY29uZGFyeS1jb2xvcjogI2RiZDljYTsiLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG4vL1xuLy8gRm91bmRhdGlvbiBWYXJpYWJsZXNcbi8vXG5cbi8vIERhdGEgYXR0cmlidXRlIG5hbWVzcGFjZVxuLy8gc3R5bGVzIGdldCBhcHBsaWVkIHRvIFtkYXRhLW15c2l0ZS1wbHVnaW5dLCBldGNcbiRuYW1lc3BhY2U6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBmb250LXNpemUgaXMgc2V0IHRvIDEwMCUgb2YgdGhlIGJyb3dzZXIgc3R5bGUgc2hlZXQgKHVzdWFsbHkgMTZweClcbi8vIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYnJvd3Nlci1iYXNlZCB0ZXh0IHpvb20gb3IgdXNlci1zZXQgZGVmYXVsdHMuXG5cbi8vIFNpbmNlIHRoZSB0eXBpY2FsIGRlZmF1bHQgYnJvd3NlciBmb250LXNpemUgaXMgMTZweCwgdGhhdCBtYWtlcyB0aGUgY2FsY3VsYXRpb24gZm9yIGdyaWQgc2l6ZS5cbi8vIElmIHlvdSB3YW50IHlvdXIgYmFzZSBmb250LXNpemUgdG8gYmUgZGlmZmVyZW50IGFuZCBub3QgaGF2ZSBpdCBhZmZlY3QgdGhlIGdyaWQgYnJlYWtwb2ludHMsXG4vLyBzZXQgJHJlbS1iYXNlIHRvICRiYXNlLWZvbnQtc2l6ZSBhbmQgbWFrZSBzdXJlICRiYXNlLWZvbnQtc2l6ZSBpcyBhIHB4IHZhbHVlLlxuJGJhc2UtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLyAkYmFzZS1saW5lLWhlaWdodCBpcyAyNHB4IHdoaWxlICRiYXNlLWZvbnQtc2l6ZSBpcyAxNnB4XG4kYmFzZS1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vL1xuLy8gR2xvYmFsIEZvdW5kYXRpb24gTWl4aW5zXG4vL1xuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzLlxuLy8gJHJhZGl1cyAtIERlZmF1bHQ6ICRnbG9iYWwtcmFkaXVzIHx8IDRweFxuQG1peGluIHJhZGl1cygkcmFkaXVzOiRnbG9iYWwtcmFkaXVzKSB7XG4gIEBpZiAkcmFkaXVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgZXF1YWwgc2lkZSBib3JkZXIgcmFkaXVzIG9uIGVsZW1lbnRzLlxuLy8gJHNpZGUgLSBPcHRpb25zOiBsZWZ0LCByaWdodCwgdG9wLCBib3R0b21cbkBtaXhpbiBzaWRlLXJhZGl1cygkc2lkZSwgJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgKCRzaWRlID09IGxlZnQgb3IgJHNpZGUgPT0gcmlnaHQpIHtcbiAgICAtd2Via2l0LWJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtI3skc2lkZX0tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgLXdlYmtpdC0jeyRzaWRlfS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IHdlIGhhdmUgaW5zZXQgc2hhZG93cyBlZGdlcy5cbi8vICRhY3RpdmUgLSBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuQG1peGluIGluc2V0LXNoYWRvdygkYWN0aXZlOnRydWUpIHtcbiAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1jb2xvciBpbnNldDtcblxuICBAaWYgJGFjdGl2ZSB7ICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAkc2hpbnktZWRnZS1zaXplICRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvciBpbnNldDsgfSB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgdHJhbnNpdGlvbnMgdG8gZWxlbWVudHNcbi8vICRwcm9wZXJ0eSAtIERlZmF1bHQ6IGFsbCwgT3B0aW9uczogaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy10cmFuc2l0aW9ucy8jYW5pbWF0YWJsZS1wcm9wZXJ0aWVzXG4vLyAkc3BlZWQgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGVhc2UgLSBEZWZhdWx0OmVhc2Utb3V0LCBPcHRpb25zOiBodHRwOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9wcm9wZXJ0aWVzL3QvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24vXG5AbWl4aW4gc2luZ2xlLXRyYW5zaXRpb24oJHByb3BlcnR5OmFsbCwgJHNwZWVkOjMwMG1zLCAkZWFzZTplYXNlLW91dCkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHkgJHNwZWVkICRlYXNlO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGJveC1zaXppbmcgYWNyb3NzIGJyb3dzZXIgcHJlZml4ZXNcbkBtaXhpbiBib3gtc2l6aW5nKCR0eXBlOmJvcmRlci1ib3gpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gQW5kcm9pZCA8IDIuMywgaU9TIDwgNFxuICAgICAtbW96LWJveC1zaXppbmc6ICR0eXBlOyAvLyBGaXJlZm94IDwgMjlcbiAgICAgICAgICBib3gtc2l6aW5nOiAkdHlwZTsgLy8gQ2hyb21lLCBJRSA4KywgT3BlcmEsIFNhZmFyaSA1LjFcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBpc29zY2VsZXMgdHJpYW5nbGVzXG4vLyAkdHJpYW5nbGUtc2l6ZSAtIFVzZWQgdG8gc2V0IGJvcmRlci1zaXplLiBObyBkZWZhdWx0LCBzZXQgYSBweCBvciBlbSBzaXplLlxuLy8gJHRyaWFuZ2xlLWNvbG9yIC0gVXNlZCB0byBzZXQgYm9yZGVyLWNvbG9yIHdoaWNoIG1ha2VzIHVwIHRyaWFuZ2xlLiBObyBkZWZhdWx0XG4vLyAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gVXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggZGlyZWN0aW9uIHRyaWFuZ2xlIHBvaW50cy4gT3B0aW9uczogdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0XG5AbWl4aW4gY3NzLXRyaWFuZ2xlKCR0cmlhbmdsZS1zaXplLCAkdHJpYW5nbGUtY29sb3IsICR0cmlhbmdsZS1kaXJlY3Rpb24pIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB0b3ApIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gYm90dG9tKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBpY29uIHdpdGggdGhyZWUgbGluZXMgYWthIHRoZSBoYW1idXJnZXIgaWNvbiwgdGhlIG1lbnUtaWNvbiBvciB0aGUgbmF2aWNvblxuLy8gJHdpZHRoIC0gV2lkdGggb2YgaGFtYnVyZ2VyIGljb24gaW4gcmVtXG4vLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuLy8gJHRvcCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgdmVydGljYWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0aGlja25lc3MgLSB0aGlja25lc3Mgb2YgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuLy8gJGNvbG9yIC0gaWNvbiBjb2xvclxuLy8gJGhvdmVyLWNvbG9yIC0gaWNvbiBjb2xvciBkdXJpbmcgaG92ZXJcbi8vICRvZmZjYW52YXMgLSBTZXQgdG8gdHJ1ZSBvZiBAaW5jbHVkZSBpbiBvZmZjYW52YXNcbkBtaXhpbiBoYW1idXJnZXIoJHdpZHRoLCAkbGVmdCwgJHRvcCwgJHRoaWNrbmVzcywgJGdhcCwgJGNvbG9yLCAkaG92ZXItY29sb3IsICRvZmZjYW52YXMpIHtcbiAgc3Bhbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcblxuICAgIEBpZiAkb2ZmY2FudmFzIHtcbiAgICAgIEBpZiAkdG9wIHtcbiAgICAgICAgdG9wOiAkdG9wO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kd2lkdGgvMik7XG4gICAgICB9XG4gICAgICBAaWYgJGxlZnQge1xuICAgICAgICBsZWZ0OiAkbGVmdDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogKCR0YWJiYXItbWVudS1pY29uLXdpZHRoIC0gJHdpZHRoKS8yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0oJHdpZHRoLzIpO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkY29sb3I7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfVxuICBzcGFuOmhvdmVyOmFmdGVyIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAwIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRob3Zlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkbyBjbGVhciBmbG9hdHNcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHsgY29udGVudDogXCIgXCI7IGRpc3BsYXk6IHRhYmxlOyB9XG4gICY6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGEgZ2xvd2luZyBlZmZlY3QgdG8gYmxvY2sgZWxlbWVudHNcbi8vICRzZWxlY3RvciAtIFVzZWQgZm9yIHNlbGVjdG9yIHN0YXRlLiBEZWZhdWx0OiBmb2N1cywgT3B0aW9uczogaG92ZXIsIGFjdGl2ZSwgdmlzaXRlZFxuLy8gJGZhZGUtdGltZSAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZ2xvd2luZy1lZmZlY3QtY29sb3IgLSBEZWZhdWx0OiBmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KVxuQG1peGluIGJsb2NrLWdsb3dpbmctZWZmZWN0KCRzZWxlY3Rvcjpmb2N1cywgJGZhZGUtdGltZTozMDBtcywgJGdsb3dpbmctZWZmZWN0LWNvbG9yOmZhZGUtb3V0KCRwcmltYXJ5LWNvbG9yLCAuMjUpKSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJGZhZGUtdGltZSwgYm9yZGVyLWNvbG9yICRmYWRlLXRpbWUgZWFzZS1pbi1vdXQ7XG5cbiAgJjojeyRzZWxlY3Rvcn0ge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byB0cmFuc2xhdGUgZWxlbWVudHMgaW4gMkRcbi8vICRob3Jpem9udGFsOiBEZWZhdWx0OiAwXG4vLyAkdmVydGljYWw6IERlZmF1bHQ6IDBcbkBtaXhpbiB0cmFuc2xhdGUyZCgkaG9yaXpvbnRhbDowLCAkdmVydGljYWw6MCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkaG9yaXpvbnRhbCwkdmVydGljYWwpXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IGFjY2Vzc2libGUuXG4vLyBAc2VlIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gVHVybnMgb2ZmIHRoZSBlbGVtZW50LWludmlzaWJsZSBlZmZlY3QuXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuJHdoaXRlICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJGdob3N0ICAgICAgICAgOiAjRkFGQUZBICFkZWZhdWx0O1xuJHNub3cgICAgICAgICAgOiAjRjlGOUY5ICFkZWZhdWx0O1xuJHZhcG9yICAgICAgICAgOiAjRjZGNkY2ICFkZWZhdWx0O1xuJHdoaXRlLXNtb2tlICAgOiAjRjVGNUY1ICFkZWZhdWx0O1xuJHNpbHZlciAgICAgICAgOiAjRUZFRkVGICFkZWZhdWx0O1xuJHNtb2tlICAgICAgICAgOiAjRUVFRUVFICFkZWZhdWx0O1xuJGdhaW5zYm9ybyAgICAgOiAjREREREREICFkZWZhdWx0O1xuJGlyb24gICAgICAgICAgOiAjQ0NDQ0NDICFkZWZhdWx0O1xuJGJhc2UgICAgICAgICAgOiAjQUFBQUFBICFkZWZhdWx0O1xuJGFsdW1pbnVtICAgICAgOiAjOTk5OTk5ICFkZWZhdWx0O1xuJGp1bWJvICAgICAgICAgOiAjODg4ODg4ICFkZWZhdWx0O1xuJG1vbnNvb24gICAgICAgOiAjNzc3Nzc3ICFkZWZhdWx0O1xuJHN0ZWVsICAgICAgICAgOiAjNjY2NjY2ICFkZWZhdWx0O1xuJGNoYXJjb2FsICAgICAgOiAjNTU1NTU1ICFkZWZhdWx0O1xuJHR1YXRhcmEgICAgICAgOiAjNDQ0NDQ0ICFkZWZhdWx0O1xuJG9pbCAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGpldCAgICAgICAgICAgOiAjMjIyMjIyICFkZWZhdWx0O1xuJGJsYWNrICAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgYXMgZGVmYXVsdCBjb2xvcnMgdGhyb3VnaG91dFxuJHByaW1hcnktY29sb3I6ICMwMDhDQkEgIWRlZmF1bHQ7ICAgLy8gYm9uZGktYmx1ZVxuJHNlY29uZGFyeS1jb2xvcjogI2U3ZTdlNyAhZGVmYXVsdDsgLy8gd2hpdGUtbGlsYWNcbiRhbGVydC1jb2xvcjogI2YwNDEyNCAhZGVmYXVsdDsgICAgIC8vIGNpbm5hYmFyXG4kc3VjY2Vzcy1jb2xvcjogIzQzQUM2QSAhZGVmYXVsdDsgICAvLyBzZWEtZ3JlZW5cbiR3YXJuaW5nLWNvbG9yOiAjZjA4YTI0ICFkZWZhdWx0OyAgIC8vIGNhcnJvdFxuJGluZm8tY29sb3I6ICNhMGQzZTggIWRlZmF1bHQ7ICAgICAgLy8gY29ybmZsb3dlclxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCBzdGFja3NcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgd2VpZ2h0c1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgZ2xvYmFsIHN0eWxlc1xuJGJvZHktYmc6ICNmZmYgIWRlZmF1bHQ7XG4kYm9keS1mb250LWNvbG9yOiAjMjIyICFkZWZhdWx0O1xuJGJvZHktZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGJvZHktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYm9keS1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgZm9udC1zbW9vdGhpbmdcbiRmb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgZGlyZWN0aW9uIHNldHRpbmdzXG4kdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcbiRkZWZhdWx0LWZsb2F0OiBsZWZ0ICFkZWZhdWx0O1xuJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5AaWYgJHRleHQtZGlyZWN0aW9uID09IGx0ciB7XG4gICRkZWZhdWx0LWZsb2F0OiBsZWZ0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbn0gQGVsc2Uge1xuICAkZGVmYXVsdC1mbG9hdDogcmlnaHQ7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG59XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBtYWtlIHN1cmUgYm9yZGVyIHJhZGl1cyBtYXRjaGVzIHVubGVzcyB3ZSB3YW50IGl0IGRpZmZlcmVudC5cbiRnbG9iYWwtcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kZ2xvYmFsLXJvdW5kZWQ6IDEwMDBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaW5zZXQgc2hhZG93IHNoaW55IGVkZ2VzIGFuZCBkZXByZXNzaW9ucy5cbiRzaGlueS1lZGdlLXNpemU6IDAgMXB4IDAgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1jb2xvcjogcmdiYSgjZmZmLCAuNSkgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1hY3RpdmUtY29sb3I6IHJnYmEoIzAwMCwgLjIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IENTUyBjbGFzc2VzIGNvbWUgdGhyb3VnaCBpbiB0aGUgZ2VtIGZpbGVzLlxuJGluY2x1ZGUtaHRtbC1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtcHJpbnQtc3R5bGVzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kY29sdW1uLWd1dHRlcjogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4vLyBNZWRpYSBRdWVyeSBSYW5nZXNcbiRzbWFsbC1yYW5nZTogKDAsIDQwZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwLjA2M2VtLCA2NGVtKSAhZGVmYXVsdDtcbiRsYXJnZS1yYW5nZTogKDY0LjA2M2VtLCA5MGVtKSAhZGVmYXVsdDtcbiR4bGFyZ2UtcmFuZ2U6ICg5MC4wNjNlbSwgMTIwZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjAuMDYzZW0sIDk5OTk5OTk5ZW0pICFkZWZhdWx0O1xuXG5cbiRzY3JlZW46IFwib25seSBzY3JlZW5cIiAhZGVmYXVsdDtcblxuJGxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIiAhZGVmYXVsdDtcbiRwb3J0cmFpdDogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVwiICFkZWZhdWx0O1xuXG4kc21hbGwtdXA6ICRzY3JlZW4gIWRlZmF1bHQ7XG4kc21hbGwtb25seTogXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbWVkaXVtLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiR4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJHh4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuJHNtYWxsOiAkbWVkaXVtLXVwO1xuJG1lZGl1bTogJG1lZGl1bS11cDtcbiRsYXJnZTogJGxhcmdlLXVwO1xuXG5cbi8vV2UgdXNlIHRoaXMgYXMgY3Vyc29ycyB2YWx1ZXMgZm9yIGVuYWJsaW5nIHRoZSBvcHRpb24gb2YgaGF2aW5nIGN1c3RvbSBjdXJzb3JzIGluIHRoZSB3aG9sZSBzaXRlJ3Mgc3R5bGVzaGVldFxuJGN1cnNvci1hdXRvLXZhbHVlOiBhdXRvICFkZWZhdWx0O1xuJGN1cnNvci1jcm9zc2hhaXItdmFsdWU6IGNyb3NzaGFpciAhZGVmYXVsdDtcbiRjdXJzb3ItZGVmYXVsdC12YWx1ZTogZGVmYXVsdCAhZGVmYXVsdDtcbiRjdXJzb3ItZGlzYWJsZWQtdmFsdWU6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuJGN1cnNvci1wb2ludGVyLXZhbHVlOiBwb2ludGVyICFkZWZhdWx0O1xuJGN1cnNvci1oZWxwLXZhbHVlOiBoZWxwICFkZWZhdWx0O1xuJGN1cnNvci10ZXh0LXZhbHVlOiB0ZXh0ICFkZWZhdWx0O1xuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJnbG9iYWxcIikge1xuXG4gIC8vIE1ldGEgc3R5bGVzIGFyZSBpbmNsdWRlZCBpbiBhbGwgYnVpbGRzLCBhcyB0aGV5IGFyZSBhIGRlcGVuZGFuY3kgb2YgdGhlIEphdmFzY3JpcHQuXG4gIC8vIFVzZWQgdG8gcHJvdmlkZSBtZWRpYSBxdWVyeSB2YWx1ZXMgZm9yIGphdmFzY3JpcHQgY29tcG9uZW50cy5cbiAgLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG4gIG1ldGEuZm91bmRhdGlvbi12ZXJzaW9uIHtcbiAgICBmb250LWZhbWlseTogXCIvNS41LjEvXCI7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtc21hbGwge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXNtYWxsLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRzbWFsbC1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbWVkaXVtIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRtZWRpdW0tdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRtZWRpdW0tb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteGxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXhsYXJnZS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2Utb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteHhsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeHhsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLWRhdGEtYXR0cmlidXRlLW5hbWVzcGFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICN7JG5hbWVzcGFjZX07XG4gIH1cblxuICBAaWYgJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBNdXN0IGJlIDEwMCUgZm9yIG9mZiBjYW52YXMgdG8gd29ya1xuICAgIGh0bWwsIGJvZHkgeyBoZWlnaHQ6IDEwMCU7IH1cblxuICAgIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgfVxuXG4gICAgaHRtbCxcbiAgICBib2R5IHsgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7IH1cblxuICAgIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgICBib2R5IHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5LWJnO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2R5LWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zdHlsZTogJGJvZHktZm9udC1zdHlsZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDsgLy8gU2V0IHRvICRiYXNlLWxpbmUtaGVpZ2h0IHRvIHRha2Ugb24gYnJvd3NlciBkZWZhdWx0IG9mIDE1MCVcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1hdXRvLXZhbHVlO1xuICAgIH1cblxuICBhOmhvdmVyIHsgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7IH1cblxuICAgIC8vIEdyaWQgRGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuXG4gICAgaW1nIHsgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG4gICAgI21hcF9jYW52YXMsXG4gICAgLm1hcF9jYW52YXMge1xuICAgICAgaW1nLFxuICAgICAgZW1iZWQsXG4gICAgICBvYmplY3QgeyBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNaXNjZWxsYW5lb3VzIHVzZWZ1bCBIVE1MIGNsYXNzZXNcbiAgICAubGVmdCB7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAucmlnaHQgeyBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC5jbGVhcmZpeCB7IEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzXG4gICAgLmhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gICAgLmludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4gICAgLy8gRm9udCBzbW9vdGhpbmdcbiAgICAvLyBBbnRpYWxpYXNlZCBmb250IHNtb290aGluZyB3b3JrcyBiZXN0IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuICAgIC8vIEFwcGx5IHRvIHNpbmdsZSBlbGVtZW50cyBpbnN0ZWFkIG9mIGdsb2JhbGx5IHRvIGJvZHkuXG4gICAgLy8gTm90ZSB0aGlzIG9ubHkgYXBwbGllcyB0byB3ZWJraXQtYmFzZWQgZGVza3RvcCBicm93c2VycyBhbmQgRmlyZWZveCAyNSAoYW5kIGxhdGVyKSBvbiB0aGUgTWFjLlxuICAgIC5hbnRpYWxpYXNlZCB7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBHbG9iYWwgcmVzZXRzIGZvciBmb3Jtc1xuICAgIC8vXG5cbiAgICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgICB0ZXh0YXJlYSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNTBweDsgfVxuXG4gICAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gICAgc2VsZWN0IHsgd2lkdGg6IDEwMCU7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG5cdEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcblx0QHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcblx0QHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xufVxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gRm9yIGNyZWF0aW5nIGNvbnRhaW5lciwgbmVzdGVkLCBhbmQgY29sbGFwc2VkIHJvd3MuXG4vL1xuLy9cbi8vICRiZWhhdmlvciAtIEFueSBzcGVjaWFsIGJlaGF2aW9yIGZvciB0aGlzIHJvdz8gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IG5lc3QsIGNvbGxhcHNlLCBuZXN0LWNvbGxhcHNlLCBmYWxzZS5cbkBtaXhpbiBncmlkLXJvdygkYmVoYXZpb3I6IGZhbHNlKSB7XG5cblx0Ly8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QpOyB0byBpbmNsdWRlIGEgbmVzdGVkIHJvd1xuXHRAaWYgJGJlaGF2aW9yID09IG5lc3Qge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkY29sdW1uLWd1dHRlci8yKTtcblx0XHRtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkY29sdW1uLWd1dHRlci8yKTtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHR9XG5cblx0XHQvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3coY29sbGFwc2UpOyB0byBjb2xsYXBzZWQgYSBjb250YWluZXIgcm93IG1hcmdpbnNcblx0QGVsc2UgaWYgJGJlaGF2aW9yID09IGNvbGxhcHNlIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDA7XG5cdFx0bWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuXHR9XG5cblx0XHQvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdC1jb2xsYXBzZSk7IHRvIGNvbGxhcHNlIG91dGVyIG1hcmdpbnMgb24gYSBuZXN0ZWQgcm93XG5cdEBlbHNlIGlmICRiZWhhdmlvciA9PSBuZXN0LWNvbGxhcHNlIHtcblx0XHR3aWR0aDogYXV0bztcblx0XHRtYXJnaW46IDA7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHR9XG5cblx0XHQvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3c7IHRvIHVzZSBhIGNvbnRhaW5lciByb3dcblx0QGVsc2Uge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcblx0XHRtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0bWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuXHR9XG5cblx0Ly8gQ2xlYXJmaXggZm9yIGFsbCByb3dzXG5cdEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xuLy9cbi8vICRjb2x1bW5zIC0gVGhlIG51bWJlciBvZiBjb2x1bW5zIHRoaXMgc2hvdWxkIGJlXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkY2VudGVyIC0gQ2VudGVyIHRoZXNlIGNvbHVtbnM/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJG9mZnNldCAtICMgb2YgY29sdW1ucyB0byBvZmZzZXQuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVsbCAtICMgb2YgY29sdW1ucyB0byBwdWxsLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRjb2xsYXBzZSAtIEdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmcgb24gY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG5cdCRjb2x1bW5zOmZhbHNlLFxuXHQkbGFzdC1jb2x1bW46ZmFsc2UsXG5cdCRjZW50ZXI6ZmFsc2UsXG5cdCRvZmZzZXQ6ZmFsc2UsXG5cdCRwdXNoOmZhbHNlLFxuXHQkcHVsbDpmYWxzZSxcblx0JGNvbGxhcHNlOmZhbHNlLFxuXHQkZmxvYXQ6dHJ1ZSxcblx0JHBvc2l0aW9uOmZhbHNlKSB7XG5cblx0Ly8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXG5cdC8vIHB1c2ggYW5kIHB1bGwgcmVxdWlyZSBwb3NpdGlvbiBzZXRcblx0QGlmICRwb3NpdGlvbiBvciAkcHVzaCBvciAkcHVsbCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0Ly8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXG5cdEBpZiAkY29sbGFwc2Uge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHR9XG5cblx0XHQvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2Vcblx0XHQvLyAodXNlICRjb2xsYXBzZTpudWxsIHRvIGRvIG5vdGhpbmcpXG5cdEBlbHNlIGlmICRjb2xsYXBzZSA9PSBmYWxzZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcblx0fVxuXG5cdC8vIElmIGEgY29sdW1uIG51bWJlciBpcyBnaXZlbiwgY2FsY3VsYXRlIHdpZHRoXG5cdEBpZiAkY29sdW1ucyB7XG5cdFx0d2lkdGg6IGdyaWQtY2FsYygkY29sdW1ucywgJHRvdGFsLWNvbHVtbnMpO1xuXG5cdFx0Ly8gSWYgbGFzdCBjb2x1bW4sIGZsb2F0IG5hdHVyYWxseSBpbnN0ZWFkIG9mIHRvIHRoZSByaWdodFxuXHRcdEBpZiAkbGFzdC1jb2x1bW4ge1xuXHRcdFx0ZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG5cdFx0fVxuXHR9XG5cblx0Ly8gU291cmNlIE9yZGVyaW5nLCBhZGRzIGxlZnQvcmlnaHQgZGVwZW5kaW5nIG9uIHdoaWNoIHlvdSB1c2UuXG5cdEBpZiAkcHVzaCB7XG5cdFx0I3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkcHVzaCwgJHRvdGFsLWNvbHVtbnMpO1xuXHRcdCN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG5cdH1cblx0QGlmICRwdWxsIHtcblx0XHQjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBncmlkLWNhbGMoJHB1bGwsICR0b3RhbC1jb2x1bW5zKTtcblx0XHQjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcblx0fVxuXG5cdEBpZiAkZmxvYXQge1xuXHRcdEBpZiAkZmxvYXQgPT0gbGVmdCBvciAkZmxvYXQgPT0gdHJ1ZSB7XG5cdFx0XHRmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG5cdFx0fSBAZWxzZSBpZiAkZmxvYXQgPT0gcmlnaHQge1xuXHRcdFx0ZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcblx0QGlmICRjZW50ZXIge1xuXHRcdG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcblx0XHRtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcblx0XHRmbG9hdDogbm9uZTtcblx0fVxuXG5cdC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcblx0QGlmICRvZmZzZXQge1xuXHRcdG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRvZmZzZXQsICR0b3RhbC1jb2x1bW5zKSAhaW1wb3J0YW50O1xuXHR9XG5cbn1cblxuLy8gQ3JlYXRlIHByZXNlbnRhdGlvbmFsIGNsYXNzZXMgZm9yIGdyaWRcbi8vXG4vLyAkc2l6ZSAtIE5hbWUgb2YgY2xhc3MgdG8gdXNlLCBpLmUuIFwibGFyZ2VcIiB3aWxsIGdlbmVyYXRlIC5sYXJnZS0xLCAubGFyZ2UtMiwgZXRjLlxuQG1peGluIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplKSB7XG5cblx0QGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuXHRcdC4jeyRzaXplfS1wdXNoLSN7JGl9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiAkaSwgJGNvbGxhcHNlOiBudWxsLCAkZmxvYXQ6IGZhbHNlKTtcblx0XHR9XG5cdFx0LiN7JHNpemV9LXB1bGwtI3skaX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6ICRpLCAkY29sbGFwc2U6IG51bGwsICRmbG9hdDogZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdC5jb2x1bW4sXG5cdC5jb2x1bW5zIHtcblx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogZmFsc2UsICRwb3NpdGlvbjogdHJ1ZSk7XG5cdH1cblxuXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuXHRcdC4jeyRzaXplfS0jeyRpfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogJGksICRjb2xsYXBzZTogbnVsbCwgJGZsb2F0OiBmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0QGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuXHRcdC4jeyRzaXplfS1vZmZzZXQtI3skaX0ge1xuXHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW4oJG9mZnNldDogJGksICRjb2xsYXBzZTogbnVsbCwgJGZsb2F0OiBmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0LiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcblx0XHRtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG5cdFx0bWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogYXV0bztcblx0XHRmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG5cdH1cblxuXHQuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuXHQuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7XG5cdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNlbnRlcjogdHJ1ZSwgJGNvbGxhcHNlOiBudWxsLCAkZmxvYXQ6IGZhbHNlKTtcblx0fVxuXG5cdC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZCxcblx0LmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZCB7XG5cdFx0bWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuXHRcdG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuXHRcdGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcblx0fVxuXG5cdC8vIEZpZ2h0aW5nIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGRcblx0LmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxkLFxuXHQuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxkIHtcblx0XHRmbG9hdDogbm9uZTtcblx0fVxuXG5cdC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcblx0LmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG5cdC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG5cdFx0ZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuXHR9XG5cblx0LmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuXHQuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcblx0XHRmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcblx0fVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTogdHJ1ZSwgJGZsb2F0OiBmYWxzZSk7XG5cdFx0XHR9XG5cblx0XHRcdC5yb3cge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuI3skc2l6ZX0tdW5jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJncmlkXCIpIHtcblx0QGlmICRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzIHtcblx0XHQucm93IHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtcm93O1xuXG5cdFx0XHQmLmNvbGxhcHNlIHtcblx0XHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6IHRydWUsICRmbG9hdDogZmFsc2UpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnJvdyB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5yb3cge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpO1xuXG5cdFx0XHRcdCYuY29sbGFwc2Uge1xuXHRcdFx0XHRcdEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjogbmVzdC1jb2xsYXBzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY29sdW1uLFxuXHRcdC5jb2x1bW5zIHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiAkdG90YWwtY29sdW1ucyk7XG5cdFx0fVxuXG5cdFx0W2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7XG5cdFx0XHRmbG9hdDogJGxhc3QtY2hpbGQtZmxvYXQ7XG5cdFx0fVxuXHRcdFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdLmVuZCB7XG5cdFx0XHRmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG5cdFx0fVxuXG5cdFx0QG1lZGlhICN7JHNtYWxsLXVwfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTogc21hbGwpO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOiBtZWRpdW0pO1xuXHRcdFx0Ly8gT2xkIHB1c2ggYW5kIHB1bGwgY2xhc3Nlc1xuXHRcdFx0QGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuXHRcdFx0XHQucHVzaC0jeyRpfSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6ICRpLCAkY29sbGFwc2U6IG51bGwsICRmbG9hdDogZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5wdWxsLSN7JGl9IHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDogJGksICRjb2xsYXBzZTogbnVsbCwgJGZsb2F0OiBmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0QG1lZGlhICN7JGxhcmdlLXVwfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTogbGFyZ2UpO1xuXHRcdFx0QGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuXHRcdFx0XHQucHVzaC0jeyRpfSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6ICRpLCAkY29sbGFwc2U6IG51bGwsICRmbG9hdDogZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5wdWxsLSN7JGl9IHtcblx0XHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDogJGksICRjb2xsYXBzZTogbnVsbCwgJGZsb2F0OiBmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0QGlmICRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzIHtcblx0XHRAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG5cdFx0XHRAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTogeGxhcmdlKTtcblx0XHR9XG5cdFx0QG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcblx0XHRcdEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOiB4eGxhcmdlKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vXG4vLyBGT1VOREFUSU9OIFNFVFRJTkdTXG4vL1xuXG4vLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGh0bWwgYW5kIGJvZHkgZm9udC1zaXplIGZvciB0aGUgYmFzZSByZW0gdmFsdWUuXG4vLyAkcmVtLWJhc2U6IDE2cHg7XG5cbi8vIEFsbG93cyB0aGUgdXNlIG9mIHJlbS1jYWxjKCkgb3IgbG93ZXItYm91bmQoKSBpbiB5b3VyIHNldHRpbmdzXG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9mdW5jdGlvbnNcIjtcblxuLy8gJGV4cGVyaW1lbnRhbDogdHJ1ZTtcblxuLy8gVGhlIGRlZmF1bHQgZm9udC1zaXplIGlzIHNldCB0byAxMDAlIG9mIHRoZSBicm93c2VyIHN0eWxlIHNoZWV0ICh1c3VhbGx5IDE2cHgpXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxuXG4vLyBTaW5jZSB0aGUgdHlwaWNhbCBkZWZhdWx0IGJyb3dzZXIgZm9udC1zaXplIGlzIDE2cHgsIHRoYXQgbWFrZXMgdGhlIGNhbGN1bGF0aW9uIGZvciBncmlkIHNpemUuXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxuLy8gc2V0ICRyZW0tYmFzZSB0byAkYmFzZS1mb250LXNpemUgYW5kIG1ha2Ugc3VyZSAkYmFzZS1mb250LXNpemUgaXMgYSBweCB2YWx1ZS5cbi8vICRiYXNlLWZvbnQtc2l6ZTogMTAwJTtcblxuLy8gVGhlICRiYXNlLWZvbnQtc2l6ZSBpcyAxMDAlIHdoaWxlICRiYXNlLWxpbmUtaGVpZ2h0IGlzIDE1MCVcbi8vICRiYXNlLWxpbmUtaGVpZ2h0OiAxNTAlO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IENTUyBjbGFzc2VzIGNvbWUgdGhyb3VnaCBpbiB0aGUgZ2VtIGZpbGVzLlxuLy8gJGluY2x1ZGUtaHRtbC1jbGFzc2VzOiB0cnVlO1xuLy8gJGluY2x1ZGUtcHJpbnQtc3R5bGVzOiB0cnVlO1xuLy8gJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBHcmlkXG5cbi8vICRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG4vLyAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2U7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEyMDApO1xuLy8gJHRvdGFsLWNvbHVtbnM6IDEyO1xuXG4vLyBHbG9iYWxcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgd2VpZ2h0c1xuLy8gJGZvbnQtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0XG4vLyAkZm9udC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdFxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcbi8vICRib2R5LWJnOiAjZmZmO1xuLy8gJGJvZHktZm9udC1jb2xvcjogIzIyMjtcbi8vICRib2R5LWZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4vLyAkYm9keS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRib2R5LWZvbnQtc3R5bGU6IG5vcm1hbDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBmb250LXNtb290aGluZ1xuLy8gJGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGV4dCBkaXJlY3Rpb24gc2V0dGluZ3Ncbi8vICR0ZXh0LWRpcmVjdGlvbjogbHRyO1xuLy8gJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG4vLyAkZGVmYXVsdC1mbG9hdDogbGVmdDtcblxuLy8gV2UgdXNlIHRoZXNlIGFzIGRlZmF1bHQgY29sb3JzIHRocm91Z2hvdXRcbiRwcmltYXJ5LWNvbG9yOiAjNTYyODRmO1xuJHNlY29uZGFyeS1jb2xvcjogI2RiZDljYTtcbi8vICRhbGVydC1jb2xvcjogI2YwNDEyNDtcbi8vICRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBO1xuLy8gJHdhcm5pbmctY29sb3I6ICNmMDhhMjQ7XG4vLyAkaW5mby1jb2xvcjogI2EwZDNlODtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2Ugc3VyZSBib3JkZXIgcmFkaXVzIG1hdGNoZXMgdW5sZXNzIHdlIHdhbnQgaXQgZGlmZmVyZW50LlxuLy8gJGdsb2JhbC1yYWRpdXM6IDNweDtcbi8vICRnbG9iYWwtcm91bmRlZDogMTAwMHB4O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBpbnNldCBzaGFkb3cgc2hpbnkgZWRnZXMgYW5kIGRlcHJlc3Npb25zLlxuLy8gJHNoaW55LWVkZ2Utc2l6ZTogMCAxcHggMDtcbi8vICRzaGlueS1lZGdlLWNvbG9yOiByZ2JhKCNmZmYsIC41KTtcbi8vICRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvcjogcmdiYSgjMDAwLCAuMik7XG5cbi8vICRjb2x1bW4tZ3V0dGVyOiByZW0tY2FsYygzMCk7XG5cbi8vIE1lZGlhIFF1ZXJ5IFJhbmdlc1xuLy8gJHNtYWxsLXJhbmdlOiAoMGVtLCA0MGVtKTtcbi8vICRtZWRpdW0tcmFuZ2U6ICg0MC4wNjNlbSwgNjRlbSk7XG4vLyAkbGFyZ2UtcmFuZ2U6ICg2NC4wNjNlbSwgOTBlbSk7XG4vLyAkeGxhcmdlLXJhbmdlOiAoOTAuMDYzZW0sIDEyMGVtKTtcbi8vICR4eGxhcmdlLXJhbmdlOiAoMTIwLjA2M2VtLCA5OTk5OTk5OWVtKTtcblxuLy8gJHNjcmVlbjogXCJvbmx5IHNjcmVlblwiO1xuXG4vLyAkbGFuZHNjYXBlOiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVwiO1xuLy8gJHBvcnRyYWl0OiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXCI7XG5cbi8vICRzbWFsbC11cDogJHNjcmVlbjtcbi8vICRzbWFsbC1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCI7XG5cbi8vICRtZWRpdW0tdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcbi8vICRtZWRpdW0tb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcblxuLy8gJGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcbi8vICRsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcblxuLy8gJHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiO1xuLy8gJHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiO1xuXG4vLyAkeHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIjtcbi8vICR4eGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIjtcblxuLy8gTGVnYWN5XG4vLyAkc21hbGw6ICRtZWRpdW0tdXA7XG4vLyAkbWVkaXVtOiAkbWVkaXVtLXVwO1xuLy8gJGxhcmdlOiAkbGFyZ2UtdXA7XG5cbi8vV2UgdXNlIHRoaXMgYXMgY3Vyc29ycyB2YWx1ZXMgZm9yIGVuYWJsaW5nIHRoZSBvcHRpb24gb2YgaGF2aW5nIGN1c3RvbSBjdXJzb3JzIGluIHRoZSB3aG9sZSBzaXRlJ3Mgc3R5bGVzaGVldFxuLy8gJGN1cnNvci1jcm9zc2hhaXItdmFsdWU6IGNyb3NzaGFpcjtcbi8vICRjdXJzb3ItZGVmYXVsdC12YWx1ZTogZGVmYXVsdDtcbi8vICRjdXJzb3ItcG9pbnRlci12YWx1ZTogcG9pbnRlcjtcbi8vICRjdXJzb3ItaGVscC12YWx1ZTogaGVscDtcbi8vICRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dDtcblxuLy9cbi8vIFRZUE9HUkFQSFlcbi8vXG5cbi8vICRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHN0eWxlc1xuLy8gJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4vLyAkaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4vLyAkaGVhZGVyLWZvbnQtY29sb3I6ICR0YW47XG4vLyAkaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQ7XG4vLyAkaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtO1xuLy8gJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbTtcbi8vICRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQwKTtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDI4KTtcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI2KTtcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiRoNS1mb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiRoNi1mb250LXNpemU6IDFyZW07XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBzaXplIHJlZHVjdGlvbiBvbiBzbWFsbCBzY3JlZW5zXG4vLyAkaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbi8vICRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuLy8gJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbi8vICRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4vLyAkaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4vLyAkaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cbi8vICRzdWJoZWFkZXItbGluZS1oZWlnaHQ6IDEuNDtcbi8vICRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpO1xuLy8gJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRzdWJoZWFkZXItdG9wLW1hcmdpbjogLjJyZW07XG4vLyAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtO1xuXG4vLyBBIGdlbmVyYWwgPHNtYWxsPiBzdHlsaW5nXG4vLyAkc21hbGwtZm9udC1zaXplOiA2MCU7XG4vLyAkc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xuLy8gJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdDtcbi8vICRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbTtcbi8vICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNjtcbi8vICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuLy8gJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzU7XG4vLyAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU6IGl0YWxpYztcbi8vICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIDxjb2RlPiB0YWdzXG4vLyAkY29kZS1jb2xvcjogc2NhbGUtY29sb3IoJGFsZXJ0LWNvbG9yLCAkbGlnaHRuZXNzOiAtMjclKTtcbi8vICRjb2RlLWZvbnQtZmFtaWx5OiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbi8vICRjb2RlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGFuY2hvcnNcbi8vICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuLy8gJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmU7XG4vLyAkYW5jaG9yLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XG4vLyAkaHItYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkaHItYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRoci1ib3JkZXItY29sb3I6ICNkZGQ7XG4vLyAkaHItbWFyZ2luOiByZW0tY2FsYygyMCk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xuLy8gJGxpc3QtZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHk7XG4vLyAkbGlzdC1mb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xuLy8gJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4vLyAkbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4vLyAkbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbi8vICRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW07XG4vLyAkbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luOiAxLjRyZW07XG4vLyAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ6IDA7XG4vLyAkbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCk7XG4vLyAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTogLjNyZW07XG4vLyAkZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGJsb2NrcXVvdGVzXG4vLyAkYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSk7XG4vLyAkYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuLy8gJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbi8vICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4vLyAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMjMlKTtcbi8vICRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xuXG4vLyBBY3JvbnltIHN0eWxlc1xuLy8gJGFjcm9ueW0tdW5kZXJsaW5lOiAxcHggZG90dGVkICNkZGQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHBhZGRpbmcgYW5kIG1hcmdpblxuLy8gJG1pY3JvZm9ybWF0LXBhZGRpbmc6IHJlbS1jYWxjKDEwIDEyKTtcbi8vICRtaWNyb2Zvcm1hdC1tYXJnaW46IHJlbS1jYWxjKDAgMCAyMCAwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJvcmRlciBzdHlsZXNcbi8vICRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjogI2RkZDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZnVsbCBuYW1lIGZvbnQgc3R5bGVzXG4vLyAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBzdW1tYXJ5IGZvbnQgc3R5bGVzXG4vLyAkbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBwYWRkaW5nXG4vLyAkbWljcm9mb3JtYXQtYWJici1wYWRkaW5nOiByZW0tY2FsYygwIDEpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgZm9udCBzdHlsZXNcbi8vICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbi8vICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjogbm9uZTtcblxuLy8gQWNjb3JkaW9uXG5cbi8vICRpbmNsdWRlLWh0bWwtYWNjb3JkaW9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KTtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvcjogI2YyZjJmMjtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LWNvbG9yOiAjMzMzO1xuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuLy8gJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblxuLy8gJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyLzI7XG4vLyAkYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlLWJnLWNvbG9yOiAjZmZmO1xuXG4vLyBBbGVydCBCb3hlc1xuXG4vLyAkaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbGVydCBwYWRkaW5nLlxuLy8gJGFsZXJ0LXBhZGRpbmctdG9wOiByZW0tY2FsYygxNCk7XG4vLyAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0OiAkYWxlcnQtcGFkZGluZy10b3A7XG4vLyAkYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb246ICRhbGVydC1wYWRkaW5nLXRvcCArIHJlbS1jYWxjKDEwKTtcbi8vICRhbGVydC1wYWRkaW5nLWJvdHRvbTogJGFsZXJ0LXBhZGRpbmctdG9wO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IHN0eWxlLlxuLy8gJGFsZXJ0LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJGFsZXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuLy8gJGFsZXJ0LWZvbnQtY29sb3I6ICNmZmY7XG4vLyAkYWxlcnQtZm9udC1jb2xvci1hbHQ6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IC02NiUpO1xuXG4vLyBXZSB1c2UgdGhpcyBmb3IgY2xvc2UgaG92ZXIgZWZmZWN0LlxuLy8gJGFsZXJ0LWZ1bmN0aW9uLWZhY3RvcjogLTE0JTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlcy5cbi8vICRhbGVydC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJGFsZXJ0LWJvcmRlci13aWR0aDogMXB4O1xuLy8gJGFsZXJ0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6ICRhbGVydC1mdW5jdGlvbi1mYWN0b3IpO1xuLy8gJGFsZXJ0LWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDIwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBjbG9zZSBidXR0b25zXG4vLyAkYWxlcnQtY2xvc2UtY29sb3I6ICMzMzM7XG4vLyAkYWxlcnQtY2xvc2UtdG9wOiA1MCU7XG4vLyAkYWxlcnQtY2xvc2UtcG9zaXRpb246IHJlbS1jYWxjKDQpO1xuLy8gJGFsZXJ0LWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuLy8gJGFsZXJ0LWNsb3NlLW9wYWNpdHk6IDAuMztcbi8vICRhbGVydC1jbG9zZS1vcGFjaXR5LWhvdmVyOiAwLjU7XG4vLyAkYWxlcnQtY2xvc2UtcGFkZGluZzogOXB4IDZweCA0cHg7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYm9yZGVyIHJhZGl1c1xuLy8gJGFsZXJ0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdHJhbnNpdGlvbiBlZmZlY3RzXG4vLyAkYWxlcnQtdHJhbnNpdGlvbi1zcGVlZDogMzAwbXM7XG4vLyAkYWxlcnQtdHJhbnNpdGlvbi1lYXNlOiBlYXNlLW91dDtcblxuLy8gQmxvY2sgR3JpZFxuXG4vLyAkaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuLy8gJGluY2x1ZGUteGwtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IGZhbHNlO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBtYXhpbXVtIG51bWJlciBvZiBibG9jayBncmlkIGVsZW1lbnRzIHBlciByb3dcbi8vICRibG9jay1ncmlkLWVsZW1lbnRzOiAxMjtcbi8vICRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZzogcmVtLWNhbGMoMjApO1xuLy8gJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZDogZmFsc2U7XG5cblxuLy8gRW5hYmxlcyBtZWRpYSBxdWVyaWVzIGZvciBibG9jay1ncmlkIGNsYXNzZXMuIFNldCB0byBmYWxzZSBpZiB3cml0aW5nIHNlbWFudGljIEhUTUwuXG4vLyAkYmxvY2stZ3JpZC1tZWRpYS1xdWVyaWVzOiB0cnVlO1xuXG4vLyBCcmVhZGNydW1ic1xuXG4vLyAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLlxuLy8gJGNydW1iLWJnOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA1NSUpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBwYWRkaW5nIGFyb3VuZCB0aGUgYnJlYWRjcnVtYnMuXG4vLyAkY3J1bWItcGFkZGluZzogcmVtLWNhbGMoOSAxNCA5KTtcbi8vICRjcnVtYi1zaWRlLXBhZGRpbmc6IHJlbS1jYWxjKDEyKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlcy5cbi8vICRjcnVtYi1mdW5jdGlvbi1mYWN0b3I6IC0xMCU7XG4vLyAkY3J1bWItYm9yZGVyLXNpemU6IDFweDtcbi8vICRjcnVtYi1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJGNydW1iLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNydW1iLWJnLCAkbGlnaHRuZXNzOiAkY3J1bWItZnVuY3Rpb24tZmFjdG9yKTtcbi8vICRjcnVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHZhcmlvdXMgdGV4dCBzdHlsZXMgZm9yIGJyZWFkY3J1bWJzLlxuLy8gJGNydW1iLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuLy8gJGNydW1iLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDogIzMzMztcbi8vICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlOiAjOTk5O1xuLy8gJGNydW1iLWZvbnQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4vLyAkY3J1bWItbGluay1kZWNvcjogdW5kZXJsaW5lO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1ic1xuLy8gJGNydW1iLXNsYXNoLWNvbG9yOiAjYWFhO1xuLy8gJGNydW1iLXNsYXNoOiBcIi9cIjtcblxuLy9cbi8vIEJVVFRPTlNcbi8vXG5cbi8vICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuXG4vLyAkYnV0dG9uLXRueTogcmVtLWNhbGMoMTApO1xuLy8gJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDE0KTtcbi8vICRidXR0b24tbWVkOiByZW0tY2FsYygxNik7XG4vLyAkYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkaXNwbGF5IHByb3BlcnR5LlxuLy8gJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAkYnV0dG9uLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxuLy8gJGJ1dHRvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4vLyAkYnV0dG9uLWZvbnQtY29sb3I6ICNmZmY7XG4vLyAkYnV0dG9uLWZvbnQtY29sb3ItYWx0OiAjMzMzO1xuLy8gJGJ1dHRvbi1mb250LXRueTogcmVtLWNhbGMoMTEpO1xuLy8gJGJ1dHRvbi1mb250LXNtbDogcmVtLWNhbGMoMTMpO1xuLy8gJGJ1dHRvbi1mb250LW1lZDogcmVtLWNhbGMoMTYpO1xuLy8gJGJ1dHRvbi1mb250LWxyZzogcmVtLWNhbGMoMjApO1xuLy8gJGJ1dHRvbi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRidXR0b24tZm9udC1hbGlnbjogY2VudGVyO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGhvdmVyIGVmZmVjdHMuXG4vLyAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogLTIwJTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuXG4vLyAkYnV0dG9uLWJvcmRlci13aWR0aDogMHB4O1xuLy8gJGJ1dHRvbi1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJGJ1dHRvbi1iZzogJHByaW1hcnktY29sb3I7XG4vLyAkYnV0dG9uLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3Rvcik7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuLy8gJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuLy8gJGJ1dHRvbi1yb3VuZDogJGdsb2JhbC1yb3VuZGVkO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgZGVmYXVsdCBvcGFjaXR5IGZvciBkaXNhYmxlZCBidXR0b25zLlxuLy8gJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiAwLjc7XG5cbi8vIEJ1dHRvbiBHcm91cHNcblxuLy8gJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBTZXRzIHRoZSBtYXJnaW4gZm9yIHRoZSByaWdodCBzaWRlIGJ5IGRlZmF1bHQsIGFuZCB0aGUgbGVmdCBtYXJnaW4gaWYgcmlnaHQtdG8tbGVmdCBkaXJlY3Rpb24gaXMgdXNlZFxuLy8gJGJ1dHRvbi1iYXItbWFyZ2luLW9wcG9zaXRlOiByZW0tY2FsYygxMCk7XG4vLyAkYnV0dG9uLWdyb3VwLWJvcmRlci13aWR0aDogMXB4O1xuXG4vLyBDbGVhcmluZ1xuXG4vLyAkaW5jbHVkZS1odG1sLWNsZWFyaW5nLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgYmFja2dyb3VuZCBjb2xvcnMgZm9yIHBhcnRzIG9mIENsZWFyaW5nLlxuLy8gJGNsZWFyaW5nLWJnOiAjMzMzO1xuLy8gJGNsZWFyaW5nLWNhcHRpb24tYmc6ICRjbGVhcmluZy1iZztcbi8vICRjbGVhcmluZy1jYXJvdXNlbC1iZzogcmdiYSg1MSw1MSw1MSwwLjgpO1xuLy8gJGNsZWFyaW5nLWltZy1iZzogJGNsZWFyaW5nLWJnO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGNsb3NlIGJ1dHRvblxuLy8gJGNsZWFyaW5nLWNsb3NlLWNvbG9yOiAjY2NjO1xuLy8gJGNsZWFyaW5nLWNsb3NlLXNpemU6IDMwcHg7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgYXJyb3dzXG4vLyAkY2xlYXJpbmctYXJyb3ctc2l6ZTogMTJweDtcbi8vICRjbGVhcmluZy1hcnJvdy1jb2xvcjogJGNsZWFyaW5nLWNsb3NlLWNvbG9yO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgY2FwdGlvbnNcbi8vICRjbGVhcmluZy1jYXB0aW9uLWZvbnQtY29sb3I6ICNjY2M7XG4vLyAkY2xlYXJpbmctY2FwdGlvbi1mb250LXNpemU6IDAuODc1ZW07XG4vLyAkY2xlYXJpbmctY2FwdGlvbi1wYWRkaW5nOiAxMHB4IDMwcHggMjBweDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2UgdGhlIGltYWdlIGFuZCBjYXJvdXNlbCBoZWlnaHQgYW5kIHN0eWxlXG4vLyAkY2xlYXJpbmctYWN0aXZlLWltZy1oZWlnaHQ6IDg1JTtcbi8vICRjbGVhcmluZy1jYXJvdXNlbC1oZWlnaHQ6IDEyMHB4O1xuLy8gJGNsZWFyaW5nLWNhcm91c2VsLXRodW1iLXdpZHRoOiAxMjBweDtcbi8vICRjbGVhcmluZy1jYXJvdXNlbC10aHVtYi1hY3RpdmUtYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSwyNTUsMjU1KTtcblxuLy8gRHJvcGRvd25cblxuLy8gJGluY2x1ZGUtaHRtbC1kcm9wZG93bi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9scyBoZWlnaHQgYW5kIHdpZHRoIHN0eWxlcy5cbi8vICRmLWRyb3Bkb3duLW1heC13aWR0aDogMjAwcHg7XG4vLyAkZi1kcm9wZG93bi1oZWlnaHQ6IGF1dG87XG4vLyAkZi1kcm9wZG93bi1tYXgtaGVpZ2h0OiBub25lO1xuXG4vLyBVc2VkIGZvciBib3R0b20gcG9zaXRpb25cbi8vICRmLWRyb3Bkb3duLW1hcmdpbi10b3A6IDJweDtcblxuLy8gVXNlZCBmb3IgcmlnaHQgcG9zaXRpb25cbi8vICRmLWRyb3Bkb3duLW1hcmdpbi1sZWZ0OiAkZi1kcm9wZG93bi1tYXJnaW4tdG9wO1xuXG4vLyBVc2VkIGZvciBsZWZ0IHBvc2l0aW9uXG4vLyAkZi1kcm9wZG93bi1tYXJnaW4tcmlnaHQ6ICRmLWRyb3Bkb3duLW1hcmdpbi10b3A7XG5cbi8vIFVzZWQgZm9yIHRvcCBwb3NpdGlvblxuLy8gJGYtZHJvcGRvd24tbWFyZ2luLWJvdHRvbTogJGYtZHJvcGRvd24tbWFyZ2luLXRvcDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgYmFja2dyb3VuZCBjb2xvclxuLy8gJGYtZHJvcGRvd24tYmc6ICNmZmY7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYm9yZGVyIHN0eWxlcyBmb3IgZHJvcGRvd25zLlxuLy8gJGYtZHJvcGRvd24tYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRmLWRyb3Bkb3duLWJvcmRlci13aWR0aDogMXB4O1xuLy8gJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigjZmZmLCAkbGlnaHRuZXNzOiAtMjAlKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSB0cmlhbmdsZSBwaXAuXG4vLyAkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplOiA2cHg7XG4vLyAkZi1kcm9wZG93bi10cmlhbmdsZS1jb2xvcjogI2ZmZjtcbi8vICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0OiAxMHB4O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBzdHlsZXMgZm9yIHRoZSBsaXN0IGVsZW1lbnRzLlxuLy8gJGYtZHJvcGRvd24tbGlzdC1zdHlsZTogbm9uZTtcbi8vICRmLWRyb3Bkb3duLWZvbnQtY29sb3I6ICM1NTU7XG4vLyAkZi1kcm9wZG93bi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRmLWRyb3Bkb3duLWxpc3QtcGFkZGluZzogcmVtLWNhbGMoNSwgMTApO1xuLy8gJGYtZHJvcGRvd24tbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KTtcbi8vICRmLWRyb3Bkb3duLWxpc3QtaG92ZXItYmc6ICNlZWVlZWUgIDtcbi8vICRkcm9wZG93bi1tb2JpbGUtZGVmYXVsdC1mbG9hdDogMDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3R5bGVzIGZvciB3aGVuIHRoZSBkcm9wZG93biBoYXMgY3VzdG9tIGNvbnRlbnQuXG4vLyAkZi1kcm9wZG93bi1jb250ZW50LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcblxuLy8gRHJvcGRvd24gQnV0dG9uc1xuXG4vLyAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIGNvbG9yIG9mIHRoZSBwaXAgaW4gZHJvcGRvd24gYnV0dG9uc1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtY29sb3I6ICNmZmY7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC1jb2xvci1hbHQ6ICMzMzM7XG5cbi8vICRidXR0b24tcGlwLXRueTogcmVtLWNhbGMoNik7XG4vLyAkYnV0dG9uLXBpcC1zbWw6IHJlbS1jYWxjKDcpO1xuLy8gJGJ1dHRvbi1waXAtbWVkOiByZW0tY2FsYyg5KTtcbi8vICRidXR0b24tcGlwLWxyZzogcmVtLWNhbGMoMTEpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGlueSBkcm9wZG93biBidXR0b25zXG4vLyAkZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctdG55OiAkYnV0dG9uLXBpcC10bnkgKiA3O1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS10bnk6ICRidXR0b24tcGlwLXRueTtcbi8vICRkcm9wZG93bi1idXR0b24tcGlwLW9wcG9zaXRlLXRueTogJGJ1dHRvbi1waXAtdG55ICogMztcbi8vICRkcm9wZG93bi1idXR0b24tcGlwLXRvcC10bnk6IC0kYnV0dG9uLXBpcC10bnkgLyAyICsgcmVtLWNhbGMoMSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBzbWFsbCBkcm9wZG93biBidXR0b25zXG4vLyAkZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctc21sOiAkYnV0dG9uLXBpcC1zbWwgKiA3O1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1zbWw6ICRidXR0b24tcGlwLXNtbDtcbi8vICRkcm9wZG93bi1idXR0b24tcGlwLW9wcG9zaXRlLXNtbDogJGJ1dHRvbi1waXAtc21sICogMztcbi8vICRkcm9wZG93bi1idXR0b24tcGlwLXRvcC1zbWw6IC0kYnV0dG9uLXBpcC1zbWwgLyAyICsgcmVtLWNhbGMoMSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBtZWRpdW0gZHJvcGRvd24gYnV0dG9uc1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLW1lZDogJGJ1dHRvbi1waXAtbWVkICogNiArIHJlbS1jYWxjKDMpO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1tZWQ6ICRidXR0b24tcGlwLW1lZCAtIHJlbS1jYWxjKDMpO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtbWVkOiAkYnV0dG9uLXBpcC1tZWQgKiAyLjU7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtbWVkOiAtJGJ1dHRvbi1waXAtbWVkIC8gMiArIHJlbS1jYWxjKDIpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgbGFyZ2UgZHJvcGRvd24gYnV0dG9uc1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLWxyZzogJGJ1dHRvbi1waXAtbHJnICogNSArIHJlbS1jYWxjKDMpO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1scmc6ICRidXR0b24tcGlwLWxyZyAtIHJlbS1jYWxjKDYpO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtbHJnOiAkYnV0dG9uLXBpcC1scmcgKiAyLjU7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtbHJnOiAtJGJ1dHRvbi1waXAtbHJnIC8gMiArIHJlbS1jYWxjKDMpO1xuXG4vLyBGbGV4IFZpZGVvXG5cbi8vICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2aWRlbyBjb250YWluZXIgcGFkZGluZyBhbmQgbWFyZ2luc1xuLy8gJGZsZXgtdmlkZW8tcGFkZGluZy10b3A6IHJlbS1jYWxjKDI1KTtcbi8vICRmbGV4LXZpZGVvLXBhZGRpbmctYm90dG9tOiA2Ny41JTtcbi8vICRmbGV4LXZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB3aWRlc2NyZWVuIGJvdHRvbSBwYWRkaW5nXG4vLyAkZmxleC12aWRlby13aWRlc2NyZWVuLXBhZGRpbmctYm90dG9tOiA1Ni4zNCU7XG5cbi8vIEZvcm1zXG5cbi8vICRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFzZSBmb3IgbG90cyBvZiBmb3JtIHNwYWNpbmcgYW5kIHBvc2l0aW9uaW5nIHN0eWxlc1xuLy8gJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxhYmVscyBpbiBkaWZmZXJlbnQgd2F5c1xuLy8gJGZvcm0tbGFiZWwtcG9pbnRlcjogcG9pbnRlcjtcbi8vICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuLy8gJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS41O1xuLy8gJGZvcm0tbGFiZWwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoIzAwMCwgJGxpZ2h0bmVzczogMzAlKTtcbi8vICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbi8vICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW46IDA7XG4vLyAkaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4vLyAkaW5wdXQtZm9udC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KTtcbi8vICRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRpbnB1dC1iZy1jb2xvcjogI2ZmZjtcbi8vICRpbnB1dC1mb2N1cy1iZy1jb2xvcjogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogLTIlKTtcbi8vICRpbnB1dC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCNmZmYsICRsaWdodG5lc3M6IC0yMCUpO1xuLy8gJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogLTQwJSk7XG4vLyAkaW5wdXQtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRpbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRpbnB1dC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbi8vICRpbnB1dC1kaXNhYmxlZC1iZzogI2RkZDtcbi8vICRpbnB1dC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpO1xuLy8gJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Q6IHRydWU7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZmllbGRzZXQgYm9yZGVyIGFuZCBzcGFjaW5nLlxuLy8gJGZpZWxkc2V0LWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkZmllbGRzZXQtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkZmllbGRzZXQtYm9yZGVyLWNvbG9yOiAjZGRkO1xuLy8gJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbi8vICRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxlZ2VuZHMgd2hlbiB5b3UgdXNlIHRoZW1cbi8vICRsZWdlbmQtYmc6ICNmZmY7XG4vLyAkbGVnZW5kLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbi8vICRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBwcmVmaXggYW5kIHBvc3RmaXggaW5wdXQgZWxlbWVudHNcbi8vICRpbnB1dC1wcmVmaXgtYmc6IHNjYWxlLWNvbG9yKCNmZmYsICRsaWdodG5lc3M6IC01JSk7XG4vLyAkaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogLTIwJSk7XG4vLyAkaW5wdXQtcHJlZml4LWJvcmRlci1zaXplOiAxcHg7XG4vLyAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlOiBzb2xpZDtcbi8vICRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c6IGhpZGRlbjtcbi8vICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjogIzMzMztcbi8vICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ6ICNmZmY7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZXJyb3Igc3RhdGVzIGZvciBpbnB1dHMgYW5kIGxhYmVsc1xuLy8gJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZzogcmVtLWNhbGMoNiA5IDkpO1xuLy8gJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wOiAtMXB4O1xuLy8gJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4vLyAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU6IGl0YWxpYztcbi8vICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I6ICNmZmY7XG4vLyAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDogIzMzMztcblxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIGdsb3dpbmcgZWZmZWN0IG9mIGlucHV0cyB3aGVuIGZvY3VzZWRcbi8vICRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWU6IDAuNDVzO1xuLy8gJGdsb3dpbmctZWZmZWN0LWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuXG4vLyBTZWxlY3QgdmFyaWFibGVzXG4vLyAkc2VsZWN0LWJnLWNvbG9yOiAjZmFmYWZhO1xuLy8gJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKTtcblxuLy8gSW5saW5lIExpc3RzXG5cbi8vICRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBtYXJnaW5zIGFuZCBwYWRkaW5nIG9mIHRoZSBpbmxpbmUgbGlzdC5cbi8vICRpbmxpbmUtbGlzdC10b3AtbWFyZ2luOiAwO1xuLy8gJGlubGluZS1saXN0LW9wcG9zaXRlLW1hcmdpbjogMDtcbi8vICRpbmxpbmUtbGlzdC1ib3R0b20tbWFyZ2luOiByZW0tY2FsYygxNyk7XG4vLyAkaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1tYXJnaW46IHJlbS1jYWxjKC0yMik7XG4vLyAkaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjogcmVtLWNhbGMoMjIpO1xuXG4vLyAkaW5saW5lLWxpc3QtcGFkZGluZzogMDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgb3ZlcmZsb3cgb2YgdGhlIGlubGluZSBsaXN0LlxuLy8gJGlubGluZS1saXN0LW92ZXJmbG93OiBoaWRkZW47XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGxpc3QgaXRlbXNcbi8vICRpbmxpbmUtbGlzdC1kaXNwbGF5OiBibG9jaztcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbnkgZWxtZW50cyB3aXRoaW4gbGlzdCBpdGVtc1xuLy8gJGlubGluZS1saXN0LWNoaWxkcmVuLWRpc3BsYXk6IGJsb2NrO1xuXG4vLyBKb3lyaWRlXG5cbi8vICRpbmNsdWRlLWh0bWwtam95cmlkZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIENvbnRyb2xsaW5nIGRlZmF1bHQgSm95cmlkZSBzdHlsZXNcbi8vICRqb3lyaWRlLXRpcC1iZzogIzMzMztcbi8vICRqb3lyaWRlLXRpcC1kZWZhdWx0LXdpZHRoOiAzMDBweDtcbi8vICRqb3lyaWRlLXRpcC1wYWRkaW5nOiByZW0tY2FsYygxOCAyMCAyNCk7XG4vLyAkam95cmlkZS10aXAtYm9yZGVyOiBzb2xpZCAxcHggIzU1NTtcbi8vICRqb3lyaWRlLXRpcC1yYWRpdXM6IDRweDtcbi8vICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ6IDIycHg7XG5cbi8vIEhlcmUsIHdlJ3JlIHNldHRpbmcgdGhlIHRpcCBkb250IHN0eWxlc1xuLy8gJGpveXJpZGUtdGlwLWZvbnQtY29sb3I6ICNmZmY7XG4vLyAkam95cmlkZS10aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkam95cmlkZS10aXAtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cbi8vIFRoaXMgY2hhbmdlcyB0aGUgbnViIHNpemVcbi8vICRqb3lyaWRlLXRpcC1udWItc2l6ZTogMTBweDtcblxuLy8gVGhpcyBhZGp1c3RzIHRoZSBzdHlsZXMgZm9yIHRoZSB0aW1lciB3aGVuIGl0cyBlbmFibGVkXG4vLyAkam95cmlkZS10aXAtdGltZXItd2lkdGg6IDUwcHg7XG4vLyAkam95cmlkZS10aXAtdGltZXItaGVpZ2h0OiAzcHg7XG4vLyAkam95cmlkZS10aXAtdGltZXItY29sb3I6ICM2NjY7XG5cbi8vIFRoaXMgY2hhbmdlcyB1cCB0aGUgc3R5bGVzIGZvciB0aGUgY2xvc2UgYnV0dG9uXG4vLyAkam95cmlkZS10aXAtY2xvc2UtY29sb3I6ICM3Nzc7XG4vLyAkam95cmlkZS10aXAtY2xvc2Utc2l6ZTogMjRweDtcbi8vICRqb3lyaWRlLXRpcC1jbG9zZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG5cbi8vIFdoZW4gSm95cmlkZSBpcyBmaWxsaW5nIHRoZSBzY3JlZW4sIHdlIHVzZSB0aGlzIHN0eWxlIGZvciB0aGUgYmdcbi8vICRqb3lyaWRlLXNjcmVlbmZpbGw6IHJnYmEoMCwwLDAsMC41KTtcblxuLy8gS2V5c3Ryb2tlc1xuXG4vLyAkaW5jbHVkZS1odG1sLWtleXN0cm9rZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgc3R5bGVzLlxuLy8gJGtleXN0cm9rZS1mb250OiBcIkNvbnNvbGFzXCIsIFwiTWVubG9cIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcbi8vICRrZXlzdHJva2UtZm9udC1zaXplOiBpbmhlcml0O1xuLy8gJGtleXN0cm9rZS1mb250LWNvbG9yOiAjMjIyO1xuLy8gJGtleXN0cm9rZS1mb250LWNvbG9yLWFsdDogI2ZmZjtcbi8vICRrZXlzdHJva2UtZnVuY3Rpb24tZmFjdG9yOiAtNyU7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wga2V5c3Ryb2tlIHBhZGRpbmcuXG4vLyAka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYmFja2dyb3VuZCBhbmQgYm9yZGVyIHN0eWxlcy5cbi8vICRrZXlzdHJva2UtYmc6IHNjYWxlLWNvbG9yKCNmZmYsICRsaWdodG5lc3M6ICRrZXlzdHJva2UtZnVuY3Rpb24tZmFjdG9yKTtcbi8vICRrZXlzdHJva2UtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRrZXlzdHJva2UtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAka2V5c3Ryb2tlLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGtleXN0cm9rZS1iZywgJGxpZ2h0bmVzczogJGtleXN0cm9rZS1mdW5jdGlvbi1mYWN0b3IpO1xuLy8gJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyBMYWJlbHNcblxuLy8gJGluY2x1ZGUtaHRtbC1sYWJlbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWxzXG4vLyAkbGFiZWwtcGFkZGluZzogcmVtLWNhbGMoNCA4IDYpO1xuLy8gJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWwgdGV4dFxuLy8gJGxhYmVsLWZvbnQtc2l6aW5nOiByZW0tY2FsYygxMSk7XG4vLyAkbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkbGFiZWwtZm9udC1jb2xvcjogIzMzMztcbi8vICRsYWJlbC1mb250LWNvbG9yLWFsdDogI2ZmZjtcbi8vICRsYWJlbC1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cbi8vIE1hZ2VsbGFuXG5cbi8vICRpbmNsdWRlLWh0bWwtbWFnZWxsYW4tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyAkbWFnZWxsYW4tYmc6ICNmZmY7XG4vLyAkbWFnZWxsYW4tcGFkZGluZzogMTBweDtcblxuLy8gT2ZmLWNhbnZhc1xuXG4vLyAkaW5jbHVkZS1odG1sLW9mZi1jYW52YXMtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyAkdGFiYmFyLWJnOiAjMzMzO1xuLy8gJHRhYmJhci1oZWlnaHQ6IHJlbS1jYWxjKDQ1KTtcbi8vICR0YWJiYXItaWNvbi13aWR0aDogJHRhYmJhci1oZWlnaHQ7XG4vLyAkdGFiYmFyLWxpbmUtaGVpZ2h0OiAkdGFiYmFyLWhlaWdodDtcbi8vICR0YWJiYXItY29sb3I6ICNmZmY7XG4vLyAkdGFiYmFyLW1pZGRsZS1wYWRkaW5nOiAwIHJlbS1jYWxjKDEwKTtcblxuLy8gT2ZmIENhbnZhcyBEaXZpZGVyIFN0eWxlc1xuLy8gJHRhYmJhci1yaWdodC1zZWN0aW9uLWJvcmRlcjogc29saWQgMXB4IHNjYWxlLWNvbG9yKCR0YWJiYXItYmcsICRsaWdodG5lc3M6IDEzJSk7XG4vLyAkdGFiYmFyLWxlZnQtc2VjdGlvbi1ib3JkZXI6IHNvbGlkIDFweCBzY2FsZS1jb2xvcigkdGFiYmFyLWJnLCAkbGlnaHRuZXNzOiAtNTAlKTtcblxuLy8gT2ZmIENhbnZhcyBUYWIgQmFyIEhlYWRlcnNcbi8vICR0YWJiYXItaGVhZGVyLWNvbG9yOiAjZmZmO1xuLy8gJHRhYmJhci1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbi8vICR0YWJiYXItaGVhZGVyLWxpbmUtaGVpZ2h0OiAkdGFiYmFyLWhlaWdodDtcbi8vICR0YWJiYXItaGVhZGVyLW1hcmdpbjogMDtcblxuLy8gT2ZmIENhbnZhcyBNZW51IFZhcmlhYmxlc1xuLy8gJG9mZi1jYW52YXMtd2lkdGg6IHJlbS1jYWxjKDI1MCk7XG4vLyAkb2ZmLWNhbnZhcy1iZzogIzMzMztcblxuLy8gT2ZmIENhbnZhcyBNZW51IExpc3QgVmFyaWFibGVzXG4vLyAkb2ZmLWNhbnZhcy1sYWJlbC1wYWRkaW5nOiAwLjNyZW0gcmVtLWNhbGMoMTUpO1xuLy8gJG9mZi1jYW52YXMtbGFiZWwtY29sb3I6ICM5OTk7XG4vLyAkb2ZmLWNhbnZhcy1sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuLy8gJG9mZi1jYW52YXMtbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJG9mZi1jYW52YXMtbGFiZWwtYmc6ICM0NDQ7XG4vLyAkb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItdG9wOiAxcHggc29saWQgc2NhbGUtY29sb3IoIzQ0NCwgJGxpZ2h0bmVzczogMTQlKTtcbi8vICRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci1ib3R0b206IG5vbmU7XG4vLyAkb2ZmLWNhbnZhcy1sYWJlbC1tYXJnaW46MDtcbi8vICRvZmYtY2FudmFzLWxpbmstcGFkZGluZzogcmVtLWNhbGMoMTAsIDE1KTtcbi8vICRvZmYtY2FudmFzLWxpbmstY29sb3I6IHJnYmEoI2ZmZiwgMC43KTtcbi8vICRvZmYtY2FudmFzLWxpbmstYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHNjYWxlLWNvbG9yKCRvZmYtY2FudmFzLWJnLCAkbGlnaHRuZXNzOiAtMjUlKTtcblxuLy8gT2ZmIENhbnZhcyBNZW51IEljb24gVmFyaWFibGVzXG4vLyAkdGFiYmFyLW1lbnUtaWNvbi1jb2xvcjogI2ZmZjtcbi8vICR0YWJiYXItbWVudS1pY29uLWhvdmVyOiBzY2FsZS1jb2xvcigkdGFiYmFyLW1lbnUtaWNvbi1jb2xvciwgJGxpZ2h0bmVzczogLTMwJSk7XG5cbi8vICR0YWJiYXItbWVudS1pY29uLXRleHQtaW5kZW50OiByZW0tY2FsYygzNSk7XG4vLyAkdGFiYmFyLW1lbnUtaWNvbi13aWR0aDogJHRhYmJhci1oZWlnaHQ7XG4vLyAkdGFiYmFyLW1lbnUtaWNvbi1oZWlnaHQ6ICR0YWJiYXItaGVpZ2h0O1xuLy8gJHRhYmJhci1tZW51LWljb24tcGFkZGluZzogMDtcblxuLy8gJHRhYmJhci1oYW1idXJnZXItaWNvbi13aWR0aDogcmVtLWNhbGMoMTYpO1xuLy8gJHRhYmJhci1oYW1idXJnZXItaWNvbi1sZWZ0OiBmYWxzZTtcbi8vICR0YWJiYXItaGFtYnVyZ2VyLWljb24tdG9wOiBmYWxzZTtcbi8vICR0YWJiYXItaGFtYnVyZ2VyLWljb24tdGhpY2tuZXNzOiAxcHg7XG4vLyAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWdhcDogNnB4O1xuXG4vLyBPZmYgQ2FudmFzIEJhY2stTGluayBPdmVybGF5XG4vLyAkb2ZmLWNhbnZhcy1vdmVybGF5LXRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZTtcbi8vICRvZmYtY2FudmFzLW92ZXJsYXktY3Vyc29yOiBwb2ludGVyO1xuLy8gJG9mZi1jYW52YXMtb3ZlcmxheS1ib3gtc2hhZG93OiAtNHB4IDAgNHB4IHJnYmEoIzAwMCwgMC41KSwgNHB4IDAgNHB4IHJnYmEoIzAwMCwgMC41KTtcbi8vICRvZmYtY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgjZmZmLCAwLjIpO1xuLy8gJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCNmZmYsIDAuMDUpO1xuXG4vLyBUcmFuc2l0aW9uIFZhcmlhYmxlc1xuLy8gJG1lbnUtc2xpZGU6IFwidHJhbnNmb3JtIDUwMG1zIGVhc2VcIjtcblxuLy8gT3JiaXRcblxuLy8gJGluY2x1ZGUtaHRtbC1vcmJpdC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBjYXB0aW9uIHN0eWxlc1xuLy8gJG9yYml0LWNvbnRhaW5lci1iZzogbm9uZTtcbi8vICRvcmJpdC1jYXB0aW9uLWJnOiByZ2JhKDUxLDUxLDUxLCAwLjgpO1xuLy8gJG9yYml0LWNhcHRpb24tZm9udC1jb2xvcjogI2ZmZjtcbi8vICRvcmJpdC1jYXB0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuLy8gJG9yYml0LWNhcHRpb24tcG9zaXRpb246IFwiYm90dG9tXCI7IC8vIFN1cHBvcnRlZCB2YWx1ZXM6IFwiYm90dG9tXCIsIFwidW5kZXJcIlxuLy8gJG9yYml0LWNhcHRpb24tcGFkZGluZzogcmVtLWNhbGMoMTAgMTQpO1xuLy8gJG9yYml0LWNhcHRpb24taGVpZ2h0OiBhdXRvO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgbGVmdC9yaWdodCBuYXYgc3R5bGVzXG4vLyAkb3JiaXQtbmF2LWJnOiB0cmFuc3BhcmVudDtcbi8vICRvcmJpdC1uYXYtYmctaG92ZXI6IHJnYmEoMCwwLDAsMC4zKTtcbi8vICRvcmJpdC1uYXYtYXJyb3ctY29sb3I6ICNmZmY7XG4vLyAkb3JiaXQtbmF2LWFycm93LWNvbG9yLWhvdmVyOiAjZmZmO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgdGltZXIgc3R5bGVzXG4vLyAkb3JiaXQtdGltZXItYmc6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcbi8vICRvcmJpdC10aW1lci1zaG93LXByb2dyZXNzLWJhcjogdHJ1ZTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJ1bGxldCBuYXYgc3R5bGVzXG4vLyAkb3JiaXQtYnVsbGV0LW5hdi1jb2xvcjogI2NjYztcbi8vICRvcmJpdC1idWxsZXQtbmF2LWNvbG9yLWFjdGl2ZTogIzk5OTtcbi8vICRvcmJpdC1idWxsZXQtcmFkaXVzOiByZW0tY2FsYyg5KTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2xzIHRoZSBzdHlsZSBvZiBzbGlkZSBudW1iZXJzXG4vLyAkb3JiaXQtc2xpZGUtbnVtYmVyLWJnOiByZ2JhKDAsMCwwLDApO1xuLy8gJG9yYml0LXNsaWRlLW51bWJlci1mb250LWNvbG9yOiAjZmZmO1xuLy8gJG9yYml0LXNsaWRlLW51bWJlci1wYWRkaW5nOiByZW0tY2FsYyg1KTtcblxuLy8gSGlkZSBjb250cm9scyBvbiBzbWFsbFxuLy8gJG9yYml0LW5hdi1oaWRlLWZvci1zbWFsbDogdHJ1ZTtcbi8vICRvcmJpdC1idWxsZXQtaGlkZS1mb3Itc21hbGw6IHRydWU7XG4vLyAkb3JiaXQtdGltZXItaGlkZS1mb3Itc21hbGw6IHRydWU7XG5cbi8vIEdyYWNlZnVsIExvYWRpbmcgV3JhcHBlciBhbmQgcHJlbG9hZGVyXG4vLyAkd3JhcHBlci1jbGFzczogXCJzbGlkZXNob3ctd3JhcHBlclwiO1xuLy8gJHByZWxvYWRlci1jbGFzczogXCJwcmVsb2FkZXJcIjtcblxuLy8gUGFnaW5hdGlvblxuXG4vLyAkaW5jbHVkZS1wYWdpbmF0aW9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHBhZ2luYXRpb24gY29udGFpbmVyXG4vLyAkcGFnaW5hdGlvbi1oZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbi8vICRwYWdpbmF0aW9uLW1hcmdpbjogcmVtLWNhbGMoLTUpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBsaXN0LWl0ZW0gcHJvcGVydGllc1xuLy8gJHBhZ2luYXRpb24tbGktZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuLy8gJHBhZ2luYXRpb24tbGktaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4vLyAkcGFnaW5hdGlvbi1saS1mb250LWNvbG9yOiAjMjIyO1xuLy8gJHBhZ2luYXRpb24tbGktZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkcGFnaW5hdGlvbi1saS1tYXJnaW46IHJlbS1jYWxjKDUpO1xuXG4vLyBXZSB1c2UgdGhlc2UgZm9yIHRoZSBwYWdpbmF0aW9uIGFuY2hvciBsaW5rc1xuLy8gJHBhZ2luYXRpb24tbGluay1wYWQ6IHJlbS1jYWxjKDEgMTAgMSk7XG4vLyAkcGFnaW5hdGlvbi1saW5rLWZvbnQtY29sb3I6ICM5OTk7XG4vLyAkcGFnaW5hdGlvbi1saW5rLWFjdGl2ZS1iZzogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogLTEwJSk7XG5cbi8vIFdlIHVzZSB0aGVzZSBmb3IgZGlzYWJsZWQgYW5jaG9yIGxpbmtzXG4vLyAkcGFnaW5hdGlvbi1saW5rLXVuYXZhaWxhYmxlLWN1cnNvcjogZGVmYXVsdDtcbi8vICRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtZm9udC1jb2xvcjogIzk5OTtcbi8vICRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtYmctYWN0aXZlOiB0cmFuc3BhcmVudDtcblxuLy8gV2UgdXNlIHRoZXNlIGZvciBjdXJyZW50bHkgc2VsZWN0ZWQgYW5jaG9yIGxpbmtzXG4vLyAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4vLyAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtZm9udC1jb2xvcjogI2ZmZjtcbi8vICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4vLyAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtY3Vyc29yOiBkZWZhdWx0O1xuLy8gJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWFjdGl2ZS1iZzogJHByaW1hcnktY29sb3I7XG5cbi8vIFBhbmVsc1xuXG4vLyAkaW5jbHVkZS1odG1sLXBhbmVsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBzdHlsZXNcbi8vICRwYW5lbC1iZzogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogLTUlKTtcbi8vICRwYW5lbC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJHBhbmVsLWJvcmRlci1zaXplOiAxcHg7XG5cbi8vIFdlIHVzZSB0aGlzICUgdG8gY29udHJvbCBob3cgbXVjaCB3ZSBkYXJrZW4gdGhpbmdzIG9uIGhvdmVyXG4vLyAkcGFuZWwtZnVuY3Rpb24tZmFjdG9yOiAtMTElO1xuLy8gJHBhbmVsLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHBhbmVsLWJnLCAkbGlnaHRuZXNzOiAkcGFuZWwtZnVuY3Rpb24tZmFjdG9yKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCBkZWZhdWx0IGlubmVyIHBhZGRpbmcgYW5kIGJvdHRvbSBtYXJnaW5cbi8vICRwYW5lbC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4vLyAkcGFuZWwtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IGRlZmF1bHQgZm9udCBjb2xvcnNcbi8vICRwYW5lbC1mb250LWNvbG9yOiAjMzMzO1xuLy8gJHBhbmVsLWZvbnQtY29sb3ItYWx0OiAjZmZmO1xuXG4vLyAkcGFuZWwtaGVhZGVyLWFkanVzdDogdHJ1ZTtcbi8vICRjYWxsb3V0LXBhbmVsLWxpbmstY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4vLyBQcmljaW5nIFRhYmxlc1xuXG4vLyAkaW5jbHVkZS1odG1sLXByaWNpbmctY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBib3JkZXIgY29sb3Jcbi8vICRwcmljZS10YWJsZS1ib3JkZXI6IHNvbGlkIDFweCAjZGRkO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBib3R0b20gbWFyZ2luIG9mIHRoZSBwcmljaW5nIHRhYmxlXG4vLyAkcHJpY2UtdGFibGUtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgdGl0bGUgc3R5bGVzXG4vLyAkcHJpY2UtdGl0bGUtYmc6ICMzMzM7XG4vLyAkcHJpY2UtdGl0bGUtcGFkZGluZzogcmVtLWNhbGMoMTUgMjApO1xuLy8gJHByaWNlLXRpdGxlLWFsaWduOiBjZW50ZXI7XG4vLyAkcHJpY2UtdGl0bGUtY29sb3I6ICNlZWU7XG4vLyAkcHJpY2UtdGl0bGUtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHByaWNlLXRpdGxlLXNpemU6IHJlbS1jYWxjKDE2KTtcbi8vICRwcmljZS10aXRsZS1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBwcmljZSBzdHlsZXNcbi8vICRwcmljZS1tb25leS1iZzogI2Y2ZjZmNiAgO1xuLy8gJHByaWNlLW1vbmV5LXBhZGRpbmc6IHJlbS1jYWxjKDE1IDIwKTtcbi8vICRwcmljZS1tb25leS1hbGlnbjogY2VudGVyO1xuLy8gJHByaWNlLW1vbmV5LWNvbG9yOiAjMzMzO1xuLy8gJHByaWNlLW1vbmV5LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRwcmljZS1tb25leS1zaXplOiByZW0tY2FsYygzMik7XG4vLyAkcHJpY2UtbW9uZXktZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBkZXNjcmlwdGlvbiBzdHlsZXNcbi8vICRwcmljZS1iZzogI2ZmZjtcbi8vICRwcmljZS1kZXNjLWNvbG9yOiAjNzc3O1xuLy8gJHByaWNlLWRlc2MtcGFkZGluZzogcmVtLWNhbGMoMTUpO1xuLy8gJHByaWNlLWRlc2MtYWxpZ246IGNlbnRlcjtcbi8vICRwcmljZS1kZXNjLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuLy8gJHByaWNlLWRlc2Mtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHByaWNlLWRlc2MtbGluZS1oZWlnaHQ6IDEuNDtcbi8vICRwcmljZS1kZXNjLWJvdHRvbS1ib3JkZXI6IGRvdHRlZCAxcHggI2RkZDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGxpc3QgaXRlbSBzdHlsZXNcbi8vICRwcmljZS1pdGVtLWNvbG9yOiAjMzMzO1xuLy8gJHByaWNlLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMTUpO1xuLy8gJHByaWNlLWl0ZW0tYWxpZ246IGNlbnRlcjtcbi8vICRwcmljZS1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuLy8gJHByaWNlLWl0ZW0td2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHByaWNlLWl0ZW0tYm90dG9tLWJvcmRlcjogZG90dGVkIDFweCAjZGRkO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgQ1RBIGFyZWEgc3R5bGVzXG4vLyAkcHJpY2UtY3RhLWJnOiAjZmZmO1xuLy8gJHByaWNlLWN0YS1hbGlnbjogY2VudGVyO1xuLy8gJHByaWNlLWN0YS1wYWRkaW5nOiByZW0tY2FsYygyMCAyMCAwKTtcblxuLy8gUHJvZ3Jlc3MgQmFyXG5cbi8vICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIHByb2dyZXNzIGJhciBoZWlnaHRcbi8vICRwcm9ncmVzcy1iYXItaGVpZ2h0OiByZW0tY2FsYygyNSk7XG4vLyAkcHJvZ3Jlc3MtYmFyLWNvbG9yOiAjZjZmNmY2ICA7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4vLyAkcHJvZ3Jlc3MtYmFyLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogMjAlKTtcbi8vICRwcm9ncmVzcy1iYXItYm9yZGVyLXNpemU6IDFweDtcbi8vICRwcm9ncmVzcy1iYXItYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRwcm9ncmVzcy1iYXItYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtYXJnaW4gJiBwYWRkaW5nXG4vLyAkcHJvZ3Jlc3MtYmFyLXBhZDogcmVtLWNhbGMoMik7XG4vLyAkcHJvZ3Jlc3MtYmFyLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgbWV0ZXIgY29sb3JzXG4vLyAkcHJvZ3Jlc3MtbWV0ZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJHByb2dyZXNzLW1ldGVyLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbi8vICRwcm9ncmVzcy1tZXRlci1zdWNjZXNzLWNvbG9yOiAkc3VjY2Vzcy1jb2xvcjtcbi8vICRwcm9ncmVzcy1tZXRlci1hbGVydC1jb2xvcjogJGFsZXJ0LWNvbG9yO1xuXG4vLyBSZXZlYWxcblxuLy8gJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIHJldmVhbCBvdmVybGF5LlxuLy8gJHJldmVhbC1vdmVybGF5LWJnOiByZ2JhKCMwMDAsIC40NSk7XG4vLyAkcmV2ZWFsLW92ZXJsYXktYmctb2xkOiAjMDAwO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIG1vZGFsIGl0c2VsZi5cbi8vICRyZXZlYWwtbW9kYWwtYmc6ICNmZmY7XG4vLyAkcmV2ZWFsLXBvc2l0aW9uLXRvcDogcmVtLWNhbGMoMTAwKTtcbi8vICRyZXZlYWwtZGVmYXVsdC13aWR0aDogODAlO1xuLy8gJHJldmVhbC1tb2RhbC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4vLyAkcmV2ZWFsLWJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoIzAwMCwuNCk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcmV2ZWFsIGNsb3NlIGJ1dHRvblxuLy8gJHJldmVhbC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDQwKTtcbi8vICRyZXZlYWwtY2xvc2UtdG9wOiByZW0tY2FsYyg4KTtcbi8vICRyZXZlYWwtY2xvc2Utc2lkZTogcmVtLWNhbGMoMTEpO1xuLy8gJHJldmVhbC1jbG9zZS1jb2xvcjogI2FhYTtcbi8vICRyZXZlYWwtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4vLyAkcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyAkcmV2ZWFsLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtb2RhbCBib3JkZXJcbi8vICRyZXZlYWwtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRyZXZlYWwtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkcmV2ZWFsLWJvcmRlci1jb2xvcjogIzY2NjtcblxuLy8gJHJldmVhbC1tb2RhbC1jbGFzczogXCJyZXZlYWwtbW9kYWxcIjtcbi8vICRjbG9zZS1yZXZlYWwtbW9kYWwtY2xhc3M6IFwiY2xvc2UtcmV2ZWFsLW1vZGFsXCI7XG5cbi8vIFNpZGUgTmF2XG5cbi8vICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBwYWRkaW5nLlxuLy8gJHNpZGUtbmF2LXBhZGRpbmc6IHJlbS1jYWxjKDE0IDApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBsaXN0IHN0eWxlcy5cbi8vICRzaWRlLW5hdi1saXN0LXR5cGU6IG5vbmU7XG4vLyAkc2lkZS1uYXYtbGlzdC1wb3NpdGlvbjogaW5zaWRlO1xuLy8gJHNpZGUtbmF2LWxpc3QtbWFyZ2luOiByZW0tY2FsYygwIDAgNyAwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbGluayBzdHlsZXMuXG4vLyAkc2lkZS1uYXYtbGluay1jb2xvcjogJHByaW1hcnktY29sb3I7XG4vLyAkc2lkZS1uYXYtbGluay1jb2xvci1hY3RpdmU6IHNjYWxlLWNvbG9yKCRzaWRlLW5hdi1saW5rLWNvbG9yLCAkbGlnaHRuZXNzOiAzMCUpO1xuLy8gJHNpZGUtbmF2LWxpbmstY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRzaWRlLW5hdi1saW5rLWNvbG9yLCAkbGlnaHRuZXNzOiAzMCUpO1xuLy8gJHNpZGUtbmF2LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuLy8gJHNpZGUtbmF2LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHNpZGUtbmF2LWZvbnQtd2VpZ2h0LWFjdGl2ZTogJHNpZGUtbmF2LWZvbnQtd2VpZ2h0O1xuLy8gJHNpZGUtbmF2LWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbi8vICRzaWRlLW5hdi1hY3RpdmUtZm9udC1mYW1pbHk6ICRzaWRlLW5hdi1mb250LWZhbWlseTtcblxuXG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXNcbi8vICRzaWRlLW5hdi1kaXZpZGVyLXNpemU6IDFweDtcbi8vICRzaWRlLW5hdi1kaXZpZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRzaWRlLW5hdi1kaXZpZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigjZmZmLCAkbGlnaHRuZXNzOiAxMCUpO1xuXG4vLyBTcGxpdCBCdXR0b25zXG5cbi8vICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZGlmZmVyZW50IHNoYXJlZCBzdHlsZXMgZm9yIFNwbGl0IEJ1dHRvbnNcbi8vICRzcGxpdC1idXR0b24tZnVuY3Rpb24tZmFjdG9yOiAxMCU7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1jb2xvcjogI2ZmZjtcbi8vICRzcGxpdC1idXR0b24tcGlwLWNvbG9yLWFsdDogIzMzMztcbi8vICRzcGxpdC1idXR0b24tYWN0aXZlLWJnLXRpbnQ6IHJnYmEoMCwwLDAsMC4xKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGlueSBzcGxpdCBidXR0b25zXG4vLyAkc3BsaXQtYnV0dG9uLXBhZGRpbmctdG55OiAkYnV0dG9uLXBpcC10bnkgKiAxMDtcbi8vICRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC10bnk6ICRidXR0b24tcGlwLXRueSAqIDY7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1zaXplLXRueTogJGJ1dHRvbi1waXAtdG55O1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtdG9wLXRueTogJGJ1dHRvbi1waXAtdG55ICogMjtcbi8vICRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtdG55OiByZW0tY2FsYygtNik7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHNtYWxsIHNwbGl0IGJ1dHRvbnNcbi8vICRzcGxpdC1idXR0b24tcGFkZGluZy1zbWw6ICRidXR0b24tcGlwLXNtbCAqIDEwO1xuLy8gJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLXNtbDogJGJ1dHRvbi1waXAtc21sICogNjtcbi8vICRzcGxpdC1idXR0b24tcGlwLXNpemUtc21sOiAkYnV0dG9uLXBpcC1zbWw7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC10b3Atc21sOiAkYnV0dG9uLXBpcC1zbWwgKiAxLjU7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LXNtbDogcmVtLWNhbGMoLTYpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBtZWRpdW0gc3BsaXQgYnV0dG9uc1xuLy8gJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLW1lZDogJGJ1dHRvbi1waXAtbWVkICogOTtcbi8vICRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDUuNTtcbi8vICRzcGxpdC1idXR0b24tcGlwLXNpemUtbWVkOiAkYnV0dG9uLXBpcC1tZWQgLSByZW0tY2FsYygzKTtcbi8vICRzcGxpdC1idXR0b24tcGlwLXRvcC1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDEuNTtcbi8vICRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtbWVkOiByZW0tY2FsYygtNik7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxhcmdlIHNwbGl0IGJ1dHRvbnNcbi8vICRzcGxpdC1idXR0b24tcGFkZGluZy1scmc6ICRidXR0b24tcGlwLWxyZyAqIDg7XG4vLyAkc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtbHJnOiAkYnV0dG9uLXBpcC1scmcgKiA1O1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1scmc6ICRidXR0b24tcGlwLWxyZyAtIHJlbS1jYWxjKDYpO1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtdG9wLWxyZzogJGJ1dHRvbi1waXAtbHJnICsgcmVtLWNhbGMoNSk7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LWxyZzogcmVtLWNhbGMoLTYpO1xuXG4vLyBTdWIgTmF2XG5cbi8vICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbWFyZ2luIGFuZCBwYWRkaW5nXG4vLyAkc3ViLW5hdi1saXN0LW1hcmdpbjogcmVtLWNhbGMoLTQgMCAxOCk7XG4vLyAkc3ViLW5hdi1saXN0LXBhZGRpbmctdG9wOiByZW0tY2FsYyg0KTtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGVmaW5pdGlvblxuLy8gJHN1Yi1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuLy8gJHN1Yi1uYXYtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkc3ViLW5hdi1mb250LWNvbG9yOiAjOTk5O1xuLy8gJHN1Yi1uYXYtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkc3ViLW5hdi10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4vLyAkc3ViLW5hdi1wYWRkaW5nOiByZW0tY2FsYygzIDE2KTtcbi8vICRzdWItbmF2LWJvcmRlci1yYWRpdXM6IDNweDtcbi8vICRzdWItbmF2LWZvbnQtY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRzdWItbmF2LWZvbnQtY29sb3IsICRsaWdodG5lc3M6IC0yNSUpO1xuXG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBhY3RpdmUgaXRlbSBzdHlsZXNcbi8vICRzdWItbmF2LWFjdGl2ZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRzdWItbmF2LWFjdGl2ZS1iZzogJHByaW1hcnktY29sb3I7XG4vLyAkc3ViLW5hdi1hY3RpdmUtYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzdWItbmF2LWFjdGl2ZS1iZywgJGxpZ2h0bmVzczogLTE0JSk7XG4vLyAkc3ViLW5hdi1hY3RpdmUtY29sb3I6ICNmZmY7XG4vLyAkc3ViLW5hdi1hY3RpdmUtcGFkZGluZzogJHN1Yi1uYXYtcGFkZGluZztcbi8vICRzdWItbmF2LWFjdGl2ZS1jdXJzb3I6IGRlZmF1bHQ7XG5cbi8vICRzdWItbmF2LWl0ZW0tZGl2aWRlcjogXCJcIjtcbi8vICRzdWItbmF2LWl0ZW0tZGl2aWRlci1tYXJnaW46IHJlbS1jYWxjKDEyKTtcblxuLy9cbi8vIFNXSVRDSFxuLy9cblxuLy8gJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gQ29udHJvbGxpbmcgYm9yZGVyIHN0eWxlcyBhbmQgYmFja2dyb3VuZCBjb2xvcnMgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyXG4vLyAkc3dpdGNoLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoI2ZmZiwgJGxpZ2h0bmVzczogLTIwJSk7XG4vLyAkc3dpdGNoLWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkc3dpdGNoLWJvcmRlci13aWR0aDogMXB4O1xuLy8gJHN3aXRjaC1iZzogI2ZmZjtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN3aXRjaCBoZWlnaHRzIGZvciBvdXIgZGVmYXVsdCBjbGFzc2VzXG4vLyAkc3dpdGNoLWhlaWdodC10bnk6IDIycHg7XG4vLyAkc3dpdGNoLWhlaWdodC1zbWw6IDI4cHg7XG4vLyAkc3dpdGNoLWhlaWdodC1tZWQ6IDM2cHg7XG4vLyAkc3dpdGNoLWhlaWdodC1scmc6IDQ0cHg7XG4vLyAkc3dpdGNoLWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDIwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZGVmYXVsdCBmb250IHNpemVzIGZvciBvdXIgY2xhc3Nlcy5cbi8vICRzd2l0Y2gtZm9udC1zaXplLXRueTogMTFweDtcbi8vICRzd2l0Y2gtZm9udC1zaXplLXNtbDogMTJweDtcbi8vICRzd2l0Y2gtZm9udC1zaXplLW1lZDogMTRweDtcbi8vICRzd2l0Y2gtZm9udC1zaXplLWxyZzogMTdweDtcbi8vICRzd2l0Y2gtbGFiZWwtc2lkZS1wYWRkaW5nOiA2cHg7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgc3dpdGNoLXBhZGRsZVxuLy8gJHN3aXRjaC1wYWRkbGUtYmc6ICNmZmY7XG4vLyAkc3dpdGNoLXBhZGRsZS1mYWRlLXRvLWNvbG9yOiBzY2FsZS1jb2xvcigkc3dpdGNoLXBhZGRsZS1iZywgJGxpZ2h0bmVzczogLTEwJSk7XG4vLyAkc3dpdGNoLXBhZGRsZS1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRzd2l0Y2gtcGFkZGxlLWJnLCAkbGlnaHRuZXNzOiAtMzUlKTtcbi8vICRzd2l0Y2gtcGFkZGxlLWJvcmRlci13aWR0aDogMXB4O1xuLy8gJHN3aXRjaC1wYWRkbGUtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb24tc3BlZWQ6IC4xcztcbi8vICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb24tZWFzZTogZWFzZS1vdXQ7XG4vLyAkc3dpdGNoLXBvc2l0aXZlLWNvbG9yOiBzY2FsZS1jb2xvcigkc3VjY2Vzcy1jb2xvciwgJGxpZ2h0bmVzczogOTQlKTtcbi8vICRzd2l0Y2gtbmVnYXRpdmUtY29sb3I6ICNmNWY1ZjU7XG5cbi8vIE91dGxpbmUgU3R5bGUgZm9yIHRhYmJpbmcgdGhyb3VnaCBzd2l0Y2hlc1xuLy8gJHN3aXRjaC1sYWJlbC1vdXRsaW5lOiAxcHggZG90dGVkICM4ODg7XG5cbi8vIFRhYmxlc1xuXG4vLyAkaW5jbHVkZS1odG1sLXRhYmxlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYmxlIGFuZCBldmVuIHJvd3Ncbi8vICR0YWJsZS1iZzogI2ZmZjtcbi8vICR0YWJsZS1ldmVuLXJvdy1iZzogI2Y5ZjlmOSAgO1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBzdHlsZVxuLy8gJHRhYmxlLWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkdGFibGUtYm9yZGVyLXNpemU6IDFweDtcbi8vICR0YWJsZS1ib3JkZXItY29sb3I6ICNkZGQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGhlYWQgc3R5bGVzXG4vLyAkdGFibGUtaGVhZC1iZzogI2Y1ZjVmNSAgO1xuLy8gJHRhYmxlLWhlYWQtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkdGFibGUtaGVhZC1mb250LWNvbG9yOiAjMjIyO1xuLy8gJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJHRhYmxlLWhlYWQtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHJvdyBwYWRkaW5nIGFuZCBmb250IHN0eWxlc1xuLy8gJHRhYmxlLXJvdy1wYWRkaW5nOiByZW0tY2FsYyg5IDEwKTtcbi8vICR0YWJsZS1yb3ctZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkdGFibGUtcm93LWZvbnQtY29sb3I6ICMyMjI7XG4vLyAkdGFibGUtbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KTtcblxuLy8gVGhlc2UgYXJlIGZvciBjb250cm9sbGluZyB0aGUgZGlzcGxheSBhbmQgbWFyZ2luIG9mIHRhYmxlc1xuLy8gJHRhYmxlLWRpc3BsYXk6IHRhYmxlLWNlbGw7XG4vLyAkdGFibGUtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXG4vL1xuLy8gVEFCU1xuLy9cblxuLy8gJGluY2x1ZGUtaHRtbC10YWJzLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxNik7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yOiAjZWZlZmVmICA7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjogI2ZmZjtcbi8vICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC02JSk7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I6ICMyMjI7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuLy8gJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cbi8vICR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpO1xuLy8gJHRhYnMtY29udGVudC1wYWRkaW5nOiAkY29sdW1uLWd1dHRlci8yO1xuXG4vLyAkdGFicy12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1hcmdpbi1ib3R0b206IDEuMjVyZW07XG5cbi8vXG4vLyBUSFVNQk5BSUxTXG4vL1xuXG4vLyAkaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xuLy8gJHRodW1iLWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkdGh1bWItYm9yZGVyLXdpZHRoOiA0cHg7XG4vLyAkdGh1bWItYm9yZGVyLWNvbG9yOiAjZmZmO1xuLy8gJHRodW1iLWJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCMwMDAsLjIpO1xuLy8gJHRodW1iLWJveC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsMC41KTtcblxuLy8gUmFkaXVzIGFuZCB0cmFuc2l0aW9uIHNwZWVkIGZvciB0aHVtYnNcbi8vICR0aHVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuLy8gJHRodW1iLXRyYW5zaXRpb24tc3BlZWQ6IDIwMG1zO1xuXG4vL1xuLy8gVE9PTFRJUFNcbi8vXG5cbi8vICRpbmNsdWRlLWh0bWwtdG9vbHRpcC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vICRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggI2NjYztcbi8vICRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbi8vICRoYXMtdGlwLWZvbnQtY29sb3I6ICMzMzM7XG4vLyAkaGFzLXRpcC1ib3JkZXItYm90dG9tLWhvdmVyOiBkb3R0ZWQgMXB4IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNTUlKTtcbi8vICRoYXMtdGlwLWZvbnQtY29sb3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJGhhcy10aXAtY3Vyc29yLXR5cGU6IGhlbHA7XG5cbi8vICR0b29sdGlwLXBhZGRpbmc6IHJlbS1jYWxjKDEyKTtcbi8vICR0b29sdGlwLWJnOiAjMzMzO1xuLy8gJHRvb2x0aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkdG9vbHRpcC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICR0b29sdGlwLWZvbnQtY29sb3I6ICNmZmY7XG4vLyAkdG9vbHRpcC1saW5lLWhlaWdodDogMS4zO1xuLy8gJHRvb2x0aXAtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYygxMCk7XG4vLyAkdG9vbHRpcC1jbG9zZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICR0b29sdGlwLWNsb3NlLWZvbnQtY29sb3I6ICM3Nzc7XG4vLyAkdG9vbHRpcC1mb250LXNpemUtc21sOiByZW0tY2FsYygxNCk7XG4vLyAkdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuLy8gJHRvb2x0aXAtcm91bmRlZDogJGdsb2JhbC1yb3VuZGVkO1xuLy8gJHRvb2x0aXAtcGlwLXNpemU6IDVweDtcbi8vICR0b29sdGlwLW1heC13aWR0aDogMzAwcHg7XG5cbi8vXG4vLyBUT1AgQkFSXG4vL1xuXG4vLyAkaW5jbHVkZS1odG1sLXRvcC1iYXItY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhclxuJHRvcGJhci1iZy1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiR0b3BiYXItYmc6ICR0b3BiYXItYmctY29sb3I7XG5cbi8vIEhlaWdodCBhbmQgbWFyZ2luXG4vLyAkdG9wYmFyLWhlaWdodDogNDVweDtcbi8vICR0b3BiYXItbWFyZ2luLWJvdHRvbTogMDtcblxuLy8gQ29udHJvbGxpbmcgdGhlIHN0eWxlcyBmb3IgdGhlIHRpdGxlIGluIHRoZSB0b3AgYmFyXG4vLyAkdG9wYmFyLXRpdGxlLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICR0b3BiYXItdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxNyk7XG5cbi8vIFN0eWxlIHRoZSB0b3AgYmFyIGRyb3Bkb3duIGVsZW1lbnRzXG4kdG9wYmFyLWRyb3Bkb3duLWJnOiAkcHJpbWFyeS1jb2xvcjtcbiR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvcjogI2ZmZjtcbiR0b3BiYXItZHJvcGRvd24tbGluay1iZzogJHByaW1hcnktY29sb3I7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxpbmstd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZTogNXB4O1xuLy8gJHRvcGJhci1kcm9wZG93bi10b2dnbGUtY29sb3I6ICNmZmY7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYTogMC40O1xuXG4vLyBTZXQgdGhlIGxpbmsgY29sb3JzIGFuZCBzdHlsZXMgZm9yIHRvcC1sZXZlbCBuYXZcbiR0b3BiYXItbGluay1jb2xvcjogJHByaW1hcnktY29sb3I7XG4vLyAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI6ICNmZmY7XG4vLyAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlOiAjZmZmO1xuLy8gJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjogI2ZmZjtcbi8vICR0b3BiYXItbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4kdG9wYmFyLWxpbmstZm9udC1zaXplOiByZW0tY2FsYygxNyk7XG4kdG9wYmFyLWxpbmstaG92ZXItbGlnaHRuZXNzOiAtMTAlOyAvLyBEYXJrZW4gYnkgMTAlXG4kdG9wYmFyLWxpbmstYmc6ICR0b3BiYXItYmc7XG4kdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yO1xuJHRvcGJhci1saW5rLWJnLWhvdmVyOiAkcHJpbWFyeS1jb2xvcjtcbiR0b3BiYXItbGluay1iZy1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHRvcGJhci1saW5rLWJnLWFjdGl2ZS1ob3Zlcjogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuLy8gJHRvcGJhci1saW5rLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbi8vICR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTogbm9uZTtcbi8vICR0b3BiYXItbGluay1wYWRkaW5nOiAkdG9wYmFyLWhlaWdodCAvIDM7XG5cbi8vICR0b3BiYXItYnV0dG9uLWZvbnQtc2l6ZTogMC43NXJlbTtcbi8vICR0b3BiYXItYnV0dG9uLXRvcDogN3B4O1xuXG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWNvbG9yOiAjNzc3O1xuLy8gJHRvcGJhci1kcm9wZG93bi1sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuLy8gJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTApO1xuJHRvcGJhci1kcm9wZG93bi1sYWJlbC1iZzogJHByaW1hcnktY29sb3I7XG5cbi8vIFRvcCBtZW51IGljb24gc3R5bGVzXG4vLyAkdG9wYmFyLW1lbnUtbGluay10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbi8vICR0b3BiYXItbWVudS1saW5rLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuLy8gJHRvcGJhci1tZW51LWxpbmstd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiR0b3BiYXItbWVudS1saW5rLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0b3BiYXItbWVudS1pY29uLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0b3BiYXItbWVudS1saW5rLWNvbG9yLXRvZ2dsZWQ6ICRwcmltYXJ5LWNvbG9yO1xuJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZDogJHByaW1hcnktY29sb3I7XG5cbi8vIFRyYW5zaXRpb25zIGFuZCBicmVha3BvaW50IHN0eWxlc1xuLy8gJHRvcGJhci10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcztcbi8vIFVzaW5nIHJlbS1jYWxjIGZvciB0aGUgYmVsb3cgYnJlYWtwb2ludCBjYXVzZXMgaXNzdWVzIHdpdGggdG9wIGJhclxuLy8gJHRvcGJhci1icmVha3BvaW50OiAje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfTsgLy8gQ2hhbmdlIHRvIDk5OTlweCBmb3IgYWx3YXlzIG1vYmlsZSBsYXlvdXRcbi8vICR0b3BiYXItbWVkaWEtcXVlcnk6ICRtZWRpdW0tdXA7XG5cbi8vIERpdmlkZXIgU3R5bGVzXG4vLyAkdG9wYmFyLWRpdmlkZXItYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICBzY2FsZS1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAxMyUpO1xuLy8gJHRvcGJhci1kaXZpZGVyLWJvcmRlci10b3A6IHNvbGlkIDFweCBzY2FsZS1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcblxuLy8gU3RpY2t5IENsYXNzXG4vLyAkdG9wYmFyLXN0aWNreS1jbGFzczogXCIuc3RpY2t5XCI7XG4vLyAkdG9wYmFyLWFycm93czogdHJ1ZTsgLy9TZXQgZmFsc2UgdG8gcmVtb3ZlIHRoZSB0cmlhbmdsZSBpY29uIGZyb20gdGhlIG1lbnUgaXRlbVxuXG4vL1xuLy8gVklTSUJJTElUWSBDTEFTU0VTXG4vL1xuXG4vLyAkaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuLy8gJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlO1xuLy8gJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZTtcblxuLy9cbi8vIFJBTkdFIFNMSURFUlxuLy9cblxuLy8gJGluY2x1ZGUtaHRtbC1yYW5nZS1zbGlkZXItY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBUaGVzZSB2YXJpYWJlbHMgZGVmaW5lIHRoZSBzbGlkZXIgYmFyIHN0eWxlc1xuLy8gJHJhbmdlLXNsaWRlci1iYXItd2lkdGg6IDEwMCU7XG4vLyAkcmFuZ2Utc2xpZGVyLWJhci1oZWlnaHQ6IHJlbS1jYWxjKDE2KTtcblxuLy8gJHJhbmdlLXNsaWRlci1iYXItYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJHJhbmdlLXNsaWRlci1iYXItYm9yZGVyLWNvbG9yOiAjZGRkO1xuLy8gJHJhbmdlLXNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuLy8gJHJhbmdlLXNsaWRlci1yb3VuZDogJGdsb2JhbC1yb3VuZGVkO1xuLy8gJHJhbmdlLXNsaWRlci1iYXItYmctY29sb3I6ICNmYWZhZmE7XG5cbi8vIFZlcnRpY2FsIGJhciBzdHlsZXNcbi8vICRyYW5nZS1zbGlkZXItdmVydGljYWwtYmFyLXdpZHRoOiByZW0tY2FsYygxNik7XG4vLyAkcmFuZ2Utc2xpZGVyLXZlcnRpY2FsLWJhci1oZWlnaHQ6IHJlbS1jYWxjKDIwMCk7XG5cbi8vIFRoZXNlIHZhcmlhYmVscyBkZWZpbmUgdGhlIHNsaWRlciBoYW5kbGUgc3R5bGVzXG4vLyAkcmFuZ2Utc2xpZGVyLWhhbmRsZS13aWR0aDogcmVtLWNhbGMoMzIpO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtaGVpZ2h0OiByZW0tY2FsYygyMik7XG4vLyAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1wb3NpdGlvbi10b3A6IHJlbS1jYWxjKC01KTtcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLWJnLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLWJvcmRlci13aWR0aDogMXB4O1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLWJvcmRlci1jb2xvcjogbm9uZTtcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1yb3VuZDogJGdsb2JhbC1yb3VuZGVkO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtYmctaG92ZXItY29sb3I6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTIlKTtcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLWN1cnNvcjogcG9pbnRlcjtcbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtYWNjb3JkaW9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvcjogJHNpbHZlciAhZGVmYXVsdDtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjogc2NhbGUtY29sb3IoJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtMyUpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogKCRjb2x1bW4tZ3V0dGVyLzIpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1jb250ZW50LWFjdGl2ZS1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG5cbi8vICBNaXhpbjogYWNjb3JkaW9uLWNvbnRhaW5lcigpXG4vLyAgRGVjcmlwdGlvbjogUmVzcG9uc2libGUgZm9yIHRoZSBjb250YWluZXIgY29tcG9uZW50IG9mIGFjY29yZGlvbnMsIGdlbmVyYXRpbmcgc3R5bGVzIHJlbGF0aW5nIHRvIGEgbWFyZ2luIG9mIHplcm8gYW5kIGEgY2xlYXJmaXhcbi8vICBFeHBsaWNpdCBEZXBlbmRlbmNpZXM6IGEgY2xlYXJmaXggbWl4aW4gKmlzKiBkZWZpbmVkLlxuLy8gIEltcGxpY2l0IERlcGVuZGVuY2llczogTm9uZVxuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lcigpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8vICBNaXhpbjogYWNjb3JkaW9uLW5hdmlnYXRpb24oICRiZywgJGhvdmVyLWJnLCAkYWN0aXZlLWJnLCAkcGFkZGluZywgJGFjdGl2ZV9jbGFzcywgICRmb250LWNvbG9yLCAkZm9udC1zaXplLCAkZm9udC1mYW1pbHkpe1xuLy8gICAgQHBhcmFtcyAkYmctY29sb3I6IFsgY29sb3Igb3Igc3RyaW5nIF06IFNwZWNpZnkgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBuYXZpZ2F0aW9uIGVsZW1lbnRcbi8vICAgIEBwYXJhbXMgJGhvdmVyLWJnLWNvbG9yIFsgY29sb3Igb3Igc3RyaW5nIF06IFNwZWNpZnkgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBuYXZpZ2F0aW9uIGVsZW1lbnQgd2hlbiBob3ZlcmVkXG4vLyAgICBAcGFyYW1zICRhY3RpdmUtYmcgWyBjb2xvciBvciBzdHJpbmcgXTogU3BlY2lmeSB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG5hdmlnYXRpb24gZWxlbWVudCB3aGVuIGNsaWNrZWQgYW5kIG5vdCByZWxlYXNlZC5cbi8vICAgIEBwYXJhbXMgJGFjdGl2ZV9jbGFzcyBbIHN0cmluZyBdOiBTcGVjaWZ5IHRoZSBjbGFzcyBuYW1lIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGljaCBhY2NvcmRpb24gdGFiIHNob3VsZCBiZSB2aXNpYmxlXG4vLyAgICBAcGFyYW1zICRmb250LWNvbG9yIFsgY29sb3Igb3Igc3RyaW5nIF06IENvbG9yIG9mIHRoZSBmb250IGZvciBhY2NvcmRpb25cbi8vICAgIEBwYXJhbXMgJGZvbnQtc2l6ZSBbIG51bWJlciBdOiBTcGVjaWZpeSB0aGUgZm9udC1zaXplIG9mIHRoZSB0ZXh0IGluc2lkZSB0aGUgbmF2aWdhdGlvbiBlbGVtZW50XG4vLyAgICBAcGFyYW1zICRmb250LWZhbWlseSBbIHN0cmluZyBdOiBTcGVjaWZ5IHRoZSBmb250IGZhbWlseSBmb3IgdGhlIHRleHQgb2YgdGhlIG5hdmlnYXRpb24gb2YgdGhlIGFjY29yaW9uXG5cbkBtaXhpbiBhY2NvcmRpb24tbmF2aWdhdGlvbiggJGJnOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tYmctY29sb3IsICRob3Zlci1iZzogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yLCAkYWN0aXZlLWJnOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yLCAkcGFkZGluZzogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmcsICRhY3RpdmVfY2xhc3M6ICdhY3RpdmUnLCAgJGZvbnQtY29sb3I6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LWNvbG9yLCAkZm9udC1zaXplOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplLCAkZm9udC1mYW1pbHk6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LWZhbWlseSApe1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBAaWYgdHlwZS1vZigkYWN0aXZlX2NsYXNzKSAhPSBcInN0cmluZ1wiIHtcbiAgICBAd2FybiBcImAjeyRhY3RpdmVfY2xhc3N9YCBpc24ndCBhIHZhbGlkIHN0cmluZy4gQSB2YWxpZCBzdHJpbmcgaXMgbmVlZGVkIHRvIGNvcnJlY3RseSBiZSBpbnRlcnBvbGF0ZWQgYXMgYSBDU1MgY2xhc3MuIENTUyBjbGFzc2VzIGNhbm5vdCBzdGFydCB3aXRoIGEgbnVtYmVyIG9yIGNvbnNpc3Qgb2Ygb25seSBudW1iZXJzLiBDU1Mgd2lsbCBub3QgYmUgZ2VuZXJhdGVkIGZvciB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoaXMgbmF2aWdhdGlvbiBjb21wb25lbnQuXCJcbiAgfVxuICBAZWxzZSB7XG4gICAgJi4jeyAkYWN0aXZlX2NsYXNzIH0gPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtYmc7XG4gICAgfVxuICB9XG4gID4gYSB7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICBAaWYgdHlwZS1vZigkcGFkZGluZykgIT0gbnVtYmVyIHtcbiAgICAgIEB3YXJuIFwiYCN7JHBhZGRpbmd9YCB3YXMgcmVhZCBhcyAje3R5cGUtb2YoJHBhZGRpbmcpfVwiO1xuICAgICAgQGlmICRhY2NvcmRpb24tbmF2aWdhdGlvbi1wYWRkaW5nICE9IG51bGwge1xuICAgICAgICBAd2FybiBcIiN7JHBhZGRpbmd9IHdhcyByZWFkIGFzIGEgI3t0eXBlLW9mKCRwYWRkaW5nKX1cIjtcbiAgICAgICAgQHdhcm4gXCJgI3skcGFkZGluZ31gIGlzbid0IGEgdmFsaWQgbnVtYmVyLiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tcGFkZGluZyAoI3skYWNjb3JkaW9uLW5hdmlnYXRpb24tcGFkZGluZ30pIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLilcIjtcbiAgICAgICAgcGFkZGluZzogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmc7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiYCN7JHBhZGRpbmd9YCBpc24ndCBhIHZhbGlkIG51bWJlciBhbmQgJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmcgaXMgbWlzc2luZy4gQSB2YWx1ZSBvZiBgbnVsbGAgaXMgcmV0dXJuZWQgdG8gbm90IG91dHB1dCBhbiBpbnZhbGlkIHZhbHVlIGZvciBwYWRkaW5nXCI7XG4gICAgICAgIHBhZGRpbmc6IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIH1cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIEBpZiB0eXBlLW9mKCRmb250LXNpemUpICE9IG51bWJlciB7XG4gICAgICBAd2FybiBcImAjeyRmb250LXNpemV9YCB3YXMgcmVhZCBhcyBhICN7dHlwZS1vZigkZm9udC1zaXplKX1cIjtcbiAgICAgIEBpZiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplICE9IG51bGwge1xuICAgICAgICBAd2FybiBcImAjeyRmb250LXNpemV9YCBpcyBub3QgYSB2YWxpZCBudW1iZXIuIFRoZSB2YWx1ZSBvZiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplIHdpbGwgYmUgdXNlZCBpbnN0ZWFkICgjeyRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LXNpemV9KS5cIjtcbiAgICAgICAgZm9udC1zaXplOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplO1xuICAgICAgfVxuICAgICAgQGVsc2V7XG4gICAgICAgIEB3YXJuIFwiYCN7JGZvbnQtc2l6ZX1gIGlzIG5vdCBhIHZhbGlkIG51bWJlciBhbmQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtc2l6ZSBpcyBub3QgZGVmaW5lZC4gQSB2YWx1ZSBvZiBgbnVsbGAgd2lsbCBiZSByZXR1cm5lZCB0byBub3QgZ2VuZXJhdGUgYW4gaW52YWxpZCB2YWx1ZSBmb3IgZm9udC1zaXplLlwiO1xuICAgICAgICBmb250LXNpemU6IG51bGw7XG5cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1iZztcbiAgICB9XG4gIH1cbn1cblxuLy8gIE1peGluOiBhY2NvcmRpb24tY29udGVudCgkYmcsICRwYWRkaW5nLCAkYWN0aXZlLWNsYXNzKVxuLy8gICAgQHBhcmFtcyAkcGFkZGluZyBbIG51bWJlciBdOiBQYWRkaW5nIGZvciB0aGUgY29udGVudCBvZiB0aGUgY29udGFpbmVyXG4vLyAgICBAcGFyYW1zICRiZyBbIGNvbG9yICBdOiBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgY29udGVudCB3aGVuIGl0J3MgdmlzaWJsZVxuLy8gICAgQHBhcmFtcyAkYWN0aXZlX2NsYXNzIFsgc3RyaW5nIF06IENsYXNzIG5hbWUgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoaWNoIGFjY29yZGlvbiB0YWIgc2hvdWxkIGJlIHZpc2libGUuXG5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCgkYmc6ICRhY2NvcmRpb24tY29udGVudC1hY3RpdmUtYmctY29sb3IsICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZywgJGFjdGl2ZV9jbGFzczogJ2FjdGl2ZScpe1xuICBkaXNwbGF5OiBub25lO1xuICBAaWYgdHlwZS1vZigkcGFkZGluZykgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCIjeyRwYWRkaW5nfSB3YXMgcmVhZCBhcyBhICN7dHlwZS1vZigkcGFkZGluZyl9XCI7XG4gICAgQGlmICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nICE9IG51bGwge1xuICAgICAgQHdhcm4gXCJgI3skcGFkZGluZ31gIGlzbid0IGEgdmFsaWQgbnVtYmVyLiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyB1c2VkIGluc3RlYWRcIjtcbiAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHdhcm4gXCJgI3skcGFkZGluZ31gIGlzbid0IGEgdmFsaWQgbnVtYmVyIGFuZCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyBpcyBub3QgZGVmaW5lZC4gQSB2YWx1ZSBvZiBgbnVsbGAgaXMgcmV0dXJuZWQgdG8gbm90IG91dHB1dCBhbiBpbnZhbGlkIHZhbHVlIGZvciBwYWRkaW5nLlwiO1xuICAgICAgcGFkZGluZzogbnVsbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJGFjdGl2ZV9jbGFzcykgIT0gXCJzdHJpbmdcIiB7XG4gICAgQHdhcm4gXCJgI3skYWN0aXZlX2NsYXNzfWAgaXNuJ3QgYSB2YWxpZCBzdHJpbmcuIEEgdmFsaWQgc3RyaW5nIGlzIG5lZWRlZCB0byBjb3JyZWN0bHkgYmUgaW50ZXJwb2xhdGVkIGFzIGEgQ1NTIGNsYXNzLiBDU1MgY2xhc3NlcyBjYW5ub3Qgc3RhcnQgd2l0aCBhIG51bWJlciBvciBjb25zaXN0IG9mIG9ubHkgbnVtYmVycy4gQ1NTIHdpbGwgbm90IGJlIGdlbmVyYXRlZCBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY29udGVudC4gXCJcbiAgfVxuICBAZWxzZSB7XG4gICAgJi4jeyRhY3RpdmVfY2xhc3N9IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogJGJnO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYWNjb3JkaW9uXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYWNjb3JkaW9uLWNsYXNzZXMge1xuICAgIC5hY2NvcmRpb24ge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgLmFjY29yZGlvbi1uYXZpZ2F0aW9uLCBkZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICYuYWN0aXZlID4gYSB7IGJhY2tncm91bmQ6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I7IH1cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tYmctY29sb3I7XG4gICAgICAgICAgY29sb3I6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LWNvbG9yO1xuICAgICAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1wYWRkaW5nO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1mYW1pbHk7XG4gICAgICAgICAgZm9udC1zaXplOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplO1xuICAgICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I7IH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gLmNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc7XG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQWxlcnQgQm94IFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFsZXJ0IHBhZGRpbmcuXG4kYWxlcnQtcGFkZGluZy10b3A6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ6ICRhbGVydC1wYWRkaW5nLXRvcCAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbjogJGFsZXJ0LXBhZGRpbmctdG9wICsgcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmctYm90dG9tOiAkYWxlcnQtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgc3R5bGUuXG4kYWxlcnQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0OiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNjYlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgZm9yIGNsb3NlIGhvdmVyIGVmZmVjdC5cbiRhbGVydC1mdW5jdGlvbi1mYWN0b3I6IC0xNCUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kYWxlcnQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRhbGVydC1ib3R0b20tbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgY2xvc2UgYnV0dG9uc1xuJGFsZXJ0LWNsb3NlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogNTAlICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXBvc2l0aW9uOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1vcGFjaXR5OiAwLjMgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eS1ob3ZlcjogMC41ICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXBhZGRpbmc6IDAgNnB4IDRweCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGJvcmRlciByYWRpdXNcbiRhbGVydC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4kYWxlcnQtdHJhbnNpdGlvbi1zcGVlZDogMzAwbXMgIWRlZmF1bHQ7XG4kYWxlcnQtdHJhbnNpdGlvbi1lYXNlOiBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy9cbi8vIEFsZXJ0IE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgZGVmYXVsdCBhbGVydCBiYXNlLlxuQG1peGluIGFsZXJ0LWJhc2Uge1xuICBib3JkZXItc3R5bGU6ICRhbGVydC1ib3JkZXItc3R5bGU7XG4gIGJvcmRlci13aWR0aDogJGFsZXJ0LWJvcmRlci13aWR0aDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAkYWxlcnQtZm9udC13ZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRhbGVydC1ib3R0b20tbWFyZ2luO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6ICRhbGVydC1wYWRkaW5nLXRvcCAkYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb24gJGFsZXJ0LXBhZGRpbmctYm90dG9tICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ7XG4gIGZvbnQtc2l6ZTogJGFsZXJ0LWZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24ob3BhY2l0eSwgJGFsZXJ0LXRyYW5zaXRpb24tc3BlZWQsICRhbGVydC10cmFuc2l0aW9uLWVhc2UpXG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBhbGVydCBzdHlsZXNcbi8vXG4vLyAkYmcgLSBUaGUgYmFja2dyb3VuZCBvZiB0aGUgYWxlcnQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuQG1peGluIGFsZXJ0LXN0eWxlKCRiZzokcHJpbWFyeS1jb2xvcikge1xuXG4gIC8vIFRoaXMgZmluZHMgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRhbGVydC1mdW5jdGlvbi1mYWN0b3IpO1xuXG4gIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgeyBjb2xvcjogJGFsZXJ0LWZvbnQtY29sb3ItYWx0OyB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgIHsgY29sb3I6ICRhbGVydC1mb250LWNvbG9yOyB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gYWxlcnQtY2xvc2Uge1xuICBmb250LXNpemU6ICRhbGVydC1jbG9zZS1mb250LXNpemU7XG4gIHBhZGRpbmc6ICRhbGVydC1jbG9zZS1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogLjk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkYWxlcnQtY2xvc2UtdG9wO1xuICBtYXJnaW4tdG9wOiAtKCRhbGVydC1jbG9zZS1mb250LXNpemUgLyAyKTtcbiAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGFsZXJ0LWNsb3NlLXBvc2l0aW9uO1xuICBjb2xvcjogJGFsZXJ0LWNsb3NlLWNvbG9yO1xuICBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eTtcbiAgYmFja2dyb3VuZDogJGFsZXJ0LWNsb3NlLWJhY2tncm91bmQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMgeyBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eS1ob3ZlcjsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBxdWlja2x5IGNyZWF0ZSBhbGVydHMgd2l0aCBhIHNpbmdsZSBtaXhpbi5cbi8vXG4vLyAkYmcgLSBCYWNrZ3JvdW5kIG9mIGFsZXJ0LiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbi8vICRyYWRpdXMgLSBSYWRpdXMgb2YgYWxlcnQgYm94LiBEZWZhdWx0OiBmYWxzZS5cbkBtaXhpbiBhbGVydCgkYmc6JHByaW1hcnktY29sb3IsICRyYWRpdXM6ZmFsc2UpIHtcbiAgQGluY2x1ZGUgYWxlcnQtYmFzZTtcbiAgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGJnKTtcbiAgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYWxlcnQtYm94XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlcyB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICBAaW5jbHVkZSBhbGVydDtcblxuICAgICAgLmNsb3NlICAgICAgeyBAaW5jbHVkZSBhbGVydC1jbG9zZTsgfVxuXG4gICAgICAmLnJhZGl1cyAgICB7IEBpbmNsdWRlIHJhZGl1cygkYWxlcnQtcmFkaXVzKTsgfVxuICAgICAgJi5yb3VuZCAgICAgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yb3VuZGVkKTsgfVxuXG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkYWxlcnQtY29sb3IpOyB9XG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAmLndhcm5pbmcgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkd2FybmluZy1jb2xvcik7IH1cbiAgICAgICYuaW5mbyB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRpbmZvLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydC1jbG9zZSB7IG9wYWNpdHk6IDB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBCbG9jayBHcmlkIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJsb2NrIGdyaWQgZWxlbWVudHMgcGVyIHJvd1xuJGJsb2NrLWdyaWQtZWxlbWVudHM6IDEyICFkZWZhdWx0O1xuJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG4vLyBFbmFibGVzIG1lZGlhIHF1ZXJpZXMgZm9yIGJsb2NrLWdyaWQgY2xhc3Nlcy4gU2V0IHRvIGZhbHNlIGlmIHdyaXRpbmcgc2VtYW50aWMgSFRNTC5cbiRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCbG9jayBHcmlkIE1peGluc1xuLy9cblxuLy8gQ3JlYXRlIGEgY3VzdG9tIGJsb2NrIGdyaWRcbi8vXG4vLyAkcGVyLXJvdyAtICMgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRzcGFjaW5nIC0gIyBvZiBlbXMgdG8gdXNlIGFzIHBhZGRpbmcgb24gZWFjaCBibG9jayBpdGVtLiBEZWZhdWx0OiByZW0tY2FsYygyMCkuXG4vLyAkaW5jbHVkZS1zcGFjaW5nIC0gQWRkcyBwYWRkaW5nIHRvIG91ciBsaXN0IGl0ZW0uIERlZmF1bHQ6IHRydWUuXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGEgYmFzZSBzdHlsZSB0byBibG9jayBncmlkLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGJsb2NrLWdyaWQoXG4gICRwZXItcm93OmZhbHNlLFxuICAkc3BhY2luZzokYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsXG4gICRpbmNsdWRlLXNwYWNpbmc6dHJ1ZSxcbiAgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW46IDAgKC0kc3BhY2luZy8yKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAmPmxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBlci1yb3cge1xuICAgICY+bGkge1xuICAgICAgd2lkdGg6IDEwMCUvJHBlci1yb3c7XG4gICAgICBAaWYgJGluY2x1ZGUtc3BhY2luZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRzcGFjaW5nLzIpICRzcGFjaW5nO1xuICAgICAgfVxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgJjpudGgtb2YtdHlwZSgxbikgeyBjbGVhcjogbm9uZTsgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4rMSkgeyBjbGVhcjogYm90aDsgfVxuICAgICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgQGlmICRwZXItcm93ID49ICRpIHtcbiAgICAgICRncmlkLWNvbHVtbjogJysnICsgJGk7XG4gICAgICBAaWYgJHBlci1yb3cgPT0gJGkge1xuICAgICAgICAkZ3JpZC1jb2x1bW46ICcnO1xuICAgICAgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4je3VucXVvdGUoJGdyaWQtY29sdW1uKX0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogKCRwZXItcm93IC0gKCRpIC0gMSkpKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAkaSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSBwcmVzZW50YXRpb25hbCBtYXJrdXAgZm9yIGJsb2NrIGdyaWQuXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtYmxvY2stZ3JpZC0xLCAubGFyZ2UtYmxvY2stZ3JpZC0yLCBldGMuXG5AbWl4aW4gYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUsJGluY2x1ZGUtc3BhY2luZykge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLWVsZW1lbnRzIHtcbiAgICAuI3skc2l6ZX0tYmxvY2stZ3JpZC0jeygkaSl9IHtcbiAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoJGksJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nLCRpbmNsdWRlLXNwYWNpbmcsZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYmxvY2stZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG5cbiAgICBbY2xhc3MqPVwiYmxvY2stZ3JpZC1cIl0geyBAaW5jbHVkZSBibG9jay1ncmlkOyB9XG5cbiAgICBAaWYgJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllcyB7XG4gICAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG4gICAgICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEJyZWFkY3J1bWIgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBicmVhZGNydW1iIGNvbnRhaW5lci5cbiRjcnVtYi1iZzogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNTUlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgcGFkZGluZyBhcm91bmQgdGhlIGJyZWFkY3J1bWJzLlxuJGNydW1iLXBhZGRpbmc6IHJlbS1jYWxjKDkgMTQgOSkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kY3J1bWItZnVuY3Rpb24tZmFjdG9yOiAtMTAlICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjcnVtYi1iZywgJGxpZ2h0bmVzczogJGNydW1iLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kY3J1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB2YXJpb3VzIHRleHQgc3R5bGVzIGZvciBicmVhZGNydW1icy5cbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ6ICRvaWwgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTogJGFsdW1pbnVtICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kY3J1bWItbGluay1kZWNvcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1ic1xuJGNydW1iLXNsYXNoLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRjcnVtYi1zbGFzaDogXCIvXCIgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCcmVhZGNydW1iIE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgY29udGFpbmVyIGFyb3VuZCBvdXIgYnJlYWRjcnVtYnNcbkBtaXhpbiBjcnVtYi1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGNydW1iLXBhZGRpbmc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiAkY3J1bWItYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRjcnVtYi1ib3JkZXItc2l6ZTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRjcnVtYi1iZztcbiAgYm9yZGVyLWNvbG9yOiAkY3J1bWItYm9yZGVyLWNvbG9yO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYnJlYWRjcnVtYiBzdHlsZXMgZnJvbSBsaXN0IGl0ZW1zLlxuQG1peGluIGNydW1icyB7XG5cbiAgLy8gQSBub3JtYWwgc3RhdGUgd2lsbCBtYWtlIHRoZSBsaW5rcyBsb29rIGFuZCBhY3QgbGlrZSBjbGlja2FibGUgYnJlYWRjcnVtYnMuXG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRjcnVtYi1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY3J1bWItZm9udC1zaXplO1xuICB0ZXh0LXRyYW5zZm9ybTogJGNydW1iLWZvbnQtdHJhbnNmb3JtO1xuICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG5cbiAgJjpob3ZlciBhLCAmOmZvY3VzIGEgeyB0ZXh0LWRlY29yYXRpb246ICRjcnVtYi1saW5rLWRlY29yOyB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gQ3VycmVudCBpcyBmb3IgdGhlIGxpbmsgb2YgdGhlIGN1cnJlbnQgcGFnZVxuICAmLmN1cnJlbnQge1xuICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgIGEge1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmhvdmVyIGEsXG4gICAgJjpmb2N1cywgJjpmb2N1cyBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIH1cblxuICAvLyBVbmF2YWlsYWJsZSByZW1vdmVkIGNvbG9yIGFuZCBsaW5rIHN0eWxlcyBzbyBpdCBsb29rcyBpbmFjdGl2ZS5cbiAgJi51bmF2YWlsYWJsZSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlO1xuICAgIGEgeyBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7IH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpob3ZlciBhLFxuICAgICY6Zm9jdXMsXG4gICAgYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQtdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiI3skY3J1bWItc2xhc2h9XCI7XG4gICAgY29sb3I6ICRjcnVtYi1zbGFzaC1jb2xvcjtcbiAgICBtYXJnaW46IDAgJGNydW1iLXNpZGUtcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJicmVhZGNydW1ic1wiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgQGluY2x1ZGUgY3J1bWItY29udGFpbmVyO1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjcnVtYi1yYWRpdXMpO1xuXG4gICAgICAmPioge1xuICAgICAgICBAaW5jbHVkZSBjcnVtYnM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIEFjY2Vzc2liaWxpdHkgLSBoaWRlcyB0aGUgZm9yd2FyZCBzbGFzaCAqL1xuW2FyaWEtbGFiZWw9XCJicmVhZGNydW1ic1wiXSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdOmFmdGVyIHtcbiAgY29udGVudDogXCIvXCI7XG4gIH1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zLlxuJGJ1dHRvbi10bnk6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRidXR0b24tc21sOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYnV0dG9uLW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1scmc6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGlzcGxheSBwcm9wZXJ0eS5cbiRidXR0b24tZGlzcGxheTogaW5saW5lLWJsb2NrICFkZWZhdWx0O1xuJGJ1dHRvbi1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJ1dHRvbiB0ZXh0IHN0eWxlcy5cbiRidXR0b24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXRueTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXNtbDogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWxyZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGhvdmVyIGVmZmVjdHMuXG4kYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogLTIwJSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuXG4kYnV0dG9uLWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRidXR0b24tYmctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItY29sb3I6ICRidXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Y2Nlc3MtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRhbGVydC1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRhbGVydC1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRhbGVydC1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCR3YXJuaW5nLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yOiAkd2FybmluZy1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRpbmZvLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYm9yZGVyLWNvbG9yOiAkaW5mby1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGJ1dHRvbi1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgZGVmYXVsdCBvcGFjaXR5IGFuZCBjdXJzb3IgZm9yIGRpc2FibGVkIGJ1dHRvbnMuXG4kYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcbiRidXR0b24tZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWUgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYnV0dG9uIGJhc2UuXG4vL1xuLy8gJHN0eWxlIC0gU2V0cyBiYXNlIHN0eWxlcy4gQ2FuIGJlIHNldCB0byBmYWxzZS4gRGVmYXVsdDogdHJ1ZS5cbi8vICRkaXNwbGF5IC0gVXNlZCB0byBjb250cm9sIGRpc3BsYXkgcHJvcGVydHkuIERlZmF1bHQ6ICRidXR0b24tZGlzcGxheSB8fCBpbmxpbmUtYmxvY2tcblxuQG1peGluIGJ1dHRvbi1iYXNlKCRzdHlsZTp0cnVlLCAkZGlzcGxheTokYnV0dG9uLWRpc3BsYXkpIHtcbiAgQGlmICRzdHlsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiAkYnV0dG9uLWJvcmRlci1zdHlsZTtcbiAgICBib3JkZXItd2lkdGg6ICRidXR0b24tYm9yZGVyLXdpZHRoO1xuICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luOiAwIDAgJGJ1dHRvbi1tYXJnaW4tYm90dG9tO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbi1mb250LWFsaWduO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czowO1xuICB9XG4gIEBpZiAkZGlzcGxheSB7IGRpc3BsYXk6ICRkaXNwbGF5OyB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gc2l6ZSBzdHlsZXNcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aCAtIERlZmF1bHQ6IGZhbHNlXG5cbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLW1lZCwgJGZ1bGwtd2lkdGg6ZmFsc2UpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIHBhZGRpbmcgc3R5bGVzIGNvbWUgdGhyb3VnaCxcbiAgLy8gdGhlc2UgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyAkcGFkZGluZzpmYWxzZVxuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFkZGluZyAqIDI7XG5cbiAgICAvLyBXZSBjb250cm9sIHRoZSBmb250LXNpemUgYmFzZWQgb24gbWl4aW4gaW5wdXQuXG4gICAgQGlmICAgICAgJHBhZGRpbmcgPT0gJGJ1dHRvbi1tZWQgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1tZWQ7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLXRueSB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXRueTsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tc21sIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc21sOyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1scmcgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1scmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC5cbiAgQGlmICRmdWxsLXdpZHRoIHtcbiAgICAvLyBXZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGlmICRwYWRkaW5nIGlzIHNldC5cbiAgICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICB9IEBlbHNlIGlmICRwYWRkaW5nID09IGZhbHNlIHtcbiAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTowO1xuICAgIH1cbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyB3ZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGJ1dHRvbiBob3ZlciBhbmQgYm9yZGVyIGNvbG9yc1xuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYnV0dG9uIGNvbG9yIHN0eWxlc1xuLy9cbi8vICRiZyAtIEJhY2tncm91bmQgY29sb3IuIFdlIGNhbiBzZXQgJGJnOmZhbHNlIGZvciBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRidXR0b24tcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiBmYWxzZVxuLy8gJGRpc2FibGVkIC0gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uIERlZmF1bHQ6IGZhbHNlXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQmFja2dyb3VuZCBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1iZy1ob3ZlclxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IuIERlZmF1bHQ6ICRidXR0b24tYm9yZGVyLWNvbG9yXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZGlzYWJsZWQ6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgc3R5bGVzIGFyZSB1c2VkLFxuICAvLyB0aGVzZSBjYW4gYmUgcmVtb3ZlZCBieSBzZXR0aW5nICRiZzpmYWxzZVxuICBAaWYgJGJnIHtcblxuICAgIEBpZiAkYmctaG92ZXIgPT0gbnVsbCB7XG4gICAgICAkYmctaG92ZXI6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJnLWhvdmVyLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItY29sb3IgPT0gbnVsbCB7XG4gICAgICAkYm9yZGVyLWNvbG9yOiBpZigkYmcgPT0gJGJ1dHRvbi1iZy1jb2xvciwgJGJ1dHRvbi1ib3JkZXItY29sb3IsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZpbmQgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgICRiZy1ob3Zlci1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmctaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctaG92ZXI7IH1cblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICBjb2xvcjogaWYoJGJnLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaWYoJGJnLWhvdmVyLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi5cbiAgQGlmICRkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjtcbiAgICBvcGFjaXR5OiAkYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIGJ1dHRvbiByYWRpdXMgaXMgdXNlZC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGJ1dHRvbnMgd2l0aCBhIHNpbmdsZSBtaXhpbi4gQXMgQGphcmVkaGFyZHkgcHV0cyBpdCwgXCJ0aGUga2l0Y2hlbiBzaW5rIG1peGluXCJcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkYmcgLSBQcmltYXJ5IGNvbG9yIHNldCBpbiBzZXR0aW5ncyBmaWxlLiBEZWZhdWx0OiAkYnV0dG9uLWJnLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDpmYWxzZS5cbi8vICRpcy1wcmVmaXggLSBOb3QgdXNlZD8gRGVmYXVsdDpmYWxzZS5cbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cbi8vICRib3JkZXItY29sb3IgLSBCdXR0b24gQm9yZGVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJHRyYW5zaXRpb24gLSBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zaXRpb24gcHJvcGVydHkgLSBEZWZhdWx0OnRydWUuXG5AbWl4aW4gYnV0dG9uKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGlzLXByZWZpeDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCwgJHRyYW5zaXRpb246IHRydWUpIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLCAkZnVsbC13aWR0aCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmcsICRyYWRpdXMsICRkaXNhYmxlZCwgJGJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJHRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcblxuICAgIC8vIERlZmF1bHQgc3R5bGVzIGFwcGxpZWQgb3V0c2lkZSBvZiBtZWRpYSBxdWVyeVxuICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlO1xuXG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRiZy1ob3Zlcjokc3VjY2Vzcy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGluZm8tY29sb3IsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cblxuICAgICAgJi5sYXJnZSAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLWxyZyk7IH1cbiAgICAgICYuc21hbGwgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpOyB9XG4gICAgICAmLnRpbnkgICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tdG55KTsgfVxuICAgICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpudWxsLCRmdWxsLXdpZHRoOnRydWUpOyB9XG5cbiAgICAgICYubGVmdC1hbGlnbiAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogcmVtLWNhbGMoMTIpOyB9XG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2ZpcmVmb3ggMnB4IGZpeFxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgkc3R5bGU6ZmFsc2UsICRkaXNwbGF5OmlubGluZS1ibG9jayk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiYnV0dG9uc1wiO1xuXG4vL1xuLy8gQnV0dG9uIEdyb3VwIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gU2V0cyB0aGUgbWFyZ2luIGZvciB0aGUgcmlnaHQgc2lkZSBieSBkZWZhdWx0LCBhbmQgdGhlIGxlZnQgbWFyZ2luIGlmIHJpZ2h0LXRvLWxlZnQgZGlyZWN0aW9uIGlzIHVzZWRcbiRidXR0b24tYmFyLW1hcmdpbi1vcHBvc2l0ZTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGJ1dHRvbi1ncm91cC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy9cbi8vIEJ1dHRvbiBHcm91cCBNaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBzdHlsZXMgZm9yIGEgYnV0dG9uIGdyb3VwIGNvbnRhaW5lclxuQG1peGluIGJ1dHRvbi1ncm91cC1jb250YWluZXIoJHN0eWxlczp0cnVlLCAkZmxvYXQ6ZmFsc2UpIHtcbiAgQGlmICRzdHlsZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gIH1cbiAgQGlmICRmbG9hdCB7XG4gICAgZmxvYXQ6ICN7JGRlZmF1bHQtZmxvYXR9O1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkYnV0dG9uLWJhci1tYXJnaW4tb3Bwb3NpdGU7XG4gICAgJiBkaXYgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBzdHlsZXMgZm9yIGJ1dHRvbiBncm91cHNcbkBtaXhpbiBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czpmYWxzZSwgJGV2ZW46ZmFsc2UsICRmbG9hdDpmYWxzZSwgJG9yaWVudGF0aW9uOmhvcml6b250YWwpIHtcblxuICA+IGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiAkYnV0dG9uLWdyb3VwLWJvcmRlci13aWR0aCBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZmxvdywgb3IgcmVtb3ZlIHRob3NlIHN0eWxlcyBjb21wbGV0ZWx5LlxuICBAaWYgJGZsb2F0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6ICRmbG9hdDtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBmaXJzdCBjaGlsZCBkb2Vzbid0IGdldCB0aGUgbmVnYXRpdmUgbWFyZ2luLlxuICAgICY6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luOiAwIC0ycHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgQGlmICRvcmllbnRhdGlvbiA9PSB2ZXJ0aWNhbCB7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBtYXJnaW46MDtcbiAgICA+IGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBib3JkZXItdG9wOiAkYnV0dG9uLWdyb3VwLWJvcmRlci13aWR0aCBzb2xpZDtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICBtYXJnaW46MDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBsZWZ0IGFuZCByaWdodCByYWRpdXMgb24gZmlyc3QvbGFzdCBidXR0b25zIGluIHRoZSBncm91cC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7XG4gICAgJixcbiAgICAmID4gYSxcbiAgICAmID4gYnV0dG9uLFxuICAgICYgPiAuYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyB9XG4gICAgJjpmaXJzdC1jaGlsZCxcbiAgICAmOmZpcnN0LWNoaWxkID4gYSxcbiAgICAmOmZpcnN0LWNoaWxkID4gYnV0dG9uLFxuICAgICY6Zmlyc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgICAgIEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyh0b3AsICRidXR0b24tcmFkaXVzKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkLFxuICAgICY6bGFzdC1jaGlsZCA+IGEsXG4gICAgJjpsYXN0LWNoaWxkID4gYnV0dG9uLFxuICAgICY6bGFzdC1jaGlsZCA+IC5idXR0b24ge1xuICAgICAgQGlmICRvcmllbnRhdGlvbiA9PSB2ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKGJvdHRvbSwgJGJ1dHRvbi1yYWRpdXMpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRyYWRpdXMge1xuICAgICYsXG4gICAgJiA+IGEsXG4gICAgJiA+IGJ1dHRvbixcbiAgICAmID4gLmJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgfVxuICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgJjpmaXJzdC1jaGlsZCA+IGEsXG4gICAgJjpmaXJzdC1jaGlsZCA+IGJ1dHRvbixcbiAgICAmOmZpcnN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gICAgICBAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXModG9wLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQsXG4gICAgJjpsYXN0LWNoaWxkID4gYSxcbiAgICAmOmxhc3QtY2hpbGQgPiBidXR0b24sXG4gICAgJjpsYXN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gICAgICBAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoYm90dG9tLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJHJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIHRoaXMgdG8gbWFrZSB0aGUgYnV0dG9ucyBldmVuIHdpZHRoIGFjcm9zcyB0aGVpciBjb250YWluZXJcbiAgQGlmICRldmVuIHtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoMTAwLyRldmVuKSAvIDEwMCk7XG4gICAgYnV0dG9uLCAuYnV0dG9uIHsgd2lkdGg6IDEwMCU7IH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnV0dG9uLWdyb3VwXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXMge1xuICAgIC5idXR0b24tZ3JvdXAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtY29udGFpbmVyO1xuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAgICAgICAmLmV2ZW4tI3skaX0gbGkgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJGV2ZW46JGksICRmbG9hdDpudWxsKTsgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAmID4gbGkgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoKTsgfVxuXG4gICAgICAmLnN0YWNrIHtcbiAgICAgICAgJiA+IGxpIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRvcmllbnRhdGlvbjp2ZXJ0aWNhbCk7IGZsb2F0OiBub25lOyB9XG4gICAgICB9XG5cbiAgICAgICYuc3RhY2stZm9yLXNtYWxsIHtcbiAgICAgICAgJiA+IGxpIHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJG9yaWVudGF0aW9uOmhvcml6b250YWwpO1xuICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJG9yaWVudGF0aW9uOnZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5yYWRpdXMgPiAqIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRyYWRpdXM6JGJ1dHRvbi1yYWRpdXMsICRmbG9hdDpudWxsKTsgfVxuICAgICAgJi5yYWRpdXMuc3RhY2sgPiAqIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRyYWRpdXM6JGJ1dHRvbi1yYWRpdXMsICRmbG9hdDpudWxsLCAkb3JpZW50YXRpb246dmVydGljYWwpOyB9XG4gICAgICAmLnJhZGl1cy5zdGFjay1mb3Itc21hbGwgPiAqIHtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tcmFkaXVzLCAkb3JpZW50YXRpb246aG9yaXpvbnRhbCk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLXJhZGl1cywgJG9yaWVudGF0aW9uOnZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnJvdW5kID4gKiB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tcm91bmQsICRmbG9hdDpudWxsKTsgfVxuICAgICAgJi5yb3VuZC5zdGFjayA+ICogeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLW1lZCwgJGZsb2F0Om51bGwsICRvcmllbnRhdGlvbjp2ZXJ0aWNhbCk7IH1cbiAgICAgICYucm91bmQuc3RhY2stZm9yLXNtYWxsID4gKiB7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLXJvdW5kLCAkb3JpZW50YXRpb246aG9yaXpvbnRhbCk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLW1lZCwgJG9yaWVudGF0aW9uOnZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tYmFyIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgLmJ1dHRvbi1ncm91cCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1jb250YWluZXIoJHN0eWxlczpmYWxzZSwgJGZsb2F0OnRydWUpOyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1jbGVhcmluZy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3JzIGZvciBwYXJ0cyBvZiBDbGVhcmluZy5cbiRjbGVhcmluZy1iZzogJG9pbCAhZGVmYXVsdDtcbiRjbGVhcmluZy1jYXB0aW9uLWJnOiAkY2xlYXJpbmctYmcgIWRlZmF1bHQ7XG4kY2xlYXJpbmctY2Fyb3VzZWwtYmc6IHJnYmEoNTEsNTEsNTEsMC44KSAhZGVmYXVsdDtcbiRjbGVhcmluZy1pbWctYmc6ICRjbGVhcmluZy1iZyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBjbG9zZSBidXR0b25cbiRjbGVhcmluZy1jbG9zZS1jb2xvcjogJGlyb24gIWRlZmF1bHQ7XG4kY2xlYXJpbmctY2xvc2Utc2l6ZTogMzBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBhcnJvd3NcbiRjbGVhcmluZy1hcnJvdy1zaXplOiAxMnB4ICFkZWZhdWx0O1xuJGNsZWFyaW5nLWFycm93LWNvbG9yOiAkY2xlYXJpbmctY2xvc2UtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBjYXB0aW9uc1xuJGNsZWFyaW5nLWNhcHRpb24tZm9udC1jb2xvcjogJGlyb24gIWRlZmF1bHQ7XG4kY2xlYXJpbmctY2FwdGlvbi1mb250LXNpemU6IDAuODc1ZW0gIWRlZmF1bHQ7XG4kY2xlYXJpbmctY2FwdGlvbi1wYWRkaW5nOiAxMHB4IDMwcHggMjBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2UgdGhlIGltYWdlIGFuZCBjYXJvdXNlbCBoZWlnaHQgYW5kIHN0eWxlXG4kY2xlYXJpbmctYWN0aXZlLWltZy1oZWlnaHQ6IDg1JSAhZGVmYXVsdDtcbiRjbGVhcmluZy1jYXJvdXNlbC1oZWlnaHQ6IDEyMHB4ICFkZWZhdWx0O1xuJGNsZWFyaW5nLWNhcm91c2VsLXRodW1iLXdpZHRoOiAxMjBweCAhZGVmYXVsdDtcbiRjbGVhcmluZy1jYXJvdXNlbC10aHVtYi1hY3RpdmUtYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSwyNTUsMjU1KSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcImNsZWFyaW5nXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtY2xlYXJpbmctY2xhc3NlcyB7XG4gICAgLy8gV2UgZGVjaWRlZCB0byBub3QgY3JlYXRlIGEgbWl4aW4gZm9yIENsZWFyaW5nIGJlY2F1c2UgaXQgcmVsaWVzXG4gICAgLy8gb24gcHJlZGVmaW5lZCBjbGFzc2VzIGFuZCBzdHJ1Y3R1cmUgdG8gd29yayBwcm9wZXJseS5cbiAgICAvLyBUaGUgdmFyaWFibGVzIGFib3ZlIHNob3VsZCBnaXZlIGVub3VnaCBjb250cm9sLlxuXG4gICAgLyogQ2xlYXJpbmcgU3R5bGVzICovXG4gICAgLmNsZWFyaW5nLXRodW1icywgI3tkYXRhKCdjbGVhcmluZycpfSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICZbY2xhc3MqPVwiYmxvY2stZ3JpZC1cIl0gbGkge1xuICAgICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xlYXJpbmctYmxhY2tvdXQge1xuICAgICAgYmFja2dyb3VuZDogJGNsZWFyaW5nLWJnO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICAgIHotaW5kZXg6IDk5ODtcblxuICAgICAgLmNsZWFyaW5nLWNsb3NlIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICB9XG5cbiAgICAuY2xlYXJpbmctY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDk5ODtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmNsZWFyaW5nLXRvdWNoLWxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgY29sb3I6ICRiYXNlO1xuICAgICAgZm9udC1zaXplOiAwLjZlbTtcbiAgICB9XG5cbiAgICAudmlzaWJsZS1pbWcge1xuICAgICAgaGVpZ2h0OiA5NSU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDUwJTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIEBpZiAkZGVmYXVsdC1mbG9hdCA9PSBsZWZ0IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKTtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSk7XG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSk7XG4gICAgICAgIH07XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xlYXJpbmctY2FwdGlvbiB7XG4gICAgICBjb2xvcjogJGNsZWFyaW5nLWNhcHRpb24tZm9udC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogJGNsZWFyaW5nLWNhcHRpb24tZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkY2xlYXJpbmctY2FwdGlvbi1iZztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogJGNsZWFyaW5nLWNhcHRpb24tcGFkZGluZztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIH1cblxuICAgIC5jbGVhcmluZy1jbG9zZSB7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAyMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICBmb250LXNpemU6ICRjbGVhcmluZy1jbG9zZS1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjb2xvcjogJGNsZWFyaW5nLWNsb3NlLWNvbG9yO1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMgeyBjb2xvcjogJGlyb247IH1cbiAgICB9XG5cbiAgICAuY2xlYXJpbmctYXNzZW1ibGVkIC5jbGVhcmluZy1jb250YWluZXIgeyBoZWlnaHQ6IDEwMCU7XG4gICAgICAuY2Fyb3VzZWwgPiB1bCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyBJZiB5b3Ugd2FudCB0byBzaG93IGEgbGlnaHRib3gsIGJ1dCBvbmx5IGhhdmUgYSBzaW5nbGUgaW1hZ2UgY29tZSB0aHJvdWdoIGFzIHRoZSB0aHVtYm5haWxcbiAgICAuY2xlYXJpbmctZmVhdHVyZSBsaSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgJi5jbGVhcmluZy1mZWF0dXJlZC1pbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMYXJnZSBzY3JlZW4gb3ZlcnJpZGVzXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgLmNsZWFyaW5nLW1haW4tcHJldixcbiAgICAgIC5jbGVhcmluZy1tYWluLW5leHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAkY2xlYXJpbmctYXJyb3ctc2l6ZTtcbiAgICAgICAgICAmOmhvdmVyIHsgb3BhY2l0eTogMC44OyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jbGVhcmluZy1tYWluLXByZXYge1xuICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiA1cHg7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufS1jb2xvcjogJGNsZWFyaW5nLWFycm93LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY2xlYXJpbmctbWFpbi1uZXh0IHtcbiAgICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9LWNvbG9yOiAkY2xlYXJpbmctYXJyb3ctY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNsZWFyaW5nLW1haW4tcHJldi5kaXNhYmxlZCxcbiAgICAgIC5jbGVhcmluZy1tYWluLW5leHQuZGlzYWJsZWQgeyBvcGFjaXR5OiAwLjM7IH1cblxuICAgICAgLmNsZWFyaW5nLWFzc2VtYmxlZCAuY2xlYXJpbmctY29udGFpbmVyIHtcblxuICAgICAgICAuY2Fyb3VzZWwge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjbGVhcmluZy1jYXJvdXNlbC1iZztcbiAgICAgICAgICBoZWlnaHQ6ICRjbGVhcmluZy1jYXJvdXNlbC1oZWlnaHQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAmID4gdWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIHdpZHRoOiAkY2xlYXJpbmctY2Fyb3VzZWwtdGh1bWItd2lkdGg7XG4gICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG5cbiAgICAgICAgICAgICAgJi5maXgtaGVpZ2h0IHtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGEudGgge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYudmlzaWJsZSB7IG9wYWNpdHk6IDE7IH1cbiAgICAgICAgICAgICAgJjpob3ZlciB7IG9wYWNpdHk6IDAuODsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC52aXNpYmxlLWltZyB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNsZWFyaW5nLWltZy1iZztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIGhlaWdodDogJGNsZWFyaW5nLWFjdGl2ZS1pbWctaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jbGVhcmluZy1jbG9zZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZHJvcGRvd24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbHMgaGVpZ2h0IGFuZCB3aWR0aCBzdHlsZXMuXG4kZi1kcm9wZG93bi1tYXgtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuJGYtZHJvcGRvd24taGVpZ2h0OiBhdXRvICFkZWZhdWx0O1xuJGYtZHJvcGRvd24tbWF4LWhlaWdodDogbm9uZSAhZGVmYXVsdDtcblxuLy8gVXNlZCBmb3IgYm90dG9tIHBvc2l0aW9uXG4kZi1kcm9wZG93bi1tYXJnaW4tdG9wOiAycHggIWRlZmF1bHQ7XG5cbi8vIFVzZWQgZm9yIHJpZ2h0IHBvc2l0aW9uXG4kZi1kcm9wZG93bi1tYXJnaW4tbGVmdDogJGYtZHJvcGRvd24tbWFyZ2luLXRvcCAhZGVmYXVsdDtcblxuLy8gVXNlZCBmb3IgbGVmdCBwb3NpdGlvblxuJGYtZHJvcGRvd24tbWFyZ2luLXJpZ2h0OiAkZi1kcm9wZG93bi1tYXJnaW4tdG9wICFkZWZhdWx0O1xuXG4vLyBVc2VkIGZvciB0b3AgcG9zaXRpb25cbiRmLWRyb3Bkb3duLW1hcmdpbi1ib3R0b206ICRmLWRyb3Bkb3duLW1hcmdpbi10b3AgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3JcbiRmLWRyb3Bkb3duLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYm9yZGVyIHN0eWxlcyBmb3IgZHJvcGRvd25zLlxuJGYtZHJvcGRvd24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHRyaWFuZ2xlIHBpcC5cbiRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemU6IDZweCAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLXRyaWFuZ2xlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDogMTBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgc3R5bGVzIGZvciB0aGUgbGlzdCBlbGVtZW50cy5cbiRmLWRyb3Bkb3duLWxpc3Qtc3R5bGU6IG5vbmUgIWRlZmF1bHQ7XG4kZi1kcm9wZG93bi1mb250LWNvbG9yOiAkY2hhcmNvYWwgIWRlZmF1bHQ7XG4kZi1kcm9wZG93bi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLWxpc3QtcGFkZGluZzogcmVtLWNhbGMoNSwgMTApICFkZWZhdWx0O1xuJGYtZHJvcGRvd24tbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLWxpc3QtaG92ZXItYmc6ICRzbW9rZSAhZGVmYXVsdDtcbiRkcm9wZG93bi1tb2JpbGUtZGVmYXVsdC1mbG9hdDogMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3R5bGVzIGZvciB3aGVuIHRoZSBkcm9wZG93biBoYXMgY3VzdG9tIGNvbnRlbnQuXG4kZi1kcm9wZG93bi1jb250ZW50LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCByYWRpdXMgZm9yIGRyb3Bkb3duLlxuJGYtZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG4vL1xuLy8gTk9URTogTWFrZSBkZWZhdWx0IG1heC13aWR0aCBjaGFuZ2UgYmV0d2VlbiBsaXN0IGFuZCBjb250ZW50IHR5cGVzLiBDYW4gYWRkIG1vcmUgd2lkdGggd2l0aCBjbGFzc2VzLCBtYXliZSAuc21hbGwsIC5tZWRpdW0sIC5sYXJnZSwgZXRjLjtcbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBkcm9wZG93biBjb250YWluZXIgZWxlbWVudC5cbi8vICRjb250ZW50LWxpc3QgLSBTZXRzIGxpc3Qtc3R5bGUuIERlZmF1bHQ6IGxpc3QuIE9wdGlvbnM6IFtsaXN0LCBjb250ZW50XVxuLy8gJHRyaWFuZ2xlIC0gU2V0cyBpZiBkcm9wZG93biBoYXMgdHJpYW5nbGUuIERlZmF1bHQ6dHJ1ZS5cbi8vICRtYXgtd2lkdGggLSBEZWZhdWx0OiAkZi1kcm9wZG93bi1tYXgtd2lkdGggfHwgMjAwcHguXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyKCRjb250ZW50Omxpc3QsICR0cmlhbmdsZTp0cnVlLCAkbWF4LXdpZHRoOiRmLWRyb3Bkb3duLW1heC13aWR0aCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIGxpc3Qtc3R5bGU6ICRmLWRyb3Bkb3duLWxpc3Qtc3R5bGU7XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgb3V0bGluZTogbm9uZTtcblxuICA+ICo6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG4gID4gKjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4gIEBpZiAkY29udGVudCA9PSBsaXN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAkZi1kcm9wZG93bi1tYXgtaGVpZ2h0O1xuICAgIGhlaWdodDogJGYtZHJvcGRvd24taGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRmLWRyb3Bkb3duLWJnO1xuICAgIGJvcmRlcjogJGYtZHJvcGRvd24tYm9yZGVyLXN0eWxlICRmLWRyb3Bkb3duLWJvcmRlci13aWR0aCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3I7XG4gICAgZm9udC1zaXplOiAkZi1kcm9wZG93bi1mb250LXNpemU7XG4gICAgei1pbmRleDogODk7XG4gIH1cbiAgQGVsc2UgaWYgJGNvbnRlbnQgPT0gY29udGVudCB7XG4gICAgcGFkZGluZzogJGYtZHJvcGRvd24tY29udGVudC1wYWRkaW5nO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGYtZHJvcGRvd24taGVpZ2h0O1xuICAgIG1heC1oZWlnaHQ6ICRmLWRyb3Bkb3duLW1heC1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGYtZHJvcGRvd24tYmc7XG4gICAgYm9yZGVyOiAkZi1kcm9wZG93bi1ib3JkZXItc3R5bGUgJGYtZHJvcGRvd24tYm9yZGVyLXdpZHRoICRmLWRyb3Bkb3duLWJvcmRlci1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmLWRyb3Bkb3duLWZvbnQtc2l6ZTtcbiAgICB6LWluZGV4OiA4OTtcbiAgfVxuXG4gIEBpZiAkdHJpYW5nbGUgPT0gYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAkZi1kcm9wZG93bi1tYXJnaW4tdG9wO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUsICRmLWRyb3Bkb3duLXRyaWFuZ2xlLWNvbG9yLCBib3R0b20pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKTtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcbiAgICAgIHotaW5kZXg6IDg5O1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICsgMSwgJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yLCBib3R0b20pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtKCgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICsgMSkgKiAyKTtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldCAtIDE7XG4gICAgICB6LWluZGV4OiA4ODtcbiAgICB9XG5cbiAgICAmLnJpZ2h0OmJlZm9yZSB7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0O1xuICAgIH1cbiAgICAmLnJpZ2h0OmFmdGVyIHtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQgLSAxO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdHJpYW5nbGUgPT0gJGRlZmF1bHQtZmxvYXQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi1tYXJnaW4tcmlnaHQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSwgJGYtZHJvcGRvd24tdHJpYW5nbGUtY29sb3IsICN7JG9wcG9zaXRlLWRpcmVjdGlvbn0pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKTtcbiAgICAgIHotaW5kZXg6IDg5O1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICsgMSwgJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQgLSAxO1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpIC0gMjtcbiAgICAgIHotaW5kZXg6IDg4O1xuICAgIH1cblxuICB9XG5cbiAgQGlmICR0cmlhbmdsZSA9PSAkb3Bwb3NpdGUtZGlyZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSRmLWRyb3Bkb3duLW1hcmdpbi1yaWdodDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplLCAkZi1kcm9wZG93bi10cmlhbmdsZS1jb2xvciwgI3skZGVmYXVsdC1mbG9hdH0pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpO1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgICB6LWluZGV4OiA4OTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSArIDEsICRmLWRyb3Bkb3duLWJvcmRlci1jb2xvciwgI3skZGVmYXVsdC1mbG9hdH0pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldCAtIDE7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKSAtIDI7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICAgIHotaW5kZXg6IDg4O1xuICAgIH1cblxuICB9XG5cbiAgQGlmICR0cmlhbmdsZSA9PSB0b3Age1xuICAgIG1hcmdpbi10b3A6IC0kZi1kcm9wZG93bi1tYXJnaW4tYm90dG9tO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUsICRmLWRyb3Bkb3duLXRyaWFuZ2xlLWNvbG9yLCB0b3ApO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgYm90dG9tOiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKTtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgICB6LWluZGV4OiA4OTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSArIDEsICRmLWRyb3Bkb3duLWJvcmRlci1jb2xvciwgdG9wKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMikgLSAyO1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0IC0gMTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgICB6LWluZGV4OiA4ODtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAkbWF4LXdpZHRoIHsgbWF4LXdpZHRoOiAkbWF4LXdpZHRoOyB9XG4gIEBlbHNlIHsgbWF4LXdpZHRoOiAkZi1kcm9wZG93bi1tYXgtd2lkdGg7IH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgbGlzdCBlbGVtZW50cyBvciBjb250ZW50IGluc2lkZSB0aGUgZHJvcGRvd24uXG5cbkBtaXhpbiBkcm9wZG93bi1zdHlsZSB7XG4gIGZvbnQtc2l6ZTogJGYtZHJvcGRvd24tZm9udC1zaXplO1xuICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcblxuICBsaW5lLWhlaWdodDogJGYtZHJvcGRvd24tbGluZS1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHsgYmFja2dyb3VuZDogJGYtZHJvcGRvd24tbGlzdC1ob3Zlci1iZzsgfVxuXG4gICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRmLWRyb3Bkb3duLXJhZGl1cyk7IH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkZi1kcm9wZG93bi1saXN0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmLWRyb3Bkb3duLWZvbnQtY29sb3I7XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImRyb3Bkb3duXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZHJvcGRvd24tY2xhc3NlcyB7XG5cbiAgICAvKiBGb3VuZGF0aW9uIERyb3Bkb3ducyAqL1xuICAgIC5mLWRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCBib3R0b20pO1xuXG4gICAgICAmLmRyb3AtI3skb3Bwb3NpdGUtZGlyZWN0aW9ufSB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCAjeyRkZWZhdWx0LWZsb2F0fSk7XG4gICAgICB9XG5cbiAgICAgICYuZHJvcC0jeyRkZWZhdWx0LWZsb2F0fSB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259KTtcbiAgICAgIH1cblxuICAgICAgJi5kcm9wLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCB0b3ApO1xuICAgICAgfVxuICAgICAgLy8gbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICBsaSB7IEBpbmNsdWRlIGRyb3Bkb3duLXN0eWxlOyB9XG5cbiAgICAgIC8vIFlvdSBjYW4gYWxzbyBwdXQgY3VzdG9tIGNvbnRlbnQgaW4gdGhlc2UgZHJvcGRvd25zXG4gICAgICAmLmNvbnRlbnQgeyBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXIoY29udGVudCwgJHRyaWFuZ2xlOmZhbHNlKTsgfVxuXG4gICAgICAvLyBTaXplc1xuICAgICAgJi50aW55ICAgIHsgbWF4LXdpZHRoOiAyMDBweDsgfVxuICAgICAgJi5zbWFsbCAgIHsgbWF4LXdpZHRoOiAzMDBweDsgfVxuICAgICAgJi5tZWRpdW0gIHsgbWF4LXdpZHRoOiA1MDBweDsgfVxuICAgICAgJi5sYXJnZSAgIHsgbWF4LXdpZHRoOiA4MDBweDsgfVxuICAgICAgJi5tZWdhICAgIHtcbiAgICAgICAgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDoxMDAlIWltcG9ydGFudDtcblxuICAgICAgICAmLm9wZW57XG4gICAgICAgICAgbGVmdDowIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBjb2xvciBvZiB0aGUgcGlwIGluIGRyb3Bkb3duIGJ1dHRvbnNcbiRkcm9wZG93bi1idXR0b24tcGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIHNpemUgb2YgdGhlIHBpcCBpbiBkcm9wZG93biBidXR0b25zXG4kYnV0dG9uLXBpcC10bnk6IHJlbS1jYWxjKDYpICFkZWZhdWx0O1xuJGJ1dHRvbi1waXAtc21sOiByZW0tY2FsYyg3KSAhZGVmYXVsdDtcbiRidXR0b24tcGlwLW1lZDogcmVtLWNhbGMoOSkgIWRlZmF1bHQ7XG4kYnV0dG9uLXBpcC1scmc6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRpbnkgZHJvcGRvd24gYnV0dG9uc1xuJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLXRueTogJGJ1dHRvbi1waXAtdG55ICogNyAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtdG55OiAkYnV0dG9uLXBpcC10bnkgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS10bnk6ICRidXR0b24tcGlwLXRueSAqIDMgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtdG55OiAoLSRidXR0b24tcGlwLXRueSAvIDIpICsgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBzbWFsbCBkcm9wZG93biBidXR0b25zXG4kZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctc21sOiAkYnV0dG9uLXBpcC1zbWwgKiA3ICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1zbWw6ICRidXR0b24tcGlwLXNtbCAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLW9wcG9zaXRlLXNtbDogJGJ1dHRvbi1waXAtc21sICogMyAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLXRvcC1zbWw6ICgtJGJ1dHRvbi1waXAtc21sIC8gMikgKyByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIG1lZGl1bSBkcm9wZG93biBidXR0b25zXG4kZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctbWVkOiAkYnV0dG9uLXBpcC1tZWQgKiA2ICsgcmVtLWNhbGMoMykgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1zaXplLW1lZDogJGJ1dHRvbi1waXAtbWVkIC0gcmVtLWNhbGMoMykgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDIuNSAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLXRvcC1tZWQ6ICgtJGJ1dHRvbi1waXAtbWVkIC8gMikgKyByZW0tY2FsYygyKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGxhcmdlIGRyb3Bkb3duIGJ1dHRvbnNcbiRkcm9wZG93bi1idXR0b24tcGFkZGluZy1scmc6ICRidXR0b24tcGlwLWxyZyAqIDUgKyByZW0tY2FsYygzKSAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtbHJnOiAkYnV0dG9uLXBpcC1scmcgLSByZW0tY2FsYyg2KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLW9wcG9zaXRlLWxyZzogJGJ1dHRvbi1waXAtbHJnICogMi41ICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLWxyZzogKC0kYnV0dG9uLXBpcC1scmcgLyAyKSArIHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuXG4vLyBAbWl4aW5zXG4vL1xuLy8gRHJvcGRvd24gQnV0dG9uIE1peGluXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYnVpbGQgb2ZmIG9mIHRoZSBidXR0b24gbWl4aW4gYW5kIGFkZCBkcm9wZG93biBidXR0b24gc3R5bGVzXG4vL1xuLy8gJHBhZGRpbmcgLSBEZXRlcm1pbmVzIHRoZSBzaXplIG9mIGJ1dHRvbiB5b3UncmUgd29ya2luZyB3aXRoLiBEZWZhdWx0OiBtZWRpdW0uIE9wdGlvbnMgW3RpbnksIHNtYWxsLCBtZWRpdW0sIGxhcmdlXVxuLy8gJHBpcC1jb2xvciAtIENvbG9yIG9mIHRoZSBsaXR0bGUgdHJpYW5nbGUgdGhhdCBwb2ludHMgdG8gdGhlIGRyb3Bkb3duLiBEZWZhdWx0OiAkd2hpdGUuXG4vLyAkYmFzZS1zdHlsZSAtIEFkZCBpbiBiYXNlLXN0eWxlcy4gVGhpcyBjYW4gYmUgc2V0IHRvIGZhbHNlLiBEZWZhdWx0OnRydWVcblxuQG1peGluIGRyb3Bkb3duLWJ1dHRvbigkcGFkZGluZzptZWRpdW0sICRwaXAtY29sb3I6JHdoaXRlLCAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gV2UgYWRkIGluIGJhc2Ugc3R5bGVzLCBidXQgdGhleSBjYW4gYmUgbmVnYXRlZCBieSBzZXR0aW5nIHRvICdmYWxzZScuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAvLyBUaGlzIGNyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciB0aGUgdHJpYW5nbGUgcGlwXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZHJvcGRvd24tYnV0dG9uLXBpcC1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHRvcDogNTAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aW55IGJ1dHRvbnMsIHVzZSB0aGVzZSBzdHlsZXNcbiAgQGlmICRwYWRkaW5nID09IHRpbnkge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLXRueTtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJvcmRlci13aWR0aDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS10bnk7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS10bnk7XG4gICAgICBtYXJnaW4tdG9wOiAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtdG55O1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3JlIGRlYWxpbmcgd2l0aCBzbWFsbCBidXR0b25zLCB1c2UgdGhlc2Ugc3R5bGVzXG4gIEBpZiAkcGFkZGluZyA9PSBzbWFsbCB7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctc21sO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci13aWR0aDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1zbWw7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1zbWw7XG4gICAgICBtYXJnaW4tdG9wOiAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3Atc21sO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3JlIGRlYWxpbmcgd2l0aCBkZWZhdWx0IChtZWRpdW0pIGJ1dHRvbnMsIHVzZSB0aGVzZSBzdHlsZXNcbiAgQGlmICRwYWRkaW5nID09IG1lZGl1bSB7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctbWVkO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci13aWR0aDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1tZWQ7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1tZWQ7XG4gICAgICBtYXJnaW4tdG9wOiAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtbWVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3JlIGRlYWxpbmcgd2l0aCBsYXJnZSBidXR0b25zLCB1c2UgdGhlc2Ugc3R5bGVzXG4gIEBpZiAkcGFkZGluZyA9PSBsYXJnZSB7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctbHJnO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci13aWR0aDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1scmc7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1scmc7XG4gICAgICBtYXJnaW4tdG9wOiAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtbHJnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSBwaXAgY29sb3IuIFdlIGRpZG4ndCB1c2UgbG9naWMgaW4gdGhpcyBjYXNlLCBqdXN0IHNldCBpdCBhbmQgZm9yZ2V0IGl0LlxuICBAaWYgJHBpcC1jb2xvciB7XG4gICAgJjo6YWZ0ZXIgeyBib3JkZXItY29sb3I6ICRwaXAtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZHJvcGRvd24tYnV0dG9uXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXMge1xuICAgIC5kcm9wZG93bi5idXR0b24sIGJ1dHRvbi5kcm9wZG93biB7IEBpbmNsdWRlIGRyb3Bkb3duLWJ1dHRvbjtcbiAgICAgICYudGlueSB7IEBpbmNsdWRlIGRyb3Bkb3duLWJ1dHRvbih0aW55LCRiYXNlLXN0eWxlOmZhbHNlKTsgfVxuICAgICAgJi5zbWFsbCB7IEBpbmNsdWRlIGRyb3Bkb3duLWJ1dHRvbihzbWFsbCwkYmFzZS1zdHlsZTpmYWxzZSk7IH1cbiAgICAgICYubGFyZ2UgeyBAaW5jbHVkZSBkcm9wZG93bi1idXR0b24obGFyZ2UsJGJhc2Utc3R5bGU6ZmFsc2UpOyB9XG4gICAgICAmLnNlY29uZGFyeTphZnRlciB7IGJvcmRlci1jb2xvcjogJGRyb3Bkb3duLWJ1dHRvbi1waXAtY29sb3ItYWx0IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZpZGVvIGNvbnRhaW5lciBwYWRkaW5nIGFuZCBtYXJnaW5zXG4kZmxleC12aWRlby1wYWRkaW5nLXRvcDogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xuJGZsZXgtdmlkZW8tcGFkZGluZy1ib3R0b206IDY3LjUlICFkZWZhdWx0O1xuJGZsZXgtdmlkZW8tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdpZGVzY3JlZW4gYm90dG9tIHBhZGRpbmdcbiRmbGV4LXZpZGVvLXdpZGVzY3JlZW4tcGFkZGluZy1ib3R0b206IDU2LjM0JSAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbkBtaXhpbiBmbGV4LXZpZGVvLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6ICRmbGV4LXZpZGVvLXBhZGRpbmctdG9wO1xuICBwYWRkaW5nLWJvdHRvbTogJGZsZXgtdmlkZW8tcGFkZGluZy1ib3R0b207XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJGZsZXgtdmlkZW8tbWFyZ2luLWJvdHRvbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmLndpZGVzY3JlZW4geyBwYWRkaW5nLWJvdHRvbTogJGZsZXgtdmlkZW8td2lkZXNjcmVlbi1wYWRkaW5nLWJvdHRvbTsgfVxuICAmLnZpbWVvIHsgcGFkZGluZy10b3A6IDA7IH1cblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZmxleC12aWRlb1wiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXMge1xuICAgIC5mbGV4LXZpZGVvIHsgQGluY2x1ZGUgZmxleC12aWRlby1jb250YWluZXI7IH1cbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYXNlIGZvciBsb3RzIG9mIGZvcm0gc3BhY2luZyBhbmQgcG9zaXRpb25pbmcgc3R5bGVzXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWxzIGluIGRpZmZlcmVudCB3YXlzXG4kZm9ybS1sYWJlbC1wb2ludGVyOiBwb2ludGVyICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkYmxhY2ssICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSkgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kaW5wdXQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMiUpICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTQwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcbiRpbnB1dC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xuJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Q6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGZpZWxkc2V0IGJvcmRlciBhbmQgc3BhY2luZy5cbiRmaWVsZHNldC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsZWdlbmRzIHdoZW4geW91IHVzZSB0aGVtXG4kbGVnZW5kLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbGVnZW5kLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBwcmVmaXggYW5kIHBvc3RmaXggaW5wdXQgZWxlbWVudHNcbiRpbnB1dC1wcmVmaXgtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LW92ZXJmbG93OiB2aXNpYmxlICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nOiByZW0tY2FsYyg2IDkgOSkgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A6IC0xcHggIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtYmctY29sb3I6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgZ2xvd2luZyBlZmZlY3Qgb2YgaW5wdXRzIHdoZW4gZm9jdXNlZFxuJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZTogMC40NXMgIWRlZmF1bHQ7XG4kZ2xvd2luZy1lZmZlY3QtY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFNlbGVjdCB2YXJpYWJsZXNcbiRzZWxlY3QtYmctY29sb3I6ICRnaG9zdCAhZGVmYXVsdDtcbiRzZWxlY3QtaG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCRzZWxlY3QtYmctY29sb3IsICRsaWdodG5lc3M6IC0zJSkgIWRlZmF1bHQ7XG5cbi8vXG4vLyBATUlYSU5TXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIHVzIGZvcm0gc3R5bGVzIGZvciByb3dzIGluc2lkZSBvZiBmb3Jtc1xuQG1peGluIGZvcm0tcm93LWJhc2Uge1xuICAucm93IHsgbWFyZ2luOiAwICgoLSRmb3JtLXNwYWNpbmcpIC8gMik7XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMCAoJGZvcm0tc3BhY2luZyAvIDIpOyB9XG5cbiAgICAvLyBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgbWFyZ2lucyBvZiBhIGZvcm0gcm93XG4gICAgJi5jb2xsYXBzZSB7IG1hcmdpbjogMDtcblxuICAgICAgLmNvbHVtbixcbiAgICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMDsgfVxuICAgICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAwKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBpbnB1dC5jb2x1bW4sXG4gIGlucHV0LmNvbHVtbnMsXG4gIHRleHRhcmVhLmNvbHVtbixcbiAgdGV4dGFyZWEuY29sdW1ucyB7IHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gZ2l2ZSBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyB0aGVpciBzdHlsZVxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZy1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3c7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCB7XG4gICAgQGluY2x1ZGUgYmxvY2stZ2xvd2luZy1lZmZlY3QoZm9jdXMsICRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWUsICRnbG93aW5nLWVmZmVjdC1jb2xvcik7XG4gIH1cbiAgLy8gQmFzaWMgZm9jdXMgc3R5bGVzXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1mb2N1cy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAvLyBEaXNiYWxlZCBTdHlsZXNcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxuXG4gIC8vIERpc2FibGVkIGJhY2tncm91bmQgaW5wdXQgYmFja2dyb3VuZCBjb2xvclxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBmb3JtIGxhYmVsc1xuLy9cbi8vICRhbGlnbm1lbnQgLSBBbGlnbm1lbnQgb3B0aW9ucy4gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IFtyaWdodCwgaW5saW5lLCBmYWxzZV1cbi8vICRiYXNlLXN0eWxlIC0gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGZvcm0tbGFiZWwoJGFsaWdubWVudDpmYWxzZSwgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIC8vIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGZvcm0tbGFiZWwtZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6ICRmb3JtLWxhYmVsLXBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luO1xuICB9XG5cbiAgLy8gQWxpZ25tZW50IG9wdGlvbnNcbiAgQGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBpbmxpbmUge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpIDA7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHBvc3RmaXgvcHJlZml4IGZvcm0gTGFiZWxzXG5AbWl4aW4gcHJlZml4LXBvc3RmaXgtYmFzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLXN0eWxlOiAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlO1xuICBib3JkZXItd2lkdGg6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU7XG4gIG92ZXJmbG93OiAkaW5wdXQtcHJlZml4LW92ZXJmbG93O1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgbGluZS1oZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcHJlZml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OmZhbHNlXG4vL1xuQG1peGluIHByZWZpeCgkYmc6JGlucHV0LXByZWZpeC1iZywgJGJvcmRlcjokaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvciwgJGlzLWJ1dHRvbjpmYWxzZSkge1xuXG4gIEBpZiAkYmcge1xuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgIGJhY2tncm91bmQ6ICRiZztcbiAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDogZmFsc2VcbkBtaXhpbiBwb3N0Zml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgZmllbGRzZXRzXG5AbWl4aW4gZmllbGRzZXQge1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXItd2lkdGggJGZpZWxkc2V0LWJvcmRlci1zdHlsZSAkZmllbGRzZXQtYm9yZGVyLWNvbG9yO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIC8vIGFuZCBsZWdlbmQgc3R5bGVzXG4gIGxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6ICRsZWdlbmQtZm9udC13ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGxlZ2VuZC1iZztcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogcmVtLWNhbGMoLTMpO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNvbnRyb2wgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuQG1peGluIGZvcm0tZXJyb3ItY29sb3IoJGNvbG9yOiRhbGVydC1jb2xvcikge1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsIDAuMSk7XG5cbiAgLy8gR28gYmFjayB0byBub3JtYWwgb24gZm9jdXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBzaW1wbGUgbWl4aW4gdG8gc3R5bGUgbGFiZWxzIGZvciBlcnJvciBpbnB1dHNcbi8vICRjb2xvciAtIERlZmF1bHQ6JGFsZXJ0LWNvbG9yLiBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AbWl4aW4gZm9ybS1sYWJlbC1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7IGNvbG9yOiAkY29sb3I7IH1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGVycm9yIG1lc3NhZ2Ugc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKEZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1tZXNzYWdlKCRiZzokaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZztcbiAgbWFyZ2luLXRvcDogJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xuICBmb250LXN0eWxlOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlO1xuXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGJhc2VkIG9uIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgYmFja2dyb3VuZDogJGJnO1xuICBAaWYgJGJnLWxpZ2h0bmVzcyA8IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I7IH1cbiAgQGVsc2UgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgc2VsZWN0IGVsZW1lbnRzXG5AbWl4aW4gZm9ybS1zZWxlY3QgIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmctY29sb3I7XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBjdXN0b20gYXJyb3cgaGFzIHNvbWUgZmFrZSBob3Jpem9udGFsIHBhZGRpbmcgc28gd2UgY2FuIGFsaWduIGl0XG4gIC8vIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGVsZW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIENTUzNcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUQwaU1USndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNalJ3ZUNJZ2FHVnBaMmgwUFNJemNIZ2lJSFpwWlhkQ2IzZzlJakFnTUNBMklETWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRFlnTXlJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStQSEJ2YkhsbmIyNGdjRzlwYm5SelBTSTFMams1TWl3d0lESXVPVGt5TERNZ0xUQXVNREE0TERBZ0lpOCtQQzl6ZG1jKyk7XG5cbiAgLy8gV2UgY2FuIHNhZmVseSB1c2UgbGVmdG1vc3QgYW5kIHJpZ2h0bW9zdCBub3dcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogaWYoJHRleHQtZGlyZWN0aW9uID09ICdydGwnLCAwJSwgMTAwJSkgY2VudGVyO1xuXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yYWRpdXMpOyB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaG92ZXItYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIERpc2FibGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVyc1xuQG1peGluIGh0bWw1bnVtYmVyKCRicm93c2VyLCAkb246dHJ1ZSkge1xuICBAaWYgJG9uPT1mYWxzZSB7XG4gICAgICBAaWYgJGJyb3dzZXI9PXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfSBAZWxzZSBpZiAkYnJvd3Nlcj09bW96IHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImZvcm1cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXMge1xuICAgIC8qIFN0YW5kYXJkIEZvcm1zICovXG4gICAgZm9ybSB7IG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7IH1cblxuICAgIC8qIFVzaW5nIGZvcm1zIHdpdGhpbiByb3dzLCB3ZSBuZWVkIHRvIHNldCBzb21lIGRlZmF1bHRzICovXG4gICAgZm9ybSAucm93IHsgQGluY2x1ZGUgZm9ybS1yb3ctYmFzZTsgfVxuXG4gICAgLyogTGFiZWwgU3R5bGVzICovXG4gICAgbGFiZWwgeyBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuICAgICAgJi5yaWdodCB7IEBpbmNsdWRlIGZvcm0tbGFiZWwocmlnaHQsZmFsc2UpOyB9XG4gICAgICAmLmlubGluZSB7IEBpbmNsdWRlIGZvcm0tbGFiZWwoaW5saW5lLGZhbHNlKTsgfVxuICAgICAgLyogU3R5bGVzIGZvciByZXF1aXJlZCBpbnB1dHMgKi9cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQXR0YWNoIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGFuIGlucHV0ICovXG4gICAgLnByZWZpeCxcbiAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHByZWZpeC1wb3N0Zml4LWJhc2U7IH1cblxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXG4gICAgLnBvc3RmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwb3N0Zml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cbiAgICAucHJlZml4LmJ1dHRvbiB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKGZhbHNlLGZhbHNlKTsgQGluY2x1ZGUgcHJlZml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cblxuICAgIC5wcmVmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAucG9zdGZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG5cbiAgICAvKiBTZXBhcmF0ZSBwcmVmaXggYW5kIHBvc3RmaXggc3R5bGVzIHdoZW4gb24gc3BhbiBvciBsYWJlbCBzbyBidXR0b25zIGtlZXAgdGhlaXIgb3duICovXG4gICAgc3Bhbi5wcmVmaXgsbGFiZWwucHJlZml4IHsgQGluY2x1ZGUgcHJlZml4KCk7IH1cbiAgICBzcGFuLnBvc3RmaXgsbGFiZWwucG9zdGZpeCB7IEBpbmNsdWRlIHBvc3RmaXgoKTsgfVxuXG4gICAgLyogV2UgdXNlIHRoaXMgdG8gZ2V0IGJhc2ljIHN0eWxpbmcgb24gYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgKi9cbiAgICAje3RleHQtaW5wdXRzKGFsbCwgJ2lucHV0Jyl9IHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgICBAaWYgJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3QgPT0gZmFsc2Uge1xuICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGFsbCwgMC4xNXMsIGxpbmVhcik7XG4gICAgICB9XG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAucm93IHtcbiAgICAgICAgLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucHJlZml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yb3VuZC5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIFJlc3BlY3QgZW5mb3JjZWQgYW1vdW50IG9mIHJvd3MgZm9yIHRleHRhcmVhICovXG4gICAgdGV4dGFyZWFbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuXHQvKiBOb3QgYWxsb3cgcmVzaXplIG91dCBvZiBwYXJlbnQgKi9cblx0dGV4dGFyZWEge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXG4gICAgLyogQWRkIGhlaWdodCB2YWx1ZSBmb3Igc2VsZWN0IGVsZW1lbnRzIHRvIG1hdGNoIHRleHQgaW5wdXQgaGVpZ2h0ICovXG4gICAgc2VsZWN0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICAgICAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgICAgICZbbXVsdGlwbGVdIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEFkanVzdCBtYXJnaW4gZm9yIGZvcm0gZWxlbWVudHMgYmVsb3cgKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZm9ybS1zcGFjaW5nICogLjU7XG4gICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGZvcm0tc3BhY2luZztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgLyogTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGggKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cblxuICAgIC8qIEhUTUw1IE51bWJlciBzcGlubmVycyBzZXR0aW5ncyAqL1xuICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcihtb3osICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpXG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcih3ZWJraXQsICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpO1xuICAgIH1cblxuICAgIC8qIFdlIGFkZCBiYXNpYyBmaWVsZHNldCBzdHlsaW5nICovXG4gICAgZmllbGRzZXQge1xuICAgICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gICAgfVxuXG4gICAgLyogRXJyb3IgSGFuZGxpbmcgKi9cblxuICAgICN7ZGF0YSgnYWJpZGUnKX0ge1xuICAgICAgLmVycm9yIHNtYWxsLmVycm9yLCAuZXJyb3Igc3Bhbi5lcnJvciwgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLmVycm9yIHtcbiAgICAgIGlucHV0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBzZWxlY3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nXG4gICAgICB9XG5cbiAgICAgIGxhYmVsLFxuICAgICAgbGFiZWwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgID4gc21hbGwge1xuICAgICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZm9ybS1sYWJlbC1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAxNSUpO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiA2MCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvcixcbiAgICB0ZXh0YXJlYS5lcnJvcixcbiAgICBzZWxlY3QuZXJyb3Ige1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgbGFiZWwuZXJyb3IgeyBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuXG4vLyBAbmFtZVxuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3NcblxuJGluY2x1ZGUtaHRtbC1pY29uLWJhci1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIEB2YXJpYWJsZXNcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBpY29uLWJhciBhbmQgaXRlbXNcbiRpY29uLWJhci1iZzogJG9pbCAhZGVmYXVsdDtcbiRpY29uLWJhci1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaWNvbi1iYXItZm9udC1jb2xvci1ob3ZlcjogJGljb24tYmFyLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi1iYXItZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJGljb24tYmFyLWhvdmVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRpY29uLWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaWNvbi1iYXItaWNvbi1jb2xvci1ob3ZlcjogJGljb24tYmFyLWljb24tY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi1iYXItaWNvbi1zaXplOiAxLjg3NXJlbSAhZGVmYXVsdDtcbiRpY29uLWJhci1pbWFnZS13aWR0aDogMS44NzVyZW0gIWRlZmF1bHQ7XG4kaWNvbi1iYXItaW1hZ2UtaGVpZ2h0OiAxLjg3NXJlbSAhZGVmYXVsdDtcbiRpY29uLWJhci1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGljb24tYmFyLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IGRlZmF1bHQgb3BhY2l0eSBhbmQgY3Vyc29yIGZvciBkaXNhYmxlZCBpY29ucy5cbiRpY29uLWJhci1kaXNhYmxlZC1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG4kaWNvbi1iYXItZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkLXZhbHVlICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGJhc2Ugc3R5bGVzIGZvciBvdXIgSWNvbiBiYXIgZWxlbWVudC5cbi8vXG5AbWl4aW4gaWNvbi1iYXItYmFzZSgpIHtcblxuIFx0d2lkdGg6IDEwMCU7XG5cdGZvbnQtc2l6ZTogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdCYgPiAqIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAkaWNvbi1iYXItZm9udC1zaXplO1xuXHRcdHdpZHRoOiAyNSU7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZzogJGljb24tYmFyLWl0ZW0tcGFkZGluZztcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdGksIGltZyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXG5cdFx0XHQmICsgbGFiZWwge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAuMDYyNXJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpIHtcblx0XHRcdGZvbnQtc2l6ZTogJGljb24tYmFyLWljb24tc2l6ZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAkaWNvbi1iYXItaW1hZ2Utd2lkdGg7XG5cdFx0XHRoZWlnaHQ6ICRpY29uLWJhci1pbWFnZS1oZWlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5sYWJlbC1yaWdodCA+ICoge1xuXG5cdFx0aSwgaW1nIHtcblx0XHRcdG1hcmdpbjogMCAuMDYyNXJlbSAwIDA7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdCYgKyBsYWJlbCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGFiZWwgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblx0fVxuXG5cdCYudmVydGljYWwubGFiZWwtcmlnaHQgPiAqIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0Ji52ZXJ0aWNhbCwgJi5zbWFsbC12ZXJ0aWNhbHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IGF1dG87XG5cblx0XHQuaXRlbSB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYubWVkaXVtLXZlcnRpY2FsIHtcblx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdFx0Lml0ZW0ge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ji5sYXJnZS12ZXJ0aWNhbCB7XG5cdFx0QG1lZGlhICN7JGxhcmdlLXVwfSB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdFx0Lml0ZW0ge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHRoZSBzaXplIHN0eWxlcyBmb3IgaWNvbiBiYXJzLlxuQG1peGluIGljb24tYmFyLXNpemUoXG5cdCRwYWRkaW5nOiAkaWNvbi1iYXItaXRlbS1wYWRkaW5nLFxuXHQkZm9udC1zaXplOiAkaWNvbi1iYXItZm9udC1zaXplLFxuXHQkaWNvbi1zaXplOiAkaWNvbi1iYXItaWNvbi1zaXplLFxuXHQkaW1hZ2Utd2lkdGg6ICRpY29uLWJhci1pbWFnZS13aWR0aCxcblx0JGltYWdlLWhlaWdodDogJGljb24tYmFyLWltYWdlLWhlaWdodCkge1xuXG5cdCYgPiAqIHtcblx0XHRmb250LXNpemU6ICRmb250LXNpemU7XG5cdFx0cGFkZGluZzogJHBhZGRpbmc7XG5cblx0XHRpLCBpbWcge1xuXG5cdFx0XHQmICsgbGFiZWwge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAuMDYyNXJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpIHtcblx0XHRcdGZvbnQtc2l6ZTogJGljb24tc2l6ZTtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6ICRpbWFnZS13aWR0aDtcblx0XHRcdGhlaWdodDogJGltYWdlLWhlaWdodDtcblx0XHR9XG5cdH1cblxufVxuXG5AbWl4aW4gaWNvbi1iYXItc3R5bGUoXG4gICRiYXItYmc6JGljb24tYmFyLWJnLFxuICAkYmFyLWZvbnQtY29sb3I6JGljb24tYmFyLWZvbnQtY29sb3IsXG4gICRiYXItZm9udC1jb2xvci1ob3ZlcjokaWNvbi1iYXItZm9udC1jb2xvci1ob3ZlcixcbiAgJGJhci1ob3Zlci1jb2xvcjokaWNvbi1iYXItaG92ZXItY29sb3IsXG4gICRiYXItaWNvbi1jb2xvcjokaWNvbi1iYXItaWNvbi1jb2xvcixcbiAgJGJhci1pY29uLWNvbG9yLWhvdmVyOiRpY29uLWJhci1pY29uLWNvbG9yLWhvdmVyLFxuICAkYmFyLWFjdGl2ZS1jb2xvcjokaWNvbi1iYXItYWN0aXZlLWNvbG9yLFxuICAkYmFzZS1zdHlsZTp0cnVlLFxuICAkZGlzYWJsZWQ6ZmFsc2UpIHtcblxuXHRAaWYgJGJhc2Utc3R5bGUge1xuXG5cdFx0YmFja2dyb3VuZDogJGJhci1iZztcblxuXHRcdCYgPiAqIHtcblx0XHRcdGxhYmVsIHsgY29sb3I6ICRiYXItZm9udC1jb2xvcjsgfVxuXG5cdFx0XHRpIHsgY29sb3I6ICRiYXItaWNvbi1jb2xvcjsgfVxuXHRcdH1cblxuXHRcdCYgPiBhOmhvdmVyIHtcblxuXHRcdFx0YmFja2dyb3VuZDogJGJhci1ob3Zlci1jb2xvcjtcblxuXHRcdFx0bGFiZWwgeyBjb2xvcjogJGJhci1mb250LWNvbG9yLWhvdmVyOyB9XG5cblx0XHRcdGkgeyBjb2xvcjogJGJhci1pY29uLWNvbG9yLWhvdmVyOyB9XG5cdFx0fVxuXG4gICAgICAgICYgPiBhLmFjdGl2ZSB7XG5cblx0XHRcdGJhY2tncm91bmQ6ICRiYXItYWN0aXZlLWNvbG9yO1xuXG5cdFx0XHRsYWJlbCB7IGNvbG9yOiAkYmFyLWZvbnQtY29sb3ItaG92ZXI7IH1cblxuXHRcdFx0aSB7IGNvbG9yOiAkYmFyLWljb24tY29sb3ItaG92ZXI7IH1cblx0XHR9XG5cdH1cbiAgQGlmICRkaXNhYmxlZCB7XG4gICAgLml0ZW0uZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogJGljb24tYmFyLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgICBjdXJzb3I6ICRpY29uLWJhci1kaXNhYmxlZC1jdXJzb3I7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgID4qIHtcbiAgICAgICAgb3BhY2l0eTogJGljb24tYmFyLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgICAgIGN1cnNvcjogJGljb24tYmFyLWRpc2FibGVkLWN1cnNvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBxdWlja2x5IGNyZWF0ZSBpY29uIGJhcnMgd2l0aCBhIHNpbmdsZSBtaXhpblxuLy8gJGhlaWdodCAtIFRoZSBvdmVyYWxsIGNhbGN1bGF0ZWQgaGVpZ2h0IG9mIHRoZSBpY29uIGJhciAoaG9yaXpvbnRhbClcbi8vICRiYXItYmcgLSB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYmFyXG4vLyAkYmFyLWZvbnQtY29sb3IgLSB0aGUgZm9udCBjb2xvclxuLy8gJGJhci1ob3Zlci1jb2xvciAtIG9rYXkgdGhlc2UgYXJlIHByZXR0eSBvYnZpb3VzIHZhcmlhYmxlc1xuLy8gJGJhci1pY29uLWNvbG9yIC0gbWF5YmUgd2UgY291bGQgc2tpcCBleHBsYWluaW5nIHRoZW0gYWxsPyBPa2F5IHRoaXMgb25lIGRvZXMgY2hhbmdlIGljb24gY29sb3IgaWYgeW91IHVzZSBhbiBpY29uIGZvbnRcbi8vICRiYXItYWN0aXZlLWNvbG9yIC0gdGhlIGNvbG9yIG9mIGFuIGFjdGl2ZSAvIGhvdmVyIHN0YXRlXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGJhc2Ugc3R5bGVzPyBEZWZhdWx0OiB0cnVlLlxuLy8gJGRpc2FibGVkIC0gQWxsb3cgZGlzYWJsZWQgaWNvbnM/IERlZmF1bHQ6IGZhbHNlLlxuXG5AbWl4aW4gaWNvbi1iYXIoXG4gICRiYXItYmc6JGljb24tYmFyLWJnLFxuICAkYmFyLWZvbnQtY29sb3I6JGljb24tYmFyLWZvbnQtY29sb3IsXG4gICRiYXItZm9udC1jb2xvci1ob3ZlcjokaWNvbi1iYXItZm9udC1jb2xvci1ob3ZlcixcbiAgJGJhci1ob3Zlci1jb2xvcjokaWNvbi1iYXItaG92ZXItY29sb3IsXG4gICRiYXItaWNvbi1jb2xvcjokaWNvbi1iYXItaWNvbi1jb2xvcixcbiAgJGJhci1pY29uLWNvbG9yLWhvdmVyOiRpY29uLWJhci1pY29uLWNvbG9yLWhvdmVyLFxuICAkYmFyLWFjdGl2ZS1jb2xvcjokaWNvbi1iYXItYWN0aXZlLWNvbG9yLFxuICAkcGFkZGluZzogJGljb24tYmFyLWl0ZW0tcGFkZGluZyxcblx0JGZvbnQtc2l6ZTogJGljb24tYmFyLWZvbnQtc2l6ZSxcblx0JGljb24tc2l6ZTogJGljb24tYmFyLWljb24tc2l6ZSxcblx0JGltYWdlLXdpZHRoOiAkaWNvbi1iYXItaW1hZ2Utd2lkdGgsXG5cdCRpbWFnZS1oZWlnaHQ6ICRpY29uLWJhci1pbWFnZS1oZWlnaHQsXG4gICRiYXNlLXN0eWxlOnRydWUsXG4gICRkaXNhYmxlZDp0cnVlKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1iYXItYmFzZSgpO1xuICAgIEBpbmNsdWRlIGljb24tYmFyLXNpemUoJHBhZGRpbmcsICRmb250LXNpemUsICRpY29uLXNpemUsICRpbWFnZS13aWR0aCwgJGltYWdlLWhlaWdodCk7XG4gICAgQGluY2x1ZGUgaWNvbi1iYXItc3R5bGUoJGJhci1iZywgJGJhci1mb250LWNvbG9yLCAkYmFyLWZvbnQtY29sb3ItaG92ZXIsICRiYXItaG92ZXItY29sb3IsICRiYXItaWNvbi1jb2xvciwgJGJhci1pY29uLWNvbG9yLWhvdmVyLCAkYmFyLWFjdGl2ZS1jb2xvciwgJGJhc2Utc3R5bGUsICRkaXNhYmxlZCk7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJpY29uLWJhclwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWljb24tYmFyLWNsYXNzZXMge1xuICAgIC5pY29uLWJhciB7XG4gICAgICBAaW5jbHVkZSBpY29uLWJhcjtcbiAgICB9XG4gIH1cbn1cblxuQGlmICRpbmNsdWRlLWh0bWwtaWNvbi1iYXItY2xhc3NlcyB7XG5cblx0Ly8gdG9vbGJhciBzdHlsZXNcblxuXHQuaWNvbi1iYXIge1xuXG5cdFx0Ly8gQ291bnRzXG5cblx0XHQmLnR3by11cCB7XG5cdFx0XHQuaXRlbSB7IHdpZHRoOiA1MCU7IH1cblx0XHRcdCYudmVydGljYWwgLml0ZW0sICYuc21hbGwtdmVydGljYWwgLml0ZW0geyB3aWR0aDogYXV0bzsgfVxuXHRcdFx0Ji5tZWRpdW0tdmVydGljYWwgLml0ZW0ge1xuXHRcdFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG5cdFx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYubGFyZ2UtdmVydGljYWwgLml0ZW0ge1xuXHRcdFx0XHRAbWVkaWEgI3skbGFyZ2UtdXB9IHtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnRocmVlLXVwIHtcblx0XHRcdC5pdGVtIHsgd2lkdGg6IDMzLjMzMzMlOyB9XG5cdFx0XHQmLnZlcnRpY2FsIC5pdGVtLCAmLnNtYWxsLXZlcnRpY2FsIC5pdGVtIHsgd2lkdGg6IGF1dG87IH1cblx0XHRcdCYubWVkaXVtLXZlcnRpY2FsIC5pdGVtIHtcblx0XHRcdFx0QG1lZGlhICN7JG1lZGl1bS11cH0ge1xuXHRcdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQmLmxhcmdlLXZlcnRpY2FsIC5pdGVtIHtcblx0XHRcdFx0QG1lZGlhICN7JGxhcmdlLXVwfSB7XG5cdFx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5mb3VyLXVwIHtcblx0XHRcdC5pdGVtIHsgd2lkdGg6IDI1JTsgfVxuXHRcdFx0Ji52ZXJ0aWNhbCAuaXRlbSwgJi5zbWFsbC12ZXJ0aWNhbCAuaXRlbSB7IHdpZHRoOiBhdXRvOyB9XG5cdFx0XHQmLm1lZGl1bS12ZXJ0aWNhbCAuaXRlbSB7XG5cdFx0XHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ji5sYXJnZS12ZXJ0aWNhbCAuaXRlbSB7XG5cdFx0XHRcdEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuXHRcdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdCYuZml2ZS11cCB7XG5cdFx0XHQuaXRlbSB7IHdpZHRoOiAyMCU7IH1cblx0XHRcdCYudmVydGljYWwgLml0ZW0sICYuc21hbGwtdmVydGljYWwgLml0ZW0geyB3aWR0aDogYXV0bzsgfVxuXHRcdFx0Ji5tZWRpdW0tdmVydGljYWwgLml0ZW0ge1xuXHRcdFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG5cdFx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYubGFyZ2UtdmVydGljYWwgLml0ZW0ge1xuXHRcdFx0XHRAbWVkaWEgI3skbGFyZ2UtdXB9IHtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnNpeC11cCB7XG5cdFx0XHQuaXRlbSB7IHdpZHRoOiAxNi42NjY2NyU7IH1cblx0XHRcdCYudmVydGljYWwgLml0ZW0sICYuc21hbGwtdmVydGljYWwgLml0ZW0geyB3aWR0aDogYXV0bzsgfVxuXHRcdFx0Ji5tZWRpdW0tdmVydGljYWwgLml0ZW0ge1xuXHRcdFx0XHRAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG5cdFx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdCYubGFyZ2UtdmVydGljYWwgLml0ZW0ge1xuXHRcdFx0XHRAbWVkaWEgI3skbGFyZ2UtdXB9IHtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnNldmVuLXVwIHtcbiAgXHRcdC5pdGVtIHsgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICBcdFx0Ji52ZXJ0aWNhbCAuaXRlbSwgJi5zbWFsbC12ZXJ0aWNhbCAuaXRlbSB7IHdpZHRoOiBhdXRvOyB9XG4gIFx0XHQmLm1lZGl1bS12ZXJ0aWNhbCAuaXRlbSB7XG4gICAgXHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgXHRcdFx0d2lkdGg6IGF1dG87XG4gICAgXHRcdH1cbiAgXHRcdH1cbiAgXHRcdCYubGFyZ2UtdmVydGljYWwgLml0ZW0ge1xuICAgICAgXHRAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICBcdFx0d2lkdGg6IGF1dG87XG4gICAgICBcdH1cbiAgXHRcdH1cbiAgICB9XG4gICAgJi5laWdodC11cCB7XG4gIFx0XHQuaXRlbSB7IHdpZHRoOiAxMi41JTsgfVxuICBcdFx0Ji52ZXJ0aWNhbCAuaXRlbSwgJi5zbWFsbC12ZXJ0aWNhbCAuaXRlbSB7IHdpZHRoOiBhdXRvOyB9XG4gIFx0XHQmLm1lZGl1bS12ZXJ0aWNhbCAuaXRlbSB7XG4gICAgXHRcdEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgXHRcdFx0d2lkdGg6IGF1dG87XG4gICAgXHRcdH1cbiAgXHRcdH1cbiAgXHRcdCYubGFyZ2UtdmVydGljYWwgLml0ZW0ge1xuICAgICAgXHRAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICBcdFx0d2lkdGg6IGF1dG87XG4gICAgICBcdH1cbiAgXHRcdH1cbiAgICB9XG5cdH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWlubGluZS1saXN0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWFyZ2lucyBhbmQgcGFkZGluZyBvZiB0aGUgaW5saW5lIGxpc3QuXG4kaW5saW5lLWxpc3QtdG9wLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luOiByZW0tY2FsYygtMjIpICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbGlzdC1tYXJnaW46IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcblxuJGlubGluZS1saXN0LXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG92ZXJmbG93IG9mIHRoZSBpbmxpbmUgbGlzdC5cbiRpbmxpbmUtbGlzdC1vdmVyZmxvdzogaGlkZGVuICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBsaXN0IGl0ZW1zXG4kaW5saW5lLWxpc3QtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYW55IGVsZW1lbnRzIHdpdGhpbiBsaXN0IGl0ZW1zXG4kaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGlubGluZSBsaXN0c1xuQG1peGluIGlubGluZS1saXN0IHtcbiAgbWFyZ2luOiAkaW5saW5lLWxpc3QtdG9wLW1hcmdpbiBhdXRvICRpbmxpbmUtbGlzdC1ib3R0b20tbWFyZ2luIGF1dG87XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luO1xuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGlubGluZS1saXN0LW9wcG9zaXRlLW1hcmdpbjtcbiAgcGFkZGluZzogJGlubGluZS1saXN0LXBhZGRpbmc7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiAkaW5saW5lLWxpc3Qtb3ZlcmZsb3c7XG5cbiAgJiA+IGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luO1xuICAgIGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1kaXNwbGF5O1xuICAgICY+KiB7IGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OyB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImlubGluZS1saXN0XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlcyB7XG4gICAgLmlubGluZS1saXN0IHtcbiAgICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1qb3lyaWRlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gQ29udHJvbGxpbmcgZGVmYXVsdCBKb3lyaWRlIHN0eWxlc1xuJGpveXJpZGUtdGlwLWJnOiAkb2lsICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLWRlZmF1bHQtd2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLXBhZGRpbmc6IHJlbS1jYWxjKDE4IDIwIDI0KSAhZGVmYXVsdDtcbiRqb3lyaWRlLXRpcC1ib3JkZXI6IHNvbGlkIDFweCAkY2hhcmNvYWwgIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtcG9zaXRpb24tb2Zmc2V0OiAyMnB4ICFkZWZhdWx0O1xuXG4vLyBIZXJlLCB3ZSdyZSBzZXR0aW5nIHRoZSB0aXAgZm9udCBzdHlsZXNcbiRqb3lyaWRlLXRpcC1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vIFRoaXMgY2hhbmdlcyB0aGUgbnViIHNpemVcbiRqb3lyaWRlLXRpcC1udWItc2l6ZTogMTBweCAhZGVmYXVsdDtcblxuLy8gVGhpcyBhZGp1c3RzIHRoZSBzdHlsZXMgZm9yIHRoZSB0aW1lciB3aGVuIGl0cyBlbmFibGVkXG4kam95cmlkZS10aXAtdGltZXItd2lkdGg6IDUwcHggIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtdGltZXItaGVpZ2h0OiAzcHggIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtdGltZXItY29sb3I6ICRzdGVlbCAhZGVmYXVsdDtcblxuLy8gVGhpcyBjaGFuZ2VzIHVwIHRoZSBzdHlsZXMgZm9yIHRoZSBjbG9zZSBidXR0b25cbiRqb3lyaWRlLXRpcC1jbG9zZS1jb2xvcjogJG1vbnNvb24gIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtY2xvc2Utc2l6ZTogMjRweCAhZGVmYXVsdDtcbiRqb3lyaWRlLXRpcC1jbG9zZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFdoZW4gSm95cmlkZSBpcyBmaWxsaW5nIHRoZSBzY3JlZW4sIHdlIHVzZSB0aGlzIHN0eWxlIGZvciB0aGUgYmdcbiRqb3lyaWRlLXNjcmVlbmZpbGw6IHJnYmEoMCwwLDAsMC41KSAhZGVmYXVsdDtcblxuXG4vLyBXZSBkZWNpZGVkIG5vdCB0byBtYWtlIGEgbWl4aW4gZm9yIHRoaXMgYmVjYXVzZSBpdCByZWxpZXMgb25cbi8vIHByZWRlZmluZWQgY2xhc3NlcyB0byB3b3JrIHByb3Blcmx5LlxuQGluY2x1ZGUgZXhwb3J0cyhcImpveXJpZGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1qb3lyaWRlLWNsYXNzZXMge1xuXG4gICAgLyogRm91bmRhdGlvbiBKb3lyaWRlICovXG4gICAgLmpveXJpZGUtbGlzdCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8qIERlZmF1bHQgc3R5bGVzIGZvciB0aGUgY29udGFpbmVyICovXG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiAkam95cmlkZS10aXAtYmc7XG4gICAgICBjb2xvcjogJGpveXJpZGUtdGlwLWZvbnQtY29sb3I7XG4gICAgICB6LWluZGV4OiAxMDE7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMi41JTtcbiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4gICAgICB3aWR0aDogOTUlO1xuICAgIH1cblxuICAgIC5sdC1pZTkgLmpveXJpZGUtdGlwLWd1aWRlIHtcbiAgICAgIG1heC13aWR0aDo4MDBweDtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiA1MCU7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06LTQwMHB4O1xuICAgIH1cblxuICAgIC5qb3lyaWRlLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgcGFkZGluZzogJGpveXJpZGUtdGlwLXBhZGRpbmc7XG5cbiAgICAgIC5idXR0b24geyBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuICAgICAgLmpveXJpZGUtcHJldi10aXAgeyBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgICB9XG5cbiAgICAvKiBBZGQgYSBsaXR0bGUgY3NzIHRyaWFuZ2xlIHBpcCwgb2xkZXIgYnJvd3NlciBqdXN0IG1pc3Mgb3V0IG9uIHRoZSBmYW5jaW5lc3Mgb2YgaXQgKi9cbiAgICAuam95cmlkZS10aXAtZ3VpZGUge1xuICAgICAgLmpveXJpZGUtbnViIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlcjogJGpveXJpZGUtdGlwLW51Yi1zaXplIHNvbGlkICRqb3lyaWRlLXRpcC1iZztcblxuICAgICAgICAmLnRvcCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkam95cmlkZS10aXAtYmc7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH0tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn0tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdG9wOiAtKCRqb3lyaWRlLXRpcC1udWItc2l6ZSoyKTtcbiAgICAgICAgfVxuICAgICAgICAmLmJvdHRvbSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkam95cmlkZS10aXAtYmcgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBib3R0b206IC0oJGpveXJpZGUtdGlwLW51Yi1zaXplKjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yaWdodCB7IHJpZ2h0OiAtKCRqb3lyaWRlLXRpcC1udWItc2l6ZSoyKTsgfVxuICAgICAgICAmLmxlZnQgeyBsZWZ0OiAtKCRqb3lyaWRlLXRpcC1udWItc2l6ZSoyKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qIFR5cG9ncmFwaHkgKi9cbiAgICAuam95cmlkZS10aXAtZ3VpZGUgaDEsXG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIGgyLFxuICAgIC5qb3lyaWRlLXRpcC1ndWlkZSBoMyxcbiAgICAuam95cmlkZS10aXAtZ3VpZGUgaDQsXG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIGg1LFxuICAgIC5qb3lyaWRlLXRpcC1ndWlkZSBoNiB7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkam95cmlkZS10aXAtaGVhZGVyLXdlaWdodDtcbiAgICAgIGNvbG9yOiAkam95cmlkZS10aXAtZm9udC1jb2xvcjtcbiAgICB9XG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIHAge1xuICAgICAgbWFyZ2luOiByZW0tY2FsYygwIDAgMTggMCk7XG4gICAgICBmb250LXNpemU6ICRqb3lyaWRlLXRpcC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIH1cblxuICAgIC5qb3lyaWRlLXRpbWVyLWluZGljYXRvci13cmFwIHtcbiAgICAgIHdpZHRoOiAkam95cmlkZS10aXAtdGltZXItd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRqb3lyaWRlLXRpcC10aW1lci1oZWlnaHQ7XG4gICAgICBib3JkZXI6ICRqb3lyaWRlLXRpcC1ib3JkZXI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiByZW0tY2FsYygxNyk7XG4gICAgICBib3R0b206IHJlbS1jYWxjKDE2KTtcbiAgICB9XG4gICAgLmpveXJpZGUtdGltZXItaW5kaWNhdG9yIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkam95cmlkZS10aXAtdGltZXItY29sb3I7XG4gICAgfVxuXG4gICAgLmpveXJpZGUtY2xvc2UtdGlwIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDEycHg7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICBjb2xvcjogJGpveXJpZGUtdGlwLWNsb3NlLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBmb250LXNpemU6ICRqb3lyaWRlLXRpcC1jbG9zZS1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6ICRqb3lyaWRlLXRpcC1jbG9zZS13ZWlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogLjUgIWltcG9ydGFudDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMgeyBjb2xvcjogJHNtb2tlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG5cbiAgICAuam95cmlkZS1tb2RhbC1iZyB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZDogJGpveXJpZGUtc2NyZWVuZmlsbDtcbiAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB0b3A6IDA7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgIH1cblxuICAgIC5qb3lyaWRlLWV4cG9zZS13cmFwcGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIHotaW5kZXg6IDEwMjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAuam95cmlkZS1leHBvc2UtY292ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG5cblxuICAgIC8qIFN0eWxlcyBmb3Igc2NyZWVucyB0aGF0IGFyZSBhdCBsZWFzdCA3NjhweDsgKi9cbiAgICBAbWVkaWEgI3skc21hbGx9IHtcbiAgICAgIC5qb3lyaWRlLXRpcC1ndWlkZSB7IHdpZHRoOiAkam95cmlkZS10aXAtZGVmYXVsdC13aWR0aDsgI3skZGVmYXVsdC1mbG9hdH06IGluaGVyaXQ7XG4gICAgICAgIC5qb3lyaWRlLW51YiB7XG4gICAgICAgICAgJi5ib3R0b20ge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkam95cmlkZS10aXAtYmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH0tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvdHRvbTogLSgkam95cmlkZS10aXAtbnViLXNpemUqMik7XG4gICAgICAgICAgfVxuICAgICAgICAgICYucmlnaHQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkam95cmlkZS10aXAtYmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0b3A6ICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IC0oJGpveXJpZGUtdGlwLW51Yi1zaXplKjIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmxlZnQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkam95cmlkZS10aXAtYmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0b3A6ICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICBsZWZ0OiAtKCRqb3lyaWRlLXRpcC1udWItc2l6ZSoyKTtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwta2V5c3Ryb2tlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGV4dCBzdHlsZXMuXG4ka2V5c3Ryb2tlLWZvbnQ6IFwiQ29uc29sYXNcIiwgXCJNZW5sb1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGtleXN0cm9rZS1mb250LXNpemU6IGluaGVyaXQgIWRlZmF1bHQ7XG4ka2V5c3Ryb2tlLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4ka2V5c3Ryb2tlLWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XG4ka2V5c3Ryb2tlLWZ1bmN0aW9uLWZhY3RvcjogLTclICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGtleXN0cm9rZSBwYWRkaW5nLlxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJhY2tncm91bmQgYW5kIGJvcmRlciBzdHlsZXMuXG4ka2V5c3Ryb2tlLWJnOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6ICRrZXlzdHJva2UtZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRrZXlzdHJva2UtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRrZXlzdHJva2UtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4ka2V5c3Ryb2tlLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGtleXN0cm9rZS1iZywgJGxpZ2h0bmVzczogJGtleXN0cm9rZS1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBrZXlzdHJva2Ugc3R5bGVzLlxuLy8gJGJnIC0gRGVmYXVsdDogJGtleXN0cm9rZS1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6ICRrZXlzdHJva2UtZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbkBtaXhpbiBrZXlzdHJva2UoJGJnOiRrZXlzdHJva2UtYmcpIHtcbiAgLy8gVGhpcyBmaW5kIHRoZSBsaWdodG5lc3MgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGtleXN0cm9rZS1mdW5jdGlvbi1mYWN0b3IpO1xuXG4gIC8vIFdlIGFkanVzdCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiB0aGUgYnJpZ2h0bmVzcyBvZiB0aGUgYmFja2dyb3VuZC5cbiAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgeyBjb2xvcjogJGtleXN0cm9rZS1mb250LWNvbG9yOyB9XG4gIEBlbHNlIHsgY29sb3I6ICRrZXlzdHJva2UtZm9udC1jb2xvci1hbHQ7IH1cblxuICBib3JkZXItc3R5bGU6ICRrZXlzdHJva2UtYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRrZXlzdHJva2UtYm9yZGVyLXdpZHRoO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gIGZvbnQtc2l6ZTogJGtleXN0cm9rZS1mb250LXNpemU7XG4gIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImtleXN0cm9rZVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWtleXN0cm9rZS1jbGFzc2VzICB7XG4gICAgLmtleXN0cm9rZSxcbiAgICBrYmQge1xuICAgICAgQGluY2x1ZGUga2V5c3Ryb2tlO1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRrZXlzdHJva2UtcmFkaXVzKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWxhYmVsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHNcbiRsYWJlbC1wYWRkaW5nOiByZW0tY2FsYyg0IDggNCkgIWRlZmF1bHQ7XG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbCB0ZXh0XG4kbGFiZWwtZm9udC1zaXppbmc6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcbiRsYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRsYWJlbC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGxhYmVsLWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kbGFiZWwtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgbGFiZWwgYmFzZS5cbkBtaXhpbiBsYWJlbC1iYXNlIHtcbiAgZm9udC13ZWlnaHQ6ICRsYWJlbC1mb250LXdlaWdodDtcbiAgZm9udC1mYW1pbHk6ICRsYWJlbC1mb250LWZhbWlseTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBsYWJlbCBzaXplIHN0eWxlcy5cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBkZXRlcm1pbmUgbGFiZWwgcGFkZGluZy4gRGVmYXVsdDogJGxhYmVsLXBhZGRpbmcgfHwgcmVtLWNhbGMoNCA4IDQpICFkZWZhdWx0XG4vLyAkdGV4dC1zaXplIC0gVXNlZCB0byBkZXRlcm1pbmUgbGFiZWwgdGV4dC1zaXplLiBEZWZhdWx0OiAkdGV4dC1zaXplIGZvdW5kIGluIHNldHRpbmdzXG5AbWl4aW4gbGFiZWwtc2l6ZSgkcGFkZGluZzokbGFiZWwtcGFkZGluZywgJHRleHQtc2l6ZTokbGFiZWwtZm9udC1zaXppbmcpIHtcbiAgQGlmICRwYWRkaW5nIHsgcGFkZGluZzogJHBhZGRpbmc7IH1cbiAgQGlmICR0ZXh0LXNpemUgeyBmb250LXNpemU6ICR0ZXh0LXNpemU7IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBsYWJlbCBzdHlsZXMuXG4vLyAkYmcgLSBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvciAoZm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbi8vICRyYWRpdXMgLSBEZWZhdWx0OiBmYWxzZSwgT3B0aW9uczogdHJ1ZSwgc2V0cyByYWRpdXMgdG8gJGdsb2JhbC1yYWRpdXMgKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gbGFiZWwtc3R5bGUoJGJnOiRwcmltYXJ5LWNvbG9yLCAkcmFkaXVzOmZhbHNlKSB7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIGNvbWVzIHRocm91Z2hcbiAgQGlmICRiZyB7XG5cbiAgICAvLyBUaGlzIGZpbmQgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuXG4gICAgLy8gV2UgY29udHJvbCB0aGUgdGV4dCBjb2xvciBmb3IgeW91IGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgIEBpZiAkYmctbGlnaHRuZXNzIDwgNzAlIHsgY29sb3I6ICRsYWJlbC1mb250LWNvbG9yLWFsdDsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRsYWJlbC1mb250LWNvbG9yOyB9XG4gIH1cblxuICAvLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSByYWRpdXMgb24gbGFiZWxzLlxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHsgQGluY2x1ZGUgcmFkaXVzKCRsYWJlbC1yYWRpdXMpOyB9XG4gIEBlbHNlIGlmICRyYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHJhZGl1cyk7IH1cblxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGNsb3NlIGJ1dHRvbnMgdG8gYWxlcnRzXG4vLyAkcGFkZGluZyAtIERlZmF1bHQ6ICRsYWJlbC1wYWRkaW5nLFxuLy8gJHRleHQtc2l6ZSAtIERlZmF1bHQ6ICRsYWJlbC1mb250LXNpemluZyxcbi8vICRiZyAtIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG4vLyAkcmFkaXVzIC0gRGVmYXVsdDogZmFsc2UsIE9wdGlvbnM6IHRydWUgd2hpY2ggc2V0cyByYWRpdXMgdG8gJGdsb2JhbC1yYWRpdXMgKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gbGFiZWwoJHBhZGRpbmc6JGxhYmVsLXBhZGRpbmcsICR0ZXh0LXNpemU6JGxhYmVsLWZvbnQtc2l6aW5nLCAkYmc6JHByaW1hcnktY29sb3IsICRyYWRpdXM6ZmFsc2UpIHtcblxuICBAaW5jbHVkZSBsYWJlbC1iYXNlO1xuICBAaW5jbHVkZSBsYWJlbC1zaXplKCRwYWRkaW5nLCAkdGV4dC1zaXplKTtcbiAgQGluY2x1ZGUgbGFiZWwtc3R5bGUoJGJnLCAkcmFkaXVzKTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImxhYmVsXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbGFiZWwtY2xhc3NlcyB7XG4gICAgLmxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGxhYmVsLWJhc2U7XG4gICAgICBAaW5jbHVkZSBsYWJlbC1zaXplO1xuICAgICAgQGluY2x1ZGUgbGFiZWwtc3R5bGU7XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgbGFiZWwtc3R5bGUoZmFsc2UsIHRydWUpOyB9XG4gICAgICAmLnJvdW5kIHsgQGluY2x1ZGUgbGFiZWwtc3R5bGUoZmFsc2UsICRyYWRpdXM6MTAwMHB4KTsgfVxuXG4gICAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIGxhYmVsLXN0eWxlKCRhbGVydC1jb2xvcik7IH1cbiAgICAgICYud2FybmluZyAgIHsgQGluY2x1ZGUgbGFiZWwtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGxhYmVsLXN0eWxlKCRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICAgJi5pbmZvICAgICAgeyBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkaW5mby1jb2xvcik7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLW1hZ2VsbGFuLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJG1hZ2VsbGFuLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbWFnZWxsYW4tcGFkZGluZzogMTBweCAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcIm1hZ2VsbGFuXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWFnZWxsYW4tY2xhc3NlcyB7XG5cbiAgICAje2RhdGEoJ21hZ2VsbGFuLWV4cGVkaXRpb24nKX0sICN7ZGF0YSgnbWFnZWxsYW4tZXhwZWRpdGlvbi1jbG9uZScpfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWFnZWxsYW4tYmc7XG4gICAgICB6LWluZGV4OiA1MDtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6ICRtYWdlbGxhbi1wYWRkaW5nO1xuXG4gICAgICAuc3ViLW5hdiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS44ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1vcmJpdC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBjYXB0aW9uIHN0eWxlc1xuJG9yYml0LWNvbnRhaW5lci1iZzogbm9uZSAhZGVmYXVsdDtcbiRvcmJpdC1jYXB0aW9uLWJnOiByZ2JhKDUxLDUxLDUxLCAwLjgpICFkZWZhdWx0O1xuJG9yYml0LWNhcHRpb24tZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9yYml0LWNhcHRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kb3JiaXQtY2FwdGlvbi1wb3NpdGlvbjogXCJib3R0b21cIiAhZGVmYXVsdDsgLy8gU3VwcG9ydGVkIHZhbHVlczogXCJib3R0b21cIiwgXCJ1bmRlclwiXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxMCAxNCkgIWRlZmF1bHQ7XG4kb3JiaXQtY2FwdGlvbi1oZWlnaHQ6IGF1dG8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBsZWZ0L3JpZ2h0IG5hdiBzdHlsZXNcbiRvcmJpdC1uYXYtYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJG9yYml0LW5hdi1iZy1ob3ZlcjogcmdiYSgwLDAsMCwwLjMpICFkZWZhdWx0O1xuJG9yYml0LW5hdi1hcnJvdy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9yYml0LW5hdi1hcnJvdy1jb2xvci1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgdGltZXIgc3R5bGVzXG4kb3JiaXQtdGltZXItYmc6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKSAhZGVmYXVsdDtcbiRvcmJpdC10aW1lci1zaG93LXByb2dyZXNzLWJhcjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJ1bGxldCBuYXYgc3R5bGVzXG4kb3JiaXQtYnVsbGV0LW5hdi1jb2xvcjogJGlyb24gIWRlZmF1bHQ7XG4kb3JiaXQtYnVsbGV0LW5hdi1jb2xvci1hY3RpdmU6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRvcmJpdC1idWxsZXQtcmFkaXVzOiByZW0tY2FsYyg5KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2xzIHRoZSBzdHlsZSBvZiBzbGlkZSBudW1iZXJzXG4kb3JiaXQtc2xpZGUtbnVtYmVyLWJnOiByZ2JhKDAsMCwwLDApICFkZWZhdWx0O1xuJG9yYml0LXNsaWRlLW51bWJlci1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kb3JiaXQtc2xpZGUtbnVtYmVyLXBhZGRpbmc6IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuXG4vLyBHcmFjZWZ1bCBMb2FkaW5nIFdyYXBwZXIgYW5kIHByZWxvYWRlclxuJHdyYXBwZXItY2xhc3M6IFwic2xpZGVzaG93LXdyYXBwZXJcIiAhZGVmYXVsdDtcbiRwcmVsb2FkZXItY2xhc3M6IFwicHJlbG9hZGVyXCIgIWRlZmF1bHQ7XG5cbi8vIEhpZGUgY29udHJvbHMgb24gc21hbGxcbiRvcmJpdC1uYXYtaGlkZS1mb3Itc21hbGw6IHRydWUgIWRlZmF1bHQ7XG4kb3JiaXQtYnVsbGV0LWhpZGUtZm9yLXNtYWxsOiB0cnVlICFkZWZhdWx0O1xuJG9yYml0LXRpbWVyLWhpZGUtZm9yLXNtYWxsOiB0cnVlICFkZWZhdWx0O1xuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJvcmJpdFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW9yYml0LWNsYXNzZXMge1xuXG4gICAgQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZSB7XG4gICAgICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICB9XG4gICAgQC1tb3ota2V5ZnJhbWVzIHJvdGF0ZSB7XG4gICAgICBmcm9tIHsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgdG8geyAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICB9XG4gICAgQC1vLWtleWZyYW1lcyByb3RhdGUge1xuICAgICAgZnJvbSB7IC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gICAgICB0byB7IC1vLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyByb3RhdGUge1xuICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgICB9XG5cbiAgICAvKiBPcmJpdCBHcmFjZWZ1bCBMb2FkaW5nICovXG4gICAgLiN7JHdyYXBwZXItY2xhc3N9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgdWwge1xuICAgICAgICAvLyBQcmV2ZW50IGJ1bGxldHMgc2hvd2luZyBiZWZvcmUgLm9yYml0LWNvbnRhaW5lciBpcyBsb2FkZWRcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLy8gSGlkZSBhbGwgbGlzdCBpdGVtc1xuICAgICAgICBsaSxcbiAgICAgICAgbGkgLm9yYml0LWNhcHRpb24geyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgICAgLy8gLi4uZXhjZXB0IGZvciB0aGUgZmlyc3Qgb25lXG4gICAgICAgIGxpOmZpcnN0LWNoaWxkIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIH1cblxuICAgICAgLm9yYml0LWNvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIC8vIFNob3cgaW1hZ2VzIHdoZW4gLm9yYml0LWNvbnRhaW5lciBpcyBsb2FkZWRcbiAgICAgICAgbGkgeyBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgIC5vcmJpdC1jYXB0aW9uIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgfVxuICAgICAgICAub3JiaXQtYnVsbGV0cyBsaSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9yYml0IHByZWxvYWRlclxuICAgICAgLiN7JHByZWxvYWRlci1jbGFzc30ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDNweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY2hhcmNvYWwgJHdoaXRlO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoMTAwMHB4KTtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZTtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkb3JiaXQtY29udGFpbmVyLWJnO1xuXG4gICAgICAub3JiaXQtc2xpZGVzLWNvbnRhaW5lciB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8vIFByZXZlbnRzIGltYWdlcyAoYW5kIGNhcHRpb25zKSBmcm9tIGRpc2FwcGVhcmluZyBhZnRlciBmaXJzdCByb3RhdGlvbiBvbiBDaHJvbWUgZm9yIEFuZHJvaWRcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgaW1nIHsgZGlzcGxheTogYmxvY2s7IG1heC13aWR0aDogMTAwJTsgfVxuXG4gICAgICAgICY+KiB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBAaWYgJHRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm9yYml0LWNhcHRpb24ge1xuICAgICAgICAgICAgQGlmICRvcmJpdC1jYXB0aW9uLXBvc2l0aW9uID09IFwiYm90dG9tXCIge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJG9yYml0LWNhcHRpb24tcG9zaXRpb24gPT0gXCJ1bmRlclwiIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iZztcbiAgICAgICAgICAgIGNvbG9yOiAkb3JiaXQtY2FwdGlvbi1mb250LWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkb3JiaXQtY2FwdGlvbi1mb250LXNpemU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5vcmJpdC1zbGlkZS1udW1iZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgc3BhbiB7IGZvbnQtd2VpZ2h0OiA3MDA7IHBhZGRpbmc6ICRvcmJpdC1zbGlkZS1udW1iZXItcGFkZGluZzt9XG4gICAgICAgIGNvbG9yOiAkb3JiaXQtc2xpZGUtbnVtYmVyLWZvbnQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvcmJpdC1zbGlkZS1udW1iZXItYmc7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgfVxuXG4gICAgICAub3JiaXQtdGltZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMTBweDtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIC5vcmJpdC1wcm9ncmVzcyB7XG4gICAgICAgICAgQGlmICRvcmJpdC10aW1lci1zaG93LXByb2dyZXNzLWJhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC10aW1lci1iZztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBsYXkgYnV0dG9uXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgICAgICB3aWR0aDogMTFweDtcbiAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlO1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBhdXNlIGJ1dHRvblxuICAgICAgICAmLnBhdXNlZCB7XG4gICAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLTRweDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgYm9yZGVyOiBpbnNldCA4cHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICYuZGFyayB7XG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkb2lsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG5cblxuICAgICAgJjpob3ZlciAub3JiaXQtdGltZXIgPiBzcGFuIHsgZGlzcGxheTogYmxvY2s7IH1cblxuICAgICAgLy8gTGV0J3MgZ2V0IHRob3NlIGNvbnRyb2xzIHRvIGJlIHJpZ2h0IGluIHRoZSBjZW50ZXIgb24gZWFjaCBzaWRlXG4gICAgICAub3JiaXQtcHJldixcbiAgICAgIC5vcmJpdC1uZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDQ1JTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTI1cHg7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1uYXYtYmc7XG4gICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1uYXYtYmctaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBib3JkZXI6IGluc2V0IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5vcmJpdC1wcmV2IHsgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufS1zdHlsZTogc29saWQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufS1jb2xvcjogJG9yYml0LW5hdi1hcnJvdy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyID4gc3BhbiB7XG4gICAgICAgICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn0tY29sb3I6ICRvcmJpdC1uYXYtYXJyb3ctY29sb3ItaG92ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5vcmJpdC1uZXh0IHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgICAgJiA+IHNwYW4ge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9LXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH0tY29sb3I6ICRvcmJpdC1uYXYtYXJyb3ctY29sb3I7XG4gICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDUwJTtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC00cHg7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciA+IHNwYW4ge1xuICAgICAgICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fS1jb2xvcjogJG9yYml0LW5hdi1hcnJvdy1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5vcmJpdC1idWxsZXRzLWNvbnRhaW5lciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5vcmJpdC1idWxsZXRzIHtcbiAgICAgIG1hcmdpbjogMCBhdXRvIDMwcHggYXV0bztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LXJhZGl1cztcbiAgICAgICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZDogJG9yYml0LWJ1bGxldC1uYXYtY29sb3I7XG4gICAgICAgIC8vIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiA2cHg7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygxMDAwcHgpO1xuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkb3JiaXQtYnVsbGV0LW5hdi1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC50b3VjaCB7XG4gICAgICAub3JiaXQtY29udGFpbmVyIHtcbiAgICAgICAgLm9yYml0LXByZXYsXG4gICAgICAgIC5vcmJpdC1uZXh0IHsgZGlzcGxheTogbm9uZTsgfVxuICAgICAgfVxuXG4gICAgICAub3JiaXQtYnVsbGV0cyB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcblxuICAgICAgLnRvdWNoIHtcbiAgICAgICAgLm9yYml0LWNvbnRhaW5lciB7XG4gICAgICAgICAgLm9yYml0LXByZXYsXG4gICAgICAgICAgLm9yYml0LW5leHQgeyBkaXNwbGF5OiBpbmhlcml0OyB9XG4gICAgICAgIH1cblxuICAgICAgICAub3JiaXQtYnVsbGV0cyB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgLm9yYml0LXN0YWNrLW9uLXNtYWxsIHtcbiAgICAgICAgLm9yYml0LXNsaWRlcy1jb250YWluZXIge2hlaWdodDogYXV0byAhaW1wb3J0YW50O31cbiAgICAgICAgLm9yYml0LXNsaWRlcy1jb250YWluZXIgPiAqIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbWFyZ2luOjAgIWltcG9ydGFudDtcbiAgICAgICAgICBvcGFjaXR5OjEgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcmJpdC1zbGlkZS1udW1iZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRvcmJpdC10aW1lci1oaWRlLWZvci1zbWFsbCB7XG4gICAgICAgICAub3JiaXQtdGltZXJ7ZGlzcGxheTogbm9uZTt9XG4gICAgICB9XG4gICAgICBAaWYgJG9yYml0LW5hdi1oaWRlLWZvci1zbWFsbCB7XG4gICAgICAgICAub3JiaXQtbmV4dCwub3JiaXQtcHJldntkaXNwbGF5OiBub25lO31cbiAgICAgIH1cbiAgICAgIEBpZiAkb3JiaXQtYnVsbGV0LWhpZGUtZm9yLXNtYWxsIHtcbiAgICAgICAgIC5vcmJpdC1idWxsZXRze2Rpc3BsYXk6IG5vbmU7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLXBhZ2luYXRpb24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgcGFnaW5hdGlvbiBjb250YWluZXJcbiRwYWdpbmF0aW9uLWhlaWdodDogcmVtLWNhbGMoMjQpICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbWFyZ2luOiByZW0tY2FsYygtNSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIGxpc3QtaXRlbSBwcm9wZXJ0aWVzXG4kcGFnaW5hdGlvbi1saS1mbG9hdDogJGRlZmF1bHQtZmxvYXQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saS1oZWlnaHQ6IHJlbS1jYWxjKDI0KSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpLW1hcmdpbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSBmb3IgdGhlIHBhZ2luYXRpb24gYW5jaG9yIGxpbmtzXG4kcGFnaW5hdGlvbi1saW5rLXBhZDogcmVtLWNhbGMoMSAxMCAxKSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstZm9udC1jb2xvcjogJGFsdW1pbnVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1hY3RpdmUtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTEwJSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSBmb3IgZGlzYWJsZWQgYW5jaG9yIGxpbmtzXG4kcGFnaW5hdGlvbi1saW5rLXVuYXZhaWxhYmxlLWN1cnNvcjogZGVmYXVsdCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtZm9udC1jb2xvcjogJGFsdW1pbnVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay11bmF2YWlsYWJsZS1iZy1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgZm9yIGN1cnJlbnRseSBzZWxlY3RlZCBhbmNob3IgbGlua3NcbiRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWN1cnNvcjogZGVmYXVsdCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1hY3RpdmUtYmc6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBAbWl4aW5zXG4vL1xuLy8gU3R5bGUgdGhlIHBhZ2luYXRpb24gY29udGFpbmVyLiBDdXJyZW50bHkgb25seSB1c2VkIHdoZW4gY2VudGVyaW5nIGVsZW1lbnRzLlxuLy8gJGNlbnRlciAtIERlZmF1bHQ6IGZhbHNlLCBPcHRpb25zOiB0cnVlXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIoJGNlbnRlcjpmYWxzZSkge1xuICBAaWYgJGNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxufVxuXG4vLyBAbWl4aW5zXG4vLyBTdHlsZSB1bmF2YWlsYWJsZSBsaXN0IGl0ZW1zXG5AbWl4aW4gcGFnaW5hdGlvbi11bmF2YWlsYWJsZS1pdGVtIHtcbiAgYSwgYnV0dG9uIHtcbiAgICBjdXJzb3I6ICRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtY3Vyc29yO1xuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1saW5rLXVuYXZhaWxhYmxlLWZvbnQtY29sb3I7XG4gIH1cbiAgJjpob3ZlciBhLFxuICAmIGE6Zm9jdXMsXG5cbiAgJjpob3ZlciBidXR0b24sXG4gICYgYnV0dG9uOmZvY3VzXG4gIHsgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbGluay11bmF2YWlsYWJsZS1iZy1hY3RpdmU7IH1cbn1cbi8vIEBtaXhpbnNcbi8vIFN0eWxlIHRoZSBjdXJyZW50IGxpc3QgaXRlbS4gRG8gbm90IGFzc3VtZSB0aGF0IHRoZSBjdXJyZW50IGl0ZW0gaGFzXG4vLyBhbiBhbmNob3IgPGE+IGVsZW1lbnQuXG4vLyAkaGFzLWFuY2hvciAtIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG5AbWl4aW4gcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0oJGhhcy1hbmNob3I6IHRydWUpIHtcbiAgQGlmICRoYXMtYW5jaG9yIHtcbiAgICBhLCBidXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWJhY2tncm91bmQ7XG4gICAgICBjb2xvcjogJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWZvbnQtY29sb3I7XG4gICAgICBmb250LXdlaWdodDogJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWZvbnQtd2VpZ2h0O1xuICAgICAgY3Vyc29yOiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtY3Vyc29yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7IGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1hY3RpdmUtYmc7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1saW5rLXBhZDtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWZvbnQtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1mb250LXdlaWdodDtcbiAgICBjdXJzb3I6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1jdXJzb3I7XG4gICAgQGluY2x1ZGUgcmFkaXVzO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHsgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWFjdGl2ZS1iZzsgfVxuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzZXQgdGhlIHByb3BlcnRpZXMgZm9yIHRoZSBjcmVhdGluZyBGb3VuZGF0aW9uIHBhZ2luYXRpb25cbi8vICRjZW50ZXIgLSBMZWZ0IG9yIGNlbnRlciBhbGlnbiB0aGUgbGkgZWxlbWVudHMuIERlZmF1bHQ6IGZhbHNlXG4vLyAkYmFzZS1zdHlsZSAtIFNldHMgYmFzZSBzdHlsZXMgZm9yIHBhZ2luYXRpb24uIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkdXNlLWRlZmF1bHQtY2xhc3NlcyAtIE1ha2VzIHVuYXZhaWxhYmxlICYgY3VycmVudCBjbGFzc2VzIGF2YWlsYWJsZSBmb3IgdXNlLiBEZWZhdWx0OiB0cnVlXG5AbWl4aW4gcGFnaW5hdGlvbigkY2VudGVyOmZhbHNlLCAkYmFzZS1zdHlsZTp0cnVlLCAkdXNlLWRlZmF1bHQtY2xhc3Nlczp0cnVlKSB7XG5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4taGVpZ2h0OiAkcGFnaW5hdGlvbi1oZWlnaHQ7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFnaW5hdGlvbi1tYXJnaW47XG5cbiAgICBsaSB7XG4gICAgICBoZWlnaHQ6ICRwYWdpbmF0aW9uLWxpLWhlaWdodDtcbiAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1saS1mb250LWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1saS1mb250LXNpemU7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRwYWdpbmF0aW9uLWxpLW1hcmdpbjtcblxuICAgICAgYSwgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWxpbmstcGFkO1xuICAgICAgICBjb2xvcjogJHBhZ2luYXRpb24tbGluay1mb250LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgYSxcbiAgICAgIGE6Zm9jdXMsXG4gICAgICAmOmhvdmVyIGJ1dHRvbixcbiAgICAgIGJ1dHRvbjpmb2N1c1xuICAgICAgeyBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWFjdGl2ZS1iZzsgfVxuXG4gICAgICBAaWYgJHVzZS1kZWZhdWx0LWNsYXNzZXMge1xuICAgICAgICAmLnVuYXZhaWxhYmxlIHsgQGluY2x1ZGUgcGFnaW5hdGlvbi11bmF2YWlsYWJsZS1pdGVtKCk7IH1cbiAgICAgICAgJi5jdXJyZW50IHsgQGluY2x1ZGUgcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0oKTsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExlZnQgb3IgY2VudGVyIGFsaWduIHRoZSBsaSBlbGVtZW50c1xuICBsaSB7XG4gICAgQGlmICRjZW50ZXIge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfSBAZWxzZSB7XG4gICAgICBmbG9hdDogJHBhZ2luYXRpb24tbGktZmxvYXQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInBhZ2luYXRpb25cIikge1xuICBAaWYgJGluY2x1ZGUtcGFnaW5hdGlvbi1jbGFzc2VzIHtcbiAgICB1bC5wYWdpbmF0aW9uIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb247XG4gICAgfVxuXG4gICAgLyogUGFnaW5hdGlvbiBjZW50cmVkIHdyYXBwZXIgKi9cbiAgICAucGFnaW5hdGlvbi1jZW50ZXJlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcih0cnVlKTtcblxuICAgICAgdWwucGFnaW5hdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24odHJ1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtcGFuZWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIHN0eWxlc1xuJHBhbmVsLWJnOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4kcGFuZWwtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRwYW5lbC1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyAlIHRvIGNvbnRyb2wgaG93IG11Y2ggd2UgZGFya2VuIHRoaW5ncyBvbiBob3ZlclxuJHBhbmVsLWZ1bmN0aW9uLWZhY3RvcjogLTExJSAhZGVmYXVsdDtcbiRwYW5lbC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRwYW5lbC1iZywgJGxpZ2h0bmVzczogJHBhbmVsLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgZGVmYXVsdCBpbm5lciBwYWRkaW5nIGFuZCBib3R0b20gbWFyZ2luXG4kcGFuZWwtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHBhbmVsLXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCBkZWZhdWx0IGZvbnQgY29sb3JzXG4kcGFuZWwtZm9udC1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRwYW5lbC1mb250LWNvbG9yLWFsdDogJHdoaXRlICFkZWZhdWx0O1xuXG4kcGFuZWwtaGVhZGVyLWFkanVzdDogdHJ1ZSAhZGVmYXVsdDtcbiRjYWxsb3V0LXBhbmVsLWxpbmstY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNhbGxvdXQtcGFuZWwtbGluay1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNhbGxvdXQtcGFuZWwtbGluay1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG4vL1xuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwYW5lbHMuXG4vLyAkYmcgLSBTZXRzIHRoZSBwYW5lbCBiYWNrZ3JvdW5kIGNvbG9yLiBEZWZhdWx0OiAkcGFuZWwtcGcgfHwgc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0XG4vLyAkcGFkZGluZyAtIFNldHMgdGhlIHBhbmVsIHBhZGRpbmcgYW1vdW50LiBEZWZhdWx0OiAkcGFuZWwtcGFkZGluZyB8fCByZW0tY2FsYygyMClcbi8vICRhZGp1c3QgLSBTZXRzIHRoZSBmb250IGNvbG9yIGJhc2VkIG9uIHRoZSBkYXJrbmVzcyBvZiB0aGUgYmcgJiByZXNldHMgaGVhZGVyIGxpbmUtaGVpZ2h0cyBmb3IgcGFuZWxzLiBEZWZhdWx0OiAkcGFuZWwtaGVhZGVyLWFkanVzdCB8fCB0cnVlXG5AbWl4aW4gcGFuZWwoJGJnOiRwYW5lbC1iZywgJHBhZGRpbmc6JHBhbmVsLXBhZGRpbmcsICRhZGp1c3Q6JHBhbmVsLWhlYWRlci1hZGp1c3QpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcblxuICAgIGJvcmRlci1zdHlsZTogJHBhbmVsLWJvcmRlci1zdHlsZTtcbiAgICBib3JkZXItd2lkdGg6ICRwYW5lbC1ib3JkZXItc2l6ZTtcbiAgICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJHBhbmVsLWZ1bmN0aW9uLWZhY3Rvcik7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhbmVsLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgQGlmICRiZy1saWdodG5lc3MgPj0gNTAlIHsgY29sb3I6ICRwYW5lbC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJHBhbmVsLWZvbnQtY29sb3ItYWx0OyB9XG5cbiAgICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICAgICY+OmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuICAgICY+Omxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbiAgICBAaWYgJGFkanVzdCB7XG4gICAgICAvLyBXZSBzZXQgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gdGhlIGRhcmtuZXNzIG9mIHRoZSBiZy5cbiAgICAgIEBpZiAkYmctbGlnaHRuZXNzID49IDUwJSB7IFxuICAgICAgICBoMSxoMixoMyxoNCxoNSxoNixwLGxpLGRsIHsgY29sb3I6ICRwYW5lbC1mb250LWNvbG9yOyB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7IFxuICAgICAgICBoMSxoMixoMyxoNCxoNSxoNixwLGxpLGRsIHsgY29sb3I6ICRwYW5lbC1mb250LWNvbG9yLWFsdDsgfVxuICAgICAgfVxuXG4gICAgICAvLyByZXNldCBoZWFkZXIgbGluZS1oZWlnaHRzIGZvciBwYW5lbHNcbiAgICAgIGgxLGgyLGgzLGg0LGg1LGg2IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7IG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAvIDI7XG4gICAgICAgICYuc3ViaGVhZGVyIHsgbGluZS1oZWlnaHQ6IDEuNDsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwicGFuZWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1wYW5lbC1jbGFzc2VzIHtcblxuICAgIC8qIFBhbmVscyAqL1xuICAgIC5wYW5lbCB7IEBpbmNsdWRlIHBhbmVsO1xuXG4gICAgICAmLmNhbGxvdXQge1xuICAgICAgICBAaW5jbHVkZSBwYW5lbChzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogOTQlKSk7XG4gICAgICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICBjb2xvcjogJGNhbGxvdXQtcGFuZWwtbGluay1jb2xvcjtcblxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJGNhbGxvdXQtcGFuZWwtbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBAaW5jbHVkZSByYWRpdXM7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtcHJpY2luZy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGJvcmRlciBjb2xvclxuJHByaWNlLXRhYmxlLWJvcmRlcjogc29saWQgMXB4ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGJvdHRvbSBtYXJnaW4gb2YgdGhlIHByaWNpbmcgdGFibGVcbiRwcmljZS10YWJsZS1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSB0aXRsZSBzdHlsZXNcbiRwcmljZS10aXRsZS1iZzogJG9pbCAhZGVmYXVsdDtcbiRwcmljZS10aXRsZS1wYWRkaW5nOiByZW0tY2FsYygxNSAyMCkgIWRlZmF1bHQ7XG4kcHJpY2UtdGl0bGUtYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcbiRwcmljZS10aXRsZS1jb2xvcjogJHNtb2tlICFkZWZhdWx0O1xuJHByaWNlLXRpdGxlLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwcmljZS10aXRsZS1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kcHJpY2UtdGl0bGUtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgcHJpY2Ugc3R5bGVzXG4kcHJpY2UtbW9uZXktYmc6ICR2YXBvciAhZGVmYXVsdDtcbiRwcmljZS1tb25leS1wYWRkaW5nOiByZW0tY2FsYygxNSAyMCkgIWRlZmF1bHQ7XG4kcHJpY2UtbW9uZXktYWxpZ246IGNlbnRlciAhZGVmYXVsdDtcbiRwcmljZS1tb25leS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRwcmljZS1tb25leS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kcHJpY2UtbW9uZXktc2l6ZTogcmVtLWNhbGMoMzIpICFkZWZhdWx0O1xuJHByaWNlLW1vbmV5LWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgZGVzY3JpcHRpb24gc3R5bGVzXG4kcHJpY2UtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRwcmljZS1kZXNjLWNvbG9yOiAkbW9uc29vbiAhZGVmYXVsdDtcbiRwcmljZS1kZXNjLXBhZGRpbmc6IHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcbiRwcmljZS1kZXNjLWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcHJpY2UtZGVzYy1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRwcmljZS1kZXNjLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwcmljZS1kZXNjLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kcHJpY2UtZGVzYy1ib3R0b20tYm9yZGVyOiBkb3R0ZWQgMXB4ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBsaXN0IGl0ZW0gc3R5bGVzXG4kcHJpY2UtaXRlbS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRwcmljZS1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcbiRwcmljZS1pdGVtLWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcHJpY2UtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRwcmljZS1pdGVtLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwcmljZS1pdGVtLWJvdHRvbS1ib3JkZXI6IGRvdHRlZCAxcHggJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIENUQSBhcmVhIHN0eWxlc1xuJHByaWNlLWN0YS1iZzogJHdoaXRlICFkZWZhdWx0O1xuJHByaWNlLWN0YS1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuJHByaWNlLWN0YS1wYWRkaW5nOiByZW0tY2FsYygyMCAyMCAwKSAhZGVmYXVsdDtcblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgY29udGFpbmVyIGVsZW1lbnQgZm9yIHRoZSBwcmljaW5nIHRhYmxlc1xuQG1peGluIHByaWNpbmctdGFibGUtY29udGFpbmVyIHtcbiAgYm9yZGVyOiAkcHJpY2UtdGFibGUtYm9yZGVyO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gIG1hcmdpbi1ib3R0b206ICRwcmljZS10YWJsZS1tYXJnaW4tYm90dG9tO1xuXG4gICYgKiB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxufVxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgcHJpY2luZyB0YWJsZSB0aXRsZSBzdHlsZXNcbkBtaXhpbiBwcmljaW5nLXRhYmxlLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaWNlLXRpdGxlLWJnO1xuICBwYWRkaW5nOiAkcHJpY2UtdGl0bGUtcGFkZGluZztcbiAgdGV4dC1hbGlnbjogJHByaWNlLXRpdGxlLWFsaWduO1xuICBjb2xvcjogJHByaWNlLXRpdGxlLWNvbG9yO1xuICBmb250LXdlaWdodDogJHByaWNlLXRpdGxlLXdlaWdodDtcbiAgZm9udC1zaXplOiAkcHJpY2UtdGl0bGUtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRwcmljZS10aXRsZS1mb250LWZhbWlseTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNvbnRyb2wgdGhlIHByaWNpbmcgdGFibGUgcHJpY2Ugc3R5bGVzXG5AbWl4aW4gcHJpY2luZy10YWJsZS1wcmljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmljZS1tb25leS1iZztcbiAgcGFkZGluZzogJHByaWNlLW1vbmV5LXBhZGRpbmc7XG4gIHRleHQtYWxpZ246ICRwcmljZS1tb25leS1hbGlnbjtcbiAgY29sb3I6ICRwcmljZS1tb25leS1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRwcmljZS1tb25leS13ZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJHByaWNlLW1vbmV5LXNpemU7XG4gIGZvbnQtZmFtaWx5OiAkcHJpY2UtbW9uZXktZm9udC1mYW1pbHk7XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGRlc2NyaXB0aW9uIHN0eWxlcyBmb3IgdGhlIHByaWNpbmcgdGFibGVcbkBtaXhpbiBwcmljaW5nLXRhYmxlLWRlc2NyaXB0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaWNlLWJnO1xuICBwYWRkaW5nOiAkcHJpY2UtZGVzYy1wYWRkaW5nO1xuICB0ZXh0LWFsaWduOiAkcHJpY2UtZGVzYy1hbGlnbjtcbiAgY29sb3I6ICRwcmljZS1kZXNjLWNvbG9yO1xuICBmb250LXNpemU6ICRwcmljZS1kZXNjLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRwcmljZS1kZXNjLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRwcmljZS1kZXNjLWxpbmUtaGVpZ2h0O1xuICBib3JkZXItYm90dG9tOiAkcHJpY2UtZGVzYy1ib3R0b20tYm9yZGVyO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgdGhlIGJ1bGxldCBpdGVtcyBpbiB0aGUgcHJpY2luZyB0YWJsZVxuQG1peGluIHByaWNpbmctdGFibGUtYnVsbGV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaWNlLWJnO1xuICBwYWRkaW5nOiAkcHJpY2UtaXRlbS1wYWRkaW5nO1xuICB0ZXh0LWFsaWduOiAkcHJpY2UtaXRlbS1hbGlnbjtcbiAgY29sb3I6ICRwcmljZS1pdGVtLWNvbG9yO1xuICBmb250LXNpemU6ICRwcmljZS1pdGVtLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRwcmljZS1pdGVtLXdlaWdodDtcbiAgYm9yZGVyLWJvdHRvbTogJHByaWNlLWl0ZW0tYm90dG9tLWJvcmRlcjtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHN0eWxlIHRoZSBDVEEgYXJlYSBvZiB0aGUgcHJpY2luZyB0YWJsZXNcbkBtaXhpbiBwcmljaW5nLXRhYmxlLWN0YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmljZS1jdGEtYmc7XG4gIHRleHQtYWxpZ246ICRwcmljZS1jdGEtYWxpZ247XG4gIHBhZGRpbmc6ICRwcmljZS1jdGEtcGFkZGluZztcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInByaWNpbmctdGFibGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1wcmljaW5nLWNsYXNzZXMge1xuXG4gICAgLyogUHJpY2luZyBUYWJsZXMgKi9cbiAgICAucHJpY2luZy10YWJsZSB7XG4gICAgICBAaW5jbHVkZSBwcmljaW5nLXRhYmxlLWNvbnRhaW5lcjtcblxuICAgICAgLnRpdGxlIHsgQGluY2x1ZGUgcHJpY2luZy10YWJsZS10aXRsZTsgfVxuICAgICAgLnByaWNlIHsgQGluY2x1ZGUgcHJpY2luZy10YWJsZS1wcmljZTsgfVxuICAgICAgLmRlc2NyaXB0aW9uIHsgQGluY2x1ZGUgcHJpY2luZy10YWJsZS1kZXNjcmlwdGlvbjsgfVxuICAgICAgLmJ1bGxldC1pdGVtIHsgQGluY2x1ZGUgcHJpY2luZy10YWJsZS1idWxsZXQ7IH1cbiAgICAgIC5jdGEtYnV0dG9uIHsgQGluY2x1ZGUgcHJpY2luZy10YWJsZS1jdGE7IH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIHByb2dyZXNzIGJhciBoZWlnaHRcbiRwcm9ncmVzcy1iYXItaGVpZ2h0OiByZW0tY2FsYygyNSkgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFyLWNvbG9yOiAkdmFwb3IgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4kcHJvZ3Jlc3MtYmFyLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAyMCUpICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIG1hcmdpbiAmIHBhZGRpbmdcbiRwcm9ncmVzcy1iYXItcGFkOiByZW0tY2FsYygyKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBtZXRlciBjb2xvcnNcbiRwcm9ncmVzcy1tZXRlci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtbWV0ZXItc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3I6ICRzdWNjZXNzLWNvbG9yICFkZWZhdWx0O1xuJHByb2dyZXNzLW1ldGVyLWFsZXJ0LWNvbG9yOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdXAgdGhlIHByb2dyZXNzIGJhciBjb250YWluZXJcbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFyLWNvbG9yO1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1iYXItaGVpZ2h0O1xuICBib3JkZXI6ICRwcm9ncmVzcy1iYXItYm9yZGVyLXNpemUgJHByb2dyZXNzLWJhci1ib3JkZXItc3R5bGUgJHByb2dyZXNzLWJhci1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmc6ICRwcm9ncmVzcy1iYXItcGFkO1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtYmFyLW1hcmdpbi1ib3R0b207XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyAkYmcgLSBEZWZhdWx0OiAkcHJvZ3Jlc3MtbWV0ZXItY29sb3IgfHwgJHByaW1hcnktY29sb3JcbkBtaXhpbiBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLWNvbG9yKSB7XG4gIGJhY2tncm91bmQ6ICRiZztcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwicHJvZ3Jlc3MtYmFyXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG5cbiAgICAvKiBQcm9ncmVzcyBCYXIgKi9cbiAgICAucHJvZ3Jlc3Mge1xuICAgICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgICAvLyBNZXRlclxuICAgICAgLm1ldGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gICAgICB9XG4gICAgICAmLnNlY29uZGFyeSAubWV0ZXIgeyBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLXNlY29uZGFyeS1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAubWV0ZXIgeyBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAmLmFsZXJ0IC5tZXRlciB7IEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyKCRiZzokcHJvZ3Jlc3MtbWV0ZXItYWxlcnQtY29sb3IpOyB9XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRwcm9ncmVzcy1iYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIC5tZXRlciB7IEBpbmNsdWRlIHJhZGl1cygkcHJvZ3Jlc3MtYmFyLWJvcmRlci1yYWRpdXMgLSAxKTsgfVxuICAgICAgfVxuXG4gICAgICAmLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDEwMDBweCk7XG4gICAgICAgIC5tZXRlciB7IEBpbmNsdWRlIHJhZGl1cyg5OTlweCk7IH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfcmFuZ2Utc2xpZGVyLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC1yYW5nZS1zbGlkZXItY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBUaGVzZSB2YXJpYWJlbHMgZGVmaW5lIHRoZSBzbGlkZXIgYmFyIHN0eWxlc1xuJHJhbmdlLXNsaWRlci1iYXItd2lkdGg6IDEwMCUgIWRlZmF1bHQ7XG4kcmFuZ2Utc2xpZGVyLWJhci1oZWlnaHQ6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuJHJhbmdlLXNsaWRlci1iYXItYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1iYXItYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1iYXItYmctY29sb3I6ICRnaG9zdCAhZGVmYXVsdDtcbiRyYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnQtYmctY29sb3I6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IC0xJSkgIWRlZmF1bHQ7XG5cbi8vIFZlcnRpY2FsIGJhciBzdHlsZXNcbiRyYW5nZS1zbGlkZXItdmVydGljYWwtYmFyLXdpZHRoOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kcmFuZ2Utc2xpZGVyLXZlcnRpY2FsLWJhci1oZWlnaHQ6IHJlbS1jYWxjKDIwMCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIHZhcmlhYmVscyBkZWZpbmUgdGhlIHNsaWRlciBoYW5kbGUgc3R5bGVzXG4kcmFuZ2Utc2xpZGVyLWhhbmRsZS13aWR0aDogcmVtLWNhbGMoMzIpICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1oYW5kbGUtaGVpZ2h0OiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kcmFuZ2Utc2xpZGVyLWhhbmRsZS1wb3NpdGlvbi10b3A6IHJlbS1jYWxjKC01KSAhZGVmYXVsdDtcbiRyYW5nZS1zbGlkZXItaGFuZGxlLWJnLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRyYW5nZS1zbGlkZXItaGFuZGxlLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1oYW5kbGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRyYW5nZS1zbGlkZXItaGFuZGxlLWJvcmRlci1jb2xvcjogbm9uZSAhZGVmYXVsdDtcbiRyYW5nZS1zbGlkZXItaGFuZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kcmFuZ2Utc2xpZGVyLWhhbmRsZS1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuJHJhbmdlLXNsaWRlci1oYW5kbGUtYmctaG92ZXItY29sb3I6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTIlKSAhZGVmYXVsdDtcbiRyYW5nZS1zbGlkZXItaGFuZGxlLWN1cnNvcjogcG9pbnRlciAhZGVmYXVsdDtcblxuJHJhbmdlLXNsaWRlci1kaXNhYmxlZC1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG4kcmFuZ2Utc2xpZGVyLWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kaXNhYmxlZC12YWx1ZSAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbkBtaXhpbiByYW5nZS1zbGlkZXItYmFyLWJhc2UoJHZlcnRpY2FsOiBmYWxzZSkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogJHJhbmdlLXNsaWRlci1iYXItYm9yZGVyLXdpZHRoICRyYW5nZS1zbGlkZXItYmFyLWJvcmRlci1zdHlsZSAkcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItY29sb3I7XG4gIG1hcmdpbjogcmVtLWNhbGMoMjAgMCk7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgQGlmICR2ZXJ0aWNhbCA9PSB0cnVlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICRyYW5nZS1zbGlkZXItdmVydGljYWwtYmFyLXdpZHRoO1xuICAgIGhlaWdodDogJHJhbmdlLXNsaWRlci12ZXJ0aWNhbC1iYXItaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHJhbmdlLXNsaWRlci1iYXItd2lkdGg7XG4gICAgaGVpZ2h0OiAkcmFuZ2Utc2xpZGVyLWJhci1oZWlnaHQ7XG4gIH1cbn1cbkBtaXhpbiByYW5nZS1zbGlkZXItYmFyLXN0eWxlKFxuICAkYmc6IHRydWUsXG4gICRyYWRpdXM6IGZhbHNlLFxuICAkcm91bmQ6IGZhbHNlLFxuICAkZGlzYWJsZWQ6IGZhbHNlKSB7XG4gIEBpZiAkYmcgPT0gdHJ1ZSB7IGJhY2tncm91bmQ6ICRyYW5nZS1zbGlkZXItYmFyLWJnLWNvbG9yOyB9XG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJHJhbmdlLXNsaWRlci1yYWRpdXMpOyB9XG4gIEBpZiAkcm91bmQgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmFuZ2Utc2xpZGVyLXJvdW5kKTsgfVxuICBAaWYgJGRpc2FibGVkID09IHRydWUge1xuICAgIGN1cnNvcjogJHJhbmdlLXNsaWRlci1kaXNhYmxlZC1jdXJzb3I7XG4gICAgb3BhY2l0eTogJHJhbmdlLXNsaWRlci1kaXNhYmxlZC1vcGFjaXR5O1xuICB9XG59XG5cbkBtaXhpbiByYW5nZS1zbGlkZXItYmFyKFxuICAkYmc6ICRyYW5nZS1zbGlkZXItYmFyLWJnLWNvbG9yLFxuICAkcmFkaXVzOmZhbHNlKSB7XG4gIEBpbmNsdWRlIHJhbmdlLXNsaWRlci1iYXItYmFzZTtcbiAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWJhci1zdHlsZTtcbn1cblxuQG1peGluIHJhbmdlLXNsaWRlci1oYW5kbGUtYmFzZSgpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogJHJhbmdlLXNsaWRlci1oYW5kbGUtcG9zaXRpb24tdG9wO1xuICB3aWR0aDogJHJhbmdlLXNsaWRlci1oYW5kbGUtd2lkdGg7XG4gIGhlaWdodDogJHJhbmdlLXNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICBib3JkZXI6ICRyYW5nZS1zbGlkZXItaGFuZGxlLWJvcmRlci13aWR0aCAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1ib3JkZXItc3R5bGUgJHJhbmdlLXNsaWRlci1oYW5kbGUtYm9yZGVyLWNvbG9yO1xuICBjdXJzb3I6ICRyYW5nZS1zbGlkZXItaGFuZGxlLWN1cnNvcjtcblxuICAvLyBUaGlzIHJlbW92ZXMgdGhlIDMwMG1zIHRvdWNoIGRlbGF5IG9uIFdpbmRvd3MgOFxuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cbkBtaXhpbiByYW5nZS1zbGlkZXItaGFuZGxlLXN0eWxlKFxuICAkYmc6IHRydWUsXG4gICRyYWRpdXM6IGZhbHNlLFxuICAkcm91bmQ6IGZhbHNlLFxuICAkZGlzYWJsZWQ6IGZhbHNlKSB7XG4gIEBpZiAkYmcgPT0gdHJ1ZSB7IGJhY2tncm91bmQ6ICRyYW5nZS1zbGlkZXItaGFuZGxlLWJnLWNvbG9yOyB9XG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJHJhbmdlLXNsaWRlci1yYWRpdXMpOyB9XG4gIEBpZiAkcm91bmQgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmFuZ2Utc2xpZGVyLXJvdW5kKTsgfVxuICBAaWYgJGRpc2FibGVkID09IHRydWUge1xuICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgIG9wYWNpdHk6ICRyYW5nZS1zbGlkZXItZGlzYWJsZWQtb3BhY2l0eTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1iZy1ob3Zlci1jb2xvcjtcbiAgfVxufVxuQG1peGluIHJhbmdlLXNsaWRlci1oYW5kbGUoKSB7XG4gIEBpbmNsdWRlIHJhbmdlLXNsaWRlci1oYW5kbGUtYmFzZTtcbiAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWhhbmRsZS1zdHlsZTtcbn1cblxuLy8gQ1NTIEdlbmVyYXRpb25cbkBpbmNsdWRlIGV4cG9ydHMoXCJyYW5nZS1zbGlkZXItYmFyXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtcmFuZ2Utc2xpZGVyLWNsYXNzZXMge1xuICAgIC5yYW5nZS1zbGlkZXIge1xuICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWJhci1iYXNlO1xuICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWJhci1zdHlsZSgkYmc6dHJ1ZSwgJHJhZGl1czpmYWxzZSk7XG4gICAgICAmLnZlcnRpY2FsLXJhbmdlIHtcbiAgICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWJhci1iYXNlKCR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgICAgIC5yYW5nZS1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkcmFuZ2Utc2xpZGVyLWhhbmRsZS13aWR0aCAvIDQpO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IC0oJHJhbmdlLXNsaWRlci12ZXJ0aWNhbC1iYXItaGVpZ2h0IC0gJHJhbmdlLXNsaWRlci1oYW5kbGUtd2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIC5yYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnQge1xuICAgICAgICAgIHdpZHRoOiAkcmFuZ2Utc2xpZGVyLWJhci1oZWlnaHQgLSByZW0tY2FsYygoc3RyaXAtdW5pdCgkcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItd2lkdGgpICogMikpO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWJhci1zdHlsZSgkcmFkaXVzOnRydWUpO1xuICAgICAgICAucmFuZ2Utc2xpZGVyLWhhbmRsZSB7IEBpbmNsdWRlIHJhbmdlLXNsaWRlci1oYW5kbGUtc3R5bGUoJHJhZGl1czogdHJ1ZSk7IH1cbiAgICAgIH1cbiAgICAgICYucm91bmQge1xuICAgICAgICBAaW5jbHVkZSByYW5nZS1zbGlkZXItYmFyLXN0eWxlKCRyb3VuZDp0cnVlKTtcbiAgICAgICAgLnJhbmdlLXNsaWRlci1oYW5kbGUgeyBAaW5jbHVkZSByYW5nZS1zbGlkZXItaGFuZGxlLXN0eWxlKCRyb3VuZDogdHJ1ZSk7IH1cbiAgICAgIH1cbiAgICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWJhci1zdHlsZSgkZGlzYWJsZWQ6dHJ1ZSk7XG4gICAgICAgIC5yYW5nZS1zbGlkZXItaGFuZGxlIHsgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWhhbmRsZS1zdHlsZSgkZGlzYWJsZWQ6IHRydWUpOyB9XG4gICAgICB9XG4gICAgfVxuICAgIC5yYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAkcmFuZ2Utc2xpZGVyLWJhci1oZWlnaHQgLSByZW0tY2FsYygoc3RyaXAtdW5pdCgkcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItd2lkdGgpICogMikpO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLXNsaWRlci1hY3RpdmUtc2VnbWVudC1iZy1jb2xvcjtcbiAgICB9XG4gICAgLnJhbmdlLXNsaWRlci1oYW5kbGUge1xuICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWhhbmRsZS1iYXNlO1xuICAgICAgQGluY2x1ZGUgcmFuZ2Utc2xpZGVyLWhhbmRsZS1zdHlsZSgkYmc6dHJ1ZSwgJHJhZGl1czogZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcblxuLy9cbi8vIEBuYW1lIF9yZXZlYWwuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3Ncbi8vXG5cbiRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSByZXZlYWwgb3ZlcmxheS5cbiRyZXZlYWwtb3ZlcmxheS1iZzogcmdiYSgkYmxhY2ssIC40NSkgIWRlZmF1bHQ7XG4kcmV2ZWFsLW92ZXJsYXktYmctb2xkOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgbW9kYWwgaXRzZWxmLlxuJHJldmVhbC1tb2RhbC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJHJldmVhbC1wb3NpdGlvbi10b3A6IHJlbS1jYWxjKDEwMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWRlZmF1bHQtd2lkdGg6IDgwJSAhZGVmYXVsdDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkcm93LXdpZHRoICFkZWZhdWx0O1xuJHJldmVhbC1tb2RhbC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLC40KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSByZXZlYWwgY2xvc2UgYnV0dG9uXG4kcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDApICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS10b3A6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2Utc2lkZTogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS1jb2xvcjogJGJhc2UgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHJldmVhbC1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgbW9kYWwgYm9yZGVyXG4kcmV2ZWFsLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHJldmVhbC1ib3JkZXItY29sb3I6ICRzdGVlbCAhZGVmYXVsdDtcblxuJHJldmVhbC1tb2RhbC1jbGFzczogXCJyZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcbiRjbG9zZS1yZXZlYWwtbW9kYWwtY2xhc3M6IFwiY2xvc2UtcmV2ZWFsLW1vZGFsXCIgIWRlZmF1bHQ7XG5cbi8vIFNldCBiYXNlIHotaW5kZXhcbiR6LWluZGV4LWJhc2U6IDEwMDU7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIHJldmVhbCBiYWNrZ3JvdW5kIG92ZXJsYXkgc3R5bGVzXG5AbWl4aW4gcmV2ZWFsLWJnKCAkaW5jbHVkZS16LWluZGV4LXZhbHVlOiB0cnVlICkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLy8gYWxsb3dzIG1vZGFsIGJhY2tncm91bmQgdG8gZXh0ZW5kIGJleW9uZCB3aW5kb3cgcG9zaXRpb25cbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmctb2xkOyAvLyBBdXRvcHJlZml4ZXIgc2hvdWxkIGJlIHVzZWQgdG8gYXZvaWQgc3VjaCB2YXJpYWJsZXMgbmVlZGVkIHdoZW4gRm91bmRhdGlvbiBmb3IgU2l0ZXMgY2FuIGRvIHNvIGluIHRoZSBuZWFyIGZ1dHVyZS5cbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnO1xuICB6LWluZGV4OiBpZiggJGluY2x1ZGUtei1pbmRleC12YWx1ZSwgJHotaW5kZXgtYmFzZSAtIDEsIGF1dG8gKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgc3RydWN0dXJlIG9mIGEgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGJhc2Utc3R5bGUgLSBQcm92aWRlcyByZXZlYWwgYmFzZSBzdHlsZXMsIGNhbiBiZSBzZXQgdG8gZmFsc2UgdG8gb3ZlcnJpZGUuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkd2lkdGggLSBTZXRzIHJldmVhbCB3aWR0aCBEZWZhdWx0OiAkcmV2ZWFsLWRlZmF1bHQtd2lkdGggfHwgODAlXG4vL1xuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlKCAkYmFzZS1zdHlsZTogdHJ1ZSwgJHdpZHRoOiRyZXZlYWwtZGVmYXVsdC13aWR0aCwgJG1heC13aWR0aDokcmV2ZWFsLW1heC13aWR0aCwgJGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzKSB7XG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOjA7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgbWluLWhlaWdodDoxMDB2aDtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgICAuY29sdW1uLCAuY29sdW1ucyB7IG1pbi13aWR0aDogMDsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBtYXJnaW4gZnJvbSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50IGluc2lkZSBtb2RhbFxuICAgICYgPiA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIH1cblxuICBAaWYgJHdpZHRoIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSByZXZlYWwgbW9kYWwgZGVmYXVsdHNcbi8vXG4vLyAkYmcgLSBTZXRzIGJhY2tncm91bmQgY29sb3Igb2YgcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLWJnIHx8ICR3aGl0ZVxuLy8gJHBhZGRpbmcgLSBQYWRkaW5nIHRvIGFwcGx5IHRvIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1wYWRkaW5nLlxuLy8gJGJvcmRlciAtIENob29zZSB3aGV0aGVyIHJldmVhbCB1c2VzIGEgYm9yZGVyLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJGJvcmRlci1zdHlsZSAtIFNldCByZXZlYWwgYm9yZGVyIHN0eWxlLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1zdHlsZSB8fCBzb2xpZFxuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciAoaS5lLiAxcHgpLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci13aWR0aC5cbi8vICRib3JkZXItY29sb3IgLSBDb2xvciBvZiBib3JkZXIuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLWNvbG9yLlxuLy8gJGJveC1zaGFkb3cgLSBDaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBtb2RhbCByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkdG9wLW9mZnNldCAtIERlZmF1bHQ6ICRyZXZlYWwtcG9zaXRpb24tdG9wIHx8IDUwcHhcbkBtaXhpbiByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICRiZzpmYWxzZSxcbiAgJHBhZGRpbmc6ZmFsc2UsXG4gICRib3JkZXI6ZmFsc2UsXG4gICRib3JkZXItc3R5bGU6JHJldmVhbC1ib3JkZXItc3R5bGUsXG4gICRib3JkZXItd2lkdGg6JHJldmVhbC1ib3JkZXItd2lkdGgsXG4gICRib3JkZXItY29sb3I6JHJldmVhbC1ib3JkZXItY29sb3IsXG4gICRib3gtc2hhZG93OmZhbHNlLFxuICAkcmFkaXVzOmZhbHNlLFxuICAkdG9wLW9mZnNldDpmYWxzZSkge1xuXG4gIEBpZiAkYmcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgQGlmICRwYWRkaW5nICE9IGZhbHNlIHsgcGFkZGluZzogJHBhZGRpbmc7IH1cblxuICBAaWYgJGJvcmRlciB7IGJvcmRlcjogJGJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICRib3JkZXItY29sb3I7IH1cblxuICAvLyBXZSBjYW4gY2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy5cbiAgQGlmICRib3gtc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAkcmV2ZWFsLWJveC1zaGFkb3c7XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCBob3cgbXVjaCByYWRpdXMgaXMgdXNlZCBvbiB0aGUgbW9kYWxcbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmV2ZWFsLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG4gIEBpZiAkdG9wLW9mZnNldCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgdG9wOiAkdG9wLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGEgY2xvc2UgYnV0dG9uIGZvciB0aGUgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJHJldmVhbC1jbG9zZS1jb2xvciB8fCAkYmFzZVxuQG1peGluIHJldmVhbC1jbG9zZSgkY29sb3I6JHJldmVhbC1jbG9zZS1jb2xvcikge1xuICBmb250LXNpemU6ICRyZXZlYWwtY2xvc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRyZXZlYWwtY2xvc2UtdG9wO1xuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcmV2ZWFsLWNsb3NlLXNpZGU7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkcmV2ZWFsLWNsb3NlLXdlaWdodDtcbiAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJyZXZlYWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBSZXZlYWwgTW9kYWxzXG4gICAgLnJldmVhbC1tb2RhbC1iZyB7IEBpbmNsdWRlIHJldmVhbC1iZzsgfVxuXG4gICAgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30ge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICAgICAgICRiZzokcmV2ZWFsLW1vZGFsLWJnLFxuICAgICAgICAkcGFkZGluZzokcmV2ZWFsLW1vZGFsLXBhZGRpbmcgKiAxLjUsXG4gICAgICAgICRib3JkZXI6dHJ1ZSxcbiAgICAgICAgJGJveC1zaGFkb3c6dHJ1ZSxcbiAgICAgICAgJHJhZGl1czpmYWxzZSxcbiAgICAgICAgJHRvcC1vZmZzZXQ6JHJldmVhbC1wb3NpdGlvbi10b3BcbiAgICAgICk7XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6JHJldmVhbC1yb3VuZCk7IH1cbiAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHBhZGRpbmc6MCk7IH1cbiAgICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMzAlKTsgfVxuICAgICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA0MCUpOyB9XG4gICAgICAmLm1lZGl1bSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNjAlKTsgfVxuICAgICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA3MCUpOyB9XG4gICAgICAmLnhsYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA5NSUpOyB9XG4gICAgICAmLmZ1bGwge1xuICAgICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMTAwJSk7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gTW9kYWxzIHB1c2hlZCB0byBiYWNrXG4gICAgICAmLnRvYmFjayB7XG4gICAgICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2UgLSAyO1xuICAgICAgfVxuXG4gICAgICAuI3skY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzfSB7IEBpbmNsdWRlIHJldmVhbC1jbG9zZTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHBhZGRpbmcuXG4kc2lkZS1uYXYtcGFkZGluZzogcmVtLWNhbGMoMTQgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxpc3Qgc3R5bGVzLlxuJHNpZGUtbmF2LWxpc3QtdHlwZTogbm9uZSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1saXN0LXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpc3QtbWFyZ2luOiByZW0tY2FsYygwIDAgNyAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbGluayBzdHlsZXMuXG4kc2lkZS1uYXYtbGluay1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGluay1jb2xvci1hY3RpdmU6IHNjYWxlLWNvbG9yKCRzaWRlLW5hdi1saW5rLWNvbG9yLCAkbGlnaHRuZXNzOiAzMCUpICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRzaWRlLW5hdi1saW5rLWNvbG9yLCAkbGlnaHRuZXNzOiAzMCUpICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstYmctaG92ZXI6IGhzbGEoMCwgMCwgMCwgMC4wMjUpICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstbWFyZ2luOiAwICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstcGFkZGluZzogcmVtLWNhbGMoNyAxNCkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC13ZWlnaHQtYWN0aXZlOiAkc2lkZS1uYXYtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHNpZGUtbmF2LWZvbnQtZmFtaWx5LWFjdGl2ZTogJHNpZGUtbmF2LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkaW5nIHN0eWxlcy5cbiRzaWRlLW5hdi1oZWFkaW5nLWNvbG9yOiAkc2lkZS1uYXYtbGluay1jb2xvciAhZGVmYXVsdDtcbiRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtc2l6ZTogJHNpZGUtbmF2LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuJHNpZGUtbmF2LWhlYWRpbmctdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xuJHNpZGUtbmF2LWRpdmlkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHNpZGUtbmF2LWRpdmlkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHNpZGUtbmF2LWRpdmlkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogMTAlKSAhZGVmYXVsdDtcblxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgc2lkZS1uYXZcbi8vXG4vLyAkZGl2aWRlci1jb2xvciAtIEJvcmRlciBjb2xvciBvZiBkaXZpZGVyLiBEZWZhdWx0OiAkc2lkZS1uYXYtZGl2aWRlci1jb2xvci5cbi8vICRmb250LXNpemUgLSBGb250IHNpemUgb2YgbmF2IGl0ZW1zLiBEZWZhdWx0OiAkc2lkZS1uYXYtZm9udC1zaXplLlxuLy8gJGxpbmstY29sb3IgLSBDb2xvciBvZiBuYXZpZ2F0aW9uIGxpbmtzLiBEZWZhdWx0OiAkc2lkZS1uYXYtbGluay1jb2xvci5cbi8vICRsaW5rLWNvbG9yLWhvdmVyIC0gQ29sb3Igb2YgbmF2aWdhdGlvbiBsaW5rcyB3aGVuIGhvdmVyZWQuIERlZmF1bHQ6ICRzaWRlLW5hdi1saW5rLWNvbG9yLWhvdmVyLlxuQG1peGluIHNpZGUtbmF2KFxuICAkZGl2aWRlci1jb2xvcjokc2lkZS1uYXYtZGl2aWRlci1jb2xvcixcbiAgJGZvbnQtc2l6ZTokc2lkZS1uYXYtZm9udC1zaXplLFxuICAkbGluay1jb2xvcjokc2lkZS1uYXYtbGluay1jb2xvcixcbiAgJGxpbmstY29sb3ItaG92ZXI6JHNpZGUtbmF2LWxpbmstY29sb3ItaG92ZXIsXG4gICRsaW5rLWJnLWhvdmVyOiRzaWRlLW5hdi1saW5rLWJnLWhvdmVyKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6ICRzaWRlLW5hdi1wYWRkaW5nO1xuICBsaXN0LXN0eWxlLXR5cGU6ICRzaWRlLW5hdi1saXN0LXR5cGU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRzaWRlLW5hdi1saXN0LXBvc2l0aW9uO1xuICBmb250LWZhbWlseTogJHNpZGUtbmF2LWZvbnQtZmFtaWx5O1xuXG4gIGxpIHtcbiAgICBtYXJnaW46ICRzaWRlLW5hdi1saXN0LW1hcmdpbjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRzaWRlLW5hdi1mb250LXdlaWdodDtcblxuICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICRsaW5rLWNvbG9yO1xuICAgICAgbWFyZ2luOiAkc2lkZS1uYXYtbGluay1tYXJnaW47XG4gICAgICBwYWRkaW5nOiAkc2lkZS1uYXYtbGluay1wYWRkaW5nO1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGluay1iZy1ob3ZlcjtcbiAgICAgICAgY29sb3I6ICRsaW5rLWNvbG9yLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuYWN0aXZlID4gYTpmaXJzdC1jaGlsZDpub3QoLmJ1dHRvbikge1xuICAgICAgY29sb3I6ICRzaWRlLW5hdi1saW5rLWNvbG9yLWFjdGl2ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkc2lkZS1uYXYtZm9udC13ZWlnaHQtYWN0aXZlO1xuICAgICAgZm9udC1mYW1pbHk6ICRzaWRlLW5hdi1mb250LWZhbWlseS1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5kaXZpZGVyIHtcbiAgICAgIGJvcmRlci10b3A6ICRzaWRlLW5hdi1kaXZpZGVyLXNpemUgJHNpZGUtbmF2LWRpdmlkZXItc3R5bGU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRkaXZpZGVyLWNvbG9yO1xuICAgIH1cblxuICAgICYuaGVhZGluZyB7XG4gICAgICBjb2xvcjogJHNpZGUtbmF2LWhlYWRpbmctY29sb3I7XG4gICAgICBmb250OiB7XG4gICAgICAgIHNpemU6ICRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtc2l6ZTtcbiAgICAgICAgd2VpZ2h0OiAkc2lkZS1uYXYtaGVhZGluZy1mb250LXdlaWdodDtcbiAgICAgIH1cbiAgICAgIHRleHQtdHJhbnNmb3JtOiAkc2lkZS1uYXYtaGVhZGluZy10ZXh0LXRyYW5zZm9ybTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInNpZGUtbmF2XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXMge1xuICAgIC5zaWRlLW5hdiB7IEBpbmNsdWRlIHNpZGUtbmF2OyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwiZHJvcGRvd24tYnV0dG9uc1wiO1xuXG4vL1xuLy8gQG5hbWUgX3NwbGl0LWJ1dHRvbnMuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfYnV0dG9ucy5zY3NzLCBfZ2xvYmFsLnNjc3Ncbi8vXG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGRpZmZlcmVudCBzaGFyZWQgc3R5bGVzIGZvciBTcGxpdCBCdXR0b25zXG4kc3BsaXQtYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogMTAlICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLWNvbG9yLWFsdDogJG9pbCAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tYWN0aXZlLWJnLXRpbnQ6IHJnYmEoMCwwLDAsMC4xKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGlueSBzcGxpdCBidXR0b25zXG4kc3BsaXQtYnV0dG9uLXBhZGRpbmctdG55OiAkYnV0dG9uLXBpcC10bnkgKiAxMCAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC10bnk6ICRidXR0b24tcGlwLXRueSAqIDYgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC1zaXplLXRueTogJGJ1dHRvbi1waXAtdG55ICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtdG9wLXRueTogJGJ1dHRvbi1waXAtdG55ICogMiAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtdG55OiByZW0tY2FsYygtNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHNtYWxsIHNwbGl0IGJ1dHRvbnNcbiRzcGxpdC1idXR0b24tcGFkZGluZy1zbWw6ICRidXR0b24tcGlwLXNtbCAqIDEwICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLXNtbDogJGJ1dHRvbi1waXAtc21sICogNiAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLXNpemUtc21sOiAkYnV0dG9uLXBpcC1zbWwgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC10b3Atc21sOiAkYnV0dG9uLXBpcC1zbWwgKiAxLjUgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LXNtbDogcmVtLWNhbGMoLTYpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBtZWRpdW0gc3BsaXQgYnV0dG9uc1xuJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLW1lZDogJGJ1dHRvbi1waXAtbWVkICogOSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDUuNSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLXNpemUtbWVkOiAkYnV0dG9uLXBpcC1tZWQgLSByZW0tY2FsYygzKSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLXRvcC1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDEuNSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtbWVkOiByZW0tY2FsYygtNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxhcmdlIHNwbGl0IGJ1dHRvbnNcbiRzcGxpdC1idXR0b24tcGFkZGluZy1scmc6ICRidXR0b24tcGlwLWxyZyAqIDggIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtbHJnOiAkYnV0dG9uLXBpcC1scmcgKiA1ICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1scmc6ICRidXR0b24tcGlwLWxyZyAtIHJlbS1jYWxjKDYpICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtdG9wLWxyZzogJGJ1dHRvbi1waXAtbHJnICsgcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LWxyZzogcmVtLWNhbGMoLTYpICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgc3BsaXQgYnV0dG9ucyB0aGF0IGJ1aWxkIHVwb24gdGhlIGJ1dHRvbiBtaXhpbnNcbi8vXG4vLyAkcGFkZGluZyAtIFR5cGUgb2YgcGFkZGluZyB0byBhcHBseS4gRGVmYXVsdDogbWVkaXVtLiBPcHRpb25zOiB0aW55LCBzbWFsbCwgbWVkaXVtLCBsYXJnZS5cbi8vICRwaXAtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuIERlZmF1bHQ6ICRzcGxpdC1idXR0b24tcGlwLWNvbG9yLlxuLy8gJHNwYW4tYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIGJ1dHRvbiBkaXZpZGVyLiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbi8vICRiYXNlLXN0eWxlIC0gQXBwbHkgYmFzZSBzdHlsZSB0byBzcGxpdCBidXR0b24uIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gc3BsaXQtYnV0dG9uKFxuICAkcGFkZGluZzptZWRpdW0sXG4gICRwaXAtY29sb3I6JHNwbGl0LWJ1dHRvbi1waXAtY29sb3IsIFxuICAkc3Bhbi1ib3JkZXI6JHByaW1hcnktY29sb3IsIFxuICAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gV2l0aCB0aGlzLCB3ZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLlxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIFN0eWxpbmcgZm9yIHRoZSBzcGxpdCBhcnJvdyBjbGlja2FibGUgYXJlYVxuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiBzb2xpZCAxcHg7XG5cbiAgICAgIC8vIEJ1aWxkaW5nIHRoZSB0cmlhbmdsZSBwaXAgaW5kaWNhdG9yXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBpbnNldDtcbiAgICAgICAgdG9wOiA1MCU7XG5cbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDUwJTtcbiAgICAgIH1cblxuICAgICAgJjphY3RpdmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BsaXQtYnV0dG9uLWFjdGl2ZS1iZy10aW50OyB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbCB0aGUgYm9yZGVyIGNvbG9yIGZvciB0aGUgc3BhbiBhcmVhIG9mIHRoZSBzcGxpdCBidXR0b25cbiAgQGlmICRzcGFuLWJvcmRlciB7XG4gICAgc3BhbiB7XG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH0tY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZSBvZiB0aGUgYnV0dG9uIGFuZCBjbGlja2FibGUgYXJlYSBmb3IgdGlueSBzaXplc1xuICBAaWYgJHBhZGRpbmcgPT0gdGlueSB7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkc3BsaXQtYnV0dG9uLXBhZGRpbmctdG55O1xuXG4gICAgc3BhbiB7IHdpZHRoOiAkc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtdG55O1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6ICRzcGxpdC1idXR0b24tcGlwLXNpemUtdG55O1xuICAgICAgICB0b3A6IDQ4JTtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LXRueTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZSBvZiB0aGUgYnV0dG9uIGFuZCBjbGlja2FibGUgYXJlYSBmb3Igc21hbGwgc2l6ZXNcbiAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gc21hbGwge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLXNtbDtcblxuICAgIHNwYW4geyB3aWR0aDogJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLXNtbDtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkc3BsaXQtYnV0dG9uLXBpcC1zaXplLXNtbDtcbiAgICAgICAgdG9wOiA0OCU7XG4gICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJHNwbGl0LWJ1dHRvbi1waXAtZGVmYXVsdC1mbG9hdC1zbWw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGUgb2YgdGhlIGJ1dHRvbiBhbmQgY2xpY2thYmxlIGFyZWEgZm9yIGRlZmF1bHQgKG1lZGl1bSkgc2l6ZXNcbiAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gbWVkaXVtIHtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRzcGxpdC1idXR0b24tcGFkZGluZy1tZWQ7XG5cbiAgICBzcGFuIHsgd2lkdGg6ICRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC1tZWQ7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1tZWQ7XG4gICAgICAgIHRvcDogNDglO1xuICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtbWVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlIG9mIHRoZSBidXR0b24gYW5kIGNsaWNrYWJsZSBhcmVhIGZvciBsYXJnZSBzaXplc1xuICBAZWxzZSBpZiAkcGFkZGluZyA9PSBsYXJnZSB7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkc3BsaXQtYnV0dG9uLXBhZGRpbmctbHJnO1xuXG4gICAgc3BhbiB7IHdpZHRoOiAkc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtbHJnO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6ICRzcGxpdC1idXR0b24tcGlwLXNpemUtbHJnO1xuICAgICAgICB0b3A6IDQ4JTtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LWxyZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb250cm9sIHRoZSBjb2xvciBvZiB0aGUgdHJpYW5nbGUgcGlwXG4gIEBpZiAkcGlwLWNvbG9yIHtcbiAgICBzcGFuOmFmdGVyIHsgYm9yZGVyLWNvbG9yOiAkcGlwLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInNwbGl0LWJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcblxuICAgIC5zcGxpdC5idXR0b24geyBAaW5jbHVkZSBzcGxpdC1idXR0b247XG5cbiAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uKGZhbHNlLCAkc3BsaXQtYnV0dG9uLXBpcC1jb2xvciwgJHNlY29uZGFyeS1jb2xvciwgZmFsc2UpOyB9XG4gICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uKGZhbHNlLCBmYWxzZSwgJGFsZXJ0LWNvbG9yLCBmYWxzZSk7IH1cbiAgICAgICYuc3VjY2VzcyB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbihmYWxzZSwgZmFsc2UsICRzdWNjZXNzLWNvbG9yLCBmYWxzZSk7IH1cblxuICAgICAgJi50aW55IHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uKHRpbnksIGZhbHNlLCBmYWxzZSwgZmFsc2UpOyB9XG4gICAgICAmLnNtYWxsIHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uKHNtYWxsLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsgfVxuICAgICAgJi5sYXJnZSB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbihsYXJnZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7IH1cbiAgICAgICYuZXhwYW5kIHsgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG5cbiAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uKGZhbHNlLCAkc3BsaXQtYnV0dG9uLXBpcC1jb2xvci1hbHQsIGZhbHNlLCBmYWxzZSk7IH1cblxuICAgICAgJi5yYWRpdXMgc3BhbiB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRnbG9iYWwtcmFkaXVzKTsgfVxuICAgICAgJi5yb3VuZCBzcGFuIHsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgMTAwMHB4KTsgfVxuICAgICAgJi5uby1waXB7XG4gICAgICAgIHNwYW46YmVmb3JleyBib3JkZXItc3R5bGU6bm9uZTsgfVxuICAgICAgICBzcGFuOmFmdGVyeyBib3JkZXItc3R5bGU6bm9uZTsgfVxuICAgICAgICBzcGFuPml7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuMjg4ODllbTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMC40ODg4OWVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEBuYW1lIF9zdWItbmF2LnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBtYXJnaW4gYW5kIHBhZGRpbmdcbiRzdWItbmF2LWxpc3QtbWFyZ2luOiByZW0tY2FsYygtNCAwIDE4KSAhZGVmYXVsdDtcbiRzdWItbmF2LWxpc3QtcGFkZGluZy10b3A6IHJlbS1jYWxjKDQpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkZWZpbml0aW9uXG4kc3ViLW5hdi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kc3ViLW5hdi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRzdWItbmF2LWZvbnQtY29sb3I6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRzdWItbmF2LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHN1Yi1uYXYtdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHN1Yi1uYXYtcGFkZGluZzogcmVtLWNhbGMoMyAxNikgIWRlZmF1bHQ7XG4kc3ViLW5hdi1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kc3ViLW5hdi1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkc3ViLW5hdi1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMjUlKSAhZGVmYXVsdDtcblxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYWN0aXZlIGl0ZW0gc3R5bGVzXG5cbiRzdWItbmF2LWFjdGl2ZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzdWItbmF2LWFjdGl2ZS1iZzogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kc3ViLW5hdi1hY3RpdmUtYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzdWItbmF2LWFjdGl2ZS1iZywgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG4kc3ViLW5hdi1hY3RpdmUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzdWItbmF2LWFjdGl2ZS1wYWRkaW5nOiAkc3ViLW5hdi1wYWRkaW5nICFkZWZhdWx0O1xuJHN1Yi1uYXYtYWN0aXZlLWN1cnNvcjogZGVmYXVsdCAhZGVmYXVsdDtcblxuJHN1Yi1uYXYtaXRlbS1kaXZpZGVyOiBcIlwiICFkZWZhdWx0O1xuJHN1Yi1uYXYtaXRlbS1kaXZpZGVyLW1hcmdpbjogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuXG4vLyBDcmVhdGUgYSBzdWItbmF2IGl0ZW1cbi8vXG4vLyAkZm9udC1jb2xvciAtIEZvbnQgY29sb3IuIERlZmF1bHQ6ICRzdWItbmF2LWZvbnQtY29sb3IuXG4vLyAkZm9udC1zaXplIC0gRm9udCBzaXplLiBEZWZhdWx0OiAkc3ViLW5hdi1mb250LXNpemUuXG4vLyAkYWN0aXZlLWJnIC0gQmFja2dyb3VuZCBvZiBhY3RpdmUgbmF2IGl0ZW0uIERlZmF1bHQ6ICRzdWItbmF2LWFjdGl2ZS1iZy5cbi8vICRhY3RpdmUtYmctaG92ZXIgLSBCYWNrZ3JvdW5kIG9mIGFjdGl2ZSBuYXYgaXRlbSwgd2hlbiBob3ZlcmVkLiBEZWZhdWx0OiAkc3ViLW5hdi1hY3RpdmUtYmctaG92ZXIuXG5AbWl4aW4gc3ViLW5hdihcbiAgJGZvbnQtY29sb3I6ICRzdWItbmF2LWZvbnQtY29sb3IsXG4gICRmb250LXNpemU6ICRzdWItbmF2LWZvbnQtc2l6ZSxcbiAgJGFjdGl2ZS1iZzogJHN1Yi1uYXYtYWN0aXZlLWJnLFxuICAkYWN0aXZlLWJnLWhvdmVyOiAkc3ViLW5hdi1hY3RpdmUtYmctaG92ZXIpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW4tYm90dG9tOiAkc3ViLW5hdi1saXN0LW1hcmdpbjtcbiAgcGFkZGluZy10b3A6ICRzdWItbmF2LWxpc3QtcGFkZGluZy10b3A7XG5cbiAgZHQge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICBkdCxcbiAgZGQsXG4gIGxpIHtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiByZW0tY2FsYygxNik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LWZhbWlseTogJHN1Yi1uYXYtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRzdWItbmF2LWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGZvbnQtY29sb3I7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogJHN1Yi1uYXYtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgY29sb3I6ICRzdWItbmF2LWZvbnQtY29sb3I7XG4gICAgICBwYWRkaW5nOiAkc3ViLW5hdi1wYWRkaW5nO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkc3ViLW5hdi1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuYWN0aXZlIGEge1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRzdWItbmF2LWJvcmRlci1yYWRpdXMpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRzdWItbmF2LWFjdGl2ZS1mb250LXdlaWdodDtcbiAgICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtYmc7XG4gICAgICBwYWRkaW5nOiAkc3ViLW5hdi1hY3RpdmUtcGFkZGluZztcbiAgICAgIGN1cnNvcjogJHN1Yi1uYXYtYWN0aXZlLWN1cnNvcjtcbiAgICAgIGNvbG9yOiAkc3ViLW5hdi1hY3RpdmUtY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjdGl2ZS1iZy1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICRzdWItbmF2LWl0ZW0tZGl2aWRlciAhPSBcIlwiIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIiN7JHN1Yi1uYXYtaXRlbS1kaXZpZGVyfVwiO1xuICAgICAgICBtYXJnaW46IDAgJHN1Yi1uYXYtaXRlbS1kaXZpZGVyLW1hcmdpbjtcbiAgICAgIH1cblxuICAgICAgJjpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJzdWItbmF2XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXMge1xuICAgIC5zdWItbmF2IHsgQGluY2x1ZGUgc3ViLW5hdjsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZVxuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3Ncbi8vXG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBDb250cm9sbGluZyBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lclxuJHN3aXRjaC1iZzogJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN3aXRjaCBoZWlnaHRzIGZvciBvdXIgZGVmYXVsdCBjbGFzc2VzXG4kc3dpdGNoLWhlaWdodC10bnk6IDEuNXJlbSAhZGVmYXVsdDtcbiRzd2l0Y2gtaGVpZ2h0LXNtbDogMS43NXJlbSAhZGVmYXVsdDtcbiRzd2l0Y2gtaGVpZ2h0LW1lZDogMnJlbSAhZGVmYXVsdDtcbiRzd2l0Y2gtaGVpZ2h0LWxyZzogMi41cmVtICFkZWZhdWx0O1xuJHN3aXRjaC1ib3R0b20tbWFyZ2luOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgc3dpdGNoLXBhZGRsZVxuJHN3aXRjaC1wYWRkbGUtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb24tc3BlZWQ6IC4xNXMgIWRlZmF1bHQ7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uLWVhc2U6IGVhc2Utb3V0ICFkZWZhdWx0O1xuJHN3aXRjaC1hY3RpdmUtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGJhc2Ugc3R5bGVzIGZvciBvdXIgc3dpdGNoIGVsZW1lbnQuXG4vL1xuLy8gJHRyYW5zaXRpb24tc3BlZWQgLSBUaW1lIGluIG1zIGZvciBzd2l0Y2ggdG8gdG9nZ2xlLiBEZWZhdWx0OiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uLXNwZWVkLlxuLy8gJHRyYW5zaXRpb24tZWFzZSAtIEVhc2luZyBmdW5jdGlvbiB0byB1c2UgZm9yIGFuaW1hdGlvbiAoaS5lLiBlYXNlLW91dCkuIERlZmF1bHQ6ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb24tZWFzZS5cbkBtaXhpbiBzd2l0Y2gtYmFzZShcbiAgJHRyYW5zaXRpb24tc3BlZWQ6JHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbi1zcGVlZCxcbiAgJHRyYW5zaXRpb24tZWFzZTokc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uLWVhc2UpIHtcblxuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAvLyBEZWZhdWx0IGxhYmVsIHN0eWxlcyBmb3IgdHlwZSBhbmQgdHJhbnNpdGlvblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogKCRzd2l0Y2gtaGVpZ2h0LW1lZCAvIDIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1iZztcbiAgICB0ZXh0LWluZGVudDogMTAwJTtcbiAgICB3aWR0aDogJHN3aXRjaC1oZWlnaHQtbWVkICogMjsgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodC1tZWQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gVHJhbnNpdGlvbiBmb3IgdGhlIHN3aXRjaCBsYWJlbCB0byBmb2xsb3cgcGFkZGxlXG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24obGVmdCwgJHRyYW5zaXRpb24tc3BlZWQsICR0cmFuc2l0aW9uLWVhc2UpO1xuICB9XG5cbiAgLy8gU28gdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHJlY3JlYXRlIHRoZSBmb3JtIHdpdGggYW55IEpTLCB3ZSB1c2UgdGhlXG4gIC8vIGV4aXN0aW5nIGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbiwgYnV0IHdlIGNsZXZlcmx5IHBvc2l0aW9uIGFuZCBoaWRlIGl0LlxuICBpbnB1dCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgbGVmdDogMTBweDtcbiAgICBwYWRkaW5nOjA7XG5cbiAgICAmICsgbGFiZWwgeyBtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGZvciB0aGUgc3dpdGNoIGlzIGNyZWF0ZWQgZnJvbSBhbiBhZnRlciBwc3VlZG9jbGFzc1xuICAvLyBjb250ZW50IGVsZW1lbnQuIFRoaXMgaXMgc2l6ZWQgYW5kIHBvc2l0aW9uZWQsIGFuZCByZWFjdHMgdG9cbiAgLy8gdGhlIHN0YXRlIG9mIHRoZSBpbnB1dC5cblxuICBsYWJlbDphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iZztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAuMjVyZW07XG4gICAgbGVmdDogLjI1cmVtO1xuICAgIHdpZHRoOiAkc3dpdGNoLWhlaWdodC1tZWQgLSAwLjVyZW07XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodC1tZWQgLSAwLjVyZW07XG5cbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgJHRyYW5zaXRpb24tc3BlZWQgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAtbW96LXRyYW5zaXRpb246IGxlZnQgJHRyYW5zaXRpb24tc3BlZWQgJHRyYW5zaXRpb24tZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAkdHJhbnNpdGlvbi1zcGVlZCAkdHJhbnNpdGlvbi1lYXNlO1xuXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWFjdGl2ZS1jb2xvcjtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4gICAgbGVmdDogJHN3aXRjaC1oZWlnaHQtbWVkICsgMC4yNXJlbTtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIHNpemUgc3R5bGVzIGZvciBzd2l0Y2hlcy5cbi8vXG4vLyAkaGVpZ2h0IC0gSGVpZ2h0IChpbiBweCkgb2YgdGhlIHN3aXRjaC4gRGVmYXVsdDogJHN3aXRjaC1oZWlnaHQtbWVkLlxuLy8gJGZvbnQtc2l6ZSAtIEZvbnQgc2l6ZSBvZiB0ZXh0IGluIHN3aXRjaC4gRGVmYXVsdDogJHN3aXRjaC1mb250LXNpemUtbWVkLlxuLy8gJGxpbmUtaGVpZ2h0IC0gTGluZSBoZWlnaHQgb2Ygc3dpdGNoLiBEZWZhdWx0OiAyLjNyZW0uXG5AbWl4aW4gc3dpdGNoLXNpemUoJGhlaWdodDogJHN3aXRjaC1oZWlnaHQtbWVkKSB7XG5cbiAgbGFiZWwge1xuICAgIHdpZHRoOiAkaGVpZ2h0ICogMjtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxuICBsYWJlbDphZnRlciB7XG4gICAgd2lkdGg6ICRoZWlnaHQgLSAwLjVyZW07XG4gICAgaGVpZ2h0OiAkaGVpZ2h0IC0gMC41cmVtO1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgICBsZWZ0OiAkaGVpZ2h0ICsgMC4yNXJlbTtcbiAgfVxuXG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBjb2xvciBhbmQgb3RoZXIgZmFuY2luZXNzIHRvIHRoZSBzd2l0Y2hlcy5cbi8vXG4vLyAkcGFkZGxlLWJnIC0gQmFja2dyb3VuZCBvZiBzd2l0Y2ggcGFkZGxlLiBEZWZhdWx0OiAkc3dpdGNoLXBhZGRsZS1iZy5cbi8vICRhY3RpdmUtY29sb3IgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBvc2l0aXZlIHNpZGUgb2Ygc3dpdGNoLiBEZWZhdWx0OiAkc3dpdGNoLXBvc2l0aXZlLWNvbG9yLlxuLy8gJG5lZ2F0aXZlLWNvbG9yIC0gQmFja2dyb3VuZCBjb2xvciBvZiBuZWdhdGl2ZSBzaWRlIG9mIHN3aXRjaC4gRGVmYXVsdDogJHN3aXRjaC1uZWdhdGl2ZS1jb2xvci5cbi8vICRyYWRpdXMgLSBSYWRpdXMgdG8gYXBwbHkgdG8gc3dpdGNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRiYXNlLXN0eWxlIC0gQXBwbHkgYmFzZSBzdHlsZXM/IERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gc3dpdGNoLXN0eWxlKFxuICAkcGFkZGxlLWJnOiRzd2l0Y2gtcGFkZGxlLWJnLFxuICAkYWN0aXZlLWNvbG9yOiRzd2l0Y2gtYWN0aXZlLWNvbG9yLFxuICAkcmFkaXVzOmZhbHNlLFxuICAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgQGlmICRiYXNlLXN0eWxlIHtcblxuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmc7XG4gICAgfVxuXG4gICAgbGFiZWw6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZGRsZS1iZztcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgbGFiZWwge1xuICAgICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBTZXR0aW5nIHVwIHRoZSByYWRpdXMgZm9yIHN3aXRjaGVzXG4gIEBpZiAkcmFkaXVzID09IHRydWUge1xuICAgIGxhYmVsIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gICAgfVxuICAgIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRyYWRpdXMge1xuICAgIGxhYmVsIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxuICAgIGxhYmVsOmFmdGVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxuICB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgc3dpdGNoZXMgd2l0aCBhIHNpbmdsZSBtaXhpblxuLy9cbi8vICR0cmFuc2l0aW9uLXNwZWVkIC0gVGltZSBpbiBtcyBmb3Igc3dpdGNoIHRvIHRvZ2dsZS4gRGVmYXVsdDogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbi1zcGVlZC5cbi8vICR0cmFuc2l0aW9uLWVhc2UgLSBFYXNpbmcgZnVuY3Rpb24gdG8gdXNlIGZvciBhbmltYXRpb24gKGkuZS4gZWFzZS1vdXQpLiBEZWZhdWx0OiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uLWVhc2UuXG4vLyAkaGVpZ2h0IC0gSGVpZ2h0IChpbiBweCkgb2YgdGhlIHN3aXRjaC4gRGVmYXVsdDogJHN3aXRjaC1oZWlnaHQtbWVkLlxuLy8gJHBhZGRsZS1iZyAtIEJhY2tncm91bmQgb2Ygc3dpdGNoIHBhZGRsZS4gRGVmYXVsdDogJHN3aXRjaC1wYWRkbGUtYmcuXG4vLyAkYWN0aXZlLWNvbG9yIC0gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgc3dpdGNoLiBEZWZhdWx0OiAkc3dpdGNoLWFjdGl2ZS1jb2xvci5cbi8vICRyYWRpdXMgLSBSYWRpdXMgdG8gYXBwbHkgdG8gc3dpdGNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRiYXNlLXN0eWxlIC0gQXBwbHkgYmFzZSBzdHlsZXM/IERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gc3dpdGNoKFxuICAkdHJhbnNpdGlvbi1zcGVlZDogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbi1zcGVlZCxcbiAgJHRyYW5zaXRpb24tZWFzZTogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbi1lYXNlLFxuICAkaGVpZ2h0OiAkc3dpdGNoLWhlaWdodC1tZWQsXG4gICRwYWRkbGUtYmc6ICRzd2l0Y2gtcGFkZGxlLWJnLFxuICAkYWN0aXZlLWNvbG9yOiAkc3dpdGNoLWFjdGl2ZS1jb2xvcixcbiAgJHJhZGl1czpmYWxzZSxcbiAgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1iYXNlKCR0cmFuc2l0aW9uLXNwZWVkLCAkdHJhbnNpdGlvbi1lYXNlKTtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZSgkaGVpZ2h0KTtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc3R5bGUoJHBhZGRsZS1iZywgJGFjdGl2ZS1jb2xvciwgJHJhZGl1cywgJGJhc2Utc3R5bGUpO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwic3dpdGNoXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzIHtcbiAgICAgIC5zd2l0Y2gge1xuICAgICAgICBAaW5jbHVkZSBzd2l0Y2g7XG5cbiAgICAgICAgLy8gTGFyZ2UgcmFkaW8gc3dpdGNoZXNcbiAgICAgICAgJi5sYXJnZSB7IEBpbmNsdWRlIHN3aXRjaC1zaXplKCRzd2l0Y2gtaGVpZ2h0LWxyZyk7IH1cblxuICAgICAgICAvLyBTbWFsbCByYWRpbyBzd2l0Y2hlc1xuICAgICAgICAmLnNtYWxsIHsgQGluY2x1ZGUgc3dpdGNoLXNpemUoJHN3aXRjaC1oZWlnaHQtc21sKTsgfVxuXG4gICAgICAgIC8vIFRpbnkgcmFkaW8gc3dpdGNoZXNcbiAgICAgICAgJi50aW55IHsgQGluY2x1ZGUgc3dpdGNoLXNpemUoJHN3aXRjaC1oZWlnaHQtdG55KTsgfVxuXG4gICAgICAgIC8vIEFkZCBhIHJhZGl1cyB0byB0aGUgc3dpdGNoXG4gICAgICAgICYucmFkaXVzIHtcbiAgICAgICAgICBsYWJlbCB7IEBpbmNsdWRlIHJhZGl1cyg0cHgpOyB9XG4gICAgICAgICAgbGFiZWw6YWZ0ZXIgeyBAaW5jbHVkZSByYWRpdXMoM3B4KTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSB0aGUgc3dpdGNoIGNvbXBsZXRlbHkgcm91bmQsIGxpa2UgYSBwaWxsXG4gICAgICAgICYucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMTAwMHB4KTtcbiAgICAgICAgICBsYWJlbCB7IEBpbmNsdWRlIHJhZGl1cygycmVtKTsgfVxuICAgICAgICAgIGxhYmVsOmFmdGVyIHsgQGluY2x1ZGUgcmFkaXVzKDJyZW0pOyB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfdGFibGVzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC10YWJsZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0YWJsZSBhbmQgZXZlbiByb3dzXG4kdGFibGUtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy1iZzogJHNub3cgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIHN0eWxlXG4kdGFibGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgaGVhZCBzdHlsZXNcbiR0YWJsZS1oZWFkLWJnOiAkd2hpdGUtc21va2UgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgZm9vdCBzdHlsZXNcbiR0YWJsZS1mb290LWJnOiAkdGFibGUtaGVhZC1iZyAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplICFkZWZhdWx0O1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiR0YWJsZS1mb290LXBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGNhcHRpb25cbiR0YWJsZS1jYXB0aW9uLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSByb3cgcGFkZGluZyBhbmQgZm9udCBzdHlsZXNcbiR0YWJsZS1yb3ctcGFkZGluZzogcmVtLWNhbGMoOSAxMCkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWxpbmUtaGVpZ2h0OiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGFyZSBmb3IgY29udHJvbGxpbmcgdGhlIGxheW91dCwgZGlzcGxheSBhbmQgbWFyZ2luIG9mIHRhYmxlc1xuJHRhYmxlLWxheW91dDogYXV0byAhZGVmYXVsdDtcbiR0YWJsZS1kaXNwbGF5OiB0YWJsZS1jZWxsICFkZWZhdWx0O1xuJHRhYmxlLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuQG1peGluIHRhYmxlIHtcbiAgYmFja2dyb3VuZDogJHRhYmxlLWJnO1xuICBtYXJnaW4tYm90dG9tOiAkdGFibGUtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyOiAkdGFibGUtYm9yZGVyLXN0eWxlICR0YWJsZS1ib3JkZXItc2l6ZSAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICB0YWJsZS1sYXlvdXQ6ICR0YWJsZS1sYXlvdXQ7XG5cbiAgY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWNhcHRpb24tYmc7XG4gICAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJHRhYmxlLWNhcHRpb24tZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiAkdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDtcbiAgICB9XG4gIH1cblxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmc7XG5cbiAgICB0ciB7XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLWhlYWQtcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtaGVhZC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1mb290LXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWZvb3QtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLWZvb3QtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcm93LXBhZGRpbmc7XG4gICAgICBmb250LXNpemU6ICR0YWJsZS1yb3ctZm9udC1zaXplO1xuICAgICAgY29sb3I6ICR0YWJsZS1yb3ctZm9udC1jb2xvcjtcbiAgICAgIHRleHQtYWxpZ246ICRkZWZhdWx0LWZsb2F0O1xuICAgIH1cblxuICAgICYuZXZlbixcbiAgICAmLmFsdCxcbiAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHsgYmFja2dyb3VuZDogJHRhYmxlLWV2ZW4tcm93LWJnOyB9XG4gIH1cblxuICB0aGVhZCB0ciB0aCxcbiAgdGZvb3QgdHIgdGgsXG4gIHRmb290IHRyIHRkLFxuICB0Ym9keSB0ciB0aCxcbiAgdGJvZHkgdHIgdGQsXG4gIHRyIHRkIHsgZGlzcGxheTogJHRhYmxlLWRpc3BsYXk7IGxpbmUtaGVpZ2h0OiAkdGFibGUtbGluZS1oZWlnaHQ7IH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFibGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10YWJsZS1jbGFzc2VzIHtcbiAgICB0YWJsZSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYmctY29sb3I6ICRzaWx2ZXIgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTYlKSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6ICgkY29sdW1uLWd1dHRlci8yKSAhZGVmYXVsdDtcblxuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFiXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFicy1jbGFzc2VzIHtcbiAgICAudGFicyB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgZGQsIC50YWItdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICA+IGEge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yO1xuICAgICAgICAgIHBhZGRpbmc6ICR0YWJzLW5hdmlnYXRpb24tcGFkZGluZyAkdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmcgKiAyO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmZvY3Vze1xuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbG9yOiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBkZDpmaXJzdC1jaGlsZCwgLnRhYjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYSB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICBkZDpsYXN0LWNoaWxkLCAudGFiOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGEgeyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRkLCAudGFiLXRpdGxlIHtcbiAgICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicy1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICBwYWRkaW5nOiAkdGFicy1jb250ZW50LXBhZGRpbmcgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICYuYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBub25lOyB9XG4gICAgICAgICYuY29udGFpbmVkIHsgcGFkZGluZzogJHRhYnMtY29udGVudC1wYWRkaW5nOyB9XG4gICAgICB9XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgID4gLmNvbnRlbnQgeyBwYWRkaW5nOiAwICR0YWJzLWNvbnRlbnQtcGFkZGluZzsgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAudGFicyB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgIG1hcmdpbjogMCAwICR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnRhYnMtY29udGVudCB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLTFweDtcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAxcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5uby1qcyB7XG4gICAgICAudGFicy1jb250ZW50ID4gLmNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfdGh1bWJzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbHMuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzXG4kdGh1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItd2lkdGg6IDRweCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssLjIpICFkZWZhdWx0O1xuJHRodW1iLWJveC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsMC41KSAhZGVmYXVsdDtcblxuLy8gUmFkaXVzIGFuZCB0cmFuc2l0aW9uIHNwZWVkIGZvciB0aHVtYnNcbiR0aHVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHRodW1iLXRyYW5zaXRpb24tc3BlZWQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGltYWdlIHRodW1ibmFpbCBzdHlsZXMuXG4vL1xuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciBhcm91bmQgdGh1bWJuYWlsLiBEZWZhdWx0OiAkdGh1bWItYm9yZGVyLXdpZHRoLlxuLy8gJGJveC1zaGFkb3cgLSBCb3ggc2hhZG93IHRvIGFwcGx5IHRvIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJveC1zaGFkb3cuXG4vLyAkYm94LXNoYWRvdy1ob3ZlciAtIEJveCBzaGFkb3cgdG8gYXBwbHkgb24gaG92ZXIuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyLlxuQG1peGluIHRodW1iKFxuICAkYm9yZGVyLXdpZHRoOiR0aHVtYi1ib3JkZXItd2lkdGgsIFxuICAkYm94LXNoYWRvdzokdGh1bWItYm94LXNoYWRvdywgXG4gICRib3gtc2hhZG93LWhvdmVyOiR0aHVtYi1ib3gtc2hhZG93LWhvdmVyKSB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogJHRodW1iLWJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICR0aHVtYi1ib3JkZXItY29sb3I7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctaG92ZXI7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwidGh1bWJcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzIHtcblxuICAgIC8qIEltYWdlIFRodW1ibmFpbHMgKi9cbiAgICAudGgge1xuICAgICAgQGluY2x1ZGUgdGh1bWI7XG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihhbGwsJHRodW1iLXRyYW5zaXRpb24tc3BlZWQsZWFzZS1vdXQpO1xuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkdGh1bWItcmFkaXVzKTsgfVxuICAgIH1cbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIFRvb2x0aXAgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC10b29sdGlwLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkaXJvbiAhZGVmYXVsdDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRoYXMtdGlwLWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tLWhvdmVyOiBkb3R0ZWQgMXB4IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNTUlKSAhZGVmYXVsdDtcbiRoYXMtdGlwLWZvbnQtY29sb3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGhhcy10aXAtY3Vyc29yLXR5cGU6IGhlbHAgIWRlZmF1bHQ7XG5cbiR0b29sdGlwLXBhZGRpbmc6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiR0b29sdGlwLWJnOiAkb2lsICFkZWZhdWx0O1xuJHRvb2x0aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiR0b29sdGlwLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b29sdGlwLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XG4kdG9vbHRpcC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiR0b29sdGlwLWNsb3NlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHRvb2x0aXAtY2xvc2UtZm9udC1jb2xvcjogJG1vbnNvb24gIWRlZmF1bHQ7XG4kdG9vbHRpcC1mb250LXNpemUtc21sOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHRvb2x0aXAtcm91bmRlZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuJHRvb2x0aXAtcGlwLXNpemU6IDVweCAhZGVmYXVsdDtcbiR0b29sdGlwLW1heC13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0b29sdGlwXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdG9vbHRpcC1jbGFzc2VzIHtcblxuICAgIC8qIFRvb2x0aXBzICovXG4gICAgLmhhcy10aXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgICAgIGN1cnNvcjogJGhhcy10aXAtY3Vyc29yLXR5cGU7XG4gICAgICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gICAgICBjb2xvcjogJGhhcy10aXAtZm9udC1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tLWhvdmVyO1xuICAgICAgICBjb2xvcjogJGhhcy10aXAtZm9udC1jb2xvci1ob3ZlcjtcbiAgICAgIH1cblxuICAgICAgJi50aXAtbGVmdCxcbiAgICAgICYudGlwLXJpZ2h0IHsgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIH1cblxuICAgIC50b29sdGlwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMDA2O1xuICAgICAgZm9udC13ZWlnaHQ6ICR0b29sdGlwLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJHRvb2x0aXAtbGluZS1oZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAkdG9vbHRpcC1wYWRkaW5nO1xuICAgICAgbWF4LXdpZHRoOiAkdG9vbHRpcC1tYXgtd2lkdGg7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogNTAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogJHRvb2x0aXAtZm9udC1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6ICR0b29sdGlwLWJnO1xuXG4gICAgICAmPi5udWIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICR0b29sdGlwLXBpcC1zaXplO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlcjogc29saWQgJHRvb2x0aXAtcGlwLXNpemU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRvb2x0aXAtYmcgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRvcDogLSgkdG9vbHRpcC1waXAtc2l6ZSAqIDIpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAmLnJ0bCB7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9vbHRpcC1waXAtc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkdG9vbHRpcC1yYWRpdXMpO1xuICAgICAgfVxuICAgICAgJi5yb3VuZCB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkdG9vbHRpcC1yb3VuZGVkKTtcbiAgICAgICAgJj4ubnViIHtcbiAgICAgICAgICBsZWZ0OiAycmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbmVkIHtcbiAgICAgICAgY29sb3I6ICRoYXMtdGlwLWZvbnQtY29sb3ItaG92ZXIgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbS1ob3ZlciAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50YXAtdG8tY2xvc2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6ICR0b29sdGlwLWNsb3NlLWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiAkdG9vbHRpcC1jbG9zZS1mb250LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6ICR0b29sdGlwLWNsb3NlLWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbH0ge1xuICAgICAgLnRvb2x0aXAge1xuICAgICAgICAmPi5udWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRvb2x0aXAtYmcgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgdG9wOiAtKCR0b29sdGlwLXBpcC1zaXplICogMik7XG4gICAgICAgIH1cbiAgICAgICAgJi50aXAtdG9wPi5udWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHRvb2x0aXAtYmcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIGJvdHRvbTogLSgkdG9vbHRpcC1waXAtc2l6ZSAqIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50aXAtbGVmdCxcbiAgICAgICAgJi50aXAtcmlnaHQgeyBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgJi50aXAtbGVmdD4ubnViIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0b29sdGlwLWJnO1xuICAgICAgICAgIHJpZ2h0OiAtKCR0b29sdGlwLXBpcC1zaXplICogMik7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtcGlwLXNpemU7XG4gICAgICAgIH1cbiAgICAgICAgJi50aXAtcmlnaHQ+Lm51YiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdG9vbHRpcC1iZyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAtKCR0b29sdGlwLXBpcC1zaXplICogMik7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLSR0b29sdGlwLXBpcC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcblxuLy9cbi8vIFRvcCBCYXIgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXJcbiR0b3BiYXItYmctY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWJnOiAkdG9wYmFyLWJnLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBIZWlnaHQgYW5kIG1hcmdpblxuJHRvcGJhci1oZWlnaHQ6IHJlbS1jYWxjKDQ1KSAhZGVmYXVsdDtcbiR0b3BiYXItbWFyZ2luLWJvdHRvbTogMCAhZGVmYXVsdDtcblxuLy8gQ29udHJvbGxpbmcgdGhlIHN0eWxlcyBmb3IgdGhlIHRpdGxlIGluIHRoZSB0b3AgYmFyXG4kdG9wYmFyLXRpdGxlLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiR0b3BiYXItdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxNykgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgbGluayBjb2xvcnMgYW5kIHN0eWxlcyBmb3IgdG9wLWxldmVsIG5hdlxuJHRvcGJhci1saW5rLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstY29sb3ItaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1jb2xvci1hY3RpdmUtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstaG92ZXItbGlnaHRuZXNzOiAtMTAlICFkZWZhdWx0OyAvLyBEYXJrZW4gYnkgMTAlXG4kdG9wYmFyLWxpbmstYmc6ICR0b3BiYXItYmcgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstYmctaG92ZXI6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI6ICRjaGFyY29hbCAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1iZy1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWJnLWFjdGl2ZS1ob3Zlcjogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1wYWRkaW5nOiAoJHRvcGJhci1oZWlnaHQgLyAzKSAhZGVmYXVsdDtcbiR0b3BiYXItYmFjay1saW5rLXNpemU6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1kcm9wZG93bi1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kdG9wYmFyLWJ1dHRvbi1mb250LXNpemU6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kdG9wYmFyLWJ1dHRvbi10b3A6IDdweCAhZGVmYXVsdDtcblxuLy8gU3R5bGUgdGhlIHRvcCBiYXIgZHJvcGRvd24gZWxlbWVudHNcbiR0b3BiYXItZHJvcGRvd24tYmc6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvci1ob3ZlcjogJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLWJnOiAkb2lsICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLWJnLWhvdmVyOiAkb2lsICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemU6IDVweCAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYTogMC40ICFkZWZhdWx0O1xuXG4kdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWNvbG9yOiAkbW9uc29vbiAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtYmc6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFRvcCBtZW51IGljb24gc3R5bGVzXG4kdG9wYmFyLW1lbnUtbGluay10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiR0b3BiYXItbWVudS1saW5rLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWxpbmstd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiR0b3BiYXItbWVudS1saW5rLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLW1lbnUtaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWxpbmstY29sb3ItdG9nZ2xlZDogJGp1bWJvICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZDogJGp1bWJvICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWljb24tcG9zaXRpb246ICRvcHBvc2l0ZS1kaXJlY3Rpb24gIWRlZmF1bHQ7IC8vIENoYW5nZSB0byAkZGVmYXVsdC1mbG9hdCBmb3IgYSBsZWZ0IG1lbnUgaWNvblxuXG4vLyBUcmFuc2l0aW9ucyBhbmQgYnJlYWtwb2ludCBzdHlsZXNcbiR0b3BiYXItdHJhbnNpdGlvbi1zcGVlZDogMzAwbXMgIWRlZmF1bHQ7XG4vLyBVc2luZyByZW0tY2FsYyBmb3IgdGhlIGJlbG93IGJyZWFrcG9pbnQgY2F1c2VzIGlzc3VlcyB3aXRoIHRvcCBiYXJcbiR0b3BiYXItYnJlYWtwb2ludDogI3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0gIWRlZmF1bHQ7IC8vIENoYW5nZSB0byA5OTk5cHggZm9yIGFsd2F5cyBtb2JpbGUgbGF5b3V0XG4kdG9wYmFyLW1lZGlhLXF1ZXJ5OiAkbWVkaXVtLXVwICFkZWZhdWx0O1xuXG4vLyBUb3AtYmFyIGlucHV0IHN0eWxlc1xuJHRvcGJhci1pbnB1dC1oZWlnaHQ6IHJlbS1jYWxjKDI4KSAhZGVmYXVsdDtcblxuLy8gRGl2aWRlciBTdHlsZXNcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItYm90dG9tOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogMTMlKSAhZGVmYXVsdDtcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItdG9wOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTUwJSkgIWRlZmF1bHQ7XG5cbi8vIFN0aWNreSBDbGFzc1xuJHRvcGJhci1zdGlja3ktY2xhc3M6IFwiLnN0aWNreVwiICFkZWZhdWx0O1xuJHRvcGJhci1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7IC8vU2V0IGZhbHNlIHRvIHJlbW92ZSB0aGUgdHJpYW5nbGUgaWNvbiBmcm9tIHRoZSBtZW51IGl0ZW1cbiR0b3BiYXItZHJvcGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0OyAvL1NldCBmYWxzZSB0byByZW1vdmUgdGhlIFxcMDBiYiA+PiB0ZXh0IGZyb20gZHJvcGRvd24gc3VibmF2aWdhdGlvbiBsaVxuXG4vLyBBY2Nlc3NpYmlsaXR5IG1peGlucyBmb3IgaGlkaW5nIGFuZCBzaG93aW5nIHRoZSBtZW51IGRyb3Bkb3duIGl0ZW1zXG5AbWl4aW4gdG9wYmFyLWhpZGUtZHJvcGRvd24ge1xuICAvLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiBieSBkZWZhdWx0LCBidXQgdmlzaWJsZSB3aGVuIGZvY3VzZWQuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZSgpO1xufVxuXG5AbWl4aW4gdG9wYmFyLXNob3ctZHJvcGRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmKCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvLyBSZXNldCB0aGUgcG9zaXRpb24gZnJvbSBzdGF0aWMgdG8gYWJzb2x1dGVcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRvcC1iYXJcIikge1xuXG4gIEBpZiAkaW5jbHVkZS1odG1sLXRvcC1iYXItY2xhc3NlcyB7XG5cbiAgICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXG4gICAgLy8gVGhpcyBjbGFzcyBpcyBnZW5lcmF0ZWQgZGVzcGl0ZSB0aGUgdmFsdWUgb2YgJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXNcbiAgICAvLyB0byBlbnN1cmUgd2lkdGggY2FsY3VsYXRpb25zIHdvcmsgY29ycmVjdGx5LlxuICAgIG1ldGEuZm91bmRhdGlvbi1tcS10b3BiYXIge1xuICAgICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkdG9wYmFyLW1lZGlhLXF1ZXJ5KSArIFwiL1wiO1xuICAgICAgd2lkdGg6ICR0b3BiYXItYnJlYWtwb2ludDtcbiAgICB9XG5cbiAgICAvKiBXcmFwcGVkIGFyb3VuZCAudG9wLWJhciB0byBjb250YWluIHRvIGdyaWQgd2lkdGggKi9cbiAgICAuY29udGFpbi10by1ncmlkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1iZztcblxuICAgICAgLnRvcC1iYXIgeyBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207IH1cbiAgICB9XG5cbiAgICAvLyBXcmFwcGVkIGFyb3VuZCAudG9wLWJhciB0byBtYWtlIGl0IHN0aWNrIHRvIHRoZSB0b3BcbiAgICAuZml4ZWQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDk5O1xuXG4gICAgICAmLmV4cGFuZGVkOm5vdCgudG9wLWJhcikge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC50aXRsZS1hcmVhIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRW5zdXJlIHlvdSBjYW4gc2Nyb2xsIHRoZSBtZW51IG9uIHNtYWxsIHNjcmVlbnNcbiAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XG4gICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhciB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207XG5cbiAgICAgIC8vIFRvcGJhciBHbG9iYWwgbGlzdCBTdHlsZXNcbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnJvdyB7IG1heC13aWR0aDogbm9uZTsgfVxuXG4gICAgICBmb3JtLFxuICAgICAgaW5wdXQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbiAgICAgIGlucHV0IHsgXG4gICAgICAgIGhlaWdodDogJHRvcGJhci1pbnB1dC1oZWlnaHQ7IFxuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtOyBcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4zNXJlbTsgXG4gICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1idXR0b24tZm9udC1zaXplOyBcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbiwgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IC4zNXJlbSArIHJlbS1jYWxjKDEpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjM1cmVtICsgcmVtLWNhbGMoMSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1idXR0b24tZm9udC1zaXplO1xuICAgICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vIHRvcDogLTFweDtcblxuICAgICAgICAvLyBDb3JyZWN0cyBhIHNsaWdodCBtaXNhbGlnbm1lbnQgd2hlbiBwdXQgbmV4dCB0byBhbiBpbnB1dCBmaWVsZFxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVGl0bGUgQXJlYVxuICAgICAgLnRpdGxlLWFyZWEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLm5hbWUge1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJlbS1iYXNlO1xuICAgICAgICAvLyBAaWYgJHRvcGJhci1tZW51LWljb24tcG9zaXRpb24gPT0gJGRlZmF1bHQtZmxvYXQge2Zsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO31cblxuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgcCwgc3BhbiB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci10aXRsZS1mb250LXNpemU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItdGl0bGUtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvcjtcbiAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE1lbnUgdG9nZ2xlIGJ1dHRvbiBvbiBzbWFsbCBkZXZpY2VzXG4gICAgICAudG9nZ2xlLXRvcGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skdG9wYmFyLW1lbnUtaWNvbi1wb3NpdGlvbn06IDA7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkdG9wYmFyLW1lbnUtbGluay10cmFuc2Zvcm07XG4gICAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyLW1lbnUtbGluay1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbWVudS1saW5rLXdlaWdodDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZGluZyB0aGUgY2xhc3MgXCJtZW51LWljb25cIiB3aWxsIGFkZCB0aGUgMy1saW5lIGljb24gcGVvcGxlIGxvdmUgYW5kIGFkb3JlLlxuICAgICAgICAmLm1lbnUtaWNvbiB7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC01OHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nK3JlbS1jYWxjKDI1KSAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgaGFtYnVyZ2VyIGljb25cbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBpY29uIHdpdGggdGhyZWUgbGluZXMgYWthIHRoZSBoYW1idXJnZXIgaWNvbiwgdGhlIG1lbnUtaWNvbiBvciB0aGUgbmF2aWNvblxuICAgICAgICAgICAgICAvLyAkd2lkdGggLSBXaWR0aCBvZiBoYW1idXJnZXIgaWNvblxuICAgICAgICAgICAgICAvLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuICAgICAgICAgICAgICAvLyAkdG9wIC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuICAgICAgICAgICAgICAvLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbiAgICAgICAgICAgICAgLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuICAgICAgICAgICAgICAvLyAkY29sb3IgLSBpY29uIGNvbG9yXG4gICAgICAgICAgICAgIC8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyLCBoZXJlIGl0IGlzbid0IHNldCBiL2MgaXQgd291bGQgb3ZlcnJpZGUgJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZFxuICAgICAgICAgICAgICAvLyAkb2ZmY2FudmFzIC0gU2V0IHRvIGZhbHNlIG9mIEBpbmNsdWRlIGluIHRvcGJhclxuICAgICAgICAgICAgICBAaW5jbHVkZSBoYW1idXJnZXIoMTZweCwgZmFsc2UsIDAsIDFweCwgNnB4LCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvciwgXCJcIiwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDaGFuZ2UgdGhpbmdzIHVwIHdoZW4gdGhlIHRvcC1iYXIgaXMgZXhwYW5kZWRcbiAgICAgICYuZXhwYW5kZWQge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIC50aXRsZS1hcmVhIHsgYmFja2dyb3VuZDogJHRvcGJhci1iZzsgfVxuXG4gICAgICAgIC50b2dnbGUtdG9wYmFyIHtcbiAgICAgICAgICBhIHsgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yLXRvZ2dsZWQ7XG4gICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgIC8vIFNoaCwgZG9uJ3QgdGVsbCwgYnV0IGJveC1zaGFkb3dzIGNyZWF0ZSB0aGUgbWVudSBpY29uIDopXG4gICAgICAgICAgICAgIC8vIENoYW5nZSB0aGUgY29sb3Igb2YgdGhlIGJhcnMgd2hlbiB0aGUgbWVudSBpcyBleHBhbmRlZCwgdXNpbmcgZ2l2ZW4gdGhpY2tuZXNzIGZyb20gaGFtYnVyZ2VyKCkgYWJvdmVcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICR0b3BiYXItbWVudS1pY29uLWNvbG9yLXRvZ2dsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDAgN3B4IDAgMXB4ICR0b3BiYXItbWVudS1pY29uLWNvbG9yLXRvZ2dsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDAgMTRweCAwIDFweCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvci10b2dnbGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJpZ2h0IGFuZCBMZWZ0IE5hdmlnYXRpb24gdGhhdCBzdGFja2VkIGJ5IGRlZmF1bHRcbiAgICAudG9wLWJhci1zZWN0aW9uIHtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbigkZGVmYXVsdC1mbG9hdCwgJHRvcGJhci10cmFuc2l0aW9uLXNwZWVkKTtcblxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkcmVtLWJhc2U7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmRpdmlkZXIsXG4gICAgICBbcm9sZT1cInNlcGFyYXRvclwiXSB7XG4gICAgICAgIGJvcmRlci10b3A6ICR0b3BiYXItZGl2aWRlci1ib3JkZXItdG9wO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICB1bCBsaSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tYmc7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgIHBhZGRpbmc6IDEycHggMCAxMnB4IDA7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR0b3BiYXItbGluay1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItbGluay1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTtcblxuICAgICAgICAgICYuYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1saW5rLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmJ1dHRvbi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAgICAgJi5idXR0b24uc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAgICAgJi5idXR0b24uYWxlcnQgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvcik7IH1cbiAgICAgICAgICAmLmJ1dHRvbi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvcik7IH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItbGluay1mb250LXNpemU7XG4gICAgICAgICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICAgICAgICYuc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAgICAgJi5hbGVydCB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgICAgICYud2FybmluZyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSB0aGUgaG92ZXIgbGluayBjb2xvciB3aGVuIGl0IGhhcyB0aGF0IGNsYXNzXG4gICAgICAgICY6aG92ZXI6bm90KC5oYXMtZm9ybSkgPiBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XG4gICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFwcGx5IHRoZSBhY3RpdmUgbGluayBjb2xvciB3aGVuIGl0IGhhcyB0aGF0IGNsYXNzXG4gICAgICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1hY3RpdmUtaG92ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHNvbWUgZXh0cmEgcGFkZGluZyBmb3IgbGlzdCBpdGVtcyBjb250YWlucyBidXR0b25zXG4gICAgICAuaGFzLWZvcm0geyBwYWRkaW5nOiAkdG9wYmFyLWxpbmstcGFkZGluZzsgfVxuXG4gICAgICAvLyBTdHlsaW5nIGZvciBsaXN0IGl0ZW1zIHRoYXQgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiB0aGVtLlxuICAgICAgLmhhcy1kcm9wZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmID4gYSB7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgKCR0b3BiYXItYXJyb3dzKXtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemUsIHJnYmEoJHRvcGJhci1kcm9wZG93bi10b2dnbGUtY29sb3IsICR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWFscGhhKSwgJGRlZmF1bHQtZmxvYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplIC8gMikgLSAyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubW92ZWQgeyBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICYgPiAuZHJvcGRvd24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmID4gYTphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTdHlsaW5nIGVsZW1lbnRzIGluc2lkZSBvZiBkcm9wZG93bnNcbiAgICAgIC5kcm9wZG93biB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIEBpbmNsdWRlIHRvcGJhci1oaWRlLWRyb3Bkb3duKCk7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItZHJvcGRvd24tbGluay13ZWlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAmLnBhcmVudC1saW5rIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi50aXRsZSBoNSwgJi5wYXJlbnQtbGluayB7XG4gICAgICAgICAgICAvLyBCYWNrIEJ1dHRvblxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItYmFjay1saW5rLXNpemU7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgLy8gbGluZS1oZWlnaHQ6ICgkdG9wYmFyLWhlaWdodCAvIDIpO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6bm9uZTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmhhcy1mb3JtIHsgcGFkZGluZzogOHB4ICR0b3BiYXItbGluay1wYWRkaW5nOyB9XG4gICAgICAgICAgLmJ1dHRvbiwgYnV0dG9uIHsgdG9wOiBhdXRvOyB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgcGFkZGluZzogOHB4ICR0b3BiYXItbGluay1wYWRkaW5nIDJweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWNvbG9yO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZ2VuZXJhdGVkIHsgZGlzcGxheTogYmxvY2s7IH1cblxuXG4gICAgLy8gVG9wIEJhciBzdHlsZXMgaW50ZW5kZWQgZm9yIHNjcmVlbiBzaXplcyBhYm92ZSB0aGUgYnJlYWtwb2ludC5cbiAgICBAbWVkaWEgI3skdG9wYmFyLW1lZGlhLXF1ZXJ5fSB7XG4gICAgICAudG9wLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICAudG9nZ2xlLXRvcGJhciB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAudGl0bGUtYXJlYSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuICAgICAgICAubmFtZSBoMSBhLFxuICAgICAgICAubmFtZSBoMiBhLFxuICAgICAgICAubmFtZSBoMyBhLFxuICAgICAgICAubmFtZSBoNCBhLFxuICAgICAgICAubmFtZSBoNSBhLFxuICAgICAgICAubmFtZSBoNiBhIHsgd2lkdGg6IGF1dG87IH1cblxuICAgICAgICBpbnB1dCxcbiAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWlucHV0LWhlaWdodDtcbiAgICAgICAgICB0b3A6ICgoJHRvcGJhci1oZWlnaHQgLSAkdG9wYmFyLWlucHV0LWhlaWdodCkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZXhwYW5kZWQgeyBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnOyB9XG4gICAgICB9XG5cbiAgICAgIC5jb250YWluLXRvLWdyaWQgLnRvcC1iYXIge1xuICAgICAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207XG4gICAgICB9XG5cbiAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihub25lLDAsMCk7XG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICAgIC5qcy1nZW5lcmF0ZWQgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICYuaG92ZXIge1xuICAgICAgICAgICAgPiBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctaG92ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpub3QoLmhhcy1mb3JtKSB7XG4gICAgICAgICAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnO1xuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmU6bm90KC5oYXMtZm9ybSkge1xuICAgICAgICAgICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctYWN0aXZlO1xuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctYWN0aXZlLWhvdmVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlLWhvdmVyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmhhcy1kcm9wZG93biB7XG4gICAgICAgICAgQGlmKCR0b3BiYXItYXJyb3dzKXtcbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZyArICR0b3BiYXItbGluay1kcm9wZG93bi1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplLCByZ2JhKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWNvbG9yLCAkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYSksIHRvcCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplIC8gMik7XG4gICAgICAgICAgICAgICAgdG9wOiAoJHRvcGJhci1oZWlnaHQgLyAyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYubW92ZWQgeyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmID4gLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLWhpZGUtZHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmhvdmVyLCAmLm5vdC1jbGljazpob3ZlciB7XG4gICAgICAgICAgICAmID4gLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgPiBhOmZvY3VzICsgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcGJhci1zaG93LWRyb3Bkb3duKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmRyb3Bkb3duIGxpLmhhcy1kcm9wZG93biB7XG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgIEBpZiAoJHRvcGJhci1kcm9wZG93bi1hcnJvd3Mpe1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDAwYmJcIjtcbiAgICAgICAgICAgICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiA1cHg7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tbGluay1iZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLmhhcy1mb3JtKTpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAmID4gYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kcm9wZG93bi1saW5rLWJnO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJjpob3ZlciA+IGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICBAaWYgKCR0b3BiYXItZHJvcGRvd24tbGluay1iZy1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kcm9wZG93bi1saW5rLWJnLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tbGFiZWwtYmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNlY29uZCBMZXZlbCBEcm9wZG93bnNcbiAgICAgICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAxMDAlO1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiA+IHVsID4gLmRpdmlkZXIsXG4gICAgICAgICYgPiB1bCA+IFtyb2xlPVwic2VwYXJhdG9yXCJdIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItZGl2aWRlci1ib3JkZXItYm90dG9tO1xuICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaGFzLWZvcm0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZztcbiAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQb3NpdGlvbiBvdmVycmlkZXMgZm9yIHVsLnJpZ2h0IGFuZCB1bC5sZWZ0XG4gICAgICAgIC4jeyRvcHBvc2l0ZS1kaXJlY3Rpb259IHtcbiAgICAgICAgICBsaSAuZHJvcGRvd24ge1xuICAgICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuXG4gICAgICAgICAgICBsaSAuZHJvcGRvd24geyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAxMDAlOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC4jeyRkZWZhdWx0LWZsb2F0fSB7XG4gICAgICAgICAgbGkgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgICAgICAgICAgbGkgLmRyb3Bkb3duIHsgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRGVncmFkZSBncmFjZWZ1bGx5IHdoZW4gSmF2YXNjcmlwdCBpcyBkaXNhYmxlZC4gRGlzcGxheXMgZHJvcGRvd24gYW5kIGNoYW5nZXNcbiAgICAgIC8vIGJhY2tncm91bmQgJiB0ZXh0IGNvbG9yIG9uIGhvdmVyLlxuICAgICAgLm5vLWpzIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGhvdmVyIGxpbmsgY29sb3Igd2hlbiBpdCBoYXMgdGhhdCBjbGFzc1xuICAgICAgICAgICY6aG92ZXIgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIEBpZiAoJHRvcGJhci1saW5rLWJnLWhvdmVyKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGFjdGl2ZSBsaW5rIGNvbG9yIHdoZW4gaXQgaGFzIHRoYXQgY2xhc3NcbiAgICAgICAgICAmOmFjdGl2ZSA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oYXMtZHJvcGRvd24ge1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJiA+IC5kcm9wZG93biB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRvcGJhci1zaG93LWRyb3Bkb3duKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgID4gYTpmb2N1cyArIC5kcm9wZG93biB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3BiYXItc2hvdy1kcm9wZG93bigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuXHQvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcblx0JG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG5cdC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3Rcblx0JG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcblx0QGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcblx0XHQkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2UpIHtcblx0QGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuXHRcdEByZXR1cm4gMDtcblx0fVxuXHRAcmV0dXJuIG50aCgkcmFuZ2UsIDEpO1xufVxuXG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG5cdEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuXHRcdEByZXR1cm4gOTk5OTk5OTk5OTk5O1xuXHR9XG5cdEByZXR1cm4gbnRoKCRyYW5nZSwgMik7XG59XG5cbi8vIFNUUklQIFVOSVRcbi8vIEl0IHN0cmlwcyB0aGUgdW5pdCBvZiBtZWFzdXJlIGFuZCByZXR1cm5zIGl0XG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG5cdEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLyBURVhUIElOUFVUIFRZUEVTXG5cbkBmdW5jdGlvbiB0ZXh0LWlucHV0cyggJHR5cGVzOiBhbGwsICRzZWxlY3RvcjogaW5wdXQgKSB7XG5cblx0JHJldHVybjogKCk7XG5cblx0JGFsbC10ZXh0LWlucHV0LXR5cGVzOiB0ZXh0IHBhc3N3b3JkIGRhdGUgZGF0ZXRpbWUgZGF0ZXRpbWUtbG9jYWwgbW9udGggd2VlayBlbWFpbCBudW1iZXIgc2VhcmNoIHRlbCB0aW1lIHVybCBjb2xvciB0ZXh0YXJlYTtcblxuXHRAaWYgJHR5cGVzID09IGFsbCB7XG5cdFx0JHR5cGVzOiAkYWxsLXRleHQtaW5wdXQtdHlwZXM7XG5cdH1cblxuXHRAZWFjaCAkdHlwZSBpbiAkdHlwZXMge1xuXHRcdEBpZiAkdHlwZSA9PSB0ZXh0YXJlYSB7XG5cdFx0XHRAaWYgJHNlbGVjdG9yID09IGlucHV0IHtcblx0XHRcdFx0JHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9JyksIGNvbW1hKVxuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdCRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfSN7JHNlbGVjdG9yfScpLCBjb21tYSlcblx0XHRcdH1cblx0XHR9IEBlbHNlIHtcblx0XHRcdCRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gJHJldHVybjtcblxufVxuXG4vLyBDT05WRVJUIFRPIFJFTVxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuXHQkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcblx0QGlmICgkdmFsdWUgPT0gMHJlbSkge1xuXHRcdCR2YWx1ZTogMDtcblx0fVxuXHQvLyBUdXJuIDByZW0gaW50byAwXG5cdEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gZGF0YSgkYXR0cikge1xuXHRAaWYgJG5hbWVzcGFjZSB7XG5cdFx0QHJldHVybiAnW2RhdGEtJyArICRuYW1lc3BhY2UgKyAnLScgKyAkYXR0ciArICddJztcblx0fVxuXG5cdEByZXR1cm4gJ1tkYXRhLScgKyAkYXR0ciArICddJztcbn1cblxuLy8gUkVNIENBTENcblxuLy8gTmV3IFN5bnRheCwgYWxsb3dzIHRvIG9wdGlvbmFsbHkgY2FsY3VsYXRlIG9uIGEgZGlmZmVyZW50IGJhc2UgdmFsdWUgdG8gY291bnRlciBjb21wb3VuZGluZyBlZmZlY3Qgb2YgcmVtJ3MuXG4vLyBDYWxsIHdpdGggMSwgMiwgMyBvciA0IHBhcmFtZXRlcnMsICdweCcgaXMgbm90IHJlcXVpcmVkIGJ1dCBzdXBwb3J0ZWQ6XG4vL1xuLy8gICByZW0tY2FsYygxMCAyMCAzMHB4IDQwKTtcbi8vXG4vLyBTcGFjZSBkZWxpbWl0ZWQsIGlmIHlvdSB3YW50IHRvIGRlbGltaXQgdXNpbmcgY29tbWEncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcbi8vXG4vLyAgIHJlbS1jYWxjKCgxMCwgMjAsIDMwLCA0MHB4KSk7XG4vL1xuLy8gT3B0aW9uYWxseSBjYWxsIHdpdGggYSBkaWZmZXJlbnQgYmFzZSAoZWc6IDhweCkgdG8gY2FsY3VsYXRlIHJlbS5cbi8vXG4vLyAgIHJlbS1jYWxjKDE2cHggMzJweCA0OHB4LCA4cHgpO1xuLy9cbi8vIElmIHlvdSByZXF1aXJlIHRvIGNvbW1hIHNlcGFyYXRlIHlvdXIgbGlzdFxuLy9cbi8vICAgcmVtLWNhbGMoKDE2cHgsIDMycHgsIDQ4KSwgOHB4KTtcblxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcblx0JG1heDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG5cdEBpZiAkbWF4ID09IDEge1xuXHRcdEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7XG5cdH1cblxuXHQkcmVtVmFsdWVzOiAoKTtcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcblx0XHQkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcblx0fVxuXHRAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpIHtcblx0QHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbS1jYWxjKCR2YWx1ZXMpIHtcblx0QHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc3R5bGVzXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiRoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzaXplc1xuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzcpICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIHNpemUgcmVkdWN0aW9uIG9uIHNtYWxsIHNjcmVlbnNcbiRoMS1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgyLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kaDMtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGg0LWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNS1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcbiRoNi1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCBob3cgc3ViaGVhZGVycyBhcmUgc3R5bGVkLlxuJHN1YmhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHN1YmhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcbiRzdWJoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIEEgZ2VuZXJhbCA8c21hbGw+IHN0eWxpbmdcbiRzbWFsbC1mb250LXNpemU6IDYwJSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBwYXJhZ3JhcGhzXG4kcGFyYWdyYXBoLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHBhcmFncmFwaC1saW5lLWhlaWdodDogMS42ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDogMS4zNSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgPGNvZGU+IHRhZ3NcbiRjb2RlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG4kY29kZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRjb2RlLWJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IDcwJSkgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNvZGUtYmFja2dyb3VuZC1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSkgIWRlZmF1bHQ7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyKSByZW0tY2FsYyg1KSByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGFuY2hvcnNcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIDxocj4gZWxlbWVudFxuJGhyLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGhyLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kaHItYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgbGlzdHNcbiRsaXN0LWZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxpc3QtZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsaXN0LWxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4xcmVtICFkZWZhdWx0O1xuJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjogMS40cmVtICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0OiAwICFkZWZhdWx0O1xuJGxpc3QtbmVzdGVkLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b206IC4zcmVtICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBibG9ja3F1b3Rlc1xuJGJsb2NrcXVvdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDIzJSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQWNyb255bSBzdHlsZXNcbiRhY3JvbnltLXVuZGVybGluZTogMXB4IGRvdHRlZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBwYWRkaW5nIGFuZCBtYXJnaW5cbiRtaWNyb2Zvcm1hdC1wYWRkaW5nOiByZW0tY2FsYygxMCAxMikgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtbWFyZ2luOiByZW0tY2FsYygwIDAgMjAgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4kbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGZ1bGwgbmFtZSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU6IHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3VtbWFyeSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgcGFkZGluZ1xuJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZzogcmVtLWNhbGMoMCAxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtYWJici1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYWJici1mb250LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzIG5hbWVzXG4kYWxpZ24tY2xhc3MtbmFtZXM6XG4gIHNtYWxsLW9ubHksXG4gIHNtYWxsLFxuICBtZWRpdW0tb25seSxcbiAgbWVkaXVtLFxuICBsYXJnZS1vbmx5LFxuICBsYXJnZSxcbiAgeGxhcmdlLW9ubHksXG4gIHhsYXJnZSxcbiAgeHhsYXJnZS1vbmx5LFxuICB4eGxhcmdlO1xuXG4vLyBUZXh0IGFsaWdubWVudCBicmVha3BvaW50c1xuJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzOlxuICAkc21hbGwtb25seSxcbiAgJHNtYWxsLXVwLFxuICAkbWVkaXVtLW9ubHksXG4gICRtZWRpdW0tdXAsXG4gICRsYXJnZS1vbmx5LFxuICAkbGFyZ2UtdXAsXG4gICR4bGFyZ2Utb25seSxcbiAgJHhsYXJnZS11cCxcbiAgJHh4bGFyZ2Utb25seSxcbiAgJHh4bGFyZ2UtdXA7XG5cbi8vIEdlbmVyYXRlcyB0ZXh0IGFsaWduIGFuZCBqdXN0aWZ5IGNsYXNzZXNcbkBtaXhpbiBhbGlnbi1jbGFzc2Vze1xuICAudGV4dC1sZWZ0ICAgIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWNlbnRlciAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAudGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGFsaWduLWNsYXNzLW5hbWVzKSB7XG4gICAgQG1lZGlhICN7KG50aCgkYWxpZ24tY2xhc3MtYnJlYWtwb2ludHMsICRpKSl9IHtcbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFR5cG9ncmFwaHkgUGxhY2Vob2xkZXJzXG4vL1xuXG4vLyBUaGVzZSB3aWxsIHRocm93IGEgZGVwcmVjYXRpb24gd2FybmluZyBpZiB1c2VkIHdpdGhpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGxlYWQge1xuICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICsgcmVtLWNhbGMoMy41KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1peGluIHN1YmhlYWRlciB7XG4gIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJHN1YmhlYWRlci1mb250LWNvbG9yO1xuICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci10b3AtbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW47XG59XG5AaW5jbHVkZSBleHBvcnRzKFwidHlwZVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXR5cGUtY2xhc3NlcyB7XG4gICAgLy8gUmVzcG9uc2l2ZSBUZXh0IGFsaWdubWVudFxuICAgIEBpbmNsdWRlIGFsaWduLWNsYXNzZXM7XG5cbiAgICAvKiBUeXBvZ3JhcGh5IHJlc2V0cyAqL1xuICAgIGRpdixcbiAgICBkbCxcbiAgICBkdCxcbiAgICBkZCxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBsaSxcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNixcbiAgICBwcmUsXG4gICAgZm9ybSxcbiAgICBwLFxuICAgIGJsb2NrcXVvdGUsXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgbWFyZ2luOjA7XG4gICAgICBwYWRkaW5nOjA7XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBMaW5rIFN0eWxlcyAqL1xuICAgIGEge1xuICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICBcdHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW1nIHsgYm9yZGVyOm5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IHBhcmFncmFwaCBzdHlsZXMgKi9cbiAgICBwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcblxuICAgICAgJi5sZWFkIHsgQGluY2x1ZGUgbGVhZDsgfVxuXG4gICAgICAmIGFzaWRlIHtcbiAgICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IGhlYWRlciBzdHlsZXMgKi9cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgICBjb2xvcjogJGhlYWRlci1mb250LWNvbG9yO1xuICAgICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXRvcC1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XG4gICAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcblxuICAgICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkc21hbGwtZm9udC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemUgLSAkaDEtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZSAtICRoMi1mb250LXJlZHVjdGlvbjsgfVxuICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplIC0gJGgzLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemUgLSAkaDQtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZSAtICRoNS1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplIC0gJGg2LWZvbnQtcmVkdWN0aW9uOyB9XG5cbiAgICAuc3ViaGVhZGVyIHsgQGluY2x1ZGUgc3ViaGVhZGVyOyB9XG5cbiAgICBociB7XG4gICAgICBib3JkZXI6ICRoci1ib3JkZXItc3R5bGUgJGhyLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGhyLWJvcmRlci13aWR0aCAwIDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbjogJGhyLW1hcmdpbiAwICgkaHItbWFyZ2luIC0gcmVtLWNhbGMoJGhyLWJvcmRlci13aWR0aCkpO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qIEhlbHBmdWwgVHlwb2dyYXBoeSBEZWZhdWx0cyAqL1xuICAgIGVtLFxuICAgIGkge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc3Ryb25nLFxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgY29kZSB7XG4gICAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkY29kZS1ib3JkZXItc2l6ZTtcbiAgICAgIGJvcmRlci1zdHlsZTogJGNvZGUtYm9yZGVyLXN0eWxlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29kZS1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8qIExpc3RzICovXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwge1xuICAgICAgZm9udC1zaXplOiAkbGlzdC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgICBmb250LWZhbWlseTogJGxpc3QtZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICAgICYubm8tYnVsbGV0IHtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICB1bCxcbiAgICAgICAgICBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBVbm9yZGVyZWQgTGlzdHMgKi9cbiAgICB1bCB7XG4gICAgICBsaSB7XG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc3F1YXJlLFxuICAgICAgJi5jaXJjbGUsXG4gICAgICAmLmRpc2Mge1xuICAgICAgICBsaSB1bCB7IGxpc3Qtc3R5bGU6IGluaGVyaXQ7IH1cbiAgICAgIH1cblxuICAgICAgJi5zcXVhcmUgeyBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmNpcmNsZSB7IGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYuZGlzYyB7IGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLm5vLWJ1bGxldCB7IGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBPcmRlcmVkIExpc3RzICovXG4gICAgb2wge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luO1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmaW5pdGlvbiBMaXN0cyAqL1xuICAgIGRsIHtcbiAgICAgIGR0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDtcbiAgICAgIH1cbiAgICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOyB9XG4gICAgfVxuXG4gICAgLyogQWJicmV2aWF0aW9ucyAqL1xuICAgIGFiYnIsXG4gICAgYWNyb255bSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1oZWxwLXZhbHVlO1xuICAgIH1cbiAgICBhYmJyIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgJlt0aXRsZV0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYWNyb255bS11bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQmxvY2txdW90ZXMgKi9cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICAgY2l0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJcXDIwMTQgXFwwMDIwXCI7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICBhOnZpc2l0ZWQge1xuICAgICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYmxvY2txdW90ZSxcbiAgICBibG9ja3F1b3RlIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtZm9udC1jb2xvcjtcbiAgICB9XG5cbiAgICAvKiBNaWNyb2Zvcm1hdHMgKi9cbiAgICAudmNhcmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAkbWljcm9mb3JtYXQtbWFyZ2luO1xuICAgICAgYm9yZGVyOiAkbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoICRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGUgJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjtcbiAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1wYWRkaW5nO1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuZm4ge1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZldmVudCB7XG4gICAgICAuc3VtbWFyeSB7IGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDsgfVxuXG4gICAgICBhYmJyIHtcbiAgICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uO1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIGgxLGgyLGgzLGg0LGg1LGg2IHsgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7IH1cbiAgICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XG4gICAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTsgfVxuICAgICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemU7IH1cbiAgICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XG4gICAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTsgfVxuICAgICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemU7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJ0eXBlXCI7XG5cbi8vIE9mZiBDYW52YXMgVGFiIEJhciBWYXJpYWJsZXNcbiRpbmNsdWRlLWh0bWwtb2ZmLWNhbnZhcy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbiR0YWJiYXItYmc6ICRvaWwgIWRlZmF1bHQ7XG4kdGFiYmFyLWhlaWdodDogcmVtLWNhbGMoNDUpICFkZWZhdWx0O1xuJHRhYmJhci1pY29uLXdpZHRoOiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbiR0YWJiYXItbGluZS1oZWlnaHQ6ICR0YWJiYXItaGVpZ2h0ICFkZWZhdWx0O1xuJHRhYmJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRhYmJhci1taWRkbGUtcGFkZGluZzogMCByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgRGl2aWRlciBTdHlsZXNcbiR0YWJiYXItbGVmdC1zZWN0aW9uLWJvcmRlcjogc29saWQgMXB4IHNjYWxlLWNvbG9yKCR0YWJiYXItYmcsICRsaWdodG5lc3M6IC01MCUpICFkZWZhdWx0O1xuJHRhYmJhci1yaWdodC1zZWN0aW9uLWJvcmRlcjogJHRhYmJhci1sZWZ0LXNlY3Rpb24tYm9yZGVyO1xuXG5cbi8vIE9mZiBDYW52YXMgVGFiIEJhciBIZWFkZXJzXG4kdGFiYmFyLWhlYWRlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRhYmJhci1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiR0YWJiYXItaGVhZGVyLWxpbmUtaGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbiR0YWJiYXItaGVhZGVyLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8gT2ZmIENhbnZhcyBNZW51IFZhcmlhYmxlc1xuJG9mZi1jYW52YXMtd2lkdGg6IHJlbS1jYWxjKDI1MCkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iZzogJG9pbCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkdGFiYmFyLWJnLCAkbGlnaHRuZXNzOiAtMzAlKSAhZGVmYXVsdDtcblxuLy8gT2ZmIENhbnZhcyBNZW51IExpc3QgVmFyaWFibGVzXG4kb2ZmLWNhbnZhcy1sYWJlbC1wYWRkaW5nOiAwLjNyZW0gcmVtLWNhbGMoMTUpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGFiZWwtY29sb3I6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxhYmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxhYmVsLWJnOiAkdHVhdGFyYSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci10b3A6IDFweCBzb2xpZCBzY2FsZS1jb2xvcigkb2ZmLWNhbnZhcy1sYWJlbC1iZywgJGxpZ2h0bmVzczogMTQlKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci1ib3R0b206IG5vbmUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC1tYXJnaW46MCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxpbmstcGFkZGluZzogcmVtLWNhbGMoMTAsIDE1KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxpbmstY29sb3I6IHJnYmEoJHdoaXRlLCAwLjcpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGluay1ib3JkZXItYm90dG9tOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtYmcsICRsaWdodG5lc3M6IC0yNSUpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmFjay1iZzogIzQ0NCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2stYm9yZGVyLXRvcDogJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLXRvcCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2stYm9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLWJvdHRvbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2staG92ZXItYmc6IHNjYWxlLWNvbG9yKCRvZmYtY2FudmFzLWJhY2stYmcsICRsaWdodG5lc3M6IC0zMCUpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItdG9wOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtbGFiZWwtYmcsICRsaWdodG5lc3M6IDE0JSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJvcmRlci1ib3R0b206IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgTWVudSBJY29uIFZhcmlhYmxlc1xuJHRhYmJhci1tZW51LWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJiYXItbWVudS1pY29uLWhvdmVyOiBzY2FsZS1jb2xvcigkdGFiYmFyLW1lbnUtaWNvbi1jb2xvciwgJGxpZ2h0bmVzczogLTMwJSkgIWRlZmF1bHQ7XG5cbiR0YWJiYXItbWVudS1pY29uLXRleHQtaW5kZW50OiByZW0tY2FsYygzNSkgIWRlZmF1bHQ7XG4kdGFiYmFyLW1lbnUtaWNvbi13aWR0aDogJHRhYmJhci1pY29uLXdpZHRoICFkZWZhdWx0O1xuJHRhYmJhci1tZW51LWljb24taGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbiR0YWJiYXItbWVudS1pY29uLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbiR0YWJiYXItaGFtYnVyZ2VyLWljb24td2lkdGg6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJiYXItaGFtYnVyZ2VyLWljb24tbGVmdDogZmFsc2UgIWRlZmF1bHQ7XG4kdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRvcDogZmFsc2UgIWRlZmF1bHQ7XG4kdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzczogMXB4ICFkZWZhdWx0O1xuJHRhYmJhci1oYW1idXJnZXItaWNvbi1nYXA6IDZweCAhZGVmYXVsdDtcblxuLy8gT2ZmIENhbnZhcyBCYWNrLUxpbmsgT3ZlcmxheVxuJG9mZi1jYW52YXMtb3ZlcmxheS10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zIGVhc2UgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1vdmVybGF5LWN1cnNvcjogcG9pbnRlciAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW92ZXJsYXktYm94LXNoYWRvdzogLTRweCAwIDRweCByZ2JhKCRibGFjaywgMC41KSwgNHB4IDAgNHB4IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkd2hpdGUsIDAuMDUpICFkZWZhdWx0O1xuXG4vLyBUcmFuc2l0aW9uIFZhcmlhYmxlc1xuJG1lbnUtc2xpZGU6IFwidHJhbnNmb3JtIDUwMG1zIGVhc2VcIiAhZGVmYXVsdDtcblxuXG4vLyBNSVhJTlNcbi8vIFJlbW92ZSB0cmFuc2l0aW9uIGZsaWNrZXIgb24gcGhvbmVzXG5AbWl4aW4ga2lsbC1mbGlja2VyIHtcbiAgLy8gLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMHgpO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLy8gQmFzaWMgcHJvcGVydGllcyBmb3IgdGhlIGNvbnRlbnQgd3JhcHNcbkBtaXhpbiB3cmFwLWJhc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWl4aW4gdHJhbnNsYXRlM2QoJHR4LCR0eSwkdHopIHtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgkdHgsJHR5KTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KTtcbiAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KVxufVxuXG4vLyBiYXNpYyBzdHlsZXMgZm9yIG9mZi1jYW52YXMgbWVudSBjb250YWluZXJcbkBtaXhpbiBvZmYtY2FudmFzLW1lbnUoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGtpbGwtZmxpY2tlcjtcbiAgKiB7IEBpbmNsdWRlIGtpbGwtZmxpY2tlcjsgfVxuICB3aWR0aDogJG9mZi1jYW52YXMtd2lkdGg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmc7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZSAwcztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcblxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICBAaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgxMDAlLDAsMCk7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cblxuLy8gT0ZGIENBTlZBUyBXUkFQXG4vLyBXcmFwIHZpc2libGUgY29udGVudCBhbmQgcHJldmVudCBzY3JvbGwgYmFyc1xuQG1peGluIG9mZi1jYW52YXMtd3JhcCB7XG4gIEBpbmNsdWRlIGtpbGwtZmxpY2tlcjtcbiAgQGluY2x1ZGUgd3JhcC1iYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmLm1vdmUtcmlnaHQsXG4gICYubW92ZS1sZWZ0IHsgbWluLWhlaWdodDogMTAwJTsgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG59XG5cbi8vIElOTkVSIFdSQVBcbi8vIE1haW4gY29udGVudCBhcmVhIHRoYXQgbW92ZXMgdG8gcmV2ZWFsIHRoZSBvZmYtY2FudmFzIG5hdlxuQG1peGluIGlubmVyLXdyYXAge1xuICAvLyBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG4gIC8vIHJlbW92ZWQgZm9yIG5vdyB0aWxsIGNocm9tZSBmaXhlcyBiYWNrZmFjZSBpc3N1ZVxuICBAaW5jbHVkZSB3cmFwLWJhc2U7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtI3skbWVudS1zbGlkZX07XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei0jeyRtZW51LXNsaWRlfTtcbiAgLW1zLXRyYW5zaXRpb246IC1tcy0jeyRtZW51LXNsaWRlfTtcbiAgLW8tdHJhbnNpdGlvbjogLW8tI3skbWVudS1zbGlkZX07XG4gIHRyYW5zaXRpb246ICN7JG1lbnUtc2xpZGV9O1xufVxuXG4vLyBUQUIgQkFSXG4vLyBUaGlzIGlzIHRoZSB0YWIgYmFyIGJhc2VcbkBtaXhpbiB0YWItYmFyLWJhc2Uge1xuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG5cbiAgLy8gYmFzZSBzdHlsZXNcbiAgYmFja2dyb3VuZDogJHRhYmJhci1iZztcbiAgY29sb3I6ICR0YWJiYXItY29sb3I7XG4gIGhlaWdodDogJHRhYmJhci1oZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkdGFiYmFyLWxpbmUtaGVpZ2h0O1xuXG4gIC8vIG1ha2Ugc3VyZSBpdCdzIGJlbG93IHRoZSAuZXhpdC1vZmYtY2FudmFzIGxpbmtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyB6LWluZGV4OiA5OTk7XG5cbiAgLy8gVHlwb2dyYXBoeVxuICBoMSxoMixoMyxoNCxoNSxoNiB7XG4gICAgY29sb3I6ICR0YWJiYXItaGVhZGVyLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGFiYmFyLWhlYWRlci13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICR0YWJiYXItaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbjogJHRhYmJhci1oZWFkZXItbWFyZ2luO1xuICB9XG4gIGgxLGgyLGgzLGg0IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XG59XG5cbi8vIFNNQUxMIFNFQ1RJT05TXG4vLyBUaGVzZSBhcmUgc21hbGwgc2VjdGlvbnMgb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHRoYXQgY29udGFpbiB0aGUgb2ZmLWNhbnZhcyB0b2dnbGUgYnV0dG9ucztcbkBtaXhpbiB0YWJiYXItc21hbGwtc2VjdGlvbigkcG9zaXRpb24pIHtcbiAgd2lkdGg6ICR0YWJiYXItaWNvbi13aWR0aDtcbiAgaGVpZ2h0OiAkdGFiYmFyLWhlaWdodDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkdGFiYmFyLWxlZnQtc2VjdGlvbi1ib3JkZXI7XG4gICAgLy8gYm94LXNoYWRvdzogMXB4IDAgMCBzY2FsZS1jb2xvcigkdGFiYmFyLWJnLCAkbGlnaHRuZXNzOiAxMyUpO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgQGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgYm9yZGVyLWxlZnQ6ICR0YWJiYXItcmlnaHQtc2VjdGlvbi1ib3JkZXI7XG4gICAgLy8gYm94LXNoYWRvdzogLTFweCAwIDAgc2NhbGUtY29sb3IoJHRhYmJhci1iZywgJGxpZ2h0bmVzczogLTUwJSk7XG4gICAgcmlnaHQ6MDtcbiAgfVxufVxuXG5AbWl4aW4gdGFiLWJhci1zZWN0aW9uIHtcbiAgcGFkZGluZzogJHRhYmJhci1taWRkbGUtcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogJHRhYmJhci1oZWlnaHQ7XG4gIHRvcDogMDtcbiAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICYubGVmdCB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAmLnJpZ2h0IHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgfVxuXG4gIC8vIHN0aWxsIG5lZWQgdG8gbWFrZSB0aGVzZSBub24tcHJlc2VudGF0aW9uYWxcbiAgJi5sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAkdGFiYmFyLWljb24td2lkdGg7XG4gIH1cbiAgJi5yaWdodCB7XG4gICAgbGVmdDogJHRhYmJhci1pY29uLXdpZHRoO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gICYubWlkZGxlIHtcbiAgICBsZWZ0OiAkdGFiYmFyLWljb24td2lkdGg7XG4gICAgcmlnaHQ6ICR0YWJiYXItaWNvbi13aWR0aDtcbiAgfVxufVxuXG4vLyBPRkYgQ0FOVkFTIExJU1Rcbi8vIFRoaXMgaXMgdGhlIGxpc3Qgb2YgbGlua3MgaW4gdGhlIG9mZi1jYW52YXMgbWVudVxuQG1peGluIG9mZi1jYW52YXMtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZzowO1xuICBtYXJnaW46MDtcblxuICBsaSB7XG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAkb2ZmLWNhbnZhcy1sYWJlbC1wYWRkaW5nO1xuICAgICAgY29sb3I6ICRvZmYtY2FudmFzLWxhYmVsLWNvbG9yO1xuICAgICAgdGV4dC10cmFuc2Zvcm06ICRvZmYtY2FudmFzLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgZm9udC1zaXplOiAkb2ZmLWNhbnZhcy1sYWJlbC1mb250LXNpemU7XG4gICAgICBmb250LXdlaWdodDogJG9mZi1jYW52YXMtbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1sYWJlbC1iZztcbiAgICAgIGJvcmRlci10b3A6ICRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci10b3A7XG4gICAgICBib3JkZXItYm90dG9tOiAkb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItYm90dG9tO1xuICAgICAgbWFyZ2luOiAkb2ZmLWNhbnZhcy1sYWJlbC1tYXJnaW47XG4gICAgfVxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAkb2ZmLWNhbnZhcy1saW5rLXBhZGRpbmc7XG4gICAgICBjb2xvcjogJG9mZi1jYW52YXMtbGluay1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICRvZmYtY2FudmFzLWxpbmstYm9yZGVyLWJvdHRvbTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZy1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLyBCQUNLIExJTktcbi8vIFRoaXMgaXMgYW4gb3ZlcmxheSB0aGF0LCB3aGVuIGNsaWNrZWQsIHdpbGwgdG9nZ2xlIG9mZiB0aGUgb2ZmIGNhbnZhcyBtZW51XG5AbWl4aW4gYmFjay1saW5rIHtcbiAgICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG5cbiAgICB0cmFuc2l0aW9uOiAkb2ZmLWNhbnZhcy1vdmVybGF5LXRyYW5zaXRpb247XG4gICAgY3Vyc29yOiAkb2ZmLWNhbnZhcy1vdmVybGF5LWN1cnNvcjtcbiAgICBib3gtc2hhZG93OiAkb2ZmLWNhbnZhcy1vdmVybGF5LWJveC1zaGFkb3c7XG5cbiAgICAvLyBmaWxsIHRoZSBzY3JlZW5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDowO1xuICAgIHJpZ2h0OjA7XG4gICAgei1pbmRleDogMTAwMjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbn1cblxuLy9cbi8vIERFRkFVTFQgQ0xBU1NFU1xuLy9cbkBpbmNsdWRlIGV4cG9ydHMoXCJvZmZjYW52YXNcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1vZmYtY2FudmFzLWNsYXNzZXMge1xuXG4gICAgLm9mZi1jYW52YXMtd3JhcCB7IEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcDsgfVxuICAgIC5pbm5lci13cmFwIHsgQGluY2x1ZGUgaW5uZXItd3JhcDsgfVxuXG4gICAgLnRhYi1iYXIgeyBAaW5jbHVkZSB0YWItYmFyLWJhc2U7IH1cblxuICAgIC5sZWZ0LXNtYWxsIHsgQGluY2x1ZGUgdGFiYmFyLXNtYWxsLXNlY3Rpb24oJHBvc2l0aW9uOiBsZWZ0KTsgfVxuICAgIC5yaWdodC1zbWFsbCB7IEBpbmNsdWRlIHRhYmJhci1zbWFsbC1zZWN0aW9uKCRwb3NpdGlvbjogcmlnaHQpOyB9XG5cbiAgICAudGFiLWJhci1zZWN0aW9uIHsgQGluY2x1ZGUgdGFiLWJhci1zZWN0aW9uOyB9XG5cbiAgICAvLyBNRU5VIEJVVFRPTlxuICAgIC8vIFRoaXMgaXMgYSBsaXR0bGUgYm9udXMuIFlvdSBkb24ndCBuZWVkIGl0IGZvciBvZmYgY2FudmFzIHRvIHdvcmsuIE1peGlucyB0byBiZSB3cml0dGVuIGluIHRoZSBmdXR1cmUuXG4gICAgLnRhYi1iYXIgLm1lbnUtaWNvbiB7XG4gICAgICB0ZXh0LWluZGVudDogJHRhYmJhci1tZW51LWljb24tdGV4dC1pbmRlbnQ7XG4gICAgICB3aWR0aDogJHRhYmJhci1tZW51LWljb24td2lkdGg7XG4gICAgICBoZWlnaHQ6ICR0YWJiYXItbWVudS1pY29uLWhlaWdodDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogJHRhYmJhci1tZW51LWljb24tcGFkZGluZztcbiAgICAgIGNvbG9yOiAkdGFiYmFyLW1lbnUtaWNvbi1jb2xvcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuXG4gICAgICAvLyBAaW5jbHVkZSBmb3IgdGhlIGhhbWJ1cmdlciBtZW51LWljb25cbiAgICAgIC8vXG4gICAgICAvLyBBcmd1bWVudHMgYXMgZm9sbG93czogKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yKVxuICAgICAgLy8gJHdpZHRoIC0gV2lkdGggb2YgaGFtYnVyZ2VyIGljb24gaW4gcmVtIERlZmF1bHQ6ICR0YWJiYXItaGFtYnVyZ2VyLWljb24td2lkdGguXG4gICAgICAvLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbSBEZWZhdWx0OiAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWxlZnQ9IEZhbHNlXG4gICAgICAvLyAkdG9wIC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbSBEZWZhdWx0OiA9IEZhbHNlXG4gICAgICAvLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHggRGVmYXVsdDogJHRhYmJhci1oYW1idXJnZXItaWNvbi10aGlja25lc3MgPSAxcHhcbiAgICAgIC8vICRnYXAgLSBzcGFjaW5nIGJldHdlZW4gdGhlIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHggRGVmYXVsdDogJHRhYmJhci1oYW1idXJnZXItaWNvbi1nYXAgPSA2cHhcbiAgICAgIC8vICRjb2xvciAtIGljb24gY29sb3IgRGVmYXVsdDogJHRhYmJhci1tZW51LWljb24tY29sb3JcbiAgICAgIC8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3Igd2hlbiBob3ZlcmVkIERlZmF1bHQ6ICR0YWJiYXItbWVudS1pY29uLWhvdmVyXG4gICAgICAvLyAkb2ZmY2FudmFzIC0gU2V0IHRvIHRydWVcbiAgICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXdpZHRoLCAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWxlZnQsICR0YWJiYXItaGFtYnVyZ2VyLWljb24tdG9wLCAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzcywgJHRhYmJhci1oYW1idXJnZXItaWNvbi1nYXAsICR0YWJiYXItbWVudS1pY29uLWNvbG9yLCAkdGFiYmFyLW1lbnUtaWNvbi1ob3ZlciwgdHJ1ZSlcbiAgICB9XG5cbiAgICAubGVmdC1vZmYtY2FudmFzLW1lbnUgeyBAaW5jbHVkZSBvZmYtY2FudmFzLW1lbnUoJHBvc2l0aW9uOiBsZWZ0KTsgfVxuICAgIC5yaWdodC1vZmYtY2FudmFzLW1lbnUgeyBAaW5jbHVkZSBvZmYtY2FudmFzLW1lbnUoJHBvc2l0aW9uOiByaWdodCk7IH1cblxuICAgIHVsLm9mZi1jYW52YXMtbGlzdCB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbGlzdDsgfVxuXG5cbiAgICAvLyBBTklNQVRJT04gQ0xBU1NFU1xuICAgIC8vIFRoZXNlIGNsYXNzZXMgYXJlIGFkZGVkIHdpdGggSlMgYW5kIHRyaWdnZXIgdGhlIGFjdHVhbCBhbmltYXRpb24uXG4gICAgLm1vdmUtcmlnaHQge1xuICAgICAgPiAuaW5uZXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKCRvZmYtY2FudmFzLXdpZHRoLDAsMCk7XG4gICAgICB9XG4gICAgICAuZXhpdC1vZmYtY2FudmFzIHsgQGluY2x1ZGUgYmFjay1saW5rO31cbiAgICB9XG5cbiAgICAubW92ZS1sZWZ0IHtcbiAgICAgID4gLmlubmVyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgtKCRvZmYtY2FudmFzLXdpZHRoKSwwLDApO1xuXG4gICAgICB9XG4gICAgICAuZXhpdC1vZmYtY2FudmFzIHsgQGluY2x1ZGUgYmFjay1saW5rOyB9XG4gICAgfVxuICAgIC5vZmZjYW52YXMtb3ZlcmxhcCB7XG4gICAgICAubGVmdC1vZmYtY2FudmFzLW1lbnUsIC5yaWdodC1vZmYtY2FudmFzLW1lbnUge1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLW1vei10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC1vLXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxMDAzO1xuICAgICAgfVxuICAgICAgLmV4aXQtb2ZmLWNhbnZhcyB7IEBpbmNsdWRlIGJhY2stbGluazsgfVxuICAgIH1cbiAgICAub2ZmY2FudmFzLW92ZXJsYXAtbGVmdCB7XG4gICAgICAucmlnaHQtb2ZmLWNhbnZhcy1tZW51IHtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAtby10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTAwMztcbiAgICAgIH1cbiAgICAgIC5leGl0LW9mZi1jYW52YXMgeyBAaW5jbHVkZSBiYWNrLWxpbms7IH1cbiAgICB9XG4gICAgLm9mZmNhbnZhcy1vdmVybGFwLXJpZ2h0IHtcbiAgICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAtbW96LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLW8tdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDEwMDM7XG4gICAgICB9XG4gICAgICAuZXhpdC1vZmYtY2FudmFzIHsgQGluY2x1ZGUgYmFjay1saW5rOyB9XG4gICAgfVxuXG4gICAgLy8gT2xkZXIgYnJvd3NlcnNcbiAgICAubm8tY3NzdHJhbnNmb3JtcyB7XG4gICAgICAubGVmdC1vZmYtY2FudmFzLW1lbnUgeyBsZWZ0OiAtKCRvZmYtY2FudmFzLXdpZHRoKTsgfVxuICAgICAgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB7IHJpZ2h0OiAtKCRvZmYtY2FudmFzLXdpZHRoKTsgfVxuXG4gICAgICAubW92ZS1sZWZ0ID4gLmlubmVyLXdyYXAgeyByaWdodDogJG9mZi1jYW52YXMtd2lkdGg7IH1cbiAgICAgIC5tb3ZlLXJpZ2h0ID4gLmlubmVyLXdyYXAgeyBsZWZ0OiAkb2ZmLWNhbnZhcy13aWR0aDsgfVxuICAgIH1cblxuICB9XG59XG5cbi8vXG4vLyBPZmYtQ2FudmFzIFN1Ym1lbnUgQ2xhc3Nlc1xuLy9cbkBtaXhpbiBvZmYtY2FudmFzLXN1Ym1lbnUoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGtpbGwtZmxpY2tlcjtcbiAgKiB7IEBpbmNsdWRlIGtpbGwtZmxpY2tlcjsgfVxuICB3aWR0aDogJG9mZi1jYW52YXMtd2lkdGg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZztcbiAgei1pbmRleDogMTAwMjtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgQGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMTAwJSwwLDApO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC0jeyRtZW51LXNsaWRlfTtcbiAgLW1vei10cmFuc2l0aW9uOiAtbW96LSN7JG1lbnUtc2xpZGV9O1xuICAtbXMtdHJhbnNpdGlvbjogLW1zLSN7JG1lbnUtc2xpZGV9O1xuICAtby10cmFuc2l0aW9uOiAtby0jeyRtZW51LXNsaWRlfTtcbiAgdHJhbnNpdGlvbjogI3skbWVudS1zbGlkZX07XG5cbiAgLy9iYWNrIGJ1dHRvbiBzdHlsZSBsaWtlIGxhYmVsXG4gIC5iYWNrID4gYSB7XG4gICAgcGFkZGluZzogJG9mZi1jYW52YXMtbGFiZWwtcGFkZGluZztcbiAgICBjb2xvcjogJG9mZi1jYW52YXMtbGFiZWwtY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRvZmYtY2FudmFzLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgIGZvbnQtd2VpZ2h0OiAkb2ZmLWNhbnZhcy1sYWJlbC1mb250LXdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrLWJnO1xuICAgIGJvcmRlci10b3A6ICRvZmYtY2FudmFzLWJhY2stYm9yZGVyLXRvcDtcbiAgICBib3JkZXItYm90dG9tOiAkb2ZmLWNhbnZhcy1iYWNrLWJvcmRlci1ib3R0b207XG4gICAgJjpob3ZlciB7XG4gICAgXHRiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJnO1xuICAgIFx0Ym9yZGVyLXRvcDogJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItdG9wO1xuICAgIFx0Ym9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItYm90dG9tO1xuICAgIH1cbiAgICBtYXJnaW46ICRvZmYtY2FudmFzLWxhYmVsLW1hcmdpbjtcbiAgICBAaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IGxlZnQpO1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgQGluY2x1ZGUgaWNvbi1kb3VibGUtYXJyb3dzKCRwb3NpdGlvbjogcmlnaHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICBAaWYgJHRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiBsZWZ0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLy9MZWZ0IGRvdWJsZSBhbmdsZSBxdW90ZSBvciBSaWdodCBkb3VibGUgYW5nbGUgcXVvdGUgY2hhcnNcbkBtaXhpbiBpY29uLWRvdWJsZS1hcnJvd3MgKCRwb3NpdGlvbil7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgY29udGVudDogXCJcXEFCXCI7XG4gICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIH1cbiAgfVxuICBAaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBjb250ZW50OiBcIlxcQkJcIjtcbiAgICBAaWYgJHRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuICB9XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuQGlmICRpbmNsdWRlLWh0bWwtb2ZmLWNhbnZhcy1jbGFzc2VzIHtcbiAgLmxlZnQtc3VibWVudSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1zdWJtZW51KCRwb3NpdGlvbjogbGVmdCk7XG4gICAgJi5tb3ZlLXJpZ2h0LCAmLm9mZmNhbnZhcy1vdmVybGFwLXJpZ2h0LCAmLm9mZmNhbnZhcy1vdmVybGFwIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAlLDAsMCk7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXN1Ym1lbnUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtc3VibWVudSgkcG9zaXRpb246IHJpZ2h0KTtcbiAgICAmLm1vdmUtbGVmdCwgJi5vZmZjYW52YXMtb3ZlcmxhcC1sZWZ0LCAmLm9mZmNhbnZhcy1vdmVybGFwIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAlLDAsMCk7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB1bC5vZmYtY2FudmFzLWxpc3QgbGkuaGFzLXN1Ym1lbnUgPiBhOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiBsZWZ0KTtcbiAgICB9XG4gICAgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB1bC5vZmYtY2FudmFzLWxpc3QgbGkuaGFzLXN1Ym1lbnUgPiBhOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IHJpZ2h0KTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB1bC5vZmYtY2FudmFzLWxpc3QgbGkuaGFzLXN1Ym1lbnUgPiBhOmFmdGVyIHtcbiAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiByaWdodCk7XG4gICAgfVxuICAgIC5yaWdodC1vZmYtY2FudmFzLW1lbnUgdWwub2ZmLWNhbnZhcy1saXN0IGxpLmhhcy1zdWJtZW51ID4gYTpiZWZvcmUge1xuICAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IGxlZnQpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gRm91bmRhdGlvbiBWaXNpYmlsaXR5IENsYXNzZXNcbi8vXG4kaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcblxuLy9cbi8vIE1lZGlhIENsYXNzIE5hbWVzXG4vL1xuLy8gVmlzaWJpbGl0eSBCcmVha3BvaW50c1xuJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplczpcbiAgc21hbGwsXG4gIG1lZGl1bSxcbiAgbGFyZ2UsXG4gIHhsYXJnZSxcbiAgeHhsYXJnZTtcblxuJHZpc2liaWxpdHktYnJlYWtwb2ludC1xdWVyaWVzOlxuICB1bnF1b3RlKCRzbWFsbC11cCksXG4gIHVucXVvdGUoJG1lZGl1bS11cCksXG4gIHVucXVvdGUoJGxhcmdlLXVwKSxcbiAgdW5xdW90ZSgkeGxhcmdlLXVwKSxcbiAgdW5xdW90ZSgkeHhsYXJnZS11cCk7XG5cbkBtaXhpbiB2aXNpYmlsaXR5LWxvb3Age1xuICBAZWFjaCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQgaW4gJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcyB7XG4gICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6ICgpO1xuXG4gICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogKCk7XG5cbiAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6ICgpO1xuXG4gICAgQGVhY2ggJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50IGluICR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMge1xuICAgICAgQGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPCBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gU21hbGxlciB0aGFuIGN1cnJlbnQgYnJlYWtwb2ludFxuXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG5cbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgfSBAZWxzZSBpZiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpID4gaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIExhcmdlciB0aGFuIGN1cnJlbnQgYnJlYWtwb2ludFxuXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG5cbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIEN1cnJlbnQgYnJlYWtwb2ludFxuXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG5cbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAjeyRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludH0gZGlzcGxheXMgKi9cbiAgICBAbWVkaWEgI3tudGgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1xdWVyaWVzLCBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpKX0ge1xuICAgICAgI3skdmlzaWJpbGl0eS1pbmhlcml0LWxpc3R9IHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgI3skdmlzaWJpbGl0eS1ub25lLWxpc3R9IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgQGlmICRpbmNsdWRlLWFjY2Vzc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG4gICAgICAgICN7JHZpc2liaWxpdHktdmlzaWJsZS1saXN0fSB7XG4gICAgICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktaGlkZGVuLWxpc3R9IHtcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmICRpbmNsdWRlLXRhYmxlLXZpc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuQGlmICRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcblxuICBAaW5jbHVkZSB2aXNpYmlsaXR5LWxvb3A7XG5cbiAgLyogT3JpZW50YXRpb24gdGFyZ2V0aW5nICovXG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgdGFibGUge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGhlYWQge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB9XG4gIHRib2R5IHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0ciB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGQsXG4gIHRoIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIH1cblxuICBAbWVkaWEgI3skbGFuZHNjYXBlfSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gICAgdGFibGUge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0aGVhZCB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0Ym9keSB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ciB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgI3skcG9ydHJhaXR9IHtcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCxcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgICB0YWJsZSB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRoZWFkIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRib2R5IHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFRvdWNoLWVuYWJsZWQgZGV2aWNlIHRhcmdldGluZyAqL1xuICAuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCAuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICB0YWJsZS5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRhYmxlLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0aGVhZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRib2R5LnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdHIuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRoLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgLy8gT25seSBpbmNsdWRlIHRoZXNlIHN0eWxlcyBpZiB5b3Ugd2FudCB0aGVtLlxuICAgIEBpZiAkaW5jbHVkZS1wcmludC1zdHlsZXMge1xuICAgICAgLypcbiAgICAgICAqIFByaW50IHN0eWxlcy5cbiAgICAgICAqXG4gICAgICAgKiBJbmxpbmVkIHRvIGF2b2lkIHJlcXVpcmVkIEhUVFAgY29ubmVjdGlvbjogd3d3LnBocGllZC5jb20vZGVsYXktbG9hZGluZy15b3VyLXByaW50LWNzcy9cbiAgICAgICAqIENyZWRpdCB0byBQYXVsIElyaXNoIGFuZCBIVE1MNSBCb2lsZXJwbGF0ZSAoaHRtbDVib2lsZXJwbGF0ZS5jb20pXG4gICAgICAqL1xuICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICoge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgY29sb3I6ICRibGFjayAhaW1wb3J0YW50OyAvKiBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zICovXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgICAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgICAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG5cbiAgICAgICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cblxuICAgICAgICAvLyBEb24ndCBzaG93IGxpbmtzIGZvciBpbWFnZXMsIG9yIGphdmFzY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAgICAgLmlyIGE6YWZ0ZXIsXG4gICAgICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB9XG5cbiAgICAgICAgcHJlLFxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYWx1bWludW07XG4gICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IC8qIGg1YnAuY29tL3QgKi8gfVxuXG4gICAgICAgIHRyLFxuICAgICAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgICAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgICAgIHAsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7XG4gICAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgICB3aWRvd3M6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBoMixcbiAgICAgICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgICAgIC5oaWRlLW9uLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5wcmludC1vbmx5IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgICB9XG4gICAgfVxuXG4gIC8qIFByaW50IHZpc2liaWxpdHkgKi9cbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgfVxufVxuIiwiLy8gRGVjbGFyZSBWYXJpYWJsZXMgLy9cbiRmb250LWhsOiBcIm9yYXRvci1zdGRcIiwgc2Fucy1zZXJpZjtcbiRmb250LWJvZHk6IFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4kbGlnaHQtcHVycGxlOiAjNzQ0ZDcwO1xuJHByaW1hcnktY29sb3I6ICM1NjI4NGY7XG4kbGlnaHQtcHVycGxlOiAjODYxZDZkO1xuJHRhbjogI2IyYTU4MztcbiRzZWNvbmRhcnktY29sb3I6ICNkYmQ5Y2E7XG5cbi8vIGZpeCBmb3IgdHlwZWtpdCBGT1VUIGlzc3Vlc1xuLnRvcC1iYXIsXG4ubWFpbiBoMS50aXRsZSB7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcblxuXHQuZm9yY2UtbGMge1xuXHRcdGZvbnQtZmFtaWx5OiAkZm9udC1ib2R5O1xuXHRcdGZvbnQtc2l6ZTogMC43ZW07XG5cdFx0bWFyZ2luOiAwIDFweCAwIDIuNXB4O1xuXHR9XG59XG5cbmJvZHkubG9hZGVkIHtcblx0LnRvcC1iYXIsXG5cdC5tYWluIGgxLnRpdGxlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi8vIGVuZCBmaXggZm9yIHR5cGVraXQgRk9VVCBpc3N1ZXNcblxuLmhsIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRtYXJnaW46IGF1dG87XG59XG5cbi5tYWluIHtcblxuXHRoMS50aXRsZSB7XG5cdFx0Y29sb3I6ICR0YW4gIWltcG9ydGFudDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdG1hcmdpbjogYXV0byBhdXRvIDFyZW07XG5cdFx0dGV4dC1pbmRlbnQ6IC0wLjNyZW07XG5cdH1cblxuXHRoMiB7XG5cdFx0Zm9udC1zaXplOiAxLjI1ZW07XG5cdFx0bWFyZ2luOiAxcmVtIGF1dG8gLjRyZW07XG5cdFx0cGFkZGluZzogMDtcblx0XHRsaW5lLWhlaWdodDogMWVtO1xuXHR9XG5cblx0aDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRjb2xvcjogJGxpZ2h0LXB1cnBsZTtcblx0fVxuXG5cdHAsXG5cdHVsLFxuXHRvbCB7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5cdFx0Zm9udC1zaXplOiAwLjk1ZW07XG5cdH1cblxuXHRwIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRwYWRkaW5nLWJvdHRvbTogLjVyZW07XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cblxuXHRhIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxufVxuXG5hLmRpc2FibGVkIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuOjpzZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjsgLyogV2ViS2l0L0JsaW5rIEJyb3dzZXJzICovXG59XG5cbnA6OnNlbGVjdGlvbiwgaDE6OnNlbGVjdGlvbiwgaDI6OnNlbGVjdGlvbiwgaDM6OnNlbGVjdGlvbiwgaDQ6OnNlbGVjdGlvbixcbmg1OjpzZWxlY3Rpb24sIGg2OjpzZWxlY3Rpb24sIHVsOjpzZWxlY3Rpb24sIGxpOjpzZWxlY3Rpb24sIHRkOjpzZWxlY3Rpb24sXG5zdHJvbmc6OnNlbGVjdGlvbiwgYTo6c2VsZWN0aW9uIHtcblx0Y29sb3I6IHdoaXRlO1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuOjotbW96LXNlbGVjdGlvbiB7XG5cdGNvbG9yOiB3aGl0ZTtcblx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA5OTk5OTllbSkge1xuXG5cdC5tYWluIHtcblx0XHRtYXJnaW46IDNyZW0gYXV0byAhaW1wb3J0YW50O1xuXHR9XG5cblx0aDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRmb250LWZhbWlseTogJGZvbnQtYm9keTtcblx0fVxuXHRoMSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtLjE1ZW07XG5cdFx0bGluZS1oZWlnaHQ6IC45O1xuXHRcdG1hcmdpbjogMnJlbSBhdXRvIDFyZW07XG5cdFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cdH1cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogMS40NXJlbTtcblx0XHRsaW5lLWhlaWdodDogMS4xMjU7XG5cdFx0bWFyZ2luOiAxcmVtIGF1dG87XG5cdH1cblxuXHRib2R5IGgyIHAge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdC5tYWluIHtcblx0XHRtYXJnaW46IGF1dG8gYXV0byAycmVtO1xuXHR9XG5cblx0LmltZy1zaWRlYmFyIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0cGFkZGluZy1sZWZ0OiA1LjVyZW07XG5cdFx0bWFyZ2luLXRvcDogMXJlbTtcblx0fVxufVxuXG4vKiBtaW4td2lkdGggMTAyNXB4IGFuZCBtYXgtd2lkdGggMTQ0MHB4LCB1c2Ugd2hlbiBRQWluZyBsYXJnZSBzY3JlZW4tb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcblx0Lm1haW4ge1xuXHRcdG1hcmdpbjogM3JlbSBhdXRvICFpbXBvcnRhbnQ7XG5cdH1cblx0aDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRmb250LWZhbWlseTogJGZvbnQtYm9keTtcblx0fVxuXHRoMSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtLjE1ZW07XG5cdFx0bGluZS1oZWlnaHQ6IC45O1xuXHRcdG1hcmdpbjogMnJlbSBhdXRvIDFyZW07XG5cdFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cdH1cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogMS41cmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjEyNTtcblx0fVxufVxuXG4vKiBtaW4td2lkdGggNjQxcHggYW5kIG1heC13aWR0aCAxMDI0cHgsIHVzZSB3aGVuIFFBaW5nIHRhYmxldC1vbmx5IGlzc3VlcyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwZW0pIHtcblx0aDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRmb250LWZhbWlseTogJGZvbnQtYm9keTtcblx0fVxuXHRoMSB7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtLjE1ZW07XG5cdFx0Zm9udC1zaXplOiAzcmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjEyNTtcblx0XHRtYXJnaW46IDEuNXJlbSBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cdH1cblx0aDEge1xuXHRcdGZvbnQtc2l6ZTogM3JlbTtcblx0XHRsaW5lLWhlaWdodDogMS4xMjU7XG5cdFx0bWFyZ2luOiAxLjVyZW0gYXV0byBhdXRvICFpbXBvcnRhbnQ7XG5cdH1cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogMS41cmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjEyNTtcblx0XHRtYXJnaW46IDFyZW0gYXV0byBhdXRvO1xuXHR9XG59XG5cbi8qIG1heC13aWR0aCA2NDBweCwgbW9iaWxlLW9ubHkgc3R5bGVzLCB1c2Ugd2hlbiBRQWluZyBtb2JpbGUgaXNzdWVzICovIiwiXG4uYnV0dG9uLTIwMjQge1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRmb250LXNpemU6IDIzcHg7XG5cdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cdHBhZGRpbmc6IDRweCAyMHB4O1xuXHRib3JkZXI6IDVweCBzb2xpZCAjZmZmO1xuXHRib3JkZXItcmFkaXVzOiAxNHB4O1xuXHRvdXRsaW5lOiA1cHggc29saWQgIzAwMDtcblxuXHQmOmhvdmVyIHtcblx0XHRib3JkZXI6IDdweCBzb2xpZCAjZmZmO1xuXHRcdG91dGxpbmU6IDNweCBzb2xpZCAjMDAwO1xuXHRcdHBhZGRpbmctbGVmdDogMThweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxOHB4O1xuXHR9XG59IiwidGV4dGFyZWE6Zm9jdXMsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cywgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cywgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cywgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLCAudW5lZGl0YWJsZS1pbnB1dDpmb2N1cyB7ICAgXG5ib3JkZXItY29sb3I6ICM3YzAwNDA7XG5ib3gtc2hhZG93OiAwIDAgMXB4ICM3YzAwNDAgaW5zZXQsIDAgMCA0cHggIzdjMDA0MDtcbm91dGxpbmU6IDAgbm9uZTtcbn1cbiIsIi8vIENhcHRpb25zXG4ud3AtY2FwdGlvbiB7XG4gIC8vIEBleHRlbmQgLnRodW1ibmFpbDtcbn1cblxuLy8gR2FsbGVyeSBzaG9ydGNvZGVcbi5nYWxsZXJ5LXJvdyB7XG4gIHBhZGRpbmc6ICgkYmFzZS1saW5lLWhlaWdodCAvIDIpIDA7XG59XG5cbi8vIE1lZGlhIG9iamVjdHNcbi8vIFNvdXJjZTogaHR0cDovL3N0dWJib3JuZWxsYS5vcmcvY29udGVudC8/cD00OTdcbi8vIEFkYXB0ZWQgZnJvbSBib290c3RyYXAgZm9yIHVzZSB3aXRoIEZvdW5kYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE9wdGlvbnMgZm9yIG1hcmdpbnNcbiRtZWRpYS1zcGFjaW5nOiAxNXB4O1xuJG1lZGlhLWhlYWRpbmctYm90dG9tLW1hcmdpbjogNXB4O1xuJG1lZGlhLWltYWdlLWFsaWdubWVudC1tYXJnaW46IDEwcHg7XG5cbi8vIENsZWFyIHRoZSBmbG9hdHNcbi5tZWRpYSxcbi5tZWRpYS1ib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHpvb206IDE7XG59XG5cbi8vIFByb3BlciBzcGFjaW5nIGJldHdlZW4gaW5zdGFuY2VzIG9mIC5tZWRpYVxuLm1lZGlhLFxuLm1lZGlhIC5tZWRpYSB7XG4gIG1hcmdpbi10b3A6ICRtZWRpYS1zcGFjaW5nO1xufVxuLm1lZGlhOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLy8gRm9yIGltYWdlcyBhbmQgdmlkZW9zLCBzZXQgdG8gYmxvY2tcbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBoZWFkaW5ncyBmb3IgdGlnaHRlciBkZWZhdWx0IHNwYWNpbmdcbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhLWhlYWRpbmctYm90dG9tLW1hcmdpbjtcbn1cblxuXG4vLyBNZWRpYSBpbWFnZSBhbGlnbm1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1lZGlhIHtcbiAgLmxlZnQge1xuICAgIG1hcmdpbi1yaWdodDogJG1lZGlhLWltYWdlLWFsaWdubWVudC1tYXJnaW47XG4gIH1cbiAgLnJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogJG1lZGlhLWltYWdlLWFsaWdubWVudC1tYXJnaW47XG4gIH1cbn1cblxuXG4vLyBNZWRpYSBsaXN0IHZhcmlhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBVbmRvIGRlZmF1bHQgdWwvb2wgc3R5bGVzXG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIi8vIFdvcmRQcmVzcyBHZW5lcmF0ZWQgQ2xhc3Nlc1xuLy8gaHR0cDovL2NvZGV4LndvcmRwcmVzcy5vcmcvQ1NTI1dvcmRQcmVzc19HZW5lcmF0ZWRfQ2xhc3Nlc1xuZmlndXJlLmFsaWdubm9uZSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmFsaWdubGVmdCxcbi5hbGlnbnJpZ2h0LFxuLmFsaWduY2VudGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuXG4gIC5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAoJGJhc2UtbGluZS1oZWlnaHQgLyAyKSBhdXRvO1xuICB9XG5cbiAgLmFsaWdubGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAyKTtcbiAgfVxuICAuYWxpZ25yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAyKTtcbiAgfVxufVxuIiwiLy8gQ29udGVudCB3cmFwcGVyXG4ud3JhcCB7XG59XG5cbi8vIE1haW4gY29udGVudCBhcmVhXG5cbi5pbWctdmMtcmlnaHQge1xuXHRwYWRkaW5nOiA1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcblx0Ym9yZGVyOiAxcHggc29saWQgIzMzMztcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDEwcHggYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4uaW1nLXZjLWxlZnQge1xuXHRwYWRkaW5nOiA1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcblx0Ym9yZGVyOiAxcHggc29saWQgIzMzMztcblx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMjBweCAxMHB4IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLnZjLWJ0biB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmbG9hdDogbGVmdDtcblx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdHRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdC1tb3otdHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyA1MDBtcyBlYXNlLWluLW91dDtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItcmFkaXVzIDUwMG1zIGVhc2UtaW4tb3V0O1xufVxuXG4udmMtYnRuOmhvdmVyIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn0iLCIjc2l0ZS1ub3RpZmljYXRpb24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDEwO1xuXHRiYWNrZ3JvdW5kOiAjYjJhOTdlO1xuXHRjb2xvcjogI2ZmZjtcblx0cGFkZGluZzogMTVweDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdCYuaGlkZGVuIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LmNvbnRlbnQtY29udGFpbmVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0fVxuXG5cdC5pY29uIHtcblx0XHR3aWR0aDogNDVweDtcblx0XHRmb250LXNpemU6IDMwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTVweDtcblx0fVxuXG5cdC5jb250ZW50IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0XHQ6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblxuXHRcdGgyIHtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdFx0XHRtYXJnaW46IDAgMCAxMHB4IDA7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0LmNvbnRyb2xzIHtcblx0XHR3aWR0aDogNDVweDtcblx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0Zm9udC1zaXplOiAzMHB4O1xuXG5cdFx0YnV0dG9uIHtcblx0XHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuY2xvc2UtaWNvbiB7XG5cdFx0ZmlsbDogI2ZmZjtcblx0XHR3aWR0aDogMzBweDtcblx0fVxufVxuXG4udG9wLWhlYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtaW4taGVpZ2h0OiA5MHB4O1xuXHRtYXgtaGVpZ2h0OiBhdXRvO1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXG5cdC5zb2NpYWwge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRtYXJnaW46IC0xMHB4IDAgNDhweCAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDA7XG5cblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2NnB4KSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogNDhweDtcblx0XHRcdGhlaWdodDogMjRweDtcblx0XHRcdHJpZ2h0OiAyMTVweDtcblx0XHRcdHRvcDogMTNweDtcblx0XHR9XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luOiAwIDRweCA0cHggMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZy9zb2NpYWwtMi5wbmcpIDAgMCBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlO1xuXHRcdFx0XHR0ZXh0LWluZGVudDogNDAwMHB4O1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0fVxuXG5cblx0XHRcdCYuZmFjZWJvb2sgYSB7XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcblx0XHRcdH1cblxuXHRcdFx0Ji5nb29nbGUtcGx1cyBhIHtcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDA7XG5cdFx0XHR9XG5cblx0XHRcdCYuZ29vZ2xlLW1hcHMgYSB7XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyIGxpIGEge1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdH1cblxuXHRcdCY6aG92ZXIgbGkgYTpob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxLjA7XG5cdFx0fVxuXHR9XG59XG5cbi5ib3R0b20taGVhZGVyIHtcblx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcbn1cblxuLnRvcC1iYXIge1xuXHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG59XG5cbi50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpOm5vdCguaGFzLWZvcm0pOm5vdCguYWN0aXZlKSA+IGE6bm90KC5idXR0b24pIHtcblx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbn1cblxuLnRvcC1iYXItc2VjdGlvbiB1bCBsaSBhIHtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSBhbmQgKG1heC13aWR0aDogMjUwMGVtKSB7XG5cdC5sb2dvIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luOiAuNHJlbSBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcyBlYXNlO1xuXHR9XG5cblxuXHQubG9nbzpob3ZlciB7XG5cdFx0b3BhY2l0eTogLjc1O1xuXHR9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA5OTk5OTllbSkge1xuXHQubG9nbyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiAzMDBweDtcblx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbjogOHB4IGF1dG8gMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSA1MDBtcyBlYXNlO1xuXHR9XG5cblx0LmFjY2VzcyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbjogNDBweCAwIDAgNTBweDtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0dHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyA1MDBtcyBlYXNlLWluLW91dDtcblx0XHQtbW96LXRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItcmFkaXVzIDUwMG1zIGVhc2UtaW4tb3V0O1xuXHR9XG5cblx0LmFjY2Vzczpob3ZlciB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuXG5cdC5waG9uZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdFx0bWFyZ2luOiA0MHB4IGF1dG8gYXV0bztcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHR9XG5cblx0LnBob25lIHNwYW4ge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxuXG5cdC5waG9uZSBwIHtcblx0XHRjb2xvcjogI2FlYTg3Zjtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cblxuXHQucGhvbmUgYTpsaW5rIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgNTAwbXMgbGluZWFyO1xuXHRcdC1tb3otdHJhbnNpdGlvbjogY29sb3IgNTAwbXMgbGluZWFyO1xuXHRcdC1vLXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGxpbmVhcjtcblx0XHQtbXMtdHJhbnNpdGlvbjogY29sb3IgNTAwbXMgbGluZWFyO1xuXHRcdHRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGxpbmVhcjtcblx0fVxuXG5cdC5waG9uZSBhOmhvdmVyIHtcblx0XHRjb2xvcjogI2MzYjJjMjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxufVxuXG4vKiBtaW4td2lkdGggMTQ0MXB4LCB4bGFyZ2Ugc2NyZWVucyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSBhbmQgKG1heC13aWR0aDogOTk5OTllbSkge1xuXHQuYm90dG9tLWhlYWRlciB7XG5cdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcblx0fVxuXHQudG9wLWJhciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50O1xuXHRcdG1pbi1oZWlnaHQ6IDU1cHg7XG5cdFx0bWF4LWhlaWdodDogYXV0bztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDEwcHggYXV0bztcblx0XHRwYWRkaW5nLXRvcDogLjNyZW07XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiB1bCB7XG5cdFx0cGFkZGluZy1ib3R0b206IC4zcmVtO1xuXHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiB1bCBsaSB7XG5cdFx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggd2hpdGU7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiB1bCBsaTpsYXN0LWNoaWxkIHtcblx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIHVsIGxpIGEge1xuXHRcdGZvbnQtZmFtaWx5OiAkZm9udC1obCAhaW1wb3J0YW50O1xuXHRcdHRyYW5zaXRpb246IGFsbCAxMDBtcyBlYXNlLWluLW91dDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIGxpLmFjdGl2ZTpub3QoLmhhcy1mb3JtKSBhOm5vdCguYnV0dG9uKSB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiBsaS5hY3RpdmU6bm90KC5oYXMtZm9ybSk6aG92ZXIgYTpub3QoLmJ1dHRvbik6aG92ZXIge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmhhcy1kcm9wZG93biwgLnRvcC1iYXItc2VjdGlvbiB1bCBsaSB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5kcm9wZG93biBsaS5hY3RpdmU6bm90KC5oYXMtZm9ybSkgYTpub3QoLmJ1dHRvbikge1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGNvbG9yOiAjZWFlYWVhO1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpOm5vdCguaGFzLWZvcm0pOmhvdmVyIGE6bm90KC5idXR0b24pOmhvdmVyIHtcblx0XHRjb2xvcjogI2VhZWFlYVxuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpIGEge1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0fVxuXHQudG9wLWJhciAudG9nZ2xlLXRvcGJhci5tZW51LWljb24ge1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwuZHJvcGRvd24gbGkge1xuXHRcdGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwgbGk6aG92ZXI6bm90KC5oYXMtZm9ybSkgPiBhIHtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIHVsIGxpIHtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmhhcy1kcm9wZG93biB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5sZWZ0IGxpIC5kcm9wZG93biB7XG5cdFx0Ym9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiAuZHJvcGRvd24gbGk6bm90KC5oYXMtZm9ybSk6bm90KC5hY3RpdmUpOmhvdmVyID4gYTpub3QoLmJ1dHRvbiksIC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpOm5vdCguaGFzLWZvcm0pOm5vdCguYWN0aXZlKSA+IGE6bm90KC5idXR0b24pIHtcblx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4vKiBtaW4td2lkdGggMTAyNXB4IGFuZCBtYXgtd2lkdGggMTQ0MHB4LCB1c2Ugd2hlbiBRQWluZyBsYXJnZSBzY3JlZW4tb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcblx0LmJvdHRvbS1oZWFkZXIge1xuXHRcdGJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29sb3I7XG5cdH1cblx0LnRvcC1iYXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3IgIWltcG9ydGFudDtcblx0XHRtaW4taGVpZ2h0OiA1NXB4O1xuXHRcdG1heC1oZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAxMHB4IGF1dG87XG5cdFx0cGFkZGluZy10b3A6IC4zcmVtO1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwge1xuXHRcdHBhZGRpbmctYm90dG9tOiAuM3JlbTtcblx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwgbGkge1xuXHRcdGJvcmRlci1yaWdodDogc29saWQgMXB4IHdoaXRlO1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwgbGk6bGFzdC1jaGlsZCB7XG5cdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiB1bCBsaSBhIHtcblx0XHRmb250LWZhbWlseTogJGZvbnQtaGwgIWltcG9ydGFudDtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMTAwbXMgZWFzZS1pbi1vdXQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiBsaS5hY3RpdmU6bm90KC5oYXMtZm9ybSkgYTpub3QoLmJ1dHRvbikge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gbGkuYWN0aXZlOm5vdCguaGFzLWZvcm0pOmhvdmVyIGE6bm90KC5idXR0b24pOmhvdmVyIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5oYXMtZHJvcGRvd24sIC50b3AtYmFyLXNlY3Rpb24gdWwgbGkge1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiAuZHJvcGRvd24gbGkuYWN0aXZlOm5vdCguaGFzLWZvcm0pIGE6bm90KC5idXR0b24pIHtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRjb2xvcjogI2VhZWFlYTtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5kcm9wZG93biBsaTpub3QoLmhhcy1mb3JtKTpob3ZlciBhOm5vdCguYnV0dG9uKTpob3ZlciB7XG5cdFx0Y29sb3I6ICNlYWVhZWFcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5kcm9wZG93biBsaSBhIHtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdH1cblx0LnRvcC1iYXIgLnRvZ2dsZS10b3BiYXIubWVudS1pY29uIHtcblx0XHRtYXJnaW4tdG9wOiAtMjBweDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIHVsLmRyb3Bkb3duIGxpIHtcblx0XHRib3JkZXItcmlnaHQ6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIHVsIGxpOmhvdmVyOm5vdCguaGFzLWZvcm0pID4gYSB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiB1bCBsaSB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5oYXMtZHJvcGRvd24ge1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiAubGVmdCBsaSAuZHJvcGRvd24ge1xuXHRcdGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpOm5vdCguaGFzLWZvcm0pOm5vdCguYWN0aXZlKTpob3ZlciA+IGE6bm90KC5idXR0b24pLCAudG9wLWJhci1zZWN0aW9uIC5kcm9wZG93biBsaTpub3QoLmhhcy1mb3JtKTpub3QoLmFjdGl2ZSkgPiBhOm5vdCguYnV0dG9uKSB7XG5cdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyogbWluLXdpZHRoIDY0MXB4IGFuZCBtYXgtd2lkdGggMTAyNHB4LCB1c2Ugd2hlbiBRQWluZyB0YWJsZXQtb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XG5cdC5ib3R0b20taGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHR9XG5cdC50b3AtYmFyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0aGVpZ2h0OiA1NXB4O1xuXHRcdG1heC1oZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luOiAxMHB4IGF1dG87XG5cdFx0cGFkZGluZy10b3A6IC4zcmVtO1xuXG5cdFx0LnRvcC1iYXItc2VjdGlvbiAuZHJvcGRvd24gbGkudGl0bGUgaDUgYSB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0fVxuXG5cdFx0c3BhbiB7XG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0fVxuXG5cdFx0LnRvcC1iYXIgLnRvZ2dsZS10b3BiYXIubWVudS1pY29uIGEgc3Bhbjo6YWZ0ZXIge1xuXHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwge1xuXHRcdHBhZGRpbmctYm90dG9tOiAuM3JlbTtcblx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwgbGk6bGFzdC1jaGlsZCB7XG5cdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiB1bCBsaSBhIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsICFpbXBvcnRhbnQ7XG5cdFx0dHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2UtaW4tb3V0O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwgbGkuYWN0aXZlID4gYSB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiBsaS5hY3RpdmU6bm90KC5oYXMtZm9ybSk6aG92ZXIgYTpub3QoLmJ1dHRvbik6aG92ZXIge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmhhcy1kcm9wZG93biwgLnRvcC1iYXItc2VjdGlvbiB1bCBsaSB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5kcm9wZG93biBsaS5hY3RpdmU6bm90KC5oYXMtZm9ybSkgYTpub3QoLmJ1dHRvbikge1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGNvbG9yOiAjZWFlYWVhO1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpOm5vdCguaGFzLWZvcm0pOmhvdmVyIGE6bm90KC5idXR0b24pOmhvdmVyIHtcblx0XHRjb2xvcjogI2VhZWFlYVxuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpIGEge1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0fVxuXHQudG9wLWJhciAudG9nZ2xlLXRvcGJhci5tZW51LWljb24ge1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwuZHJvcGRvd24gbGkge1xuXHRcdGJvcmRlci1yaWdodDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gdWwgbGk6aG92ZXI6bm90KC5oYXMtZm9ybSkgPiBhIHtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIHVsIGxpIHtcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuXHR9XG5cdC50b3AtYmFyLXNlY3Rpb24gLmhhcy1kcm9wZG93biB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcblx0fVxuXHQudG9wLWJhci1zZWN0aW9uIC5sZWZ0IGxpIC5kcm9wZG93biB7XG5cdFx0Ym9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0LnRvcC1iYXItc2VjdGlvbiAuZHJvcGRvd24gbGk6bm90KC5oYXMtZm9ybSk6bm90KC5hY3RpdmUpOmhvdmVyID4gYTpub3QoLmJ1dHRvbiksIC50b3AtYmFyLXNlY3Rpb24gLmRyb3Bkb3duIGxpOm5vdCguaGFzLWZvcm0pOm5vdCguYWN0aXZlKSA+IGE6bm90KC5idXR0b24pIHtcblx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdC50b3AtaGVhZGVyIHtcblx0XHQubG9nbyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXJnaW46IDFyZW0gYXV0byBhdXRvO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zIGVhc2U7XG5cdFx0fVxuXG5cdFx0LmFjY2VzcyB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbjogMXJlbSBhdXRvIGF1dG87XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0XHRcdHRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdFx0XHQtbW96LXRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdFx0fVxuXG5cdFx0LnBob25lIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4wO1xuXHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0cGFkZGluZy10b3A6IDEuMTI1cmVtICFpbXBvcnRhbnQ7XG5cblxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdGNvbG9yOiAjYWVhODdmO1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHR9XG5cblx0XHRcdGE6bGluayB7XG5cdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGxpbmVhcjtcblx0XHRcdFx0LW1vei10cmFuc2l0aW9uOiBjb2xvciA1MDBtcyBsaW5lYXI7XG5cdFx0XHRcdC1vLXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGxpbmVhcjtcblx0XHRcdFx0LW1zLXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGxpbmVhcjtcblx0XHRcdFx0dHJhbnNpdGlvbjogY29sb3IgNTAwbXMgbGluZWFyO1xuXHRcdFx0fVxuXG5cdFx0XHRhOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICNjM2IyYzI7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyogbWF4LXdpZHRoIDY0MHB4LCBtb2JpbGUtb25seSBzdHlsZXMsIHVzZSB3aGVuIFFBaW5nIG1vYmlsZSBpc3N1ZXMgKi8iLCIuc2lkZWJhci1pbWcge1xubWFyZ2luOiAxLjI1cmVtIGF1dG87XG5wb3NpdGlvbjogcmVsYXRpdmU7XG5kaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5mbG9hdDogbm9uZTtcdFxufVxuXG4uc2lkZWJhciBpbWcgeyBtYXgtd2lkdGg6IGF1dG87IG1pbi13aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvOyB9XG5cbi5zaWRlYmFyIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAge1xuXHRmbG9hdDogcmlnaHQ7XG5cdG1hcmdpbi1yaWdodDogMC42MjVlbTtcbn1cblxuLnNpZGViYXIgdWwgeyBtYXJnaW46IGF1dG87IHBhZGRpbmc6IGF1dG87IH1cbi5zaWRlYmFyIHVsIGxpIHsgbGlzdC1zdHlsZTogbm9uZTsgbWFyZ2luOiBhdXRvOyBwYWRkaW5nOiBhdXRvOyAgdGV4dC1pbmRlbnQ6IG5vbmU7IH1cblxuLnNpZGViYXItbmF2IHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogYXV0bztcblx0ZmxvYXQ6IGxlZnQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luOiAzMC4zMTNlbSBhdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuLnNpZGViYXItbmF2IGg0IHtcblx0Y29sb3I6ICNmZmY7XG5cdG1hcmdpbi1sZWZ0OiAxMC4zMTNlbTtcblx0bWFyZ2luLXRvcDogMjBweDtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0bGluZS1oZWlnaHQ6IC45O1xufVxuXG4uc2lkZWJhci1uYXYgdWwge1xuXHRtYXJnaW46IDEwLjMxM2VtIDEwLjMxM2VtIDIwcHg7XG5cdHBhZGRpbmc6IDA7XG5cdHdpZHRoOiBhdXRvO1xufVxuXG4uc2lkZWJhci1uYXYgdWwgbGkge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRib3JkZXItdG9wOiBzb2xpZCAwLjA2M2VtO1xuXHRib3JkZXItdG9wLWNvbG9yOiAkbGlnaHQtcHVycGxlO1xuXHRtYXJnaW46IDAuMjUwZW0gMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTAuMTI1ZW07XG5cdHBhZGRpbmctdG9wOiAwLjI1MGVtO1xuXHRwYWRkaW5nLXJpZ2h0OjAuNjI1ZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5zaWRlYmFyLW5hdiB1bCBsaTpudGgtY2hpbGQoOSkge1xuXHRib3JkZXItYm90dG9tOiBzb2xpZCAwLjA2M2VtICRsaWdodC1wdXJwbGU7XG5cdHBhZGRpbmctYm90dG9tOiAwLjI1MGVtO1xufVxuXG4uc2lkZWJhci1uYXYgdWwgbGkgYSB7XG5cdGNvbG9yOiAjZmZmO1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHQtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGVhc2Utb3V0O1xuXHQtbW96LXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGVhc2Utb3V0O1xuXHQtby10cmFuc2l0aW9uOiBjb2xvciA1MDBtcyBlYXNlLW91dDtcblx0LW1zLXRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGVhc2Utb3V0O1xuXHR0cmFuc2l0aW9uOiBjb2xvciA1MDBtcyBlYXNlLW91dDtcbn1cblxuLnNpZGViYXItbmF2IHVsIGxpIGE6aG92ZXIge1xuXHRjb2xvcjogI2I5YTZiNztcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDMyMGVtKSB7XG4uc2lkZWJhciB7XG5iYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgbGVmdCB0b3Agbm8tcmVwZWF0O1xuYmFja2dyb3VuZC1zaXplOiAxMDIlIGF1dG87XG5taW4taGVpZ2h0OiAyMGVtO1xubWF4LWhlaWdodDogYXV0bztcbm1hcmdpbjogLjVyZW0gYXV0byBhdXRvO1xuXHRcbi53aWRnZXQgeyBcbnBhZGRpbmctdG9wOiAyLjVyZW07XG5wYWRkaW5nLWxlZnQ6IDRyZW07XG5cbmgzIHtcbnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5mb250LWZhbWlseTogJGZvbnQtaGw7XG5sZXR0ZXItc3BhY2luZzogLS4xNWVtO1xubWFyZ2luLWJvdHRvbTogLjZyZW07XG5tYXJnaW4tdG9wOiAtLjEyNWVtICFpbXBvcnRhbnQ7XG5cdH1cbnVsIHtcblxubGkge1xubWFyZ2luLWJvdHRvbTogMXJlbTtcbmxpbmUtaGVpZ2h0OiAxO1xuXHQgIH0gLyogRW5kIExpc3QgSXRlbSBDbGFzcyAqL1xuXG59IC8qIEVuZCBVTCBDbGFzcyAqL1xufSAvKiBFbmQgV2lkZ2V0IENsYXNzICovXG59IC8qIEVuZCBTaWRlYmFyIENsYXNzICovXG59IC8qIG1pbi13aWR0aCAxMDI1cHggYW5kIG1heC13aWR0aCAxNDQwcHgsIHVzZSB3aGVuIFFBaW5nIGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjA2M2VtKSBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuXG4uc2lkZWJhciB7XG5iYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgbGVmdCB0b3Agbm8tcmVwZWF0O1xuYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG5taW4taGVpZ2h0OiAyMGVtO1xubWF4LWhlaWdodDogYXV0bztcbm1hcmdpbjogLjVyZW0gYXV0byBhdXRvO1xuXHRcbi53aWRnZXQgeyBcbnBhZGRpbmctdG9wOiAyLjVyZW07XG5wYWRkaW5nLWxlZnQ6IDEuNHJlbTtcblxuaDMge1xudGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbmZvbnQtZmFtaWx5OiAkZm9udC1obDtcbmxldHRlci1zcGFjaW5nOiAtLjE1ZW07XG5tYXJnaW4tdG9wOiAtLjEyNWVtICFpbXBvcnRhbnQ7XG5tYXJnaW4tYm90dG9tOiAuNnJlbTtcblx0fVxudWwge1xuXG5saSB7XG5tYXJnaW4tYm90dG9tOiAxcmVtO1xubGluZS1oZWlnaHQ6IDE7XG5cdCAgfSAvKiBFbmQgTGlzdCBJdGVtIENsYXNzICovXG5cbn0gLyogRW5kIFVMIENsYXNzICovXG59IC8qIEVuZCBXaWRnZXQgQ2xhc3MgKi9cbn0gLyogRW5kIFNpZGViYXIgQ2xhc3MgKi9cblxufSAvKiBtaW4td2lkdGggNjQxcHggYW5kIG1heC13aWR0aCAxMDI0cHgsIHVzZSB3aGVuIFFBaW5nIHRhYmxldC1vbmx5IGlzc3VlcyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwZW0pIHtcblxuLnNpZGViYXIge1xuYmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbm1pbi1oZWlnaHQ6IDIwZW07XG5tYXgtaGVpZ2h0OiBhdXRvO1xubWFyZ2luOiAuNXJlbSBhdXRvIGF1dG87XG5cdFxuLndpZGdldCB7IFxucGFkZGluZy10b3A6IDIuNXJlbTtcbnBhZGRpbmctbGVmdDogMS40cmVtO1xuXG5oMyB7XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuZm9udC1mYW1pbHk6ICRmb250LWhsO1xubGV0dGVyLXNwYWNpbmc6IC0uMTVlbTtcbm1hcmdpbi1ib3R0b206IC42cmVtO1xuXHR9XG51bCB7XG5cbmxpIHtcbm1hcmdpbi1ib3R0b206IDFyZW07XG5saW5lLWhlaWdodDogMTtcblx0ICB9IC8qIEVuZCBMaXN0IEl0ZW0gQ2xhc3MgKi9cblxufSAvKiBFbmQgVUwgQ2xhc3MgKi9cbn0gLyogRW5kIFdpZGdldCBDbGFzcyAqL1xufSAvKiBFbmQgU2lkZWJhciBDbGFzcyAqL1xuXG59IC8qIG1heC13aWR0aCA2NDBweCwgbW9iaWxlLW9ubHkgc3R5bGVzLCB1c2Ugd2hlbiBRQWluZyBtb2JpbGUgaXNzdWVzICovXG4iLCIuY29udGVudC1pbmZvIHsgXG5cbmgxLGgyLGgzLGg0LGg1LGg2IHsgY29sb3I6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cblxuLnVwcGVyLWZvb3RlciB7XG5cdC8qIElFOSBTVkcsIG5lZWRzIGNvbmRpdGlvbmFsIG92ZXJyaWRlIG9mICdmaWx0ZXInIHRvICdub25lJyAqL1xuYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlBL1BnbzhjM1puSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZDJsa2RHZzlJakV3TUNVaUlHaGxhV2RvZEQwaU1UQXdKU0lnZG1sbGQwSnZlRDBpTUNBd0lERWdNU0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWJtOXVaU0krQ2lBZ1BHeHBibVZoY2tkeVlXUnBaVzUwSUdsa1BTSm5jbUZrTFhWaloyY3RaMlZ1WlhKaGRHVmtJaUJuY21Ga2FXVnVkRlZ1YVhSelBTSjFjMlZ5VTNCaFkyVlBibFZ6WlNJZ2VERTlJakFsSWlCNU1UMGlNQ1VpSUhneVBTSXhNREFsSWlCNU1qMGlNQ1VpUGdvZ0lDQWdQSE4wYjNBZ2IyWm1jMlYwUFNJd0pTSWdjM1J2Y0MxamIyeHZjajBpSXpVMk1qZzBaaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXhJaTgrQ2lBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpVd0pTSWdjM1J2Y0MxamIyeHZjajBpSXpVMk1qZzBaaUlnYzNSdmNDMXZjR0ZqYVhSNVBTSXdMaklpTHo0S0lDQWdJRHh6ZEc5d0lHOW1abk5sZEQwaU1UQXdKU0lnYzNSdmNDMWpiMnh2Y2owaUl6VTJNamcwWmlJZ2MzUnZjQzF2Y0dGamFYUjVQU0l4SWk4K0NpQWdQQzlzYVc1bFlYSkhjbUZrYVdWdWRENEtJQ0E4Y21WamRDQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlNU0lnYUdWcFoyaDBQU0l4SWlCbWFXeHNQU0oxY213b0kyZHlZV1F0ZFdOblp5MW5aVzVsY21GMFpXUXBJaUF2UGdvOEwzTjJaejQ9KTtcbmJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICByZ2JhKDg2LDQwLDc5LDEpIDAlLCByZ2JhKDg2LDQwLDc5LDAuMikgNTAlLCByZ2JhKDg2LDQwLDc5LDEpIDEwMCUpOyAvKiBGRjMuNisgKi9cbmJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLHJnYmEoODYsNDAsNzksMSkpLCBjb2xvci1zdG9wKDUwJSxyZ2JhKDg2LDQwLDc5LDAuMikpLCBjb2xvci1zdG9wKDEwMCUscmdiYSg4Niw0MCw3OSwxKSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cbmJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICByZ2JhKDg2LDQwLDc5LDEpIDAlLHJnYmEoODYsNDAsNzksMC4yKSA1MCUscmdiYSg4Niw0MCw3OSwxKSAxMDAlKTsgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cbmJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAgcmdiYSg4Niw0MCw3OSwxKSAwJSxyZ2JhKDg2LDQwLDc5LDAuMikgNTAlLHJnYmEoODYsNDAsNzksMSkgMTAwJSk7IC8qIE9wZXJhIDExLjEwKyAqL1xuYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAgcmdiYSg4Niw0MCw3OSwxKSAwJSxyZ2JhKDg2LDQwLDc5LDAuMikgNTAlLHJnYmEoODYsNDAsNzksMSkgMTAwJSk7IC8qIElFMTArICovXG5iYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICByZ2JhKDg2LDQwLDc5LDEpIDAlLHJnYmEoODYsNDAsNzksMC4yKSA1MCUscmdiYSg4Niw0MCw3OSwxKSAxMDAlKTsgLyogVzNDICovXG5maWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzU2Mjg0ZicsIGVuZENvbG9yc3RyPScjNTYyODRmJyxHcmFkaWVudFR5cGU9MSApOyAvKiBJRTYtOCAqL1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRtYXJnaW46IDAgYXV0bztcbn1cblxuLnVwcGVyLWZvb3RlciBpbWcge1xuXHRtYXJnaW46IDMwcHggYXV0byAyMHB4O1xuXHRmbG9hdDogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvcGFjaXR5OiAxO1xufVxuXG4ubG93ZXItZm9vdGVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcbn1cblxuLmxvY2F0aW9uIHtcblx0aDMgeyBtYXJnaW46IGF1dG87IH1cblx0cCB7IG1hcmdpbjogMDsgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXHRhZGRyZXNzIHsgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cdGE6bGluayB7IGNvbG9yOiAjMDAwOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGVhc2UtaW4tb3V0OyB9IFxuXHRhOnZpc2l0ZWQgeyBjb2xvcjogIzAwMDsgfVxuXHRhOmhvdmVyLCBhOmZvY3VzIHsgY29sb3I6ICRwcmltYXJ5LWNvbG9yOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHR9XG5cdGE6YWN0aXZlIHtcdH1cblx0XG5cdC5tYXAgeyBwYWRkaW5nOiAyJTsgYmFja2dyb3VuZDogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDZweDsgbWFyZ2luOiAyMHB4IGF1dG87IH1cblxufVxuXG4uZm9vdGVyLXNwYWNlIHsgcGFkZGluZy10b3A6IDQwcHg7IHBhZGRpbmctYm90dG9tOiA0MHB4O1xuXHRcdCBcblx0dWwgeyBtYXJnaW4tbGVmdDogMDsgIGxpIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHRleHQtaW5kZW50OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0Zm9udC1zaXplOiAxLjc1cmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjc1O1xuXHRcdG1hcmdpbi1ib3R0b206IGF1dG87XG5cdFx0bGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdC13ZWJraXQtbWFyZ2luLWJlZm9yZTogYXV0bztcblx0XHQtd2Via2l0LW1hcmdpbi1hZnRlcjogYXV0bztcblx0XHQtd2Via2l0LW1hcmdpbi1zdGFydDogYXV0bztcblx0XHQtd2Via2l0LW1hcmdpbi1lbmQ6IGF1dG87XG5cdFx0LXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiBhdXRvO1xuXHR9XG5cdH1cblx0dWwgbGkgeyBmb250LXNpemU6IDEycHg7IG1hcmdpbjogYXV0bzsgfVxuXHRcblx0LndpZGdldCBoMyB7IGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXHRcblx0LnNpdGUtbWFwIHsgdGV4dC1pbmRlbnQ6IDE1cHg7IH1cdFxufVxuXG4uZm9vdGVyLWJvdHRvbSB7XG5cdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuXHRwIHsgY29sb3I6IHdoaXRlOyBwYWRkaW5nLXRvcDogMS41cmVtOyBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTsgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgfVxufSAvLyBFbmQgZm9vdGVyLWJvdHRvbSBjbGFzc1xuXG59IC8vIEVuZCBjb250ZW50LWluZm8gY2xhc3NcblxuZm9vdGVyIHsgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgfVxuXG4uc2l0ZS1tYXAgdWwgeyBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiIsIi5hY2NvcmRpb24gLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gYSwgLmFjY29yZGlvbiBkZCA+IGEge1xuXHRjb2xvcjogIzMzMztcblx0cGFkZGluZzogMXJlbTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxcmVtO1xufVxuXG4uYWNjb3JkaW9uIC5hY2NvcmRpb24tbmF2aWdhdGlvbiA+IGE6aG92ZXIsIC5hY2NvcmRpb24gZGQgPiBhOmhvdmVyIHtcblx0Y29sb3I6ICNmZmY7XG5cdHBhZGRpbmc6IDFyZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmFjY29yZGlvbiAuYWNjb3JkaW9uLW5hdmlnYXRpb24uYWN0aXZlID4gYSwgLmFjY29yZGlvbiBkZC5hY3RpdmUgPiBhIHtcblx0Y29sb3I6IHdoaXRlO1xufVxuXG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1waHlzaWNpYW4ge1xuXHR0YWJsZSB7XG5cdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvcjtcblx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNlY29uZGFyeS1jb2xvcjtcblx0XHR0YWJsZS1sYXlvdXQ6IGF1dG87XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHR0Ym9keSB7XG5cdFx0XHR0ciB7XG5cdFx0XHRcdCY6bnRoLW9mLXR5cGUoMm4pIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGQuY29udGVudCB7XG5cdFx0XHRcdFx0d2lkdGg6IDUwMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGQuZGF0ZSB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gRW5kIC5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLXBoeXNpY2lhblxuXG4udGVtcGxhdGUtY29udGVudC1jZW50ZXJlZCB7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXgtd2lkdGg6IDgwMHB4O1xufVxuXG4ucGFnZS1pZC0xNDUsIC5wYWdlLWlkLTgwNyB7XG5cdHRhYmxlOm50aC1jaGlsZCgzbiszKSB7XG5cdFx0YmFja2dyb3VuZDogI0ZGRiAhaW1wb3J0YW50O1xuXHR9XG5cblx0dGFibGU6bnRoLWNoaWxkKDEyKSB7XG5cdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi5wYWdlLWlkLTE1MSB7XG5cdHVsLmFjY29yZGlvbiB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQuZmFxLXNpZGUge1xuXHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL2xvZ28tcHVycC1zbS5wbmcpIGNlbnRlciB0b3Agbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMzAwcHggMzAwcHg7XG5cdFx0bWluLXdpZHRoOiA0MDBweDtcblx0XHRoZWlnaHQ6IDQ1MHB4O1xuXHRcdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG5cblx0XHRoMiB7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXNpemU6IDIuNmVtO1xuXHRcdFx0Y29sb3I6ICR0YW47XG5cdFx0XHRsaW5lLWhlaWdodDogMS43NWVtO1xuXHRcdFx0cGFkZGluZy10b3A6IDEuM3JlbTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAycmVtO1xuXHRcdH1cblx0fVxufVxuXG4vLyBFbmQgRkFRIHBhZ2Ugc3R5bGVzXG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDk5OTk5OWVtKSB7XG5cdGxpLmdhbGxlcnk6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctbGVmdDogMS44NXJlbTtcblx0fVxuXHRsaS5nYWxsZXJ5Om50aC1jaGlsZCgyKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxLjY1cmVtO1xuXHR9XG5cdGxpLmdhbGxlcnk6bnRoLWNoaWxkKDMpIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEuNHJlbTtcblx0fVxuXHQuY2FsbG91dC10b3Age1xuXHRcdGgyIHtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdGZvbnQtc2l6ZTogMS42ZW07XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdH1cblxuXHRcdGgzIHtcblx0XHRcdGNvbG9yOiAkdGFuO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0bWF4LXdpZHRoOiA2NSU7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luOiBhdXRvIGF1dG8gMnJlbTtcblx0XHR9XG5cdH1cblx0LyogRW5kIGNhbGxvdXQtdG9wIGNsYXNzICovXG5cbn1cblxuLyogbWluLXdpZHRoIDEwMjVweCBhbmQgbWF4LXdpZHRoIDE0NDBweCwgdXNlIHdoZW4gUUFpbmcgbGFyZ2Ugc2NyZWVuLW9ubHkgaXNzdWVzICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG5cdGxpLmdhbGxlcnk6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctbGVmdDogYXV0bztcblx0fVxuXHRsaS5nYWxsZXJ5Om50aC1jaGlsZCgyKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBhdXRvO1xuXHR9XG5cdGxpLmdhbGxlcnk6bnRoLWNoaWxkKDMpIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGF1dG87XG5cdH1cbn1cblxuLyogbWluLXdpZHRoIDY0MXB4IGFuZCBtYXgtd2lkdGggMTAyNHB4LCB1c2Ugd2hlbiBRQWluZyB0YWJsZXQtb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XG5cdC5sYXJnZS1ibG9jay1ncmlkLTMubWVkaXVtLWJsb2NrLWdyaWQtMy5zbWFsbC1ibG9jay1ncmlkLTEge1xuXHRcdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAycmVtIGF1dG8gIWltcG9ydGFudDtcblx0fVxuXG59XG5cbi8qIG1heC13aWR0aCA2NDBweCwgbW9iaWxlLW9ubHkgc3R5bGVzLCB1c2Ugd2hlbiBRQWluZyBtb2JpbGUgaXNzdWVzICovXG5cbmgyLnNpZGUtaW1nLXRpdGxlIHtcblx0Y29sb3I6IHdoaXRlO1xuXHRtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXRvcDogMS4zcmVtO1xuXHRwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuXHRmb250LWZhbWlseTogJGZvbnQtaGw7XG5cdGZvbnQtc2l6ZTogMXJlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2lkZS1pbWctbGFyZ2Uge1xuXHRtYXJnaW46IDAgYXV0byAxcmVtO1xuXHRib3JkZXItYm90dG9tOiAuNHJlbSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblxufVxuXG4uaW1nLXNpZGViYXIge1xuXHRsaSB7XG5cdFx0Ym9yZGVyOiAuMnJlbSBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHRtYXJnaW46IDAgLjJyZW0gIWltcG9ydGFudDtcblx0XHR3aWR0aDogYXV0bztcblx0XHRoZWlnaHQ6IGF1dG87XG5cblx0XHQuYm90dG9tLXRodW1icyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0XHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXG5cdFx0XHQuY2xlYXJpbmctdGh1bWJzIGxpIHtcblx0XHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0W2RhdGEtY2xlYXJpbmddIGxpIHtcblx0XHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uaW1nLWJvdHRvbSB7XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IGF1dG8gYXV0byAhaW1wb3J0YW50O1xufVxuXG4iLCIuaG9tZSB7XG5cdC5tYWluIHtcblx0XHRtYXJnaW4tYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmhlcm8ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW46IC44cmVtIGF1dG87XG5cdGZsb2F0OiBub25lO1xuXHR6LWluZGV4OiAxO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRib3gtc2hhZG93OiAwIDNweCAzMHB4IHJnYmEoMCwgMCwgMCwgLjQpO1xuXG5cdGltZyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRhIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC50ZXh0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0Ym90dG9tOiBjYWxjKDQwcHggKyA1dncpO1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcblx0XHRwYWRkaW5nOiAxMnB4IDE2cHg7XG5cblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjA2M2VtKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcblx0XHRcdGJvdHRvbTogNTFweDtcblx0XHRcdHBhZGRpbmc6IDAgNTNweDtcblx0XHR9XG5cblx0XHRoMiB7XG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdGEge1xuXHRcdFx0XHRmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0XHRmb250LXNpemU6IDJyZW07XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cblx0XHRcdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MC4wNjNlbSkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogY2FsYygwLjVyZW0gKyA1dncpO1xuXHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiAwLjZweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYzZW0pIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDMuNnJlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5idXR0b24ge1xuXHRcdFx0bWFyZ2luOiAwIDAgMCA1NHB4O1xuXHRcdH1cblx0fVxufVxuXG4vLyBFbmQgSGVybyBDbGFzc1xuXG4ubGVmdC1ib3gge1xuXHRtYXgtd2lkdGg6IG5vbmU7XG5cdGhlaWdodDogYXV0bztcblx0ZmxvYXQ6IGxlZnQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luOiAuNXJlbSBhdXRvO1xuXG5cdGgyIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogLjZyZW07XG5cdH1cblxuXHRwIHtcblx0XHRmb250LWZhbWlseTogJGZvbnQtYm9keTtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIuMjtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0dHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyAuNXMgZWFzZS1pbi1vdXQ7XG5cdFx0LW1vei10cmFuc2l0aW9uOiBib3JkZXItcmFkaXVzIC41cyBlYXNlLWluLW91dDtcblx0XHQtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1yYWRpdXMgLjVzIGVhc2UtaW4tb3V0O1xuXHR9XG59XG5cbi5taWRkbGUtYXJlYSB7XG5cdG1hcmdpbjogLjlyZW0gYXV0bztcbn1cblxuLmxlZnQtYm94IGltZzpob3ZlciB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5sZWZ0LWJveCBoMiB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRsZXR0ZXItc3BhY2luZzogLS4xMjVlbTtcbn1cblxuLm1pZGRsZS1ib3gge1xuXHRtYXgtd2lkdGg6IG5vbmU7XG5cdGhlaWdodDogYXV0bztcblx0ZmxvYXQ6IGxlZnQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luOiAuNXJlbSBhdXRvO1xufVxuXG4ubWlkZGxlLWJveCBzcGFuIHtcblx0Zm9udC1zaXplOiAxNXB4O1xuXHRmb250LXdlaWdodDogODAwO1xuXHRtYXJnaW46IDIwcHggYXV0byAycHg7XG59XG5cbi5taWRkbGUtYm94IHtcblxuXHRoMiB7XG5cdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsICFpbXBvcnRhbnQ7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IC0uMTI1ZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblx0fVxuXG5cdHVsIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0bGkge1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5cdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0bWFyZ2luOiAzcHggMTVweCA1cHggMDtcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS4xMjVlbTtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAuMTVyZW0gIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0aDMge1xuXHRcdFx0XHRmb250OiA5MDAgMTRweC8xICRmb250LWJvZHk7XG5cdFx0XHRcdGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cdFx0XHRcdG1hcmdpbjogLjI1cmVtIGF1dG8gMnB4O1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogLjE1cmVtO1xuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRcdHRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGVhc2UtaW4tb3V0O1xuXHRcdFx0fVxuXG5cdFx0XHRhOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0fVxuXG5cdFx0XHRwIHNwYW4ge1xuXHRcdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuXG5cdFx0XHQuY3YtbGluayB7XG5cdFx0XHRcdG1hcmdpbjogM3B4IGF1dG87XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdGZvbnQ6IGl0YWxpYyAxNHB4LzEgc2Fucy1zZXJpZjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBFbmQgbGlzdCBpdGVtXG59XG5cbi8vIEVuZCBNaWRkbGUgQm94XG5cbi5yaWdodC1ib3gge1xuXHRtYXgtd2lkdGg6IDIzLjEyNWVtO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0aGVpZ2h0OiBhdXRvO1xuXHRmbG9hdDogbGVmdDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IC43NXJlbSBhdXRvO1xuXG5cdC5ib3gtaW5uZXIge1xuXHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGJveC1zaGFkb3c6IDAgM3B4IDMwcHggcmdiYSgwLCAwLCAwLCAuNCk7XG5cblx0XHRoMiB7XG5cdFx0XHRjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdG1hcmdpbjogMS4xcmVtIGF1dG87XG5cdFx0XHRwYWRkaW5nLXRvcDogMS4yNXJlbTtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAuMTI1cmVtO1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdFx0Zm9udC1zaXplOiAyNnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IC45O1xuXHRcdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zIGVhc2UtaW4tb3V0O1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0fVxuXG5cdFx0aW1nOmhvdmVyIHtcblx0XHRcdG9wYWNpdHk6IC44O1xuXHRcdH1cblxuXHRcdC5jYXB0aW9uIHtcblx0XHRcdGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0cGFkZGluZy10b3A6IDEuMTI1cmVtO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDEuMTI1cmVtO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC1obDtcblx0XHRcdHRyYW5zaXRpb246IGNvbG9yIDUwMG1zIGVhc2UtaW4tb3V0O1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRcdC5jYXB0aW9uOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQvLyBFbmQgYm94LWlubmVyIGNsYXNzXG5cbn1cblxuLy8gRW5kIHJpZ2h0LWJveCBjbGFzc1xuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG5cblx0LnJpZ2h0LWJveCB7XG5cdFx0bWF4LXdpZHRoOiAyMy4xMjVlbTtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAxLjFyZW0gYXV0bztcblxuXHRcdC5ib3gtaW5uZXIge1xuXHRcdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0XHRib3gtc2hhZG93OiAwIDNweCAzMHB4IHJnYmEoMCwgMCwgMCwgLjQpO1xuXG5cdFx0XHRoMiB7XG5cdFx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdG1hcmdpbjogMXJlbSBhdXRvO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMXJlbTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IC4xMjVyZW07XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdFx0XHRmb250LXNpemU6IDI2cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAuOTtcblx0XHRcdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cdFx0XHR9XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgNTAwbXMgZWFzZS1pbi1vdXQ7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0fVxuXG5cdFx0XHRpbWc6aG92ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAuODtcblx0XHRcdH1cblxuXHRcdFx0LmNhcHRpb24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAxcmVtO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMXJlbTtcblx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBjb2xvciA1MDBtcyBlYXNlLWluLW91dDtcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRcdFx0LmNhcHRpb246aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQvLyBFbmQgYm94LWlubmVyIGNsYXNzXG5cblx0fVxuXHQvLyBFbmQgcmlnaHQtYm94IGNsYXNzXG59XG5cbi8qIG1pbi13aWR0aCA2NDFweCBhbmQgbWF4LXdpZHRoIDEwMjRweCwgdXNlIHdoZW4gUUFpbmcgdGFibGV0LW9ubHkgaXNzdWVzICovXG4iLCJcclxuYm9keS5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLXBoeXNpY2lhbiB7XHJcblxyXG5cdC5tYWluIGgxLnRpdGxlIHtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG5cdH1cclxuXHJcblx0LmRyLWludHJvIHtcclxuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAyLjI1O1xyXG5cdFx0bWFyZ2luOiAxMHB4IGF1dG8gMjBweDtcclxuXHRcdHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdG1pbi1oZWlnaHQ6IDIyMHB4O1xyXG5cclxuXHJcblx0XHQuc3BlY2lhbC10aXRsZSB7XHJcblx0XHRcdG1heC13aWR0aDogbm9uZTtcclxuXHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdFx0XHRjb2xvcjogIzU2Mjg0ZjtcclxuXHRcdFx0Zm9udC1zaXplOiAxLjI1cmVtO1xyXG5cdFx0XHRtYXJnaW46IC0wLjVyZW0gMCAwLjVyZW0gMDtcclxuXHRcdH1cclxuXHJcblx0XHQuaW1hZ2UtYW5kLXF1b3RlIHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHRcdC5pbWFnZSB7XHJcblx0XHRcdFx0d2lkdGg6IDE2MHB4O1xyXG5cdFx0XHRcdG1pbi13aWR0aDogMTYwcHg7XHJcblxyXG5cdFx0XHRcdGltZyB7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiA1cHg7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xyXG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzMzMztcclxuXHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdG1hcmdpbjogMCAyMHB4IDEwcHggMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5xdW90ZSB7XHJcblx0XHRcdFx0Ly8gcGFkZGluZzogNXB4IDExMHB4IDAgMjBweDtcclxuXHJcblx0XHRcdFx0YmxvY2txdW90ZSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICNiMmE1ODM7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAxLjVyZW0gM3JlbTtcclxuXHJcblx0XHRcdFx0XHQmID4gOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0cCB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xyXG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjNweDtcclxuXHRcdFx0XHRcdFx0Y29sb3I6ICNmZmY7XHJcblxyXG5cdFx0XHRcdFx0XHQmOmZpcnN0LWNoaWxkOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDogJ+KAnCc7XHJcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICM3YzAwNDA7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6IC0yM3B4O1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDQ4cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdCY6bGFzdC1vZi10eXBlOmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiAn4oCdJztcclxuXHRcdFx0XHRcdFx0XHRjb2xvcjogIzU2Mjg0ZjtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogLTEycHg7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogMjRweDtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OiA0cHg7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiA0OHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQucGh5c2ljaWFuLWhlcm8ge1xyXG5cdFx0bWFyZ2luOiAwIDAgMnJlbSAwO1xyXG5cclxuXHRcdC52aWRlby1lbWJlZCB7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGhlaWdodDogMDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDU2LjI1JTtcclxuXHJcblx0XHRcdGlmcmFtZSxcclxuXHRcdFx0LmltYWdlIHtcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmltYWdlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xyXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cclxuXHQuY2VydGlmaWNhdGlvbi1sb2dvcyB7XHJcblx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcblx0XHRtYXJnaW46IDEwcHggMDtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHJcblx0XHRsaSB7XHJcblx0XHRcdG1heC13aWR0aDogMTUwcHg7XHJcblx0XHRcdG1hcmdpbjogMCAxMHB4IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiAzMjBlbSkge1xuYm9keSB7IGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL2dyYWRpZW50LXRhbl94bC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9XG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1pbWFnZS1ub25lIHtcbmJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL2dyYWRpZW50LXRhbl94bC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O1xufVxuXG59IC8qIG1pbi13aWR0aCAxNDQxcHggYW5kIG1heC13aWR0aCAxOTIwcHgsIHVzZSB3aGVuIFFBaW5nIHhsYXJnZSBzY3JlZW4tb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDkwZW0pIHtcbmJvZHkgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9ncmFkaWVudC10YW5fbGcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgYmFja2dyb3VuZC1zaXplOiAyMGVtIDIwZW07IH1cbi5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWltYWdlLW5vbmUge1xuYmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vZ3JhZGllbnQtdGFuX2xnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7XG59XG59IC8qIG1pbi13aWR0aCAxMDI1cHggYW5kIG1heC13aWR0aCAxNDQwcHgsIHVzZSB3aGVuIFFBaW5nIGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjA2M2VtKSBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuYm9keSB7IGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL2dyYWRpZW50LXRhbl9sZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9XG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1pbWFnZS1ub25lIHtcbmJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL2dyYWRpZW50LXRhbl9sZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O1xufVxufSAvKiBtaW4td2lkdGggNjQxcHggYW5kIG1heC13aWR0aCAxMDI0cHgsIHVzZSB3aGVuIFFBaW5nIHRhYmxldC1vbmx5IGlzc3VlcyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwZW0pIHtcbmJvZHkgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9ncmFkaWVudC10YW5fc20ucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgfVxuLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtaW1hZ2Utbm9uZSB7XG5iYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9ncmFkaWVudC10YW5fc20ucG5nKSBsZWZ0IHRvcCByZXBlYXQteTtcbn1cbn0gLyogbWF4LXdpZHRoIDY0MHB4LCBtb2JpbGUtb25seSBzdHlsZXMsIHVzZSB3aGVuIFFBaW5nIG1vYmlsZSBpc3N1ZXMgKi9cbiIsIi5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWltYWdlLW9uZSB7XG5cblx0b3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG5cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDMwMGVtKSB7XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdG1hcmdpbi10b3A6IC0zcmVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0bWF4LXdpZHRoOiAyNGVtO1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDI0ZW07XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwLjMxM2VtIDAuNjI1ZW0gMCAwLjQzOGVtICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHR9XG5cblx0XHRcdC5jYWxsb3V0IHtcblx0XHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgY2VudGVyIHRvcCBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjRlbSAyNGVtO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbjogLTIuMjVyZW0gYXV0byBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtaW4taGVpZ2h0OiAyNy41MGVtO1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiBub25lO1xuXHRcdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblxuXHRcdFx0XHRoMiB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiA2cmVtO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDQ0MHB4O1xuXHRcdFx0XHRcdGNvbG9yOiAkdGFuO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS4zZW07XG5cdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0LyogRW5kIGZlYXR1cmVkLWltZyBjbGFzcyAqL1xuXG5cblx0fVxuXHQvKiBtaW4td2lkdGggMTQ0MC4wNjNlbSBhbmQgbWF4LXdpZHRoIDE5MjBweCwgdXNlIHdoZW4gUUFpbmcgeGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA5MGVtKSB7XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdG1pbi1oZWlnaHQ6IGF1dG87XG5cdFx0XHRtYXgtaGVpZ2h0OiBub25lO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0bWFyZ2luLXRvcDogLTMuMnJlbSAhaW1wb3J0YW50O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdG1heC13aWR0aDogMjVlbTtcblx0XHRcdFx0bWF4LWhlaWdodDogMjVlbTtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0XHQuY2FsbG91dCB7XG5cdFx0XHRcdC8vbm9pbnNwZWN0aW9uIENzc1Vua25vd25UYXJnZXRcblx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIGNlbnRlciB0b3Agbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDI0ZW0gMjRlbTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRtYXJnaW46IC0yLjI1cmVtIGF1dG8gYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0bWluLWhlaWdodDogMjcuNTBlbTtcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0XHRcdFx0aDIge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogNS41cmVtO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMC43NXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDQwMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0Y29sb3I6ICR0YW47XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjMxMjVyZW07XG5cdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdFx0XHRcdFx0dGV4dC13cmFwOiBiYWxhbmNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0LyogRW5kIEZlYXR1cmVkIEltYWdlIENsYXNzICovXG5cblxuXHR9XG5cdC8qIG1pbi13aWR0aCAxMDEuNTYzZW0gYW5kIG1heC13aWR0aCAxNDQwcHgsIHVzZSB3aGVuIFFBaW5nIGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG5cblx0XHQubWFpbiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyLjVyZW07XG5cdFx0fVxuXG5cdFx0LmZlYXR1cmVkLWltZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAtMi43NXJlbSAhaW1wb3J0YW50O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdG1heC13aWR0aDogMTZlbTtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogLjhyZW0gYXV0byAxcmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAuMzEzZW0gMC42MjVlbSAwIDAuNDM4ZW0gJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdH1cblxuXHRcdFx0LmNhbGxvdXQge1xuXHRcdFx0XHQvL25vaW5zcGVjdGlvbiBDc3NVbmtub3duVGFyZ2V0XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL3B1cnBsZS1zd29vcHMuc3ZnKSB0b3AgY2VudGVyIG5vLXJlcGVhdDtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblxuXHRcdFx0XHRoMiB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiA0cmVtO1xuXHRcdFx0XHRcdG1heC13aWR0aDogODAlO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAuNXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGgzIHtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiA5MCUgIWltcG9ydGFudDtcblx0XHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0XHRmb250LXNpemU6IDEuMWVtO1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0LyogRW5kIEZlYXR1cmVkIEltYWdlIENsYXNzICovXG5cblx0fVxuXHQvKiBtaW4td2lkdGggNjQwLjA2M2VtIGFuZCBtYXgtd2lkdGggMTAyMC4yNTBlbSwgdXNlIHdoZW4gUUFpbmcgdGFibGV0LW9ubHkgaXNzdWVzICovXG5cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XG5cblx0XHQubWFpbiB7XG5cdFx0XHRwOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxLjc1cmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mZWF0dXJlZC1pbWcge1xuXHRcdFx0cGFkZGluZy10b3A6IDEuNzVyZW0gIWltcG9ydGFudDtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDIwZW07XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0bWF4LWhlaWdodDogMjBlbTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0byAxcmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAuMzEzZW0gMC42MjVlbSAwIDAuNDM4ZW0gJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdH1cblxuXHRcdFx0LmNhbGxvdXQge1xuXHRcdFx0XHQvL25vaW5zcGVjdGlvbiBDc3NVbmtub3duVGFyZ2V0XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL3B1cnBsZS1zd29vcHMuc3ZnKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbjogMnJlbSBhdXRvIGF1dG8gIWltcG9ydGFudDtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblxuXHRcdFx0XHRoMiB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiAyLjEyNXJlbTtcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogLjVyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRoMyB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IDE1cmVtO1xuXHRcdFx0XHRcdGNvbG9yOiAkdGFuO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAycmVtO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0LyogRW5kIEZlYXR1cmVkIEltYWdlIENsYXNzICovXG5cblx0fVxuXHQvKiBtYXgtd2lkdGggNjQwcHgsIG1vYmlsZS1vbmx5IHN0eWxlcywgdXNlIHdoZW4gUUFpbmcgbW9iaWxlIGlzc3VlcyAqL1xuXG59XG5cbi8qIEVuZCBUd28gYW5kIFRocmVlIFBhZ2UgVGVtcGxhdGUgQ2xhc3NlcyAqLyIsIi5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWltYWdlLXR3byB7XG5cblx0b3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG5cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDMwMGVtKSB7XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdG1hcmdpbi10b3A6IC0yLjlyZW0gIWltcG9ydGFudDtcblxuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdG1heC13aWR0aDogMjRlbTtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiAyNGVtO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0XHQuc21hbGwtYm90dG9tIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym94LXNoYWRvdzogLTAuMjUwZW0gMC4xODhlbSAwcHggMC4yNTBlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHR3aWR0aDogMTEuMjUwZW07XG5cdFx0XHRcdGhlaWdodDogMTEuMjUwZW07XG5cdFx0XHRcdHRvcDogMTZlbTtcblx0XHRcdFx0bGVmdDogNC4zMTNlbTtcblx0XHRcdH1cblxuXHRcdH1cblx0XHQvKiBFbmQgZmVhdHVyZWQtaW1nIGNsYXNzICovXG5cblx0XHQuY2FsbG91dCB7XG5cdFx0XHQvL25vaW5zcGVjdGlvbiBDc3NVbmtub3duVGFyZ2V0XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgY2VudGVyIHRvcCBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDI0ZW0gMjRlbTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRtYXJnaW46IC0yLjI1cmVtIGF1dG8gYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRtaW4taGVpZ2h0OiAyNy41MGVtO1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA2cmVtO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGgzIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDIwZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Y29sb3I6ICR0YW47XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4zZW07XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXHRcdFx0XHR0ZXh0LXdyYXA6IGJhbGFuY2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblx0LyogbWluLXdpZHRoIDE0NDAuMDYzZW0gYW5kIG1heC13aWR0aCAxOTIwcHgsIHVzZSB3aGVuIFFBaW5nIHhsYXJnZSBzY3JlZW4tb25seSBpc3N1ZXMgKi9cblxuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSBhbmQgKG1heC13aWR0aDogOTBlbSkge1xuXG5cdFx0LmZlYXR1cmVkLWltZyB7XG5cdFx0XHRtaW4taGVpZ2h0OiBhdXRvO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0bWFyZ2luLXRvcDogLTMuMnJlbSAhaW1wb3J0YW50O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdG1heC13aWR0aDogMjVlbTtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiAyNWVtO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0XHQuc21hbGwtYm90dG9tIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym94LXNoYWRvdzogLTAuMjUwZW0gMC4xODhlbSAwcHggMC4yNTBlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0XHR3aWR0aDogMTEuMjUwZW07XG5cdFx0XHRcdGhlaWdodDogMTEuMjUwZW07XG5cdFx0XHRcdHRvcDogMTYuMjVlbTtcblx0XHRcdFx0bGVmdDogMi41ZW07XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0LyogRW5kIEZlYXR1cmVkIEltYWdlIENsYXNzICovXG5cblx0XHQuY2FsbG91dCB7XG5cdFx0XHQvL25vaW5zcGVjdGlvbiBDc3NVbmtub3duVGFyZ2V0XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgY2VudGVyIHRvcCBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDI0ZW0gMjRlbTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRtYXJnaW46IC0yLjI1cmVtIGF1dG8gYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRtaW4taGVpZ2h0OiAyNy41MGVtO1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA1LjVyZW07XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDAuNzVyZW0gIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0aDMge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdG1heC13aWR0aDogMjBlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblx0LyogbWluLXdpZHRoIDEwMS41NjNlbSBhbmQgbWF4LXdpZHRoIDE0NDBweCwgdXNlIHdoZW4gUUFpbmcgbGFyZ2Ugc2NyZWVuLW9ubHkgaXNzdWVzICovXG5cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDY0ZW0pIHtcblxuXHRcdC5tYWluIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIuNXJlbTtcblx0XHR9XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdG1hcmdpbi10b3A6IC4yNXJlbSAhaW1wb3J0YW50O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdG1heC13aWR0aDogMTcuNWVtO1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiAuOHJlbSBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdC8qIEVuZCBGZWF0dXJlZCBJbWFnZSBDbGFzcyAqL1xuXG5cdFx0LmNhbGxvdXQge1xuXHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIHRvcCBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0cGFkZGluZy10b3A6IDJyZW07XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAuNXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGgzIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjFlbTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblx0LyogbWluLXdpZHRoIDY0MC4wNjNlbSBhbmQgbWF4LXdpZHRoIDEwMjAuMjUwZW0sIHVzZSB3aGVuIFFBaW5nIHRhYmxldC1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDBlbSkge1xuXG5cdFx0Lm1haW4ge1xuXHRcdFx0cDpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMS43NXJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwLjMxM2VtIDAuNjI1ZW0gMCAwLjQzOGVtICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qIEVuZCBGZWF0dXJlZCBJbWFnZSBDbGFzcyAqL1xuXG5cdFx0LmNhbGxvdXQge1xuXHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdG1hcmdpbjogMCBhdXRvIGF1dG8gIWltcG9ydGFudDtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblxuXHRcdFx0aDIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0cGFkZGluZy10b3A6IDMuNXJlbTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0aDMge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IDE1cmVtO1xuXHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjMzZW07XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG87XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAycmVtO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cdC8qIG1heC13aWR0aCA2NDBweCwgbW9iaWxlLW9ubHkgc3R5bGVzLCB1c2Ugd2hlbiBRQWluZyBtb2JpbGUgaXNzdWVzICovXG5cbn1cblxuLyogRW5kIFR3byBQYWdlIFRlbXBsYXRlIENsYXNzZXMgKi8iLCIucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1pbWFnZS10aHJlZSB7XG5cblx0b3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG5cblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDMwMGVtKSB7XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdG1hcmdpbi10b3A6IC0zcmVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0bWF4LXdpZHRoOiAyNGVtO1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDI0ZW07XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwLjMxM2VtIDAuNjI1ZW0gMCAwLjQzOGVtICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHR9XG5cblx0XHRcdC5zbWFsbC10b3Age1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3gtc2hhZG93OiAuMzVlbSAtLjA4ZW0gMGVtIC4xZW0gJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdFx0d2lkdGg6IDhlbTtcblx0XHRcdFx0aGVpZ2h0OiA4ZW07XG5cdFx0XHRcdHRvcDogLTIuNzVlbTtcblx0XHRcdFx0cmlnaHQ6IDUuOTM4ZW07XG5cdFx0XHR9XG5cblx0XHRcdC5zbWFsbC1ib3R0b20ge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3gtc2hhZG93OiAtMC4yNTBlbSAwLjE4OGVtIDBweCAwLjI1MGVtICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHRcdHdpZHRoOiAxMS4yNTBlbTtcblx0XHRcdFx0aGVpZ2h0OiAxMS4yNTBlbTtcblx0XHRcdFx0dG9wOiAxNGVtO1xuXHRcdFx0XHRsZWZ0OiA0LjMxM2VtO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdC8qIEVuZCBmZWF0dXJlZC1pbWcgY2xhc3MgKi9cblxuXHRcdC5jYWxsb3V0IHtcblx0XHRcdC8vbm9pbnNwZWN0aW9uIENzc1Vua25vd25UYXJnZXRcblx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL3B1cnBsZS1zd29vcHMuc3ZnKSBjZW50ZXIgdG9wIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjRlbSAyNGVtO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdG1hcmdpbjogLTIuMjVyZW0gYXV0byBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdG1pbi1oZWlnaHQ6IDI3LjUwZW07XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0cGFkZGluZy10b3A6IDZyZW07XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0aDMge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdG1heC13aWR0aDogMjBlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblx0LyogbWluLXdpZHRoIDE0NDAuMDYzZW0gYW5kIG1heC13aWR0aCAxOTIwcHgsIHVzZSB3aGVuIFFBaW5nIHhsYXJnZSBzY3JlZW4tb25seSBpc3N1ZXMgKi9cblxuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSBhbmQgKG1heC13aWR0aDogOTBlbSkge1xuXG5cdFx0LmZlYXR1cmVkLWltZyB7XG5cdFx0XHRtaW4taGVpZ2h0OiBhdXRvO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0bWFyZ2luLXRvcDogLTMuMnJlbSAhaW1wb3J0YW50O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdG1heC13aWR0aDogMjVlbTtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiAyNWVtO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0XHQuc21hbGwtdG9wIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym94LXNoYWRvdzogLjM1ZW0gLS4wOGVtIDBlbSAuMWVtICRzZWNvbmRhcnktY29sb3I7XG5cdFx0XHRcdHdpZHRoOiA4ZW07XG5cdFx0XHRcdGhlaWdodDogOGVtO1xuXHRcdFx0XHR0b3A6IC0zLjEyNWVtO1xuXHRcdFx0XHRyaWdodDogNS45MzhlbTtcblx0XHRcdH1cblxuXHRcdFx0LnNtYWxsLWJvdHRvbSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGJveC1zaGFkb3c6IC0wLjI1MGVtIDAuMTg4ZW0gMHB4IDAuMjUwZW0gJHNlY29uZGFyeS1jb2xvcjtcblx0XHRcdFx0d2lkdGg6IDExLjI1MGVtO1xuXHRcdFx0XHRoZWlnaHQ6IDExLjI1MGVtO1xuXHRcdFx0XHR0b3A6IDI4JTtcblx0XHRcdFx0bGVmdDogNC4zMTNlbTtcblx0XHRcdH1cblxuXHRcdH1cblx0XHQvKiBFbmQgRmVhdHVyZWQgSW1hZ2UgQ2xhc3MgKi9cblxuXHRcdC5jYWxsb3V0IHtcblx0XHRcdC8vbm9pbnNwZWN0aW9uIENzc1Vua25vd25UYXJnZXRcblx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL3B1cnBsZS1zd29vcHMuc3ZnKSBjZW50ZXIgdG9wIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMjRlbSAyNGVtO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdG1hcmdpbjogLTIuMjVyZW0gYXV0byBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdG1pbi1oZWlnaHQ6IDI3LjUwZW07XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0cGFkZGluZy10b3A6IDUuNXJlbTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMC43NXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHRoMyB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0bWF4LXdpZHRoOiAyMGVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGNvbG9yOiAkdGFuO1xuXHRcdFx0XHRmb250LXNpemU6IDEuM2VtO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogNHJlbTtcblx0XHRcdFx0dGV4dC13cmFwOiBiYWxhbmNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cdC8qIG1pbi13aWR0aCAxMDEuNTYzZW0gYW5kIG1heC13aWR0aCAxNDQwcHgsIHVzZSB3aGVuIFFBaW5nIGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG5cblx0XHQubWFpbiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyLjVyZW07XG5cdFx0fVxuXG5cdFx0LmZlYXR1cmVkLWltZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luOiAuOHJlbSBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdC8qIEVuZCBGZWF0dXJlZCBJbWFnZSBDbGFzcyAqL1xuXG5cdFx0LmNhbGxvdXQge1xuXHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIHRvcCBjZW50ZXIgbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0bWFyZ2luOiAwIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblxuXHRcdFx0aDIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0cGFkZGluZy10b3A6IDJyZW07XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAuNXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGgzIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0Zm9udC1zaXplOiAxLjFlbTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblx0LyogbWluLXdpZHRoIDY0MC4wNjNlbSBhbmQgbWF4LXdpZHRoIDEwMjAuMjUwZW0sIHVzZSB3aGVuIFFBaW5nIHRhYmxldC1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDBlbSkge1xuXG5cdFx0Lm1haW4ge1xuXHRcdFx0cDpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMS43NXJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdHBhZGRpbmctdG9wOiAxLjc1cmVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMC4zMTNlbSAwLjYyNWVtIDAgMC40MzhlbSAkc2Vjb25kYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdC8qIEVuZCBGZWF0dXJlZCBJbWFnZSBDbGFzcyAqL1xuXG5cdFx0LmNhbGxvdXQge1xuXHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdG1hcmdpbjogMCBhdXRvIGF1dG8gIWltcG9ydGFudDtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblxuXHRcdFx0aDIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0cGFkZGluZy10b3A6IDIuNjVyZW07XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAuNXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGgzIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtaW4taGVpZ2h0OiAxNXJlbTtcblx0XHRcdFx0Y29sb3I6ICR0YW47XG5cdFx0XHRcdGZvbnQtc2l6ZTogMS4zM2VtO1xuXHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMnJlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXHQvKiBtYXgtd2lkdGggNjQwcHgsIG1vYmlsZS1vbmx5IHN0eWxlcywgdXNlIHdoZW4gUUFpbmcgbW9iaWxlIGlzc3VlcyAqL1xuXG59XG5cbi8qIEVuZCBUaHJlZSBQYWdlIFRlbXBsYXRlIENsYXNzZXMgKi8iLCIucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1pbWFnZS1ub25lIHtcblxuLnRpdGxlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSBhbmQgKG1heC13aWR0aDogMzIwZW0pIHtcblxuLm1haW4ge1xubWFyZ2luOiAwIGF1dG8gMnJlbSAhaW1wb3J0YW50O1xufVxuXG4uY2FsbG91dC10b3Age1xubWFyZ2luLXRvcDogMHJlbTtcbnBhZGRpbmctdG9wOiAyMi41cmVtO1xuYmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7XG5iYWNrZ3JvdW5kLXNpemU6IDI4ZW0gMjhlbTtcbnBhZGRpbmctbGVmdDogLjk3M3JlbTtcbnBhZGRpbmctcmlnaHQ6IC45NzNyZW07XG5cbmgxIHtcbmZvbnQtc2l6ZTogMS43NWVtO1xudGV4dC1hbGlnbjogY2VudGVyO1xuY29sb3I6ICRwcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7XG5mb250LWZhbWlseTogJGZvbnQtYm9keTtcbmxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5tYXJnaW4tdG9wOiAtMThyZW07XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG5cdH1cbmgyIHtcbmNvbG9yOiAkdGFuO1xudGV4dC10cmFuc2Zvcm06IG5vbmU7XG5tYXgtd2lkdGg6IDQwZW07XG5saW5lLWhlaWdodDogMS4zZW07XG5tYXJnaW46IC40cmVtIGF1dG8gYXV0byAhaW1wb3J0YW50O1xufVx0XG5cbn0gLy8gRW5kIGNhbGxvdXQtdG9wIGNsYXNzIC8vIFxuXG4ubGVmdC1jb2x1bW4ge1xucDo6Zmlyc3QtY2hpbGQge1xubWFyZ2luOiAwIGF1dG8gMXJlbSAhaW1wb3J0YW50O1xufVxufVxuXG4ucmlnaHQtY29sdW1uIHtcblxuaDI6Zmlyc3QtY2hpbGQge1xubWFyZ2luOiAuOHJlbSBhdXRvIC42cmVtICFpbXBvcnRhbnQ7XG59XG5wOmxhc3QtY2hpbGQge1xubWFyZ2luLWJvdHRvbTogMi41cmVtO1xufVxufSAvLyBFbmQgcmlnaHQtY29sdW1uIGNsYXNzIC8vXG5cbn0gLyogbWluLXdpZHRoIDEwMjVweCBhbmQgbWF4LXdpZHRoIDE0NDBweCwgdXNlIHdoZW4gUUFpbmcgbGFyZ2Ugc2NyZWVuLW9ubHkgaXNzdWVzICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG5cbi5tYWluIHtcbm1hcmdpbjogMCBhdXRvIDJyZW0gIWltcG9ydGFudDtcbn1cblxuLmNhbGxvdXQtdG9wIHtcbm1hcmdpbi10b3A6IDByZW07XG5wYWRkaW5nLXRvcDogMjIuNXJlbTtcbmJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL3B1cnBsZS1zd29vcHMuc3ZnKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0O1xuYmFja2dyb3VuZC1zaXplOiAyOGVtIDI4ZW07XG5wYWRkaW5nLWxlZnQ6IC45NzNyZW07XG5wYWRkaW5nLXJpZ2h0OiAuOTczcmVtO1xuXG5oMSB7XG5mb250LXNpemU6IDEuNzVlbTtcbnRleHQtYWxpZ246IGNlbnRlcjtcbmNvbG9yOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuZm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5sZXR0ZXItc3BhY2luZzogbm9ybWFsO1xubWFyZ2luLXRvcDogLTE4cmVtO1xudGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDIge1xuY29sb3I6ICR0YW47XG50ZXh0LXRyYW5zZm9ybTogbm9uZTtcbm1heC13aWR0aDogNDBlbTtcbmxpbmUtaGVpZ2h0OiAxLjNlbTtcbm1hcmdpbjogLjRyZW0gYXV0byBhdXRvICFpbXBvcnRhbnQ7XG50ZXh0LWFsaWduOiBjZW50ZXI7XG59XHRcblxufSAvLyBFbmQgY2FsbG91dC10b3AgY2xhc3MgLy8gXG4gXG5cbi5sZWZ0LWNvbHVtbiB7XG59XG5cbi5yaWdodC1jb2x1bW4ge1xuXG5oMjpudGgtY2hpbGQoMikge1xubWFyZ2luOiAxcmVtIGF1dG8gYXV0byAhaW1wb3J0YW50O1xufVxucDpsYXN0LWNoaWxkIHtcbm1hcmdpbi1ib3R0b206IDIuNXJlbTtcbn1cbn0gLy8gRW5kIHJpZ2h0LWNvbHVtbiBjbGFzcyAvL1xuXG59IC8qIG1pbi13aWR0aCA2NDFweCBhbmQgbWF4LXdpZHRoIDEwMjRweCwgdXNlIHdoZW4gUUFpbmcgdGFibGV0LW9ubHkgaXNzdWVzICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDBlbSkge1xuLmNhbGxvdXQtdG9wIHtcbnBhZGRpbmctbGVmdDogLjk3M3JlbTtcbnBhZGRpbmctcmlnaHQ6IC45NzNyZW07XG5cbmgxIHtcbmZvbnQtc2l6ZTogMS43NWVtO1xudGV4dC1hbGlnbjogbGVmdDtcbmNvbG9yOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuZm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5sZXR0ZXItc3BhY2luZzogbm9ybWFsO1xubWFyZ2luOiAyZW0gYXV0byAwO1xuXHR9XG5oMiB7XG5jb2xvcjogJHRhbjtcbnRleHQtdHJhbnNmb3JtOiBub25lO1xubWF4LXdpZHRoOiAzMGVtO1xubGluZS1oZWlnaHQ6IDEuM2VtO1xubWFyZ2luOiAuNHJlbSBhdXRvIDJyZW0gIWltcG9ydGFudDtcbn1cdFxuXG5cdFx0XHQgfSAvLyBFbmQgY2FsbG91dC10b3AgY2xhc3MgLy8gXG5cbi5sZWZ0LWNvbHVtbiB7XG5wOjpmaXJzdC1jaGlsZCB7XG5tYXJnaW46IDAgYXV0byAxcmVtICFpbXBvcnRhbnQ7XG59XG59XG5cbi5yaWdodC1jb2x1bW4ge1xuXG5oMjpmaXJzdC1jaGlsZCB7XG5tYXJnaW46IDAgYXV0byAxcmVtICFpbXBvcnRhbnQ7XG59XG5wOmxhc3QtY2hpbGQge1xubWFyZ2luLWJvdHRvbTogMi41cmVtO1xufVxufSAvLyBFbmQgcmlnaHQtY29sdW1uIGNsYXNzIC8vXG59IC8qIG1heC13aWR0aCA2NDBweCwgbW9iaWxlLW9ubHkgc3R5bGVzLCB1c2Ugd2hlbiBRQWluZyBtb2JpbGUgaXNzdWVzICovXG5cblxufSAvLyBFbmQgUGFnZSBUZW1wbGF0ZSBObyBJbWFnZSIsIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiAyNTBlbSkge1xuXG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1nYWxsZXJ5IHtcblxub3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG5cbmFzaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG59XG5cbmxpLmdhbGxlcnkge1xuYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuaDIge1xuY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuZm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5tYXJnaW4tYm90dG9tOiAwO1xudGV4dC1hbGlnbjogY2VudGVyO1xucGFkZGluZy10b3A6IC41cmVtO1xucGFkZGluZy1ib3R0b206IC41cmVtO1xubGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbmxpbmUtaGVpZ2h0OiAxO1xuZm9udC1zaXplOiAxLjFyZW07XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xubWluLWhlaWdodDogMi43NWVtO1xubWF4LWhlaWdodDogYXV0bztcbn1cblxuLmJuYSB7IG1hcmdpbi1ib3R0b206IDA7IH1cbi5iYS1ib3R0b20geyBiYWNrZ3JvdW5kOiBub25lOyBtYXgtd2lkdGg6IDM2MHB4OyBtYXJnaW46IC0ycmVtIGF1dG8gYXV0bztcbn1cblxuLmdhbGxlcnktaW5uZXIge1xubWF4LXdpZHRoOiAzNjBweDtcbm1pbi13aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXG5pbWcge1xuYm9yZGVyLXJhZGl1czogMTBweDtcbmJveC1zaGFkb3c6IDBweCAxNXB4IDE2cHggMHB4IHJnYmEoMCwwLDAsMC4yNSk7XG59XG5oNiB7XG5jb2xvcjogd2hpdGU7XG5mb250LXNpemU6IDFyZW07XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xucGFkZGluZy10b3A6IDA7XG5wYWRkaW5nLWJvdHRvbTogLjRyZW07IH0gXG59XG59XG59IC8qIG1pbi13aWR0aCAxNDQxcHggYW5kIG1heC13aWR0aCAxOTIwcHgsIHVzZSB3aGVuIFFBaW5nIHhsYXJnZSBzY3JlZW4tb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NC4wNjNlbSkgYW5kIChtYXgtd2lkdGg6IDkwZW0pIHtcbi5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWdhbGxlcnkge1xuXG5vdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcdFxuXG5hc2lkZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH0gfVxuXG5saS5nYWxsZXJ5IHtcbmJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbmgyIHtcbmNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbmZvbnQtZmFtaWx5OiAkZm9udC1ib2R5O1xubWFyZ2luLWJvdHRvbTogMDtcbnRleHQtYWxpZ246IGNlbnRlcjtcbnBhZGRpbmctdG9wOiAxLjVyZW07XG5wYWRkaW5nLWJvdHRvbTogLjk1cmVtO1xubGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbmxpbmUtaGVpZ2h0OiAxO1xuZm9udC1zaXplOiAxLjFyZW07XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xubWluLWhlaWdodDogM2VtO1xubWF4LWhlaWdodDogYXV0bztcbn1cblxuLmJuYSB7IG1hcmdpbi1ib3R0b206IDA7IH1cbi5iYS1ib3R0b20geyBiYWNrZ3JvdW5kOiBub25lOyBtYXgtd2lkdGg6IDM2MHB4OyBtYXJnaW46IC0ycmVtIGF1dG8gYXV0bztcbn1cblxuLmdhbGxlcnktaW5uZXIge1xubWF4LXdpZHRoOiAzNjBweDtcbm1pbi13aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXG5pbWcge1xuYm9yZGVyLXJhZGl1czogMTBweDtcbmJveC1zaGFkb3c6IDBweCAxNXB4IDE2cHggMHB4IHJnYmEoMCwwLDAsMC4yNSk7XG59XG5oNiB7XG5jb2xvcjogd2hpdGU7XG5mb250LXNpemU6IDFyZW07XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xucGFkZGluZy10b3A6IDA7XG5wYWRkaW5nLWJvdHRvbTogLjRyZW07IH0gXG59XG59XG59IC8qIG1pbi13aWR0aCAxMDI1cHggYW5kIG1heC13aWR0aCAxNDQwcHgsIHVzZSB3aGVuIFFBaW5nIGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwLjA2M2VtKSBhbmQgKG1heC13aWR0aDogNjRlbSkge1xuXG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1nYWxsZXJ5IHtcblxub3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG5cbmFzaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfSB9XG5cbmxpLmdhbGxlcnkge1xuYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuaDIge1xuY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuZm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5tYXJnaW4tYm90dG9tOiAwO1xudGV4dC1hbGlnbjogY2VudGVyO1xucGFkZGluZy10b3A6IDEuNXJlbTtcbnBhZGRpbmctYm90dG9tOiAuOTVyZW07XG5sZXR0ZXItc3BhY2luZzogbm9ybWFsO1xubGluZS1oZWlnaHQ6IDE7XG5mb250LXNpemU6IDEuMXJlbTtcbnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5taW4taGVpZ2h0OiA0ZW07XG5tYXgtaGVpZ2h0OiBhdXRvO1xufVxuXG4uYm5hIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLmJhLWJvdHRvbSB7IGJhY2tncm91bmQ6IG5vbmU7IG1heC13aWR0aDogMzYwcHg7IG1hcmdpbjogLTJyZW0gYXV0byBhdXRvO1xufVxuXG4uZ2FsbGVyeS1pbm5lciB7XG5tYXgtd2lkdGg6IDM2MHB4O1xubWluLXdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cbmltZyB7XG5ib3JkZXItcmFkaXVzOiAxMHB4O1xuYm94LXNoYWRvdzogMHB4IDE1cHggMTZweCAwcHggcmdiYSgwLDAsMCwwLjI1KTtcbn1cbmg2IHtcbmNvbG9yOiB3aGl0ZTtcbmZvbnQtc2l6ZTogMXJlbTtcbnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5wYWRkaW5nLXRvcDogMDtcbnBhZGRpbmctYm90dG9tOiAuNHJlbTsgfSBcbn1cbn1cbn0gLyogbWluLXdpZHRoIDY0MXB4IGFuZCBtYXgtd2lkdGggMTAyNHB4LCB1c2Ugd2hlbiBRQWluZyB0YWJsZXQtb25seSBpc3N1ZXMgKi9cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XG4ucGFnZS10ZW1wbGF0ZS10ZW1wbGF0ZS1nYWxsZXJ5LXBocCB7IGFzaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfSB9XG5cbmxpLmdhbGxlcnkge1xuYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuaDIge1xuY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuZm9udC1mYW1pbHk6ICRmb250LWJvZHk7XG5tYXJnaW4tYm90dG9tOiAwO1xudGV4dC1hbGlnbjogY2VudGVyO1xucGFkZGluZy10b3A6IDEuNXJlbTtcbnBhZGRpbmctYm90dG9tOiAuOTVyZW07XG5sZXR0ZXItc3BhY2luZzogbm9ybWFsO1xubGluZS1oZWlnaHQ6IDE7XG5mb250LXNpemU6IDEuMXJlbTtcbnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5taW4taGVpZ2h0OiBhdXRvO1xubWF4LWhlaWdodDogYXV0bztcbn1cblxuLmJuYSB7IG1hcmdpbi1ib3R0b206IDA7IH1cbi5iYS1ib3R0b20geyBiYWNrZ3JvdW5kOiBub25lOyBtYXgtd2lkdGg6IDM2MHB4OyBtYXJnaW46IC0ycmVtIGF1dG8gYXV0bztcbn1cblxuLmdhbGxlcnktaW5uZXIge1xubWF4LXdpZHRoOiBhdXRvO1xubWluLXdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cbmltZyB7XG5ib3JkZXItcmFkaXVzOiAxMHB4O1xuYm94LXNoYWRvdzogMHB4IDE1cHggMTZweCAwcHggcmdiYSgwLDAsMCwwLjI1KTtcbn1cbmg2IHtcbmNvbG9yOiB3aGl0ZTtcbmZvbnQtc2l6ZTogMXJlbTtcbnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5wYWRkaW5nLXRvcDogMDtcbnBhZGRpbmctYm90dG9tOiAuNHJlbTtcbm1heC13aWR0aDogNy44MTNlbTtcblx0fSBcbn1cbn1cbn0gLyogbWF4LXdpZHRoIDY0MHB4LCBtb2JpbGUtb25seSBzdHlsZXMsIHVzZSB3aGVuIFFBaW5nIG1vYmlsZSBpc3N1ZXMgKi9cbiIsIi5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWNhbGxvdXQge1xuXG5cdG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiAzMDBlbSkge1xuXG5cdFx0LmZlYXR1cmVkLWltZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAtN3JlbSAhaW1wb3J0YW50O1xuXG5cdFx0XHQuY2FsbG91dCB7XG5cdFx0XHRcdC8vbm9pbnNwZWN0aW9uIENzc1Vua25vd25UYXJnZXRcblx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltZ19taW4vcHVycGxlLXN3b29wcy5zdmcpIGNlbnRlciB0b3Agbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0bWluLWhlaWdodDogMzNlbTtcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblxuXHRcdFx0XHRoMiB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiAzcmVtO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRoMyB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdG1heC13aWR0aDogNDQwcHg7XG5cdFx0XHRcdFx0Y29sb3I6ICR0YW47XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogNHJlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQvKiBFbmQgZmVhdHVyZWQtaW1nIGNsYXNzICovXG5cblx0fVxuXHQvKiBtaW4td2lkdGggMTQ0MC4wNjNlbSBhbmQgbWF4LXdpZHRoIDE5MjBweCwgdXNlIHdoZW4gUUFpbmcgeGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA5MGVtKSB7XG5cblx0XHQuZmVhdHVyZWQtaW1nIHtcblx0XHRcdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblxuXHRcdFx0LmNhbGxvdXQge1xuXHRcdFx0XHQvL25vaW5zcGVjdGlvbiBDc3NVbmtub3duVGFyZ2V0XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWdfbWluL3B1cnBsZS1zd29vcHMuc3ZnKSBjZW50ZXIgdG9wIG5vLXJlcGVhdDtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA3Ny4yNSUgYXV0bztcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRtYXJnaW46IC03cmVtIGF1dG8gIWltcG9ydGFudDtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IDE3LjVyZW07XG5cdFx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXG5cdFx0XHRcdGgyIHtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDNyZW07XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogLjVyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGgzIHtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0bWF4LXdpZHRoOiA0NDBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGNvbG9yOiAkdGFuO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdG1hcmdpbjogYXV0byBhdXRvO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXHRcdFx0XHRcdHRleHQtd3JhcDogYmFsYW5jZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQvKiBFbmQgRmVhdHVyZWQgSW1hZ2UgQ2xhc3MgKi9cblxuXHR9XG5cdC8qIG1pbi13aWR0aCAxMDEuNTYzZW0gYW5kIG1heC13aWR0aCAxNDQwcHgsIHVzZSB3aGVuIFFBaW5nIGxhcmdlIHNjcmVlbi1vbmx5IGlzc3VlcyAqL1xuXG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAuMDYzZW0pIGFuZCAobWF4LXdpZHRoOiA2NGVtKSB7XG5cblx0XHQubWFpbiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyLjVyZW07XG5cdFx0fVxuXG5cdFx0LmZlYXR1cmVkLWltZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAtNGVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdC5jYWxsb3V0IHtcblx0XHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgdG9wIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvIDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0XHRcdFx0aDIge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogNHJlbTtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDgwJTtcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogLjVyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRoMyB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdG1heC13aWR0aDogOTAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0Y29sb3I6ICR0YW47XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjFlbTtcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogNHJlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQvKiBFbmQgRmVhdHVyZWQgSW1hZ2UgQ2xhc3MgKi9cblxuXHR9XG5cdC8qIG1pbi13aWR0aCA2NDAuMDYzZW0gYW5kIG1heC13aWR0aCAxMDIwLjI1MGVtLCB1c2Ugd2hlbiBRQWluZyB0YWJsZXQtb25seSBpc3N1ZXMgKi9cblxuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwZW0pIHtcblxuXHRcdC5mZWF0dXJlZC1pbWcge1xuXHRcdFx0bWFyZ2luOiAtLjc1cmVtIGF1dG8gMS41cmVtICFpbXBvcnRhbnQ7XG5cblx0XHRcdC5jYWxsb3V0IHtcblx0XHRcdFx0Ly9ub2luc3BlY3Rpb24gQ3NzVW5rbm93blRhcmdldFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nX21pbi9wdXJwbGUtc3dvb3BzLnN2ZykgbGVmdCB0b3Agbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRtYXJnaW46IDAgYXV0byBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXG5cblx0XHRcdFx0aDIge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRmb250LXNpemU6IDEuNGVtO1xuXHRcdFx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMi4xMjVyZW07XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRtaW4taGVpZ2h0OiAxNXJlbTtcblx0XHRcdFx0XHRjb2xvcjogJHRhbjtcblx0XHRcdFx0XHRmb250LXNpemU6IDFlbTtcblx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRtYXJnaW46IGF1dG8gYXV0bztcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMnJlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdC8qIEVuZCBGZWF0dXJlZCBJbWFnZSBDbGFzcyAqL1xuXG5cdH1cblx0LyogbWF4LXdpZHRoIDY0MHB4LCBtb2JpbGUtb25seSBzdHlsZXMsIHVzZSB3aGVuIFFBaW5nIG1vYmlsZSBpc3N1ZXMgKi9cblxufVxuXG4vKiBFbmQgVHdvIGFuZCBUaHJlZSBQYWdlIFRlbXBsYXRlIENsYXNzZXMgKi8iLCIucGFnZS1pZC0xNSB7XG5cdG1haW4ge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cbn1cblxuLnBoeXNpY2lhbi1saXN0IHtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRtYXJnaW46IDE2cHggMCA0MHB4IDA7XG5cdHBhZGRpbmc6IDA7XG5cblx0bGkge1xuXHRcdG1pbi1oZWlnaHQ6IDgwcHg7XG5cdFx0bWFyZ2luOiAwIDAgMTJweCAwO1xuXG5cdFx0aW1nIHtcblx0XHRcdG1hcmdpbjogMCAxNXB4IDAgMDtcblx0XHRcdG1heC13aWR0aDogNjBweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblxuXHRcdC50ZXh0LWxpbmsge1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcdGhlaWdodDogODBweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0XHRcdC5zcGVjaWFsLXRpdGxlIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Zm9udC1zaXplOiAwLjc1cmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbiIsIi5wYWdlLWlkLTExIHtcblx0bWFpbiB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0XHRmbG9hdDogbm9uZTtcblx0fVxufVxuXG4udmVpbi1wcm9jZWR1cmVzLWxpc3Qge1xuXHRtYXJnaW46IDJyZW0gMDtcblxuXHQucHJvY2VkdXJlIHtcblx0XHRtYXJnaW46IDAgMCAycmVtIDA7XG5cdFx0YmFja2dyb3VuZDogIzU2Mjg0Zjtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG5cdFx0Ym94LXNoYWRvdzogMCAzcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHQuaW1hZ2Uge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAgNzUlIDA7XG5cdFx0XHRcdGJhY2tncm91bmQ6IDUwJSA1MCUgLyBjb3Zlcjtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aDIge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdGhlaWdodDogNjBweDtcblx0XHRcdFx0Y29sb3I6ICNkYmQ5Y2E7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0cGFkZGluZzogMC43NXJlbTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWhsO1xuXHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAwLjk7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogIzc3M2U2ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogIzc3M2U2ZTtcblxuXHRcdFx0LmltYWdlIHtcblx0XHRcdFx0b3BhY2l0eTogMC45O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSJdfQ== */
