@charset "UTF-8";
/*! normalize.css v3.0.1 | 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,
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: 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;
}

meta.foundation-version {
  font-family: "/{{VERSION}}/";
}

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

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

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

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.063em)/";
  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, .primary-content .sfContentBlock hr:before, .primary-content .sfimagesTmbList hr:before, .sidebar-content .sfContentBlock hr:before, .sidebar-content .sfimagesTmbList hr:before, .primary-content .sfContentBlock:before, .primary-content .sfimagesTmbList:before, .sidebar-content .sfContentBlock:before, .sidebar-content .sfimagesTmbList:before, .right-off-canvas-menu .logo-container:before, .clearfix:after, .primary-content .sfContentBlock hr:after, .primary-content .sfimagesTmbList hr:after, .sidebar-content .sfContentBlock hr:after, .sidebar-content .sfimagesTmbList hr:after, .primary-content .sfContentBlock:after, .primary-content .sfimagesTmbList:after, .sidebar-content .sfContentBlock:after, .sidebar-content .sfimagesTmbList:after, .right-off-canvas-menu .logo-container:after {
  content: " ";
  display: table;
}
.clearfix:after, .primary-content .sfContentBlock hr:after, .primary-content .sfimagesTmbList hr:after, .sidebar-content .sfContentBlock hr:after, .sidebar-content .sfimagesTmbList hr:after, .primary-content .sfContentBlock:after, .primary-content .sfimagesTmbList:after, .sidebar-content .sfContentBlock:after, .sidebar-content .sfimagesTmbList:after, .right-off-canvas-menu .logo-container:after {
  clear: both;
}

.hide {
  display: none;
}

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

.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: #008CBA;
  margin: 0;
  padding: 0.4375rem 0.875rem;
}
.side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
  background: hsla(0, 0%, 0%, 0.025);
  color: #1cc7ff;
}
.side-nav li.active > a:first-child:not(.button) {
  color: #1cc7ff;
  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: #008CBA;
  font-size: 0.875rem;
  font-weight: bold;
  text-transform: uppercase;
}

.row {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 66.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: left;
}

[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;
  }
}
@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;
  }
  .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;
  }
  .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;
  }
}
button, .button {
  border-style: solid;
  border-width: 0px;
  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;
  -webkit-border-radius: 0;
  display: inline-block;
  padding-top: 1rem;
  padding-right: 2rem;
  padding-bottom: 1.0625rem;
  padding-left: 2rem;
  font-size: 1rem;
  background-color: #008CBA;
  border-color: #007095;
  color: #FFFFFF;
  transition: background-color 300ms ease-out;
}
button:hover, button:focus, .button:hover, .button:focus {
  background-color: #007095;
}
button:hover, button:focus, .button:hover, .button:focus {
  color: #FFFFFF;
}
button.secondary, .button.secondary {
  background-color: #e7e7e7;
  border-color: #b9b9b9;
  color: #333333;
}
button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
  background-color: #b9b9b9;
}
button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
  color: #333333;
}
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: #008CBA;
  border-color: #007095;
  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: #007095;
}
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: #008CBA;
}
button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
  background-color: #e7e7e7;
  border-color: #b9b9b9;
  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: #b9b9b9;
}
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: #333333;
}
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: #e7e7e7;
}
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;
  }
}
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: #333333;
}
.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: 45px;
}

.top-bar {
  overflow: hidden;
  height: 45px;
  line-height: 45px;
  position: relative;
  background: #333333;
  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.8rem;
  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: 45px;
  margin: 0;
  font-size: 16px;
}
.top-bar .name h1 {
  line-height: 45px;
  font-size: 1.0625rem;
  margin: 0;
}
.top-bar .name h1 a {
  font-weight: normal;
  color: #FFFFFF;
  width: 75%;
  display: block;
  padding: 0 15px;
}
.top-bar .toggle-topbar {
  position: absolute;
  right: 0;
  top: 0;
}
.top-bar .toggle-topbar a {
  color: #FFFFFF;
  text-transform: uppercase;
  font-size: 0.8125rem;
  font-weight: bold;
  position: relative;
  display: block;
  padding: 0 15px;
  height: 45px;
  line-height: 45px;
}
.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 40px 0 15px;
  color: #FFFFFF;
  position: relative;
}
.top-bar .toggle-topbar.menu-icon a span::after {
  content: "";
  position: absolute;
  display: block;
  height: 0;
  top: 50%;
  margin-top: -8px;
  right: 15px;
  box-shadow: 0 0px 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
  width: 16px;
}
.top-bar .toggle-topbar.menu-icon a span:hover:after {
  box-shadow: 0 0px 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
}
.top-bar.expanded {
  height: auto;
  background: transparent;
}
.top-bar.expanded .title-area {
  background: #333333;
}
.top-bar.expanded .toggle-topbar a {
  color: #888888;
}
.top-bar.expanded .toggle-topbar a::after {
  box-shadow: 0 10px 0 1px #888888, 0 16px 0 1px #888888, 0 22px 0 1px #888888;
}

.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 #1a1a1a;
  clear: both;
  height: 1px;
  width: 100%;
}
.top-bar-section ul li {
  background: #333333;
}
.top-bar-section ul li > a {
  display: block;
  width: 100%;
  color: #FFFFFF;
  padding: 12px 0 12px 0;
  padding-left: 15px;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-size: 0.8125rem;
  font-weight: normal;
  text-transform: none;
}
.top-bar-section ul li > a.button {
  font-size: 0.8125rem;
  padding-right: 15px;
  padding-left: 15px;
  background-color: #008CBA;
  border-color: #007095;
  color: #FFFFFF;
}
.top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
  background-color: #007095;
}
.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: #e7e7e7;
  border-color: #b9b9b9;
  color: #333333;
}
.top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
  background-color: #b9b9b9;
}
.top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
  color: #333333;
}
.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 > button {
  font-size: 0.8125rem;
  padding-right: 15px;
  padding-left: 15px;
  background-color: #008CBA;
  border-color: #007095;
  color: #FFFFFF;
}
.top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
  background-color: #007095;
}
.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: #e7e7e7;
  border-color: #b9b9b9;
  color: #333333;
}
.top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
  background-color: #b9b9b9;
}
.top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
  color: #333333;
}
.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:hover:not(.has-form) > a {
  background-color: #555555;
  background: #272727;
  color: #FFFFFF;
}
.top-bar-section ul li.active > a {
  background: #008CBA;
  color: #FFFFFF;
}
.top-bar-section ul li.active > a:hover {
  background: #0078a0;
  color: #FFFFFF;
}
.top-bar-section .has-form {
  padding: 15px;
}
.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: 15px;
  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 15px;
}
.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: #FFFFFF;
  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 15px;
}
.top-bar-section .dropdown li .button, .top-bar-section .dropdown li button {
  top: auto;
}
.top-bar-section .dropdown label {
  padding: 8px 15px 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: #333333;
    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 {
    width: auto;
  }
  .top-bar input,
  .top-bar .button,
  .top-bar button {
    font-size: 0.875rem;
    position: relative;
    top: 7px;
  }
  .top-bar.expanded {
    background: #333333;
  }
  .contain-to-grid .top-bar {
    max-width: 66.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: #555555;
    background: #272727;
    color: #FFFFFF;
  }
  .top-bar-section li:not(.has-form) a:not(.button) {
    padding: 0 15px;
    line-height: 45px;
    background: #333333;
  }
  .top-bar-section li:not(.has-form) a:not(.button):hover {
    background-color: #555555;
    background: #272727;
  }
  .top-bar-section li.active:not(.has-form) a:not(.button) {
    padding: 0 15px;
    line-height: 45px;
    color: #FFFFFF;
    background: #008CBA;
  }
  .top-bar-section li.active:not(.has-form) a:not(.button):hover {
    background: #0078a0;
    color: #FFFFFF;
  }
  .top-bar-section .has-dropdown > a {
    padding-right: 35px !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: 22.5px;
  }
  .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: #FFFFFF;
    line-height: 45px;
    white-space: nowrap;
    padding: 12px 15px;
    background: #333333;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
    color: #FFFFFF;
    background: #333333;
  }
  .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
    color: #FFFFFF;
    background-color: #555555;
    background: #272727;
  }
  .top-bar-section .dropdown li label {
    white-space: nowrap;
    background: #333333;
  }
  .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 #4e4e4e;
    clear: none;
    height: 45px;
    width: 0;
  }
  .top-bar-section .has-form {
    background: #333333;
    padding: 0 15px;
    height: 45px;
  }
  .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: #555555;
    background: #272727;
    color: #FFFFFF;
  }
  .no-js .top-bar-section ul li:active > a {
    background: #008CBA;
    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: #008CBA;
  text-decoration: none;
  line-height: inherit;
}
a:hover, a:focus {
  color: #0078a0;
}
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: 2.125rem;
}

h2 {
  font-size: 1.6875rem;
}

h3 {
  font-size: 1.375rem;
}

h4 {
  font-size: 1.125rem;
}

h5 {
  font-size: 1.125rem;
}

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: #f8f8f8;
  border-width: 1px;
  border-style: solid;
  border-color: #dfdfdf;
  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;
  border-bottom: 1px dotted #DDDDDD;
  cursor: help;
}

abbr {
  text-transform: none;
}

/* 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.75rem;
  }
  h2 {
    font-size: 2.3125rem;
  }
  h3 {
    font-size: 1.6875rem;
  }
  h4 {
    font-size: 1.4375rem;
  }
  h5 {
    font-size: 1.125rem;
  }
  h6 {
    font-size: 1rem;
  }
}
/*
 * 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;
  }
  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;
  }
}
.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 {
  -webkit-backface-visibility: hidden;
  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.125rem;
}

.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, .tab-bar-section.right {
    text-align: left;
  }
}
.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 0px 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 0px 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3;
}

.left-off-canvas-menu {
  -webkit-backface-visibility: hidden;
  width: 18.75rem;
  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.5%, 0);
  -webkit-transform: translate3d(-100.5%, 0, 0);
  -moz-transform: translate3d(-100.5%, 0, 0);
  -ms-transform: translate3d(-100.5%, 0, 0);
  -o-transform: translate3d(-100.5%, 0, 0);
  transform: translate3d(-100.5%, 0, 0);
  left: 0;
}
.left-off-canvas-menu * {
  -webkit-backface-visibility: hidden;
}

.right-off-canvas-menu {
  -webkit-backface-visibility: hidden;
  width: 18.75rem;
  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.5%, 0);
  -webkit-transform: translate3d(100.5%, 0, 0);
  -moz-transform: translate3d(100.5%, 0, 0);
  -ms-transform: translate3d(100.5%, 0, 0);
  -o-transform: translate3d(100.5%, 0, 0);
  transform: translate3d(100.5%, 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(18.75rem, 0);
  -webkit-transform: translate3d(18.75rem, 0, 0);
  -moz-transform: translate3d(18.75rem, 0, 0);
  -ms-transform: translate3d(18.75rem, 0, 0);
  -o-transform: translate3d(18.75rem, 0, 0);
  transform: translate3d(18.75rem, 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(-18.75rem, 0);
  -webkit-transform: translate3d(-18.75rem, 0, 0);
  -moz-transform: translate3d(-18.75rem, 0, 0);
  -ms-transform: translate3d(-18.75rem, 0, 0);
  -o-transform: translate3d(-18.75rem, 0, 0);
  transform: translate3d(-18.75rem, 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: -18.75rem;
}
.no-csstransforms .right-off-canvas-menu {
  right: -18.75rem;
}
.no-csstransforms .move-left > .inner-wrap {
  right: 18.75rem;
}
.no-csstransforms .move-right > .inner-wrap {
  left: 18.75rem;
}

.left-submenu {
  -webkit-backface-visibility: hidden;
  width: 18.75rem;
  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 {
  -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: 18.75rem;
  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 {
  -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;
}

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

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

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

/* 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: hidden;
  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;
  line-height: 2.125rem;
  border: none;
}

.prefix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  line-height: 2.125rem;
  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;
  -webkit-border-radius: 0px;
  background-color: #FFFFFF;
  font-family: inherit;
  border: 1px solid #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: box-shadow 0.45s, border-color 0.45s ease-in-out;
}
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 {
  box-shadow: 0 0 5px #999999;
  border-color: #999999;
}
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 {
  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 {
  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 {
  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 {
  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;
  -webkit-border-radius: 0px;
}

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

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  -webkit-border-radius: 0px;
  background-color: #FAFAFA;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border: 1px solid #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.radius {
  border-radius: 3px;
}
select:hover {
  background-color: #f3f3f3;
  border-color: #999999;
}
select:disabled {
  background-color: #DDDDDD;
  cursor: default;
}

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

.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 Dropdowns */
.f-dropdown {
  position: absolute;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  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;
  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;
  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;
  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;
  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;
}

/* 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 #003f54;
  color: #008CBA;
}
.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: #008CBA !important;
  border-bottom: dotted 1px #003f54 !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;
  }
}
/* Progress Bar */
.progress {
  background-color: #F6F6F6;
  height: 1.5625rem;
  border: 1px solid white;
  padding: 0.125rem;
  margin-bottom: 0.625rem;
}
.progress .meter {
  background: #008CBA;
  height: 100%;
  display: block;
}
.progress.secondary .meter {
  background: #e7e7e7;
  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;
}

/* 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;
  }
  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 !important;
  }
  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;
  }
  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 !important;
  }
  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;
  }
  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 !important;
  }
  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;
  }
  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 !important;
  }
  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;
  }
  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 !important;
  }
  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;
}

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

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

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 visibility */
@media print {
  .show-for-print {
    display: block;
  }
  .hide-for-print {
    display: none;
  }
  table.show-for-print {
    display: table;
  }
  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;
  }
}
.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, dialog {
  visibility: hidden;
  display: none;
  position: absolute;
  z-index: 1005;
  width: 100vw;
  top: 0;
  border-radius: 3px;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.25rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
  padding: 1.875rem;
}
@media only screen and (max-width: 40em) {
  .reveal-modal, dialog {
    min-height: 100vh;
  }
}
.reveal-modal .column, dialog .column, .reveal-modal .columns, dialog .columns {
  min-width: 0;
}
.reveal-modal > :first-child, dialog > :first-child {
  margin-top: 0;
}
.reveal-modal > :last-child, dialog > :last-child {
  margin-bottom: 0;
}
@media only screen and (min-width:40.063em) {
  .reveal-modal, dialog {
    width: 80%;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal, dialog {
    top: 6.25rem;
  }
}
.reveal-modal.radius, dialog.radius {
  border-radius: 3px;
}
.reveal-modal.round, dialog.round {
  border-radius: 1000px;
}
.reveal-modal.collapse, dialog.collapse {
  padding: 0;
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.tiny, dialog.tiny {
    width: 30%;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.small, dialog.small {
    width: 40%;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.medium, dialog.medium {
    width: 60%;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.large, dialog.large {
    width: 70%;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.xlarge, dialog.xlarge {
    width: 95%;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
.reveal-modal.full, dialog.full {
  top: 0;
  left: 0;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  margin-left: 0 !important;
}
@media only screen and (min-width:40.063em) {
  .reveal-modal.full, dialog.full {
    width: 100vw;
    max-width: 66.75rem;
    left: 0;
    right: 0;
    margin: 0 auto;
  }
}
.reveal-modal .close-reveal-modal, dialog .close-reveal-modal {
  font-size: 2.5rem;
  line-height: 1;
  position: absolute;
  top: 0.5rem;
  right: 0.6875rem;
  color: #AAAAAA;
  font-weight: bold;
  cursor: pointer;
}

dialog {
  display: none;
}
dialog::backdrop, dialog + .backdrop {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  z-index: auto;
  display: none;
  left: 0;
}
dialog[open] {
  display: block;
}

@media print {
  dialog, .reveal-modal {
    display: none;
    background: #FFFFFF !important;
  }
}
.left-submenu {
  -webkit-backface-visibility: hidden;
  width: 18.75rem;
  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 {
  -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: 18.75rem;
  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 {
  -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;
}

/*  @import "foundation/components/grid";
  @import "foundation/components/accordion";
  @import "foundation/components/alert-boxes";
  @import "foundation/components/block-grid";
  @import "foundation/components/breadcrumbs";
  @import "foundation/components/button-groups";
  @import "foundation/components/buttons";
  @import "foundation/components/clearing";
  @import "foundation/components/dropdown-buttons";
  @import "foundation/components/flex-video";
  @import "foundation/components/forms";
  @import "foundation/components/icon-bar";
  @import "foundation/components/inline-lists";
  @import "foundation/components/joyride";
  @import "foundation/components/keystrokes";
  @import "foundation/components/labels";
  @import "foundation/components/magellan";
  @import "foundation/components/orbit";
  @import "foundation/components/pagination";
  @import "foundation/components/panels";
  @import "foundation/components/pricing-tables";

  @import "foundation/components/range-slider";
  @import "foundation/components/reveal";
  @import "foundation/components/side-nav";
  @import "foundation/components/split-buttons";
  @import "foundation/components/sub-nav";
  @import "foundation/components/switches";
  @import "foundation/components/tables";
  @import "foundation/components/tabs";
  @import "foundation/components/thumbs";
  @import "foundation/components/top-bar";
  @import "foundation/components/type";

  @import "foundation/components/visibility";
  */
/*
    Example usage: 
    @include animation(10s, 5s, changecolour)
 */
/* ----- Variables ----------------------- */
/*
$lato: 'Lato', sans-serif;
$play: 'Playfair Display', serif;
*/
/* ----- Colors -------------------------- */
/* Form Validators Error Color */
/*$primary: #4cb848;*/
/*$secondary: #cd025f;*/
ul.plain {
  list-style: none;
  margin: 0;
  padding: 0;
}

a, a:visited, a:active, a:focus {
  outline: none;
}

.group {
  zoom: 1; /* For IE 6/7 (trigger hasLayout) */
}
.group:before, .group:after {
  content: "";
  display: table;
}
.group::after {
  clear: both;
}

body.sfPageEditor .mobile-features-nudge {
  display: block !important;
  position: static !important;
}
body.sfPageEditor .mobile-features-nudge .mobile-show-features {
  display: block !important;
  height: auto !important;
}

.alert-bar {
  width: 100%;
  background-color: #A6192E;
  text-align: center;
  padding: 10px 20px;
  line-height: 1.2rem;
}
.alert-bar a {
  color: #ffffff !important;
  text-transform: uppercase;
  font-weight: bold;
  font-family: "Gotham SSm A", "Gotham SSm B";
}

.top-container .top-bar {
  background: #ffffff;
  position: relative;
}
.top-container .top-bar .grey-bkgd {
  position: absolute;
  top: 155px;
  height: 40px;
  width: 100%;
  z-index: 2;
}
.top-container .top-bar #nav-ticket-link {
  position: absolute;
  top: 155px;
  z-index: 10;
  height: 40px;
  background-color: #A6192E;
  padding-right: 10px;
}
.top-container .top-bar #nav-ticket-link a {
  color: #ffffff;
  text-transform: uppercase;
  font-family: "Gotham SSm A", "Gotham SSm B";
  font-size: 1.125rem;
  font-weight: 700;
}
.top-container .top-bar #nav-ticket-link a img {
  padding-right: 10px;
  padding-bottom: 10px;
}
.top-container .top-bar #nav-ticket-link::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0%;
  width: 0;
  height: 0;
  border: 0 solid transparent;
  border-bottom-width: 21px;
  border-top-width: 19px;
  border-left: 12px solid #A6192E;
}
.top-container .top-bar .top-bar-section {
  position: relative;
  max-width: 66.75rem;
  margin: 0 auto;
  width: auto;
  -moz-transition: left 300ms ease-out;
  -o-transition: left 300ms ease-out;
  -webkit-transition: left 300ms ease-out;
  transition: left 300ms ease-out;
}
.top-container .top-bar .top-bar-section ul.sflanguagesVerticalList {
  float: right;
}
.top-container .top-bar .top-bar-section ul.sflanguagesVerticalList li {
  background-color: #ffffff;
}
.top-container .top-bar .top-bar-section ul.sflanguagesVerticalList li a {
  background-color: #ffffff;
  padding: 0px;
  margin: 0px;
  color: #A6192E;
  font-size: 15px;
  text-transform: uppercase;
  font-family: "Gotham SSm A", "Gotham SSm B";
}
.top-container .top-bar .top-bar-section ul.sflanguagesVerticalList li a:hover, .top-container .top-bar .top-bar-section ul.sflanguagesVerticalList li a:focus, .top-container .top-bar .top-bar-section ul.sflanguagesVerticalList li a:active {
  color: #A6192E;
  background-color: #ffffff;
}
.top-container .top-bar .top-bar-section ul.main-nav {
  width: 100%;
  line-height: 40px;
  position: absolute;
  top: 155px;
  z-index: 3;
  background: #f5f5f5;
  -webkit-box-shadow: 0 6px 10px -10px rgba(34, 34, 34, 0.3);
  -moz-box-shadow: 0 6px 10px -10px rgba(34, 34, 34, 0.3);
  box-shadow: 0 6px 10px -10px rgba(34, 34, 34, 0.3);
  left: 25px;
  padding-left: 170px;
  padding-right: 0;
}
.top-container .top-bar .top-bar-section ul.main-nav li {
  border-right: 1px solid #dddddd;
  background: none;
}
.top-container .top-bar .top-bar-section ul.main-nav li a {
  height: 40px;
  line-height: 40px;
  background: #f5f5f5;
  color: #404040;
  padding: 0 10px;
  font-size: 12px;
  letter-spacing: -1px;
  text-transform: uppercase;
  font-family: "Gotham SSm A", "Gotham SSm B";
}
.top-container .top-bar .top-bar-section ul.main-nav li a:hover, .top-container .top-bar .top-bar-section ul.main-nav li a:focus, .top-container .top-bar .top-bar-section ul.main-nav li a:active {
  background: #951729;
  color: #ffffff;
}
.top-container .top-bar .top-bar-section ul.main-nav li a.selected {
  border-bottom: 3px solid #A6192E;
}
.top-container .top-bar .top-bar-section ul.main-nav li.has-dropdown > a {
  padding-right: 25px !important;
}
.top-container .top-bar .top-bar-section ul.main-nav li.has-dropdown > a:after {
  border-color: rgba(148, 148, 148, 0.2) transparent transparent transparent;
  margin-right: 10px;
  margin-top: -3px;
}
.top-container .top-bar .top-bar-section ul.main-nav li .dropdown li {
  border: none;
}
.top-container .top-bar .top-bar-section ul.main-nav li .dropdown li a:not(.button) {
  background: #e9e9e9;
  color: #404040;
}
.top-container .top-bar .top-bar-section ul.main-nav li .dropdown li a:not(.button):hover, .top-container .top-bar .top-bar-section ul.main-nav li .dropdown li a:not(.button):focus, .top-container .top-bar .top-bar-section ul.main-nav li .dropdown li a:not(.button):active {
  background: #951729;
  color: #ffffff;
}
.top-container .top-bar .top-bar-section ul.main-nav li .dropdown li a:not(.button).selected {
  border-bottom: none;
  color: #A6192E;
}
.top-container .top-bar .top-bar-section ul.main-nav li:last-child {
  border: none;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets {
  border: 1px solid #ffffff;
  border-width: 0 2px 0 2px;
  float: right;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a {
  background: #A6192E;
  color: #ffffff;
  position: relative;
  padding: 0 15px;
  font-size: 14px;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a .left-tri::after {
  content: "";
  display: block;
  border-top: 10px solid #A6192E;
  border-right: 63px solid transparent;
  position: absolute;
  left: 0;
  bottom: -10px;
  z-index: 2;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a .left-tri::before {
  content: "";
  display: block;
  border-top: 12px solid #ffffff;
  border-right: 73px solid transparent;
  position: absolute;
  left: -2px;
  bottom: -12px;
  z-index: 1;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a .right-tri::after {
  content: "";
  display: block;
  border-top: 10px solid #A6192E;
  border-left: 63px solid transparent;
  position: absolute;
  right: 0;
  bottom: -10px;
  z-index: 2;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a .right-tri::before {
  content: "";
  display: block;
  border-top: 12px solid #ffffff;
  border-left: 73px solid transparent;
  position: absolute;
  right: -2px;
  bottom: -12px;
  z-index: 1;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:hover, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:focus, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:active {
  background: #851425;
}
.top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:hover .left-tri::after, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:hover .right-tri::after, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:focus .left-tri::after, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:focus .right-tri::after, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:active .left-tri::after, .top-container .top-bar .top-bar-section ul.main-nav li.buy-tickets a:active .right-tri::after {
  border-top-color: #851425;
}
.top-container .top-bar .top-bar-section ul.main-nav li.search {
  border: none;
}
.top-container .top-bar .top-bar-section ul.main-nav li.search a {
  font-size: 16px;
  font-weight: normal;
}
.top-container .top-bar .top-bar-section a.buy-tickets.mobile {
  display: none !important;
  height: 55px;
  margin: 10px 0;
  padding: 0 15px;
  line-height: 55px;
  background: #A6192E;
  color: #ffffff;
  float: right;
  text-transform: uppercase;
  font-size: 14px;
}
.top-container .top-bar .top-bar-section a.buy-tickets.mobile:hover, .top-container .top-bar .top-bar-section a.buy-tickets.mobile:active, .top-container .top-bar .top-bar-section a.buy-tickets.mobile:focus {
  background: #851425;
  color: #ffffff;
}
.top-container .top-bar .top-bar-section .logo {
  width: 204px;
  position: absolute;
  margin: 0;
  z-index: 4;
  left: 0;
  padding-top: 5px;
}
.top-container .top-bar .top-bar-section .logo img {
  height: 145px;
  width: auto;
}
.top-container .top-bar .top-bar-section .logo .contact-info {
  color: #ffffff;
  padding: 0.75rem 0;
}
.top-container .top-bar .top-bar-section .logo .contact-info p {
  margin: 0;
  font-size: 14px;
  color: #ffffff;
  line-height: 14px;
}
.top-container .top-bar .top-bar-section .logo .contact-info a {
  color: #ffffff;
}
.top-container .top-bar .top-bar-section .logo .social-links {
  line-height: 20px;
}
.top-container .top-bar .top-bar-section .logo .social-links a {
  color: #ffffff;
  font-size: 20px;
  padding: 0 5px 0 0;
}
.top-container .top-bar .top-bar-section .event-info {
  position: absolute;
  left: 180px;
  top: 60px;
  z-index: 4;
  width: 600px;
}
.top-container .top-bar .top-bar-section .event-info p {
  margin: 0;
  color: #404040;
  text-transform: uppercase;
  font-family: "Gotham SSm A", "Gotham SSm B";
  font-weight: 600;
}
.top-container .top-bar .top-bar-section .event-info .dates {
  font-weight: 700;
  font-size: 1.45rem;
  line-height: 20px;
  margin-top: 10px;
}
.top-container .top-bar .top-bar-section .adjust-for-horizontal-logo {
  left: 340px;
}
.top-container .black-bar {
  background: #1e2a24;
  text-align: center;
  color: #ffffff;
  position: relative;
  padding: 1rem 3rem;
}
.top-container .black-bar .fa {
  color: #ffffff;
  position: absolute;
  top: 10px;
  right: 10px;
}
.top-container .black-bar .fa:hover {
  color: #e6e6e6;
}
.top-container .top-ad-space {
  background: #f5f5f5;
  padding: 1rem 1rem 14px;
}
.top-container .top-ad-space img {
  margin: 0 auto;
  display: block;
}
@media only screen {
  .top-container .black-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9;
    overflow: hidden;
  }
  .top-container .top-bar {
    height: 75px;
    overflow: visible;
  }
  .top-container .top-bar .top-bar-section {
    padding: 0;
    height: 75px;
  }
  .top-container .top-bar .top-bar-section .logo {
    left: 5px;
  }
  .top-container .top-bar .top-bar-section .logo a .logo-text {
    display: none;
  }
  .top-container .top-bar .top-bar-section .logo .social-links a {
    padding: 0 5px 0 0;
  }
  .top-container .top-bar .top-bar-section .logo .horizontal-logo {
    margin-top: 40px;
    height: 68px;
  }
  .top-container .top-bar .top-bar-section .logo .l-300-165 {
    margin-top: 10px !important;
    height: 130px !important;
  }
  .top-container .top-bar .top-bar-section .adjust-logo-for-horizontal {
    width: 300px;
  }
  .top-container .top-bar .grey-bkgd {
    display: none;
  }
  .top-container .top-bar .sflanguagesVerticalList li, .top-container .top-bar .sflanguagesVerticalList a, .top-container .top-bar .sflanguagesVerticalList span {
    font-size: 13px;
  }
  .top-container .top-bar .sflanguagesVerticalList {
    margin: 15px;
  }
  .top-container.is-fixed .top-bar {
    position: fixed;
    width: 100%;
    left: 0;
    z-index: 9;
    box-shadow: 0 3px 5px 0 rgba(30, 42, 36, 0.35);
  }
  .top-container.is-fixed .top-bar .top-bar-section ul.main-nav {
    left: initial;
    right: 3rem;
    width: auto;
    padding: 0;
    left: 25px;
    padding-left: 155px;
    right: 0;
    padding-left: 20px;
  }
  .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets {
    float: left;
  }
  .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets a .left-tri, .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets a .right-tri {
    overflow: hidden;
  }
  .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets a .left-tri:after, .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets a .left-tri:before, .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets a .right-tri:after, .top-container.is-fixed .top-bar .top-bar-section ul.main-nav li.buy-tickets a .right-tri:before {
    border-top: 0;
    -moz-transition: height 0.2s;
    -o-transition: height 0.2s;
    -webkit-transition: height 0.2s;
    transition: height 0.2s;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo {
    width: 204px;
    height: 145px;
    padding-top: 5px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo .logo-text {
    display: none;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo:after {
    display: none;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo img {
    height: 145px;
    width: auto;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo .horizontal-logo {
    margin-top: 40px;
    height: 68px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo .sfimageWrp {
    height: auto;
    opacity: 1;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo .contact-info, .top-container.is-fixed .top-bar .top-bar-section .logo .social-links {
    height: 0;
    overflow: hidden;
    padding: 0;
  }
  .top-container.is-fixed .top-bar .top-bar-section .adjust-logo-for-horizontal {
    width: 300px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .event-info {
    left: 180px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .adjust-for-horizontal-logo {
    left: 340px;
  }
  .top-container.is-fixed .grey-bkgd {
    box-shadow: 0 3px 5px 0 rgba(30, 42, 36, 0.35);
  }
  .top-container.is-fixed.black-hidden .top-bar-section ul.main-nav, .top-container.is-fixed.black-hidden .grey-bkgd, .top-container.is-fixed.black-hidden .logo, .top-container.is-fixed.black-hidden .top-bar {
    top: 0 !important;
  }
}
@media only screen and (max-width: 40em) {
  .top-container .top-alert .top-social-area ul#social-media-area li.icon {
    width: 25px;
  }
  .top-container .top-bar #nav-ticket-link {
    top: 116px;
    left: 0;
  }
  .top-container .top-bar #nav-ticket-link img {
    padding-left: 10px;
  }
  .top-container .top-bar .top-bar-section .logo {
    padding: 5px;
  }
  .top-container .top-bar .top-bar-section .logo img {
    height: 100px;
  }
  .top-container .top-bar .top-bar-section .logo .contact-info, .top-container .top-bar .top-bar-section .logo .social-links {
    display: none;
  }
  .top-container .top-bar .top-bar-section .logo .l-300-165 {
    margin-top: 26px !important;
    height: auto !important;
  }
  .top-container .top-bar .top-bar-section .event-info {
    left: 120px;
    top: 55px;
    width: auto;
    padding-right: 0;
  }
  .top-container .top-bar .top-bar-section .event-info p {
    font-size: 11px;
    line-height: 1.5em;
    margin: 0;
    color: #A6192E;
    text-transform: uppercase;
  }
  .top-container .top-bar .sflanguagesVerticalList {
    width: initial;
    margin-top: 15px;
    position: absolute;
    top: -40px;
    right: 0;
    display: block;
  }
  .top-container .top-bar .sflanguagesVerticalList li, .top-container .top-bar .sflanguagesVerticalList a, .top-container .top-bar .sflanguagesVerticalList span {
    background-color: transparent !important;
  }
  .top-container .black-bar {
    font-size: 0.75rem;
    line-height: 0.9rem;
  }
  .top-container .right-align-event-info a {
    display: none;
  }
  .top-container .right-align-event-info br {
    display: none;
  }
}
@media only screen and (min-width:40.063em) {
  .top-container .top-bar .top-bar-section .logo .contact-info, .top-container .top-bar .top-bar-section .logo .social-links {
    display: block;
  }
  .top-container .top-bar .top-bar-section .event-info p {
    font-size: 13px;
  }
}
@media only screen and (min-width:40.063em) and (max-width:64em) {
  .top-container .top-bar .grey-bkgd {
    display: block;
    top: 112px;
  }
  .top-container .top-bar #nav-ticket-link {
    top: 114px;
    left: 0;
  }
  .top-container .top-bar #nav-ticket-link img {
    padding-left: 10px;
  }
  .top-container .top-bar .top-bar-section .logo .social-links a {
    padding: 0 5px 0 0;
  }
  .top-container .top-bar .top-bar-section .logo .l-300-165 {
    margin-top: 20px !important;
    height: 100px !important;
  }
  .top-container .top-bar .top-bar-section .adjust-for-horizontal-logo {
    left: 340px !important;
  }
  .top-container .top-bar .top-bar-section ul.main-nav li a {
    font-size: 10px;
  }
  .top-container .right-align-event-info a {
    display: none;
  }
  .top-container .right-align-event-info br {
    display: none;
  }
}
@media only screen and (min-width:64.063em) {
  .top-container .top-bar {
    height: 195px;
  }
  .top-container .top-bar .top-bar-section {
    padding: 0;
    height: 195px;
  }
  .top-container .top-bar .top-bar-section .logo {
    left: 0;
  }
  .top-container .top-bar .top-bar-section .event-info p {
    font-size: 15px;
    line-height: 25px;
    font-weight: 400;
  }
  .top-container .top-bar .top-bar-section .right-align-event-info {
    left: auto;
    top: auto;
    right: 0px;
    bottom: 70px;
    text-align: right;
  }
  .top-container .top-bar .grey-bkgd {
    display: block;
  }
  .top-container .top-bar .sflanguagesVerticalList {
    margin: 0;
  }
  .top-container .top-bar .sflanguagesVerticalList li, .top-container .top-bar .sflanguagesVerticalList a, .top-container .top-bar .sflanguagesVerticalList span {
    font-size: 15px;
  }
  .top-container .black-bar {
    line-height: 1rem;
    font-size: 0.8rem;
  }
  .top-container.is-fixed .white-bkgd {
    position: fixed;
    width: 100%;
    left: 0;
    z-index: 9;
    background-color: #fff;
    height: 195px;
    top: 0px;
  }
  .top-container.is-fixed .top-bar {
    position: relative !important;
    top: -20px;
    z-index: 1000;
    background-color: #fff !important;
    height: 100px;
  }
  .top-container.is-fixed .top-bar .secondary-bkgd {
    position: fixed;
    /*top: 0;*/
    z-index: 9;
  }
  .top-container.is-fixed .top-bar .top-bar-section {
    position: fixed;
    right: 0;
    z-index: 9;
    /*#nav-ticket-link {
        position: fixed;
        top: 0;
    }

    .logo {
        border: none;
        text-indent: 0;
        z-index: 9;
        position: absolute;
        width: auto;
        background: none;
        padding: 0;
        height: 30px;
        line-height: 30px;
        font-size: 12px;
        text-transform: uppercase;
        top: 0;

        .logo-text {
            display: block;
        }

        .sfimageWrp {
            height: 0;
            opacity: 0;
            overflow: hidden;
        }

        .contact-info {
            height: 0;
            overflow: hidden;
            padding: 0;
        }

        .social-links {
            height: 0;
            overflow: hidden;
            padding: 0;
        }
    }

    .event-info, .right {
        display: none;
    }

    ul.main-nav {
        top: 0;
        right: 0;

        li.buy-tickets {
            float: left;

            a {
                .left-tri, .right-tri {
                    overflow: hidden;

                    &:after, &:before {
                        border-top: 0;
                        -moz-transition: height 0.2s;
                        -o-transition: height 0.2s;
                        -webkit-transition: height 0.2s;
                        transition: height 0.2s;
                    }
                }
            }
        }
    }*/
  }
  .top-container.is-fixed .top-bar .top-bar-section .right-align-event-info {
    left: auto;
    top: auto;
    right: 0px;
    bottom: 70px;
    text-align: right;
  }
  .top-container.is-fixed .top-bar .top-bar-section ul.main-nav {
    padding-left: 175px;
    /*width:100%;*/
    right: 0px;
    left: 20px;
  }
  .top-container.is-fixed .top-bar .grey-bkgd {
    position: fixed;
    width: 100%;
    left: 0;
    z-index: 9;
    box-shadow: 0 3px 5px 0 rgba(30, 42, 36, 0.35);
  }
  .top-container.is-fixed .top-bar .sflanguagesVerticalList {
    display: none;
  }
  .top-container.is-fixed.black-hidden .top-bar-section, .top-container.is-fixed.black-hidden .grey-bkgd {
    top: 0 !important;
  }
}

@-moz-document url-prefix() {
  .top-container .top-bar .top-bar-section ul.main-nav {
    width: 100%;
    line-height: 40px;
    position: absolute;
    top: 155px;
    z-index: 3;
    background: #f5f5f5;
    -webkit-box-shadow: 0 6px 10px -10px rgba(34, 34, 34, 0.3);
    -moz-box-shadow: 0 6px 10px -10px rgba(34, 34, 34, 0.3);
    box-shadow: 0 6px 10px -10px rgba(34, 34, 34, 0.3);
    left: 25px;
    padding-left: 170px;
    right: 0;
  }
  .top-container.is-fixed .top-bar .top-bar-section ul.main-nav {
    left: 20px;
  }
}
@media screen and (max-width: 1100px) {
  .top-container .top-bar .top-bar-section ul.main-nav li a {
    font-size: 11px;
  }
}
.right-off-canvas-menu {
  background: #A6192E;
  /*.has-dropdown{
      .dropdown{
          display:none;
      }
  }*/
  /*.hover{
      .dropdown{
          display:block;
      }
  }

  .moved{
      .dropdown{
          display:block;
      }
  }*/
}
.right-off-canvas-menu .off-canvas-list li a {
  line-height: 20px;
  padding: 10px 20px;
  font-weight: normal;
  font-size: 16px;
  color: #ffffff;
  background: #A6192E;
  text-transform: uppercase;
  border-bottom: 1px solid #b11b31;
  position: relative;
}
.right-off-canvas-menu .off-canvas-list li a:hover {
  background: #c21d36;
  color: #ffffff;
}
.right-off-canvas-menu .off-canvas-list li a .fa {
  padding-left: 15px;
  font-size: 16px;
  color: #8d1527;
}
.right-off-canvas-menu .off-canvas-list li a.search {
  background: #222222;
  color: #ffffff;
}
.right-off-canvas-menu .off-canvas-list li a.search .fa {
  color: #949494;
}
.right-off-canvas-menu .off-canvas-list li a.buy-tickets {
  background: #ffffff;
  color: #222222;
}
.right-off-canvas-menu .off-canvas-list li a.buy-tickets .fa {
  color: #A6192E;
}
.right-off-canvas-menu .off-canvas-list li a.buy-tickets:hover {
  color: #222222;
  background: #ebebeb;
}
.right-off-canvas-menu .off-canvas-list li .dropdown {
  margin: 0;
}
.right-off-canvas-menu .off-canvas-list li .dropdown li a {
  background: #851425;
  padding-left: 30px;
  border-bottom: 1px solid #7b1322;
}
.right-off-canvas-menu .off-canvas-list li .dropdown li a:hover {
  background: #741220;
}
.right-off-canvas-menu .social-links {
  height: 40px;
  line-height: 40px;
  padding-left: 20px;
}
.right-off-canvas-menu .social-links a {
  color: #ffffff;
  font-size: 20px;
  padding-right: 20px;
}
.right-off-canvas-menu .social-links a:hover {
  color: #d9d9d9;
}
.right-off-canvas-menu .upcoming-events {
  background: #ffffff;
  padding-bottom: 20px;
}
.right-off-canvas-menu .upcoming-events label {
  cursor: default;
  background: #f5f5f5;
  border-bottom: 1px solid #e1e1e1;
  padding: 10px 0 10px 20px;
  font-size: 16px;
  line-height: 18px;
  text-transform: uppercase;
  margin: 0;
  color: #949494;
}
.right-off-canvas-menu .upcoming-events img {
  width: 150px;
  padding-bottom: 10px;
  border-bottom: 1px solid #949494;
  margin: 20px;
}
.right-off-canvas-menu .upcoming-events .info {
  padding: 0 0 0 20px;
}
.right-off-canvas-menu .upcoming-events h4 {
  margin: 0;
}
.right-off-canvas-menu .upcoming-events p {
  margin: 0;
}
.right-off-canvas-menu .logo-container {
  background-color: #ffffff;
}
.right-off-canvas-menu .logo-container img {
  width: 100px;
  height: 57px;
  margin: 10px;
  float: left;
}
.right-off-canvas-menu .logo-container .event-info, .right-off-canvas-menu .logo-container .contact-info {
  float: left;
  position: static;
  width: 170px;
  margin: 10px 0 0 10px;
}
.right-off-canvas-menu .logo-container .event-info p, .right-off-canvas-menu .logo-container .contact-info p {
  color: #222222;
  margin: 0;
  font-size: 13px;
}
.right-off-canvas-menu .logo-container .event-info a, .right-off-canvas-menu .logo-container .contact-info a {
  color: #222222;
}

.move-left .mobile-nav-icon {
  color: #640f1c;
}

.mobile-nav-icon {
  height: 75px;
  text-align: center;
  width: 70px;
  color: #404040;
  position: absolute;
  font-size: 25px !important;
  line-height: 25px !important;
  float: right;
  top: 122px;
  left: 180px;
  z-index: 11;
}
.mobile-nav-icon:hover {
  color: #640f1c;
}
.mobile-nav-icon span {
  position: absolute;
  bottom: 56px;
  left: 43px;
  line-height: 14px;
  display: block;
  text-align: center;
  font-size: 16px;
  font-weight: bold;
  text-transform: uppercase;
  width: 100%;
}

.buyers-guide {
  position: relative;
  background-color: #A6192E;
}
.buyers-guide p {
  line-height: 1.7em;
  color: #ffffff;
}
.buyers-guide .button {
  background-color: #fff !important;
  color: #A6192E !important;
}
.buyers-guide .button:hover {
  background-color: #fff !important;
  color: #A6192E !important;
}
.buyers-guide .left {
  background-image: url("https://mpe-ahfjd9gkc8gthjbc.z01.azurefd.net/sitefinity/images/default-source/flower-show/exhibitor-list.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 464px;
}
.buyers-guide .left .no-sponsored-content-placeholder {
  /*position: relative;

  img {
      position: absolute;
      width: 100%;
      z-index: 5; //Greater than the handles on the slick slider and the image .left above.
      max-height: 450px;
      //min-height: $min_height;
  }*/
}
.buyers-guide .left .sponsored-content-slider .slides .slide {
  min-height: 465px;
}
@media only screen and (max-width: 40em) {
  .buyers-guide .left {
    min-height: 0;
  }
}
.buyers-guide .right {
  color: #ffffff;
  position: relative;
  z-index: 2;
  padding: 6rem;
}
.buyers-guide .right h1 {
  color: #ffffff;
}
@media only screen and (max-width: 40em) {
  .buyers-guide .right {
    padding: 2rem;
  }
  .buyers-guide .right * {
    position: relative;
    z-index: 2;
  }
  .buyers-guide .right:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
  }
}
/*
*
* 9/25/2017 
*
* This file handles the badges/icons on the Exhibitor Listing Page for a particular show.
* 
* Pages -> Exhibitor List -> Exhibitors
* Edit the Listings Widget -> List Settings -> Edit List of listings

* Pages -> Exhibitor List -> Exhibitors
* Edit the Listings Widget -> Single Item Settings -> Edit Exhibitor Listing Detail Page
* 
*/
.badges-list .badge {
  margin: 0 10px 0 0 !important;
  height: 28px;
}

.button:visited, .button:link {
  width: auto;
  height: 40px;
  line-height: 40px;
  text-transform: uppercase;
  color: #ffffff;
  font-family: "Lato", sans-serif;
  font-size: 16px;
  font-weight: 300;
  padding: 0 1rem;
  margin: 1rem auto 0;
  background: #A6192E;
  border-radius: 2px;
}
.button:visited.new-button, .button:link.new-button {
  display: inline-block;
  margin: 0;
  height: auto;
  line-height: 1;
}
.button:visited.tickets, .button:link.tickets {
  background-color: #A6192E;
  padding: 0 2.5rem;
}
.button:visited.tickets:hover, .button:link.tickets:hover {
  background: #741220;
}
.button:visited.ticket-deals, .button:link.ticket-deals {
  margin-top: 0.3rem;
  background-color: #404040;
  padding: 1.4rem 2rem;
  line-height: 0;
}
.button:visited.ticket-deals:hover, .button:link.ticket-deals:hover {
  background: #2d2d2d;
}
.button:visited.medium, .button:link.medium {
  font-size: 14px;
  padding: 10px 15px;
}
.button:visited.small, .button:link.small {
  font-size: 12px;
  display: inline-block;
  margin: 0;
  height: auto;
  line-height: 1;
  padding: 10px;
}
.button:visited:hover, .button:visited:focus, .button:link:hover, .button:link:focus {
  background: #741220;
  color: #ffffff;
}
.button:visited.white, .button:link.white {
  background: #A6192E;
  color: #ffffff;
}
.button:visited.white:hover, .button:visited.white:focus, .button:link.white:hover, .button:link.white:focus {
  background: #951729;
}

button.disabled, button[disabled], .button.disabled, .button[disabled] {
  background: #949494;
}
button.disabled:hover, button[disabled]:hover, .button.disabled:hover, .button[disabled]:hover {
  background: #949494;
}

/*@import "components/hero";*/
.homepage-rotator #Slideshow .slide {
  min-height: 600px !important;
}

#Slideshow {
  width: 100%;
  position: relative;
  z-index: 1;
}
#Slideshow, #Slideshow * {
  box-sizing: border-box;
}
#Slideshow #Slides {
  width: 100%;
  overflow: hidden;
  top: 0;
  left: 0;
  position: relative;
  z-index: 4;
}
#Slideshow #Slides .slide {
  width: 100%;
  background-size: cover;
  background-position: center center;
  margin: 0;
  position: relative !important;
  min-height: 400px;
  display: none;
}
#Slideshow #Slides .slide figure.slide-img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  margin: 0;
  background-position: center bottom;
  z-index: 1;
}
#Slideshow #Slides .slide .sponsor {
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  z-index: 500;
}
#Slideshow #Slides .slide .sponsor img {
  display: inline-block;
  max-width: 200px;
  max-height: 100px;
}
#Slideshow #Slides .slide div.caption-text {
  position: relative;
  z-index: 3;
  margin: 190px 0 0;
  padding-left: 0;
}
#Slideshow #Slides .slide div.caption-text h1 {
  margin: 0;
  font-size: 46px;
  line-height: 50px;
  padding: 0;
  color: #ffffff;
  font-weight: bold;
}
#Slideshow #Slides .slide div.caption-text p {
  margin: 10px 0 0;
  padding: 0;
  color: #ffffff;
}
#Slideshow #Slides .slide div.caption-text p + a.button {
  margin: 1rem 0 0;
}
#Slideshow #Slides .slide::before {
  content: "";
  background: -moz-linear-gradient(left, rgb(34, 34, 34) 0%, rgba(34, 34, 34, 0) 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgb(34, 34, 34)), color-stop(100%, rgba(34, 34, 34, 0))); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(left, rgb(34, 34, 34) 0%, rgba(34, 34, 34, 0) 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(left, rgb(34, 34, 34) 0%, rgba(34, 34, 34, 0) 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(left, rgb(34, 34, 34) 0%, rgba(34, 34, 34, 0) 100%); /* IE10+ */
  background: linear-gradient(to right, rgb(34, 34, 34) 0%, rgba(34, 34, 34, 0) 100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#222222", endColorstr="#00222222",GradientType=1 ); /* IE6-9 */
  display: block;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  width: 60%;
  z-index: 2;
}
#Slideshow #Slides .slide:first-child, #Slideshow #Slides .slide.slick-slide {
  display: block;
}
@media only screen and (max-width: 40em) {
  #Slideshow #Slides .mvc {
    display: block;
  }
}
#Slideshow ul.slick-dots {
  width: 100%;
  margin: 0;
  position: absolute;
  bottom: 0;
  z-index: 9;
  text-align: center;
  padding: 0;
}
#Slideshow ul.slick-dots li {
  display: inline-block;
}
#Slideshow ul.slick-dots li button {
  height: 15px;
  width: 15px;
  border-radius: 15px;
  background: #ffffff;
  display: inline-block;
  margin-right: 5px;
  font-size: 0;
  line-height: 0;
  padding: 0;
}
#Slideshow ul.slick-dots li button:hover, #Slideshow ul.slick-dots li button:focus {
  background: #cccccc;
  outline: none;
}
#Slideshow ul.slick-dots li.slick-active button {
  background-color: #A6192E;
}
#Slideshow .slideshowArrow {
  top: 50%;
}
#Slideshow .slideshowArrow:link, #Slideshow .slideshowArrow:visited, #Slideshow .slideshowArrow:focus {
  position: absolute;
  z-index: 9;
  cursor: pointer;
  font-size: 30px;
  color: rgba(166, 25, 46, 0.8);
  outline: none;
}
#Slideshow .slideshowArrow:link:hover, #Slideshow .slideshowArrow:link:focus, #Slideshow .slideshowArrow:visited:hover, #Slideshow .slideshowArrow:visited:focus, #Slideshow .slideshowArrow:focus:hover, #Slideshow .slideshowArrow:focus:focus {
  color: #851425;
}
#Slideshow .slideshowArrow#Left {
  left: 30px;
}
#Slideshow .slideshowArrow#Right {
  right: 30px;
}
@media only screen and (min-width:64.063em) {
  #Slideshow #Slides .slide .row .tl {
    position: relative;
    top: -40px;
  }
  #Slideshow #Slides .slide .row .t {
    position: relative;
    top: -75px;
    width: 100%;
    text-align: center;
  }
  #Slideshow #Slides .slide .row .tr {
    position: relative;
    top: -75px;
    width: 100%;
    text-align: right;
  }
  #Slideshow #Slides .slide .row .c {
    width: 100%;
    text-align: center;
  }
  #Slideshow #Slides .slide .row .r {
    width: 100%;
    text-align: right;
  }
  #Slideshow #Slides .slide .row .bl {
    position: relative;
    bottom: -125px;
    width: 100%;
  }
  #Slideshow #Slides .slide .row .b {
    position: relative;
    bottom: -125px;
    text-align: center;
    width: 100%;
  }
  #Slideshow #Slides .slide .row .br {
    position: relative;
    bottom: -125px;
    text-align: right;
    width: 100%;
  }
}
@media only screen and (min-width:40.063em) and (max-width:64em) {
  #Slideshow #Slides .slide #Slide2 {
    background-color: none;
  }
  #Slideshow #Slides .slide div.caption-text {
    margin-top: 200px;
    padding-left: 20px;
  }
}
@media only screen and (max-width: 40em) {
  #Slideshow #Slides .slide {
    height: auto;
    min-height: 0;
    background-image: none !important;
  }
  #Slideshow #Slides .slide #HeroContainer {
    display: block !important;
    height: 115px;
  }
  #Slideshow #Slides .slide #HeroContainer .hero-wrap {
    position: static !important;
    display: block !important;
  }
  #Slideshow #Slides .slide figure.slide-img {
    height: 225px;
    position: static;
    background-position: center center;
  }
  #Slideshow #Slides .slide div.caption-text {
    margin: 0;
    padding: 25px;
    background-color: #A6192E;
    height: 100%;
    position: static;
  }
  #Slideshow #Slides .slide div.caption-text a.button {
    background-color: #FFF;
    color: #A6192E;
  }
  #Slideshow #Slides .slide div.caption-text h1 {
    font-size: 36px;
    line-height: 40px;
  }
  #Slideshow #Slides .slide:before {
    background: none;
    display: none;
  }
  #Slideshow ul.slick-dots {
    bottom: auto;
    top: 195px;
  }
  #Slideshow ul.slick-dots li button {
    height: 8px;
    width: 8px;
  }
}

.mobile-features-nudge {
  display: none;
  position: fixed;
  bottom: 0;
  width: 100%;
  z-index: 100000;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
}
.mobile-features-nudge *, .mobile-features-nudge {
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: -moz-none;
  -ms-user-select: none;
  user-select: none;
}
.mobile-features-nudge a {
  color: #FFF;
}
.mobile-features-nudge header {
  position: relative;
  padding: 15px;
  padding-right: 45px;
  background-color: #851425;
  color: #FFF;
}
.mobile-features-nudge header .title h2, .mobile-features-nudge header .title h3, .mobile-features-nudge header .title h4, .mobile-features-nudge header .title h5 {
  font-size: 0.95rem;
  margin: 0;
  color: #FFF;
  text-align: left;
  text-transform: uppercase;
}
.mobile-features-nudge header .subtitle a, .mobile-features-nudge header .subtitle p {
  font-size: 0.8rem;
  margin: 4px 0 0;
  text-transform: uppercase;
  display: block;
}
.mobile-features-nudge header i {
  position: absolute;
  top: 15px;
  right: 15px;
}
.mobile-features-nudge section.mobile-show-features {
  width: 100%;
  background-color: #FFF;
  overflow: hidden;
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
  height: 0;
}
.mobile-features-nudge section.mobile-show-features ul {
  float: left;
  padding: 15px;
}
.mobile-features-nudge section.mobile-show-features ul li {
  min-height: 200px;
  width: 200px;
  float: left;
  border: 1px solid #CCC;
  padding: 15px;
}
.mobile-features-nudge section.mobile-show-features ul li h3 {
  font-size: 0.9rem;
  font-weight: normal;
  margin: 0 0 5px;
}
.mobile-features-nudge section.mobile-show-features ul li figure {
  margin: 0;
  max-width: 100%;
}
.mobile-features-nudge section.mobile-show-features ul li figure img {
  width: 100%;
  display: block;
}
.mobile-features-nudge section.mobile-show-features ul li article p {
  font-size: 0.8rem;
  line-height: 1.5em;
}
.mobile-features-nudge section.mobile-show-features ul li + li {
  margin-left: 15px;
}
.mobile-features-nudge section.mobile-show-features ul li .button {
  margin-top: 1rem;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box {
  background-color: #A6192E;
  background-image: url("/img/buy-tickets-bg-01.svg");
  background-repeat: no-repeat;
  background-size: cover;
  height: 200px;
  border: none;
  text-align: center;
  padding: 25px 30px;
  color: #FFF;
  position: relative;
  z-index: 1;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box a.cover-link {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: block;
  z-index: 2;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box h3 {
  color: #FFF;
  font-weight: bold;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box article p i.fa-ticket {
  font-size: 3rem;
  color: #640f1c;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box article p img {
  display: block;
  margin: 10px auto 15px;
  height: 25px;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box .button {
  background-color: #FFF;
  color: #A6192E;
}
.mobile-features-nudge section.mobile-show-features ul li.buy-tickets-box:after {
  content: "Scroll to see show features";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 10px;
  text-align: center;
  color: #b3b3b3;
  font-size: 0.8rem;
}
.mobile-features-nudge section.mobile-show-features .slide-rail {
  width: 9999%;
}
.mobile-features-nudge section.mobile-show-features::-webkit-scrollbar {
  display: none;
}
@media only screen and (max-width: 40em) {
  .mobile-features-nudge {
    display: block;
  }
}

section.sponsored-content-slider {
  background-color: #f2f2f2;
  position: relative;
}
section.sponsored-content-slider a.arrow {
  position: absolute;
  color: #b3b3b3;
  top: 280px;
  z-index: 3;
}
section.sponsored-content-slider a.arrow.prev {
  left: 15px;
}
section.sponsored-content-slider a.arrow.next {
  right: 15px;
}
section.sponsored-content-slider section.slide {
  display: none;
  position: relative;
  z-index: 2;
}
section.sponsored-content-slider section.slide figure {
  margin: 0;
  height: 200px;
  width: 100%;
  background-size: cover;
}
section.sponsored-content-slider section.slide article {
  min-height: 200px;
  padding: 25px 50px 30px;
}
section.sponsored-content-slider section.slide article hgroup {
  margin: 0 0 10px;
}
section.sponsored-content-slider section.slide article hgroup h4 {
  margin: 0;
  font-size: 0.9rem;
  color: rgba(133, 20, 37, 0.3);
}
section.sponsored-content-slider section.slide article hgroup h3 {
  margin: 5px 0 0;
  font-size: 1.6rem;
  line-height: 1.2em;
}
section.sponsored-content-slider section.slide article p {
  margin: 10px 0 15px;
}
@media only screen and (max-width: 40em) {
  section.sponsored-content-slider section.slide article {
    padding: 2em;
  }
}
section.sponsored-content-slider section.slide:first-child, section.sponsored-content-slider section.slide.slick-slide {
  display: block;
}
section.sponsored-content-slider ul.slick-dots {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1;
  position: absolute;
}
section.sponsored-content-slider ul.slick-dots li {
  display: inline-block;
}
section.sponsored-content-slider ul.slick-dots li button {
  font-size: 0;
  line-height: 0;
  padding: 0;
  height: 12px;
  width: 12px;
  background-color: #851425;
  border-radius: 100%;
  opacity: 0.6;
  margin: 0;
  display: block;
}
section.sponsored-content-slider ul.slick-dots li + li {
  margin-left: 5px;
}
section.sponsored-content-slider ul.slick-dots li.slick-active button {
  background-color: #FFF;
}
@media only screen and (min-width:40.063em) and (max-width:64em) {
  section.sponsored-content-slider {
    min-height: 380px;
  }
}

.ticket-sponsor {
  background-color: #A6192E;
  color: #FFF;
  text-align: center;
}
.ticket-sponsor h2, .ticket-sponsor h3, .ticket-sponsor h4, .ticket-sponsor h5 {
  margin: 0;
  color: #FFF;
  font-size: 1.5rem;
  padding: 20px 0;
}
.ticket-sponsor h2, .ticket-sponsor h2 *, .ticket-sponsor h3, .ticket-sponsor h3 *, .ticket-sponsor h4, .ticket-sponsor h4 *, .ticket-sponsor h5, .ticket-sponsor h5 * {
  line-height: 24px;
  vertical-align: top;
}
.ticket-sponsor h2 a, .ticket-sponsor h3 a, .ticket-sponsor h4 a, .ticket-sponsor h5 a {
  color: #FFF;
  font-family: "Gotham SSm A", "Gotham SSm B";
  position: relative;
}
.ticket-sponsor h2 a:first-child:after, .ticket-sponsor h2 a:first-child:before, .ticket-sponsor h3 a:first-child:after, .ticket-sponsor h3 a:first-child:before, .ticket-sponsor h4 a:first-child:after, .ticket-sponsor h4 a:first-child:before, .ticket-sponsor h5 a:first-child:after, .ticket-sponsor h5 a:first-child:before {
  content: "";
  height: 2px;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: rgba(255, 255, 255, 0.4);
  transition: right 0.3s ease;
}
.ticket-sponsor h2 a:first-child:before, .ticket-sponsor h3 a:first-child:before, .ticket-sponsor h4 a:first-child:before, .ticket-sponsor h5 a:first-child:before {
  right: 100%;
}
.ticket-sponsor h2 a:first-child:after, .ticket-sponsor h3 a:first-child:after, .ticket-sponsor h4 a:first-child:after, .ticket-sponsor h5 a:first-child:after {
  right: 0;
}
.ticket-sponsor h2 a:first-child:hover, .ticket-sponsor h3 a:first-child:hover, .ticket-sponsor h4 a:first-child:hover, .ticket-sponsor h5 a:first-child:hover {
  border-bottom-color: #FFF;
  color: #FFF;
}
.ticket-sponsor h2 a:first-child:hover:before, .ticket-sponsor h3 a:first-child:hover:before, .ticket-sponsor h4 a:first-child:hover:before, .ticket-sponsor h5 a:first-child:hover:before {
  right: 0;
}
.ticket-sponsor h2 img, .ticket-sponsor h3 img, .ticket-sponsor h4 img, .ticket-sponsor h5 img {
  height: 24px;
  padding-left: 5px;
  display: inline-block;
}
.ticket-sponsor h2 em, .ticket-sponsor h3 em, .ticket-sponsor h4 em, .ticket-sponsor h5 em {
  font-weight: 100;
  font-size: 0.7em;
  font-style: normal;
  padding-left: 10px;
  position: relative;
}
.ticket-sponsor h2 em a, .ticket-sponsor h3 em a, .ticket-sponsor h4 em a, .ticket-sponsor h5 em a {
  border: none;
}
.ticket-sponsor.ticket-discount {
  text-align: right;
}
@media only screen and (max-width: 40em) {
  .ticket-sponsor {
    display: none;
  }
}

.homepage-rotator + .ticket-sponsor {
  margin: 0 0 20px;
}

.listings-nav h1 {
  margin-bottom: 1rem;
  margin-top: 1rem;
}
.listings-nav a {
  display: block;
  margin-top: 1rem;
  color: #000;
}
.listings-nav .categories {
  padding-bottom: 2rem;
}

.primary-content .category h2 {
  text-align: center;
  width: 100%;
  font-weight: 400;
}

.listings {
  margin: 2rem 0;
}
.listings h1, .listings .h1 {
  font-weight: 400;
  margin: 0;
  font-size: 1.4rem;
  margin-bottom: 2rem;
}
.listings select {
  background-color: #eee;
  border: 0;
  font-size: 0.8rem;
  padding: 0.5rem;
  width: 100%;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}
.listings .share-hearts, .listings .view-my-hearts, .listings .view-all-hearts {
  float: right;
  font-size: 0.8rem;
  color: #A6192E;
  margin-left: 1rem;
}
.listings .share-hearts span, .listings .view-my-hearts span, .listings .view-all-hearts span {
  text-transform: uppercase;
}
.listings .share-hearts:hover, .listings .view-my-hearts:hover, .listings .view-all-hearts:hover {
  cursor: pointer;
}
.listings .share-hearts:hover span, .listings .view-my-hearts:hover span, .listings .view-all-hearts:hover span {
  text-decoration: underline;
}
.listings .share-hearts-modal {
  background-color: #eee;
  padding: 2.5rem;
  margin-bottom: 1rem;
}
.listings .share-hearts-modal input[type=text] {
  width: 100%;
  margin-bottom: 1rem;
  margin-top: 0.5rem;
}
.listings .share-hearts-modal .button {
  width: 100%;
  text-align: center;
}
.listings .share-hearts-modal .button:hover {
  cursor: pointer;
}
.listings .share-hearts-modal .newsletter-opt-in {
  margin-bottom: 1rem;
}
.listings .share-hearts-modal .newsletter-opt-in label {
  display: inline;
}

.heart {
  color: #A6192E;
  position: absolute;
  right: 2.5rem;
  top: 1.1rem;
  font-size: 1.5rem;
}

.heart:hover {
  cursor: pointer;
}

#promotion-filter-select {
  background-color: #eee;
  border: 0;
  font-size: 0.8rem;
  padding: 0.5rem;
  width: 100%;
  margin-top: 1rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.promotion {
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
  padding: 1rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
  font-size: 0.9rem;
  color: #000;
  transition: all 500ms ease;
  -moz-transition: all 500ms ease;
  -webkit-transition: all 500ms ease;
  -ms-transition: all 500ms ease;
  -o-transition: all 500ms ease;
}
.promotion h2 {
  margin: 0 0 1rem 0;
  font-weight: 400;
  font-size: 1.2rem;
  text-align: left;
  color: #A6192E;
}
.promotion p {
  line-height: 1.2;
}
.promotion .button {
  margin-bottom: 0px;
  width: 100%;
  margin-top: 0.5rem;
}

.promotion:hover {
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  text-decoration: none;
}

.owl-dots {
  text-align: center;
  display: block;
  padding-bottom: 2rem;
}
.owl-dots .owl-dot {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 3rem;
  background-color: #fff;
  margin: 0 0.25rem;
}
.owl-dots .active {
  background-color: #A6192E;
}

.sub-categories {
  margin-left: 1rem;
  padding: 0.5rem;
}

.listing-list {
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.25);
  padding: 1rem;
  min-height: 500px;
  margin-bottom: 2rem;
  font-size: 0.9rem;
  text-transform: uppercase;
  -moz-transition: all 500ms ease;
  -webkit-transition: all 500ms ease;
  -ms-transition: all 500ms ease;
  -o-transition: all 500ms ease;
  text-align: center;
}
.listing-list h2 {
  margin: 1rem 0;
  font-weight: 400;
  font-size: 1.2rem;
  min-height: 80px;
}
.listing-list h2 a {
  color: #000;
  line-height: 24px;
  font-size: 18px;
}
.listing-list h2 a:hover {
  color: #A6192E;
}
.listing-list .button {
  width: 100%;
  text-align: center;
  margin: 1rem 0;
}
.listing-list .button:hover {
  color: #fff;
}
.listing-list .icons {
  margin-top: 0.5rem;
}
.listing-list .icons img {
  margin-bottom: 0.5rem;
  width: auto;
  height: auto;
}

.listings-list:hover {
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  text-decoration: none;
}

.promotions .promotion-container {
  margin: 0.5rem;
}
.promotions .promotion-container .promotion {
  background-color: #fff;
  display: inline-block;
  margin-top: 0;
  width: 100%;
}
.promotions .promotion-container .promotion .button {
  margin-top: 1rem;
  width: 100%;
  margin-bottom: 0;
}
.promotions .owl-prev span {
  position: absolute;
  left: -4rem;
  top: 6rem;
  font-size: 6rem !important;
  color: #a6a1a1;
}
.promotions .owl-next span {
  position: absolute;
  right: -4rem;
  top: 6rem;
  font-size: 6rem !important;
  color: #a6a1a1;
}
.promotions .owl-prev span:hover, .promotions .owl-next span:hover {
  color: #A6192E;
}
.promotions .owl-nav {
  position: relative;
  height: 0px;
  position: absolute;
  width: 100%;
  top: 0px;
}
.promotions .owl-nav .owl-prev {
  position: absolute;
  left: 0;
}
.promotions .owl-nav .owl-next {
  position: absolute;
  right: 0;
}

@media only screen and (max-width: 40em) {
  .promotions .owl-nav {
    position: relative;
    height: 0px;
    position: absolute;
    width: 100%;
    top: 0px;
  }
  .promotions .owl-nav .owl-prev {
    position: absolute;
    left: 35px;
  }
  .promotions .owl-nav .owl-next {
    position: absolute;
    left: 35px;
  }
}
.sponsors {
  padding: 1rem 4rem 3rem;
}
.sponsors .owl-nav {
  position: relative;
  height: 0px;
  position: absolute;
  width: 100%;
  top: 0px;
}
.sponsors .owl-nav .owl-prev {
  position: absolute;
  left: 0;
}
.sponsors .owl-nav .owl-next {
  position: absolute;
  right: 0;
}
.sponsors .owl-prev span {
  position: absolute;
  left: -4rem;
  top: -7.5rem;
  font-size: 6rem !important;
  color: #a6a1a1;
}
.sponsors .owl-next span {
  position: absolute;
  right: -4rem;
  top: -7.5rem;
  font-size: 6rem !important;
  color: #a6a1a1;
}
.sponsors .owl-prev span:hover, .sponsors .owl-next span:hover {
  color: #A6192E;
}
.sponsors .item {
  padding: 1rem;
}
.sponsors .owl-carousel .owl-item img {
  width: auto !important;
  margin: 0 auto;
}

.listing h2 {
  margin: 2rem 0 1rem;
  font-weight: 400;
  font-size: 1.2rem;
}
.listing h2 a {
  color: #000;
  line-height: 1rem;
}
.listing h2 a:hover {
  color: #A6192E;
}
.listing .social a {
  display: inline-block;
  margin-left: 0.5rem;
}
.listing .social a img {
  border-radius: 10px;
}
.listing a {
  display: inline-block;
}
.listing .info {
  margin-top: 4rem;
}
.listing .address {
  margin-top: 2rem;
}
.listing .button {
  width: 100%;
}
.listing a.button:hover {
  color: #fff;
  text-decoration: none;
}
.listing .button:hover {
  background-color: #640f1c;
}
.listing .ctas {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.listing .fa {
  font-size: 2rem;
}

.category-sub-head {
  text-align: left;
}

.ctas {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.masonry {
  -webkit-column-count: 3;
  -moz-column-count: 3;
  column-count: 3;
  -webkit-column-gap: 2rem;
  -moz-column-gap: 2rem;
  column-gap: 2rem;
  padding: 0;
}
.masonry .promotion {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}

.exhibitors h1 {
  margin-bottom: 1rem;
  font-size: 24px;
  line-height: 28px;
}

@media only screen and (max-width: 40em) {
  .masonry {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1;
  }
}
/* ----- Universal ----------------------- */
::selection {
  color: #ffffff;
  background: #A6192E;
}

-moz-::selection {
  color: #ffffff;
  background: #A6192E;
}

* {
  font-family: "Lato", sans-serif;
}

html {
  overflow-y: scroll;
}

body {
  background: #ffffff;
  color: #222222;
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  min-width: 250px;
}
body.sfPageEditor {
  max-width: inherit;
}
body.sfPageEditor .inner-wrap {
  min-height: 450px;
  max-width: 1440px;
  margin: 0 auto;
}

iframe {
  max-width: 100%;
  border: 0;
}

.inner-wrap {
  min-height: 245px;
}

a:link, a:visited {
  color: #A6192E;
}
a:link:hover, a:visited:hover {
  color: #741220;
}

.required {
  /*color: $orange;*/
}

.sfError {
  color: red;
  margin-bottom: 20px;
}

.mt0 {
  margin-top: 0px !important;
}

.mt10 {
  margin-top: 10px !important;
}

.mt20 {
  margin-top: 20px !important;
}

.mb0 {
  margin-bottom: 0px !important;
}

.mb10 {
  margin-bottom: 10px !important;
}

.mb20 {
  margin-bottom: 20px !important;
}

.mb30 {
  margin-bottom: 30px !important;
}

.mb30 h2 {
  margin-left: 8px;
}

.tal {
  text-align: left !important;
}

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

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

.grey-bkgd {
  background: #f5f5f5;
}

.secondary-bkgd {
  background: #A6192E;
  position: absolute;
  top: 155px;
  height: 40px;
  width: 50%;
  z-index: 2;
}

.sfPageEditor .top-container .top-bar .grey-bkgd, .sfPageEditor .secondary-bkgd {
  display: none !important;
}

.sfPageEditor #ctl00_FlowerShowNavBar_ctl00_C {
  z-index: 1000;
}

.sfPageEditor .main-nav, .sfPageEditor #nav-ticket-link {
  top: 0px !important;
}

.sfPageEditor .mobile-nav-icon {
  top: 9px !important;
}

.interior.sfPageEditor .main-nav, .interior.sfPageEditor #nav-ticket-link {
  top: 90px !important;
}

.dark-grey-bkgd {
  background: #404040;
}

.primary-bkgd {
  background: #A6192E;
  padding: 46px 0;
}

.white-bkgd {
  background: #ffffff;
}

h2 {
  font-size: 24px;
  margin-bottom: 1rem;
}
h2.heading {
  font-family: "Gotham SSm A", "Gotham SSm B";
  color: #1e2a24;
  font-size: 20px;
  padding-bottom: 5px;
  margin-bottom: 1rem;
  border-bottom: 2px solid #1e2a24;
  text-transform: uppercase;
}

h1, h2, h3, h4 {
  font-family: "Gotham SSm A", "Gotham SSm B";
  font-weight: 700;
  color: #404040;
  text-transform: uppercase;
}

h2 {
  text-align: center;
}

p {
  margin: 10px 0;
  line-height: 1.2;
  color: #454b4f;
}

/* ----- Forms ------------------------ */
.example {
  margin: -0.7rem 0 1rem 0;
  font-size: 80%;
  color: #949494;
}

.summary p {
  margin: 0 0 1rem;
  font-size: 1rem;
}
.summary label {
  color: #949494;
}

label {
  color: #222222;
}
label.checkbox {
  color: #949494;
}

input[type=checkbox], input[type=radio] {
  width: auto;
  margin: 0 5px 0 0;
  display: inline-block;
}

input[type=checkbox] + label, input[type=radio] + label {
  display: inline !important;
}

.sfFormCheckboxlist, .sfFormRadiolist {
  margin-bottom: 10px;
}

/* ----- Tables ----------------------- */
table {
  border-collapse: collapse;
  width: 100%;
  border: none;
}
table thead {
  background: none;
}
table thead tr {
  background: none !important;
}
table thead tr th {
  font-size: 12px;
}
table tr.even, table tr.alt, table tr:nth-of-type(even) {
  background: none;
}
table tr.odd, table tr, table tr:nth-of-type(odd) {
  background: #fdfdfd;
}

/*----Employees------*/
.employee {
  text-align: center;
  padding: 0 15px;
}
.employee a.headshot {
  background-size: cover;
  background-position: top center;
  height: 145px;
  width: 145px;
  display: block;
  margin: 0 auto 10px;
}
.employee h4 {
  font-size: 18px;
  line-height: 1.2em;
}
.employee h4 small {
  display: block;
  margin: 5px 0 0;
  font-size: 0.8em;
  opacity: 0.6;
  line-height: 1;
  font-family: Lato, sans-serif;
}
.employee h4 a {
  color: #A6192E;
}
.employee .bio-content {
  display: none;
}
.employee + .employee {
  margin-top: 20px;
}

.featherlight-content .bio-content {
  width: 600px;
}
.featherlight-content .bio-content figure {
  background-size: cover;
  background-position: top center;
  height: 155px;
  width: 155px;
  display: block;
  margin: 0 auto 10px;
  max-width: 100%;
}
.featherlight-content .bio-content h3 {
  line-height: 1.5em;
  color: #A6192E;
  margin: 0 0 15px;
}
.featherlight-content .bio-content h3 small {
  display: block;
  font-family: Lato, sans-serif;
  text-transform: none;
  margin: 5px 0 0;
  opacity: 0.6;
}
@media screen and (max-width: 720px) {
  .featherlight-content .bio-content {
    width: auto;
  }
}

.bio {
  min-height: 250px;
}

.sfPageEditor .bio {
  min-height: 300px;
}

/* ----- Header ----------------------- */
/* ----- Mobile Nav ----------------------- */
.upcoming-events {
  max-width: 500px;
  z-index: 5;
  position: relative;
}
.upcoming-events .sfContentBlock {
  float: left;
  padding-top: 20px;
  width: 150px;
}
.upcoming-events .sfContentBlock p {
  font-size: 12px;
  text-align: right;
  line-height: 15px;
  text-transform: uppercase;
  margin: 0;
  color: #949494;
}
.upcoming-events .event {
  width: 118px;
  position: relative;
  padding: 5px;
  top: 25px;
  z-index: 2;
  float: right;
  /*&.orange {
      &:hover {
          background: $orange;

          &::after {
              border-right-color: $darkOrange;
          }
      }
  }


  &.blue {
      &:hover {
          background: $blue;

          &::after {
              border-right-color: $darkBlue;
          }
      }
  }

  &.green {
      &:hover {
          background: $green;

          &::after {
              border-right-color: $darkGreen;
          }
      }
  }

  &.forestgreen {
      &:hover {
          background: $forestGreen;

          &::after {
              border-right-color: $darkForestGreen;
          }
      }
  }

  &.marsala {
      &:hover {
          background: $marsala;

          &::after {
              border-right-color: $darkMarsala;
          }
      }
  }

  &.teal {
      &:hover {
          background: $teal;

          &::after {
              border-right-color: $darkTeal;
          }
      }
  }

  &.cdnteal {
      &:hover {
          background: $cdnTeal;

          &::after {
              border-right-color: $cdnDarkTeal;
          }
      }
  }

  &.lightgreen {
      &:hover {
          background: $lightGreen;

          &::after {
              border-right-color: $darkLightGreen;
          }
      }
  }

  &.lightblue {
      &:hover {
          background: $lightBlue;

          &::after {
              border-right-color: $darkLightBlue;
          }
      }
  }

  &.terracotta {
      &:hover {
          background: $terracotta;

          &::after {
              border-right-color: $darkTerracotta;
          }
      }
  }

  &.pink {
      &:hover {
          background: $pink;

          &::after {
              border-right-color: $darkPink;
          }
      }
  }

  &.fallpink {
      &:hover {
          background: $fallPink;

          &::after {
              border-right-color: $darkFallPink;
          }
      }
  }

  &.red {
      &:hover {
          background: $red;

          &::after {
              border-right-color: $darkRed;
          }
      }
  }

  &.holidayblue {
      &:hover {
          background: $holidayBlue;

          &::after {
              border-right-color: $darkHolidayBlue;
          }
      }
  }

  &.holidayred {
      &:hover {
          background: $holidayRed;

          &::after {
              border-right-color: $darkHolidayRed;
          }
      }
  }

  &.christmasgreen {
      &:hover {
          background: $christmasGreen;

          &::after {
              border-right-color: $darkChristmasGreen;
          }
      }
  }

  &.christmasred {
      &:hover {
          background: $christmasRed;
      }

      &::after {
          border-right-color: $darkChristmasRed;
      }
  }

  &.fallred2018 {
      &:hover {
          background: $fallRed2018;
      }

      &::after {
          border-right-color: $darkFallRed2018;
      }
  }

  &.outdoorpink2019 {
      &:hover {
          background: $outdoorPink2019;
      }

      &::after {
          border-right-color: $darkOutdoorPink2019;
      }
  }

  &.remodelingteal2019 {
      &:hover {
          background: $remodelingTeal2019;
      }

      &::after {
          border-right-color: $darkRemodelingTeal2019;
      }
  }

  &.springgreen2019 {
      background-color: $springGreen2019;

      &::after {
          border-right-color: $darkSpringGreen2019;
      }
  }

  &.mtlgreen {
      background-color: $mtlGreen;

      &::after {
          border-right-color: $darkMtlGreen;
      }
  }

  &.mtlorange {
      background-color: $mtlOrange;

      &::after {
          border-right-color: $darkMtlOrange;
      }
  }*/
}
.upcoming-events .event img {
  height: 90px;
  width: 120px;
  -webkit-filter: grayscale(1);
  filter: grayscale(1);
}
.upcoming-events .event:hover img {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

.left-small,
.right-small {
  height: 60px;
  width: 60px;
  border: none;
}
.left-small .menu-icon,
.right-small .menu-icon {
  width: 60px;
  height: 60px;
}
.left-small .menu-icon span::after,
.right-small .menu-icon span::after {
  width: 24px;
  left: 20px;
  margin-top: -10px;
  box-shadow: 0 0 0 3px #A6192E, 0 10px 0 3px #A6192E, 0 20px 0 3px #A6192E;
}

hr {
  opacity: 1;
  border: 0px;
  height: 0.5rem;
  background: #f4f5f8;
  margin: 1rem 0;
}

.move-right .menu-icon span:after {
  box-shadow: 0 0 0 3px #640f1c, 0 10px 0 3px #640f1c, 0 20px 0 3px #640f1c;
}

.right-small {
  text-align: center;
  line-height: 70px;
}
.right-small.second {
  right: 50px;
  width: 50px;
}
.right-small.second .fa {
  color: #A6192E;
}
.right-small.second .fa:hover {
  color: #741220;
}
.right-small .fa {
  font-size: 32px;
  color: #949494;
}
.right-small .fa:hover {
  color: #A6192E;
}

.dashboard .right-small {
  height: 45px;
  line-height: 45px;
}
.dashboard .right-small .fa {
  font-size: 28px;
  line-height: 45px;
}
.dashboard .right-small .fa:hover {
  color: #ffffff;
}

.has-tip {
  color: #A6192E;
}
.has-tip:hover {
  color: #741220;
}

.f-dropdown {
  outline: none;
  text-align: right;
  background: rgba(255, 255, 255, 0.95);
  border-color: #f5f5f5;
  border-radius: 1px;
}
.f-dropdown li:hover {
  background: #f5f5f5;
}
.f-dropdown li a {
  color: #A6192E;
}
.f-dropdown.open {
  left: 10px !important;
  right: 10px !important;
  width: auto !important;
}
.f-dropdown.open:before {
  left: initial !important;
  right: 13px;
}
.f-dropdown.open:after {
  left: initial !important;
  right: 12px;
}

.left-off-canvas-menu {
  background: #A6192E;
}

/* ----- Footer ----------------------- */
footer {
  background: #f5f5f5;
  text-align: left;
  color: #222222;
  margin-top: 2rem !important;
  padding: 1rem 0;
}
footer section {
  padding: 1rem 2rem;
}
footer section.information-for-exhibitors {
  padding-bottom: 0;
}
footer .bottom p {
  text-transform: none;
}
footer .bottom h2 {
  text-transform: none;
  text-align: left;
}
footer .social-links {
  margin-top: 1rem;
}
footer .footer-cta .date {
  text-align: center;
  margin-bottom: 2rem;
}
footer .footer-cta .date p {
  color: #fff;
}

.sponsors, .information-for-exhibitors {
  font-size: 12px;
  text-transform: uppercase;
}

.bottom {
  font-size: 1rem;
}
.bottom b {
  margin-top: 0.4rem;
  font-size: 18px;
  display: block;
  margin-bottom: 1rem;
}
.bottom .social-links {
  margin-top: 1rem;
}
.bottom .inline-list {
  text-align: right;
  margin-top: 1rem;
  width: 100%;
  margin-bottom: 0px;
}

.bottom ul, .bottom li {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-bottom: 0.5rem;
}

.sponsors {
  margin-top: -50px;
}
.sponsors .sfimagesList {
  margin: 0;
}
.sponsors .sfimagesList li {
  display: inline-block;
  margin: 0 1.37rem 1.37rem 0;
  padding: 0;
  border: 2px solid #d0d0d0;
}

.information-for-exhibitors .inline-list {
  list-style: none;
  margin-top: 1.5rem;
}
.information-for-exhibitors .inline-list li {
  border-right: 1px solid #b4b4b4;
  padding: 0 13px 0 0;
  margin-bottom: 1rem;
}
.information-for-exhibitors .inline-list li.ro span {
  background-position: 0 -40px;
}
.information-for-exhibitors .inline-list li.do span {
  background-position: 0 -80px;
}
.information-for-exhibitors .inline-list li.mo span {
  background-position: 0 -121px;
}
.information-for-exhibitors .inline-list li.et {
  border: none;
}
.information-for-exhibitors .inline-list li.et span {
  background-position: 0 -160px;
}
.information-for-exhibitors .inline-list li.single-line a {
  line-height: 40px;
}
.information-for-exhibitors .inline-list li span {
  /*background-image: $iconSprite;*/
  margin-right: 10px;
  background-size: 40px 200px;
  background-repeat: no-repeat;
  height: 40px;
  width: 40px;
  display: block;
  position: absolute;
  left: 0;
}
.information-for-exhibitors .inline-list li a {
  font-family: "Gotham SSm A", "Gotham SSm B";
  font-weight: 700;
  text-transform: uppercase;
  height: 50px;
  line-height: 20px;
  font-size: 16px;
  vertical-align: middle;
  float: left;
  display: block;
  padding-left: 57px;
  position: relative;
}

.bottom .social-links {
  margin-left: 0;
}
.bottom .social-links li {
  margin: 0 5px 0 0;
}
.bottom .social-links li a {
  background-color: #A6192E;
  /*background-image: $socialSprite;*/
  background-size: 27px 192px;
  background-repeat: no-repeat;
  height: 27px;
  width: 27px;
  display: block;
  float: left;
  color: #fff;
  text-align: center;
  padding: 2px 0;
}
.bottom .subscribe-form {
  width: 350px;
  margin-top: 25px;
}
.bottom .subscribe-form input[type=email] {
  display: inline-block;
  float: left;
  height: 40px;
  width: 250px;
  border: 2px solid #A6192E;
  margin: 0;
}
.bottom .subscribe-form input[type=submit] {
  display: inline-block;
  float: left;
  height: 40px;
  width: 100px;
  background: #A6192E;
  margin: 0;
  text-transform: uppercase;
  text-align: center;
  color: #ffffff;
  padding: 0;
}
.bottom .right {
  font-size: 16px;
  text-transform: none;
}
.bottom .right .inline-list {
  margin: 0 0 0.5rem;
}
.bottom .right .inline-list li {
  float: right;
  border-left: 1px solid #222222;
  padding-left: 10px;
  margin-left: 10px;
}
.bottom .right .inline-list li:last-child {
  border: none;
}
.bottom .right .inline-list li a.phone {
  color: #222222;
}
.bottom .right .inline-list li.privacy {
  border-color: #222222;
}
.bottom .right .inline-list li.privacy a {
  color: #222222;
}
.bottom .right .inline-list.second {
  text-transform: uppercase;
}

/* ----- Interior slide ------*/
#Slideshow.subpage #Slides {
  max-height: 200px;
  background-size: cover;
  margin-bottom: 2rem;
}

/* ----- Main Content ----------------------- */
.main-content {
  padding-top: 30px;
}

.primary-content, .sidebar-content {
  border-right: 1px solid #949494;
  padding-left: 2rem;
  padding-right: 3.5rem;
  margin-bottom: 2rem;
}
.primary-content h1, .sidebar-content h1 {
  margin-top: 1rem;
  color: #A6192E;
}
.primary-content h2, .sidebar-content h2 {
  text-align: left;
  font-size: 1.25rem;
}
.primary-content p, .sidebar-content p {
  line-height: 1.75rem;
}
.primary-content ul.pagination li, .sidebar-content ul.pagination li {
  display: inline-block;
}
.primary-content ul.pagination li a, .sidebar-content ul.pagination li a {
  margin: 10px 15px 10px 0;
  padding: 10px;
}
.primary-content ul.pagination li a span.sr-only, .sidebar-content ul.pagination li a span.sr-only {
  display: none;
}
.primary-content .sfContentBlock, .primary-content .sfimagesTmbList, .sidebar-content .sfContentBlock, .sidebar-content .sfimagesTmbList {
  border-bottom: 1px solid #949494;
  padding: 0 0 2rem;
  margin-bottom: 2rem;
  line-height: 1.75rem;
}
.primary-content .sfContentBlock:last-child, .primary-content .sfimagesTmbList:last-child, .sidebar-content .sfContentBlock:last-child, .sidebar-content .sfimagesTmbList:last-child {
  border-bottom: none;
}
.primary-content .sfContentBlock h1:first-of-type,
.primary-content .sfContentBlock h2:first-of-type,
.primary-content .sfContentBlock h3:first-of-type,
.primary-content .sfContentBlock h4:first-of-type, .primary-content .sfimagesTmbList h1:first-of-type,
.primary-content .sfimagesTmbList h2:first-of-type,
.primary-content .sfimagesTmbList h3:first-of-type,
.primary-content .sfimagesTmbList h4:first-of-type, .sidebar-content .sfContentBlock h1:first-of-type,
.sidebar-content .sfContentBlock h2:first-of-type,
.sidebar-content .sfContentBlock h3:first-of-type,
.sidebar-content .sfContentBlock h4:first-of-type, .sidebar-content .sfimagesTmbList h1:first-of-type,
.sidebar-content .sfimagesTmbList h2:first-of-type,
.sidebar-content .sfimagesTmbList h3:first-of-type,
.sidebar-content .sfimagesTmbList h4:first-of-type {
  margin-top: 0;
}
.primary-content .sfContentBlock p:last-of-type, .primary-content .sfimagesTmbList p:last-of-type, .sidebar-content .sfContentBlock p:last-of-type, .sidebar-content .sfimagesTmbList p:last-of-type {
  margin-bottom: 0;
}
.primary-content .sfContentBlock h2, .primary-content .sfimagesTmbList h2, .sidebar-content .sfContentBlock h2, .sidebar-content .sfimagesTmbList h2 {
  margin: 2rem 0 1rem;
}
.primary-content .sfContentBlock h3, .primary-content .sfimagesTmbList h3, .sidebar-content .sfContentBlock h3, .sidebar-content .sfimagesTmbList h3 {
  border-bottom: none;
}
.primary-content .sfContentBlock hr, .primary-content .sfimagesTmbList hr, .sidebar-content .sfContentBlock hr, .sidebar-content .sfimagesTmbList hr {
  border: none;
  height: 1px;
  background: #949494;
}
.primary-content .sfContentBlock table, .primary-content .sfimagesTmbList table, .sidebar-content .sfContentBlock table, .sidebar-content .sfimagesTmbList table {
  background: #FFFFFF;
  margin-bottom: 1.25rem;
  border: solid 1px #DDDDDD;
  table-layout: auto;
}
.primary-content .sfContentBlock table td, .primary-content .sfimagesTmbList table td, .sidebar-content .sfContentBlock table td, .sidebar-content .sfimagesTmbList table td {
  border: none;
}
.primary-content .sfContentBlock table caption, .primary-content .sfimagesTmbList table caption, .sidebar-content .sfContentBlock table caption, .sidebar-content .sfimagesTmbList table caption {
  background: transparent;
  color: #222222;
  font-size: 1rem;
  font-weight: bold;
}
.primary-content .sfContentBlock table thead, .primary-content .sfimagesTmbList table thead, .sidebar-content .sfContentBlock table thead, .sidebar-content .sfimagesTmbList table thead {
  background: #F5F5F5;
}
.primary-content .sfContentBlock table thead tr th,
.primary-content .sfContentBlock table thead tr td, .primary-content .sfimagesTmbList table thead tr th,
.primary-content .sfimagesTmbList table thead tr td, .sidebar-content .sfContentBlock table thead tr th,
.sidebar-content .sfContentBlock table thead tr td, .sidebar-content .sfimagesTmbList table thead tr th,
.sidebar-content .sfimagesTmbList table thead tr td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-size: 0.875rem;
  font-weight: bold;
  color: #222222;
}
.primary-content .sfContentBlock table tfoot, .primary-content .sfimagesTmbList table tfoot, .sidebar-content .sfContentBlock table tfoot, .sidebar-content .sfimagesTmbList table tfoot {
  background: #F5F5F5;
}
.primary-content .sfContentBlock table tfoot tr th,
.primary-content .sfContentBlock table tfoot tr td, .primary-content .sfimagesTmbList table tfoot tr th,
.primary-content .sfimagesTmbList table tfoot tr td, .sidebar-content .sfContentBlock table tfoot tr th,
.sidebar-content .sfContentBlock table tfoot tr td, .sidebar-content .sfimagesTmbList table tfoot tr th,
.sidebar-content .sfimagesTmbList table tfoot tr td {
  padding: 0.5rem 0.625rem 0.625rem;
  font-size: 0.875rem;
  font-weight: bold;
  color: #222222;
}
.primary-content .sfContentBlock table tr th,
.primary-content .sfContentBlock table tr td, .primary-content .sfimagesTmbList table tr th,
.primary-content .sfimagesTmbList table tr td, .sidebar-content .sfContentBlock table tr th,
.sidebar-content .sfContentBlock table tr td, .sidebar-content .sfimagesTmbList table tr th,
.sidebar-content .sfimagesTmbList table tr td {
  padding: 0.5625rem 0.625rem;
  font-size: 0.875rem;
  color: #222222;
  text-align: left;
}
.primary-content .sfContentBlock table tr.even, .primary-content .sfContentBlock table tr.alt, .primary-content .sfContentBlock table tr:nth-of-type(even), .primary-content .sfimagesTmbList table tr.even, .primary-content .sfimagesTmbList table tr.alt, .primary-content .sfimagesTmbList table tr:nth-of-type(even), .sidebar-content .sfContentBlock table tr.even, .sidebar-content .sfContentBlock table tr.alt, .sidebar-content .sfContentBlock table tr:nth-of-type(even), .sidebar-content .sfimagesTmbList table tr.even, .sidebar-content .sfimagesTmbList table tr.alt, .sidebar-content .sfimagesTmbList table tr:nth-of-type(even) {
  background: #F9F9F9;
}
.primary-content .sfContentBlock table thead tr th,
.primary-content .sfContentBlock table tfoot tr th,
.primary-content .sfContentBlock table tfoot tr td,
.primary-content .sfContentBlock table tbody tr th,
.primary-content .sfContentBlock table tbody tr td,
.primary-content .sfContentBlock table tr td, .primary-content .sfimagesTmbList table thead tr th,
.primary-content .sfimagesTmbList table tfoot tr th,
.primary-content .sfimagesTmbList table tfoot tr td,
.primary-content .sfimagesTmbList table tbody tr th,
.primary-content .sfimagesTmbList table tbody tr td,
.primary-content .sfimagesTmbList table tr td, .sidebar-content .sfContentBlock table thead tr th,
.sidebar-content .sfContentBlock table tfoot tr th,
.sidebar-content .sfContentBlock table tfoot tr td,
.sidebar-content .sfContentBlock table tbody tr th,
.sidebar-content .sfContentBlock table tbody tr td,
.sidebar-content .sfContentBlock table tr td, .sidebar-content .sfimagesTmbList table thead tr th,
.sidebar-content .sfimagesTmbList table tfoot tr th,
.sidebar-content .sfimagesTmbList table tfoot tr td,
.sidebar-content .sfimagesTmbList table tbody tr th,
.sidebar-content .sfimagesTmbList table tbody tr td,
.sidebar-content .sfimagesTmbList table tr td {
  display: table-cell;
  line-height: 1.125rem;
}

.top-alert {
  padding: 7px 0;
}
.top-alert .alert-area img#alert-sign {
  float: left;
  padding-right: 10px;
  padding-top: 8px;
}
.top-alert .alert-area p#alert-text {
  font-size: 14px;
  font-family: "Gotham SSm A", "Gotham SSm B";
  font-weight: bold;
  color: #ffffff;
}
.top-alert .alert-area p#alert-text a {
  color: white;
  text-decoration: underline;
  padding-left: 5px;
}
@media only screen and (max-width: 40em) {
  .top-alert .alert-area p#alert-text a {
    text-decoration: none;
  }
}
.top-alert .top-social-area {
  float: right !important;
}
.top-alert .top-social-area ul#social-media-area {
  float: right;
  list-style: none;
  text-transform: uppercase;
  margin: 0;
  padding: 0;
}
.top-alert .top-social-area ul#social-media-area li {
  line-height: 40px;
  display: inline-block;
  position: relative;
}
.top-alert .top-social-area ul#social-media-area li.icon {
  padding-right: 3px;
}
@media only screen and (max-width: 40em) {
  .top-alert .top-social-area ul#social-media-area li.icon img {
    width: 22px;
  }
}
.top-alert .top-social-area ul#social-media-area li.icon:last-child {
  padding-right: 10px;
}
@media only screen and (min-width:64.063em) {
  .top-alert .top-social-area ul#social-media-area li.icon:last-child {
    padding-right: 0;
  }
}
.top-alert .top-social-area ul#social-media-area li.first {
  padding-left: 5px;
}
@media only screen and (max-width: 40em) {
  .top-alert .top-social-area ul#social-media-area li.first {
    padding-left: 0;
  }
}
@media only screen and (min-width:64.063em) {
  .top-alert .top-social-area ul#social-media-area li.first {
    padding-left: 15px;
  }
}
.top-alert .top-social-area ul#social-media-area li.join {
  padding-right: 5px;
}
@media only screen and (max-width: 40em) {
  .top-alert .top-social-area ul#social-media-area li.join {
    padding-right: 6px;
  }
}
@media only screen and (max-width: 40em) {
  .top-alert .top-social-area ul#social-media-area li.join img {
    width: 22px;
  }
}
.top-alert .top-social-area ul#social-media-area li.join:nth-child(2) {
  padding-right: 15px;
}
.top-alert .top-social-area ul#social-media-area li a {
  color: #ffffff;
  font-weight: bold;
}

.introduction {
  padding-top: 95px;
}
.introduction p#introduction {
  font-size: 1.5rem;
  line-height: 1.6;
  text-align: center;
}
.introduction .cta {
  padding: 10px 0;
}
.introduction .cta .button {
  display: block;
  margin: 5px auto;
}
.introduction .event-information {
  padding: 95px 0;
  text-align: center;
}
.introduction .event-information img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.introduction .event-information p.intro {
  padding-top: 20px;
  font-family: "Gotham SSm A", "Gotham SSm B";
  color: #A6192E;
  font-weight: 700;
  font-size: 1.5rem;
  text-transform: uppercase;
}
.introduction .event-information p.address {
  color: #A6192E;
}

.gardens-features-area {
  padding-top: 15px;
  padding-left: 5px;
  padding-right: 5px;
  margin-bottom: -30px;
}
.gardens-features-area figure.show-features {
  margin: 0;
  position: relative;
}
.gardens-features-area figure.show-features img {
  width: 100%;
  display: block;
}
.gardens-features-area figure.show-features figcaption {
  position: absolute;
}
.gardens-features-area figure.show-features figcaption h3, .gardens-features-area figure.show-features figcaption p, .gardens-features-area figure.show-features figcaption a, .gardens-features-area figure.show-features figcaption p a {
  color: #ffffff;
  text-align: center;
  display: block;
}
.gardens-features-area figure {
  margin: 0;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.gardens-features-area figure img {
  width: 100%;
  display: block;
}
.gardens-features-area figure figcaption {
  position: absolute;
}
.gardens-features-area figure figcaption h3, .gardens-features-area figure figcaption p, .gardens-features-area figure figcaption a, .gardens-features-area figure figcaption p a {
  color: #ffffff;
  text-align: center;
}

/*.col5-unit{
    @include grid-column(2.4);
    padding-left:0;
    padding-right:10px;
    &:nth-child(5){
        padding-right:0;
    }
}*/
.advertisement {
  margin-bottom: -15px;
}

section.three-col-ads {
  padding: 90px 0;
}
@media only screen and (max-width: 40em) {
  section.three-col-ads {
    padding: 65px 0;
  }
}
section.three-col-ads img {
  padding: 0 15px;
}
@media only screen and (max-width: 40em) {
  section.three-col-ads img {
    padding: 0 20px;
  }
}

section.twitter-area {
  padding: 22px 0;
}
section.twitter-area p {
  color: #ffffff;
  line-height: 1.6;
  font-size: 1.1rem;
}
section.twitter-area a.button {
  float: right;
}
section.twitter-area .latest-update img {
  padding-top: 16px;
  padding-right: 10px;
  float: left;
}
section.twitter-area .latest-update h4 {
  color: #A6192E;
  padding-top: 4px;
  margin-bottom: -12px;
}

.subscribe-social-media-area h3 {
  color: #ffffff;
}
.subscribe-social-media-area #social-links {
  padding-top: 8px;
}
.subscribe-social-media-area #social-links img {
  padding-right: 35px;
}

.primary-content img {
  margin: 0 10px 10px;
}
.primary-content .sf_pagerNumeric a {
  margin: 10px 15px 10px 0;
  padding: 10px;
  color: #222222;
}
.primary-content .sf_pagerNumeric a.sf_PagerCurrent {
  margin: 10px 15px 10px 0;
  padding: 10px;
  color: #A6192E;
}

.sidebar-content {
  border-right: none;
  padding-right: 2rem;
  padding-left: 3.5rem;
}
.sidebar-content p {
  line-height: 1rem;
  font-size: 0.85rem;
}
.sidebar-content .sidebar-advertisements div {
  display: block;
  position: relative;
  height: 250px;
  width: 250px;
  margin-bottom: 2rem !important;
}
.sidebar-content .sidebar-advertisements div img {
  position: absolute;
  top: 0;
  left: 0;
  width: 300px;
  height: 250px;
  max-width: 300px;
}

.galleria-container {
  background: #f5f5f5;
}
.galleria-container img {
  margin: 0;
}

.galleria-thumbnails .galleria-image {
  background: #f5f5f5;
  border: none;
}

.mfp-figure figcaption {
  position: initial !important;
}

/* ----- Homepage ----------------------- */
#Slideshow #Slides .slide .sponsor {
  bottom: 1.5rem !important;
}

#Slideshow #Slides .slide .sponsor {
  bottom: 1.5rem !important;
}

#Slideshow #Slides .slide .sponsor .intro {
  color: #fff;
  font-weight: bold;
  margin-bottom: 0.5rem;
  min-height: 25px;
  background-color: rgba(0, 0, 0, 0.3);
  display: inline-block;
  padding: 0 8px;
}

#Slideshow #Slides .slide .sponsor img {
  max-width: revert;
  display: block;
  margin: 0 auto;
}

@media (max-width: 640px) {
  .slide-img {
    position: relative !important;
  }
  #Slideshow #Slides .slide .sponsor {
    bottom: 1rem !important;
  }
  #Slideshow #Slides .slide .sponsor img {
    max-width: 200px !important;
    max-height: 50px;
  }
}
.show-features {
  margin: 1rem auto;
  padding: 90px 0;
}
.show-features .columns {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.show-features .feature {
  /*border: 1px solid scale-color($lightGrey, $lightness: -10%);*/
  /*padding: 1.5rem;*/
  margin: 0;
}
.show-features h4.heading {
  color: #A6192E;
  text-transform: uppercase;
  font-size: 14px;
  font-family: "Lato", sans-serif;
  border-top: 2px solid #1e2a24;
  padding-top: 3px;
  margin-bottom: 0;
}
.show-features h2 {
  margin: 1rem 0;
  line-height: 20px;
}
.show-features h2 a {
  color: #222222;
  font-size: 15px;
  font-family: "Gotham SSm A", "Gotham SSm B";
  text-transform: none;
}
.show-features p {
  color: #1e2a24;
  min-height: 7.5rem;
}
.show-features .button {
  width: 130px;
  margin: 1.5rem auto 0;
  display: block;
}

.k-animation-container .k-list-container {
  background-color: #ffffff;
}
.k-animation-container .k-list-container .k-item {
  border: 0 solid #000;
}
.k-animation-container .k-list-container .k-state-hover {
  background-color: #A6192E;
  color: #ffffff;
}

.sfsearchBox {
  width: 100%;
  border: 0;
  padding: 0;
  margin-top: 0 !important;
}

.sfsearchBox .sfsearchTxt {
  width: 75%;
  margin-right: 10px;
}

.sfsearchBox .sfsearchSubmit {
  background: #A6192E;
  color: #ffffff;
  width: auto;
  height: 30px;
  line-height: 30px;
  text-transform: uppercase;
  color: #ffffff;
  font-family: "Lato", sans-serif;
  font-size: 16px;
  font-weight: 300;
  padding: 0px 1rem;
  margin: 1rem auto 0px;
  border: 0px;
  display: block;
  margin-left: 0px;
}

.three-col-ads {
  margin: 1rem auto;
}

.two-col-ads {
  margin: 1.5rem auto;
}

.sfpostAuthorAndDate {
  margin-bottom: 1rem;
  color: #949494;
}

.from-the-blog {
  padding: 100px 0;
}
.from-the-blog .blog-feature {
  min-height: 430px;
  background-color: #ffffff;
  border: 1px solid #ddd;
}
.from-the-blog img {
  margin: 0 1rem 1rem 0;
}
.from-the-blog h2 {
  text-align: left;
  padding: 5px 25px;
  line-height: 20px;
}
.from-the-blog h2 a {
  color: #222222;
  font-size: 18px;
  font-family: "Gotham SSm A", "Gotham SSm B";
  text-transform: none;
}
.from-the-blog p {
  color: #949494;
  padding: 0 25px;
  clear: both;
  min-height: 120px;
  line-height: 1.6;
}
.from-the-blog .button {
  margin-left: 25px;
  margin-bottom: 25px;
}

.grey-bkgd .from-the-blog .blog-feature {
  border: 0;
}

.twitter-and-exhibitor {
  margin: 2rem auto;
}
.twitter-and-exhibitor .twitter-feed {
  padding-right: 1rem;
}
.twitter-and-exhibitor .ads .columns {
  padding-left: 0;
}

/* ----- Modal ----------------------- */
.modal {
  padding: 0;
}
.modal .primary, .modal .upcoming, .modal .bottom {
  padding: 2rem;
}
.modal .primary {
  background: #A6192E;
  color: #ffffff;
  padding: 2rem 4rem;
}
.modal .primary h1 {
  color: #ffffff;
  font-weight: bold;
}
.modal .upcoming .large-4 {
  border-right: 1px solid #949494;
  padding: 0 2rem;
}
.modal .upcoming .large-4:last-child {
  border: none;
}
.modal .upcoming .large-4 img {
  width: 150px;
  padding-bottom: 20px;
  border-bottom: 2px solid #1e2a24;
  margin: 0 0 10px;
}
.modal .upcoming .large-4 h4 {
  margin: 0;
}
.modal .upcoming .large-4 p {
  margin: 0;
}
.modal .bottom {
  background: #f5f5f5;
  padding: 3rem 1rem;
}
.modal .bottom h2 {
  margin-top: 0;
}
.modal .bottom .large-6 {
  padding: 0 3rem;
  margin-bottom: 0;
}
.modal .bottom .large-6:first-child {
  border-right: 1px solid #949494;
}
.modal .bottom .large-6:first-child p {
  text-transform: none;
  line-height: 1.5;
}
.modal .bottom ul {
  list-style: none;
  margin-left: 0;
}
.modal .bottom ul li {
  position: relative;
  line-height: 1rem;
  margin-bottom: 0.5rem;
  color: #949494;
}
.modal .bottom ul li:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent transparent transparent #A6192E;
  border-left-style: solid;
  top: 3px;
  margin-left: 0;
  position: absolute;
  left: -20px;
}
.modal.reveal-modal .close-reveal-modal, dialog.modal .close-reveal-modal {
  color: #ffffff;
}

.sfPageEditor .modal {
  display: block;
  visibility: visible;
}
.sfPageEditor .modal.hidden {
  display: none;
  visibility: hidden;
}

/* ----- Image Rotator ----------------------- */
.full-width-banner, .full-width {
  width: 100%;
}

#HeroContainer .sfimageWrp {
  content: "";
  background: transparent linear-gradient(to right, rgb(34, 34, 34) 0%, rgba(34, 34, 34, 0) 100%) repeat scroll 0% 0%;
  display: block;
  height: 100%;
  text-align: center;
  overflow: hidden;
}
@media only screen and (max-width: 40em) {
  #HeroContainer .sfimageWrp {
    background: none;
  }
}

#HeroContainer .sfimageWrp img {
  position: relative;
  z-index: -1;
  width: 100%;
}

#HeroContainer div {
  width: 100%;
}

/* ----- Exhibitor Listings ---------------------*/
.listing .city-postal-zip {
  margin: 0.5em 0;
}

.listing h2 {
  margin-bottom: 0px;
}

/* ----- Lists ----------------------- */
.numbered-list {
  list-style: none;
  margin: 0;
}

.number-heading {
  font-family: "Gotham SSm A", "Gotham SSm B";
  color: #949494;
  font-weight: normal;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

.number {
  display: inline-block;
  text-align: center;
  background: #A6192E;
  border: 2px solid #f5f5f5;
  color: #ffffff;
  margin: -3px 5px 0 0;
  height: 30px;
  width: 30px;
  line-height: 28px;
  font-family: "Gotham SSm A", "Gotham SSm B";
  border-radius: 25px;
  font-size: 16px;
  vertical-align: middle;
}

@media only screen {
  .full-width-banner {
    margin-top: 0;
  }
  .from-the-blog {
    padding: 4.5rem 0;
  }
  .from-the-blog .columns {
    margin-bottom: 2rem;
  }
  .twitter-and-exhibitor .image-column {
    padding: 0 0.9375rem;
  }
  .modal .bottom .large-6:first-child {
    border: none;
    margin-bottom: 3rem;
  }
}
@media only screen and (max-width: 40em) {
  h1, h2, h3, h4 {
    clear: both;
  }
  .top-alert .alert-area img#alert-sign {
    margin-left: 10px;
  }
  .top-alert .alert-area p#alert-text .alert-text-area {
    white-space: nowrap;
    width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .top-container .top-bar {
    height: 156px;
  }
  .top-container .top-bar .top-bar-section .logo {
    width: 140px;
  }
  .top-container .top-bar .top-bar-section .logo img {
    height: 105px;
  }
  .top-container .top-bar .top-bar-section .logo .horizontal-logo {
    margin-top: 43px;
    height: auto;
    width: 100px;
  }
  .top-container .top-bar .top-bar-section .event-info {
    width: fit-content;
    left: 135px;
    top: 40px;
    line-height: 20px;
  }
  .top-container .top-bar .top-bar-section .event-info p {
    font-size: 12px;
    color: #404040;
  }
  .top-container .top-bar .top-bar-section .event-info p:first-child {
    font-size: 16px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo {
    width: 140px;
    top: 0px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo img {
    left: 135px;
    top: 40px;
    height: 105px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo .horizontal-logo {
    margin-top: 43px;
    height: auto;
    width: 100px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .event-info {
    left: 135px;
    top: 40px;
  }
  .primary-content, .sidebar-content {
    border-right: none;
    padding: 0px;
  }
  .primary-content img, .sidebar-content img {
    margin: 10px 0;
  }
  .bottom .right {
    margin-top: 1rem;
  }
  .from-the-blog {
    padding: 3rem 0 1rem;
  }
  .from-the-blog h2 {
    font-size: 2.125rem;
  }
  .from-the-blog .blog-feature {
    margin-left: 10px;
  }
  .from-the-blog .blog-feature img {
    width: 100%;
  }
  .from-the-blog .button {
    margin-top: 0;
    margin-bottom: 40px;
  }
  .twitter-feed {
    margin-bottom: 2rem;
  }
  .information-for-exhibitors .inline-list li {
    width: 100%;
    float: left;
    display: block;
    border: none;
  }
  .information-for-exhibitors h2 {
    font-size: 2.125rem;
    text-align: left;
  }
  .bottom .left, .bottom .right {
    width: 100%;
    margin-bottom: 1rem;
  }
  .bottom .subscribe-form {
    width: 100%;
  }
  .bottom .subscribe-form input[type=email],
  .bottom .subscribe-form input[type=submit] {
    width: 100%;
  }
  .ads img {
    display: block;
    margin: 0 auto 1.5rem;
  }
  .blog-feature {
    background-color: #ffffff;
  }
  .blog-feature p {
    min-height: 0;
  }
  .show-features .columns {
    padding: 0 1rem;
  }
  .show-features .feature {
    margin-bottom: 1rem;
  }
  .show-features .button {
    margin-left: 0;
  }
  .show-features p {
    min-height: 0;
  }
  .gardens-features-area {
    padding-left: 15px;
    padding-right: 15px;
  }
  .gardens-features-area .col5-unit.columns {
    padding-left: 0;
    padding-right: 0;
  }
  .gardens-features-area figure.show-features {
    margin-bottom: 15px;
  }
  .gardens-features-area figure.show-features img {
    height: 220px; /* FIX THIS TO BE 180px*/
  }
  .gardens-features-area figure.show-features figcaption {
    background-color: transparent;
    bottom: 15%;
    left: 20%;
    width: 60%;
  }
  .gardens-features-area figure.show-features h3 {
    font-size: 2.75rem;
    line-height: 50px;
  }
  .gardens-features-area figure.show-features p {
    display: none;
  }
  .gardens-features-area figure {
    margin-bottom: 15px;
    display: block;
  }
  .gardens-features-area figure figcaption {
    position: relative;
    background-color: #f5f5f5;
    width: 100%;
    left: 0;
  }
  .gardens-features-area figure figcaption h3, .gardens-features-area figure figcaption h3 a {
    color: #404040;
    text-align: center;
  }
  .introduction {
    padding: 2rem;
  }
  .introduction .event-information {
    padding: 40px 0 0 0;
  }
  .introduction .event-information .event-detail {
    margin-bottom: 50px;
  }
  .buyers-guide .left {
    min-height: 280px;
  }
  .buyers-guide .right:after {
    /*background-color: $dark-grey;*/
  }
  section.subscribe-social-media-area {
    padding: 46px 20px;
  }
  section.subscribe-social-media-area h3 {
    font-size: 2rem;
  }
  section.subscribe-social-media-area h3:first-of-type {
    margin-left: 20px;
  }
  section.subscribe-social-media-area #social-links {
    padding-left: 20px;
  }
  section.subscribe-social-media-area a.button {
    margin-left: 20px;
    margin-bottom: 50px;
  }
  section.twitter-area {
    padding: 20px 20px 40px;
  }
  section.twitter-area .latest-update {
    margin-left: 20px;
  }
  section.twitter-area a.button {
    float: left;
  }
  .sponsors .row {
    padding: 0 10px;
  }
  .modal .primary {
    padding: 2rem;
  }
  .modal .upcoming .event {
    border: none;
    margin-bottom: 2.5rem;
  }
  .modal .bottom .columns {
    border: none;
    padding: 0 1rem;
  }
}
@media only screen and (min-width:40.063em) and (max-width:64em) {
  .top-alert .alert-area img#alert-sign {
    margin-left: 10px;
  }
  .top-container .top-bar {
    height: 156px;
  }
  .top-container .top-bar .top-bar-section .logo {
    width: 140px;
    top: -15px;
  }
  .top-container .top-bar .top-bar-section .logo img {
    height: 80px;
  }
  .top-container .top-bar .top-bar-section .logo .horizontal-logo {
    margin-top: 40px;
    height: auto;
  }
  .top-container .top-bar .top-bar-section .adjust-logo-for-horizontal {
    width: 300px;
  }
  .top-container .top-bar .top-bar-section .event-info {
    left: 160px;
    top: 20px;
  }
  .top-container .top-bar .top-bar-section .adjust-for-horizontal-logo {
    left: 330px;
    top: 40px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo {
    width: 140px;
    top: -15px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo img {
    margin-top: 30px;
    height: 80px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .logo .horizontal-logo {
    margin-top: 40px;
    height: auto;
  }
  .top-container.is-fixed .top-bar .top-bar-section .adjust-logo-for-horizontal {
    width: 300px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .event-info {
    left: 160px;
    top: 20px;
  }
  .top-container.is-fixed .top-bar .top-bar-section .adjust-for-horizontal-logo {
    left: 330px;
    top: 40px;
  }
  .blog-feature p {
    min-height: 0;
  }
  .introduction .event-information {
    padding: 30px 0 0 0;
  }
  .introduction .event-information .event-detail {
    margin-bottom: 50px;
  }
  .gardens-features-area .column, .gardens-features-area .columns {
    padding-left: 0.3rem;
    padding-right: 0.3rem;
    padding-bottom: 0.6rem;
  }
  .gardens-features-area figure figcaption {
    position: absolute;
  }
  .gardens-features-area figure figcaption h3, .gardens-features-area figure figcaption p, .gardens-features-area figure figcaption a, .gardens-features-area figure figcaption p a {
    color: #ffffff;
    text-align: center;
    display: none;
  }
  .gardens-features-area figure:hover img {
    -webkit-filter: grayscale; /*sepia, hue-rotate, invert....*/
    -webkit-filter: brightness(50%);
  }
  .gardens-features-area figure:hover h3, .gardens-features-area figure:hover p, .gardens-features-area figure:hover a, .gardens-features-area figure:hover p a {
    color: #ffffff;
    text-align: center;
    display: block;
  }
  .gardens-features-area figure:hover h3 {
    font-size: 0.85em;
  }
  .gardens-features-area figure.show-features {
    margin-bottom: 15px;
  }
  .gardens-features-area figure.show-features img {
    height: 180px;
  }
  .gardens-features-area figure.show-features figcaption {
    background-color: transparent;
    bottom: 30%;
    left: 18%;
    width: 60%;
  }
  .gardens-features-area figure.show-features h3 {
    font-size: 2.75rem;
    line-height: 50px;
  }
  .gardens-features-area figure.show-features p {
    display: none;
  }
  .from-the-blog .button {
    margin-top: 0;
    margin-bottom: 40px;
  }
  .show-features .columns {
    padding: 0 1rem;
  }
  .show-features .feature {
    margin-bottom: 1rem;
  }
  .show-features .button {
    margin-left: 0;
  }
  .show-features p {
    min-height: 0;
  }
  section.subscribe-social-media-area {
    padding: 45px 20px;
  }
  .primary-content {
    border-right: none;
  }
  .sidebar-content img {
    display: block;
  }
}
@media only screen and (min-width:64.063em) {
  .col5-unit {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 20%;
    float: left;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    margin-bottom: 15px;
  }
  figure.show-features {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  figure.show-features figcaption {
    position: absolute;
    top: 30%;
    width: 45%;
  }
  figure#redbox-inline {
    display: flex !important;
  }
  figure {
    margin: 0;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  figure img {
    width: 100%;
    display: block;
  }
  figure figcaption {
    position: absolute;
  }
  figure figcaption h3, figure figcaption p, figure figcaption a, figure figcaption p a {
    color: #ffffff;
    text-align: center;
    display: none;
  }
  figure:hover img {
    -webkit-filter: grayscale; /*sepia, hue-rotate, invert....*/
    -webkit-filter: brightness(50%);
  }
  figure:hover h3, figure:hover p, figure:hover a, figure:hover p a {
    color: #ffffff;
    text-align: center;
    display: block;
  }
}
@media only screen and (min-width:64.063em) {
  .ads img {
    display: inline-block;
    margin: 0;
  }
  .from-the-blog {
    padding: 4.5rem 0;
  }
  .from-the-blog .columns {
    margin-bottom: 0;
  }
  .twitter-container {
    height: 452px;
    overflow-y: scroll;
  }
  .twitter-and-exhibitor .image-column {
    padding-left: 0;
  }
}
.field-validation-error {
  color: #ff0000;
}

#back-to-top {
  position: fixed;
  /*right: 100px;*/
  bottom: 25px;
  z-index: 9999;
  width: 46px;
  height: 46px;
  background-color: #A6192E;
  opacity: 1;
  display: none;
  border-radius: 50%;
  text-align: center;
  font-size: 21px;
  color: #fff;
  cursor: pointer;
  line-height: 46px;
}

@media only screen and (max-width: 40em) {
  #back-to-top {
    bottom: 75px;
  }
}
.grecaptcha-badge {
  z-index: 1000 !important;
}

.accessibility-alt {
  position: absolute;
  left: -100000px;
}

/* ----- Testimonials ----------------------- */
.jcarousel-wrapper {
  margin: 0 auto;
  position: relative;
}
.jcarousel-wrapper .sf_pagerNumeric {
  display: none;
}

.jcarousel-control-prev {
  position: absolute;
  right: 90%;
  top: 25%;
  z-index: 10;
}

.jcarousel-control-next {
  position: absolute;
  left: 90%;
  top: 25%;
  z-index: 10;
}

.jcarousel {
  position: relative;
  overflow: hidden;
}

.jcarousel ul {
  width: 20000em;
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

.jcarousel li {
  float: left;
}

.testimonials {
  text-align: center;
}

.testimonial {
  margin: 0 36px;
  text-align: center;
}

.alert-bar {
  width: 100%;
  background-color: #A6192E;
  text-align: center;
  padding: 10px 20px;
  line-height: 1.2rem;
}
.alert-bar a {
  width: 100%;
  display: block;
  line-height: 2rem;
  font-size: 18px;
}

.mpe-logo {
  height: 30px;
}

.button {
  display: inline-block;
  background-color: #A6192E;
  color: #fff;
  text-transform: uppercase;
  padding: 0.5rem 2rem;
  border: 0px;
  text-align: center;
  transition: all 500ms ease;
  -moz-transition: all 500ms ease;
  -webkit-transition: all 500ms ease;
  -ms-transition: all 500ms ease;
  -o-transition: all 500ms ease;
}

@media only screen and (max-width: 40em) {
  .sponsors .row {
    display: flex;
    flex-wrap: wrap;
  }
  .sponsors .row div.sponsor {
    width: 27%;
    margin: 3%;
    text-align: center;
  }
  footer section {
    padding: 1rem 0;
  }
  .sponsors {
    padding: 1rem 0;
  }
}
@media only screen and (min-width:40.063em) {
  .sponsors .row {
    display: flex;
    flex-wrap: wrap;
  }
  .sponsors .row h2 {
    width: 100%;
  }
  .sponsors .row div.sponsor {
    width: 10%;
    margin: 2%;
  }
}
.show-feature {
  width: 100%;
  display: block;
  text-decoration: none;
  margin-bottom: 1rem;
  cursor: pointer;
  background-color: #fff;
  border: 1px solid #f5f5f5;
}
.show-feature img {
  margin: 0;
}
.show-feature h2 {
  margin-top: 0;
}
.show-feature .sponsored-by-label {
  text-transform: uppercase;
  text-align: left;
}
.show-feature .sponsor-logos {
  text-align: left;
}
.show-feature .sponsor-logos img {
  margin: 1rem;
  width: auto;
}
.show-feature .copy {
  margin: 1rem;
  text-align: left;
}
.show-feature .button {
  margin-bottom: 0;
}
.show-feature .learn-more {
  text-align: center;
  width: 100%;
  display: block;
}
.show-feature .learn-more .learn-more-button {
  display: inline-block;
  width: auto;
  height: 40px;
  line-height: 40px;
  text-transform: uppercase;
  color: #fff;
  font-family: "Lato", sans-serif;
  font-size: 16px;
  font-weight: 300;
  padding: 0 1rem;
  margin: 1rem auto 0;
  background: #A6192E;
}
@media screen and (max-width: 720px) {
  .show-feature .learn-more {
    text-align: center;
  }
}

.show-feature-content {
  display: none;
}

.add-padding {
  padding: 90px 0;
}

button, .button {
  background-color: #A6192E;
}

.sf-search-result-container p {
  display: none;
}

.pagination {
  margin-left: 0;
  margin-top: 20px;
}
.pagination .page-link {
  background-color: #A6192E;
  color: #fff;
  padding: 10px 15px !important;
  margin: 10px 10px 0 0 !important;
}
.pagination .page-link:hover {
  font-weight: 700;
  color: #fff;
  background-color: #741220;
}
.pagination .active .page-link {
  font-weight: 700;
  background-color: #741220;
}

.button:hover {
  background-color: #741220;
}

.faq {
  margin-bottom: 1rem;
}
.faq .question {
  display: block;
  background-color: #eee;
  padding: 0.5rem 1rem;
  border: 1px solid #ccc;
  border-left: 0;
  border-right: 0;
  color: #000;
}
.faq .question svg {
  float: right;
  width: 20px;
  height: 20px;
  margin-top: 2px;
}
.faq .question:hover {
  cursor: pointer;
}
.faq .answer {
  display: none;
  padding: 1rem;
}

.primary {
  color: #A6192E;
}

.blog-list img {
  width: 100%;
}

.promotion img {
  margin: 0;
}

.fotorama .fotorama__nav-wrap {
  margin-top: 1rem;
}

.fotorama__thumb {
  background-color: #fff !important;
  margin: 0 -8px;
}

.d-none {
  display: none;
}

.grey-bkgd hr {
  background: #ddd;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* Creates 3 equal-width columns */
  width: 100%; /* Ensures the grid spans the full width of its parent */
  gap: 10px; /* Optional: Adds spacing between columns */
}

@media screen and (max-width: 720px) {
  .grid-3 {
    grid-template-columns: repeat(1, 1fr); /* Creates 3 equal-width columns */
  }
}
.highlight {
  padding: 5rem 2rem;
  display: block;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.highlight h2 {
  color: #fff;
}
.highlight p {
  color: #fff;
}
.highlight .highlight-content {
  position: relative;
  z-index: 1;
  text-shadow: 0px 0px 5px #000;
}
.highlight .overlay {
  z-index: 0;
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 500px;
  opacity: 0.4;
}

.highlight:hover .overlay {
  opacity: 0.6;
}

.show-save-the-date {
  color: #fff;
  text-align: center;
  padding: 1rem;
  margin: 10px 0;
}
.show-save-the-date h2 {
  font-size: 1rem;
  margin: 0;
  padding: 0;
  margin-top: 0;
}
.show-save-the-date p {
  margin: 2px;
  font-size: 12px;
}
.show-save-the-date h2, .show-save-the-date p, .show-save-the-date .fa {
  color: #fff;
}
.show-save-the-date .std-content {
  text-align: left;
}
.show-save-the-date .fa {
  font-size: 25px;
  margin: 1rem;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL1NoYXJlZC9fbm9ybWFsaXplLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL19nbG9iYWwuc2NzcyIsIi4uL1NoYXJlZC9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3NpZGUtbmF2LnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL19ncmlkLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL190eXBlLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL19vZmZjYW52YXMuc2NzcyIsIi4uL1NoYXJlZC9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwiLi4vU2hhcmVkL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsIi4uL1NoYXJlZC9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2lubGluZS1saXN0cy5zY3NzIiwiLi4vU2hhcmVkL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZHJvcGRvd24uc2NzcyIsIi4uL1NoYXJlZC9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3Rvb2x0aXBzLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL19wcm9ncmVzcy1iYXJzLnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi9TaGFyZWQvZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uL1NoYXJlZC9fZm91bmRhdGlvbi5zY3NzIiwiLi4vU2hhcmVkL19taXhpbnMuc2NzcyIsIi4uL1NoYXJlZC9fdmFyaWFibGVzLnNjc3MiLCIuLi9TaGFyZWQvX2dsb2JhbC5zY3NzIiwiLi4vU2hhcmVkL3ZlbmRvci9fc2l0ZWZpbml0eS5zY3NzIiwiLi4vU2hhcmVkL3RlbXBsYXRlL19oZWFkZXIuc2NzcyIsImdsb2JhbC5zY3NzIiwiLi4vU2hhcmVkL3RlbXBsYXRlL19tb2JpbGUtbWVudS5zY3NzIiwiLi4vU2hhcmVkL3RlbXBsYXRlL19idXllcnMtZ3VpZGUuc2NzcyIsIi4uL1NoYXJlZC9jb21wb25lbnRzL19iYWRnZXMuc2NzcyIsIi4uL1NoYXJlZC9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCIuLi9TaGFyZWQvX3VuaXZlcnNhbC5zY3NzIiwiLi4vU2hhcmVkL2NvbXBvbmVudHMvX3NsaWRlcy5zY3NzIiwiLi4vU2hhcmVkL2NvbXBvbmVudHMvX21vYmlsZS1udWRnZS5zY3NzIiwiLi4vU2hhcmVkL2NvbXBvbmVudHMvX3Nwb25zb3JlZC1jb250ZW50LnNjc3MiLCIuLi9TaGFyZWQvY29tcG9uZW50cy9fdGlja2V0LXNwb25zb3Iuc2NzcyIsIi4uL1NoYXJlZC9jb21wb25lbnRzL19saXN0aW5ncy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFZRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQzdFQTtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBTUE7RUFBYTs7O0FBR2I7QUFBQTtBQUFBO0VBaFRGLG9CQW1Ud0I7RUFsVHRCLGlCQWtUc0I7RUFqVGpCLFlBaVRpQjs7O0FBR3RCO0FBQUE7RUFDTyxXQXJYTTs7O0FBd1hiO0VBQ0UsWUF4SUk7RUF5SUosT0F4SVk7RUF5SVo7RUFDQTtFQUNBLGFBckptQjtFQXNKbkIsYUFqSmU7RUFrSmYsWUExSVk7RUEySVosYUE3WGE7RUE4WGI7RUFDQSxRQXpFYzs7O0FBNEVsQjtFQUFVLFFBekVXOzs7QUE0RW5CO0VBQU07RUFBaUI7OztBQUV2QjtFQUFNOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFUzs7O0FBS1g7RUFBVTs7O0FBQ1Y7RUFBVTs7O0FBOVBaO0VBQW9CO0VBQWM7O0FBQ2xDO0VBQVU7OztBQStQUjtFQUFnQjs7O0FBTWhCO0VBQWU7RUFBcUM7OztBQUdwRDtFQUNFO0VBQ0E7OztBQVFGO0VBQVc7RUFBYzs7O0FBR3pCO0VBQVM7OztBQ2hWVDtFQW5ERjtFQUNBO0VBQ0EsU0FuRGlCO0VBb0RqQixpQkFqRG1CO0VBa0RuQixxQkFqRHVCO0VBa0R2QixhRHdMdUI7O0FDdEx2QjtFQUNFLFFBcERtQjtFQXFEbkIsV0E1Q2lCO0VBNkNqQixhRHdMaUI7O0FDdExqQjtFQUNFO0VBQ0EsT0RtSlU7RUNsSlYsUUFwRGlCO0VBcURqQixTQXBEa0I7O0FBcURsQjtFQUVFLFlBekRpQjtFQTBEakIsT0EzRG9COztBQStEeEI7RUFDRSxPQWpFdUI7RUFrRXZCLGFEd0tlO0VDdktmLGFEa0ttQjs7QUMvSnJCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkF2RG1COztBQTBEckI7RUFDRSxPRDBIVTtFQ3hIUixXQTVFYTtFQTZFYixhQXBFdUI7RUFzRXpCLGdCQXJFNEI7OztBQ29MOUI7RUFuSkE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdBL0RROztBRitKVjtFQUFvQjtFQUFjOztBQUNsQztFQUFVOztBRWlESDtBQUFBO0VBOUdMO0VBQ0E7O0FBZ0hJO0VBQU07RUFBZTs7QUFHdkI7RUFyTEY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRndIRjtFQUFvQjtFQUFjOztBQUNsQztFQUFVOztBRXdESjtFQXJLSjtFQUNBO0VBQ0E7O0FGMEdGO0VBQW9CO0VBQWM7O0FBQ2xDO0VBQVU7OztBRTREUjtBQUFBO0VBbEhBO0VBQ0E7RUFLQTtFQVd1QyxPRjJJekI7OztBRXZDZDtFQUFtRDs7O0FBQ25EO0VBQTRDLE9Gc0M5Qjs7O0FFcENkO0VBaEZBO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUFrQ3RFO0FBQUE7SUE1REU7SUFZQTtJQUNBO0lBZ0J1QyxPRjJJekI7O0VFdkdkO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBcURBO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBK0JkO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQSxPRjBGYzs7RUV2RmhCO0FBQUE7SUE3Q0U7SUFDQTtJQUNBOztFQThDRjtBQUFBO0lBRUU7SUFDQTtJQUNBLE9GZ0ZjOztFRTVFaEI7QUFBQTtJQUVFOztFQUlGO0FBQUE7SUFFRSxPRm9FYzs7RUVqRWhCO0FBQUE7SUFFRSxPRmdFbUI7OztBRWpDbkI7RUFwRkE7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQWtDdEU7QUFBQTtJQTVERTtJQVlBO0lBQ0E7SUFnQnVDLE9GMkl6Qjs7RUV2R2Q7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUFxREE7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUErQmQ7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBLE9GMEZjOztFRXZGaEI7QUFBQTtJQTdDRTtJQUNBO0lBQ0E7O0VBOENGO0FBQUE7SUFFRTtJQUNBO0lBQ0EsT0ZnRmM7O0VFNUVoQjtBQUFBO0lBRUU7O0VBSUY7QUFBQTtJQUVFLE9Gb0VjOztFRWpFaEI7QUFBQTtJQUVFLE9GZ0VtQjs7RUU3QmY7SUE1SUo7SUF5QlU7SUFBcUQ7O0VBc0gzRDtJQS9JSjtJQTBCVTtJQUEwRDs7RUFrSGhFO0lBNUlKO0lBeUJVO0lBQXFEOztFQXNIM0Q7SUEvSUo7SUEwQlU7SUFBMEQ7O0VBa0hoRTtJQTVJSjtJQXlCVTtJQUFxRDs7RUFzSDNEO0lBL0lKO0lBMEJVO0lBQTBEOztFQWtIaEU7SUE1SUo7SUF5QlU7SUFBcUQ7O0VBc0gzRDtJQS9JSjtJQTBCVTtJQUEwRDs7RUFrSGhFO0lBNUlKO0lBeUJVO0lBQXFEOztFQXNIM0Q7SUEvSUo7SUEwQlU7SUFBMEQ7O0VBa0hoRTtJQTVJSjtJQXlCVTtJQUFxRDs7RUFzSDNEO0lBL0lKO0lBMEJVO0lBQTBEOztFQWtIaEU7SUE1SUo7SUF5QlU7SUFBcUQ7O0VBc0gzRDtJQS9JSjtJQTBCVTtJQUEwRDs7RUFrSGhFO0lBNUlKO0lBeUJVO0lBQXFEOztFQXNIM0Q7SUEvSUo7SUEwQlU7SUFBMEQ7O0VBa0hoRTtJQTVJSjtJQXlCVTtJQUFxRDs7RUFzSDNEO0lBL0lKO0lBMEJVO0lBQTBEOztFQWtIaEU7SUE1SUo7SUF5QlU7SUFBcUQ7O0VBc0gzRDtJQS9JSjtJQTBCVTtJQUEwRDs7RUFrSGhFO0lBNUlKO0lBeUJVO0lBQXFEOztFQXNIM0Q7SUEvSUo7SUEwQlU7SUFBMEQ7O0VBa0hoRTtJQTVJSjtJQXlCVTtJQUFxRDs7RUFzSDNEO0lBL0lKO0lBMEJVO0lBQTBEOzs7QUEwSHBFO0VBaEdBO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUEwQnBFO0lBcERBO0lBeUJVO0lBQXFEOztFQThCL0Q7SUF2REE7SUEwQlU7SUFBMEQ7O0VBMEJwRTtJQXBEQTtJQXlCVTtJQUFxRDs7RUE4Qi9EO0lBdkRBO0lBMEJVO0lBQTBEOztFQTBCcEU7SUFwREE7SUF5QlU7SUFBcUQ7O0VBOEIvRDtJQXZEQTtJQTBCVTtJQUEwRDs7RUFrQ3RFO0FBQUE7SUE1REU7SUFZQTtJQUNBO0lBZ0J1QyxPRjJJekI7O0VFdkdkO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBK0NBO0lBL0NBOztFQStDQTtJQS9DQTs7RUErQ0E7SUEvQ0E7O0VBcURBO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBNkJaO0lBN0JZOztFQTZCWjtJQTdCWTs7RUE2Qlo7SUE3Qlk7O0VBK0JkO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQSxPRjBGYzs7RUV2RmhCO0FBQUE7SUE3Q0U7SUFDQTtJQUNBOztFQThDRjtBQUFBO0lBRUU7SUFDQTtJQUNBLE9GZ0ZjOztFRTVFaEI7QUFBQTtJQUVFOztFQUlGO0FBQUE7SUFFRSxPRm9FYzs7RUVqRWhCO0FBQUE7SUFFRSxPRmdFbUI7O0VFbEJmO0lBdkpKO0lBeUJVO0lBQXFEOztFQWlJM0Q7SUExSko7SUEwQlU7SUFBMEQ7O0VBNkhoRTtJQXZKSjtJQXlCVTtJQUFxRDs7RUFpSTNEO0lBMUpKO0lBMEJVO0lBQTBEOztFQTZIaEU7SUF2Sko7SUF5QlU7SUFBcUQ7O0VBaUkzRDtJQTFKSjtJQTBCVTtJQUEwRDs7RUE2SGhFO0lBdkpKO0lBeUJVO0lBQXFEOztFQWlJM0Q7SUExSko7SUEwQlU7SUFBMEQ7O0VBNkhoRTtJQXZKSjtJQXlCVTtJQUFxRDs7RUFpSTNEO0lBMUpKO0lBMEJVO0lBQTBEOztFQTZIaEU7SUF2Sko7SUF5QlU7SUFBcUQ7O0VBaUkzRDtJQTFKSjtJQTBCVTtJQUEwRDs7RUE2SGhFO0lBdkpKO0lBeUJVO0lBQXFEOztFQWlJM0Q7SUExSko7SUEwQlU7SUFBMEQ7O0VBNkhoRTtJQXZKSjtJQXlCVTtJQUFxRDs7RUFpSTNEO0lBMUpKO0lBMEJVO0lBQTBEOztFQTZIaEU7SUF2Sko7SUF5QlU7SUFBcUQ7O0VBaUkzRDtJQTFKSjtJQTBCVTtJQUEwRDs7RUE2SGhFO0lBdkpKO0lBeUJVO0lBQXFEOztFQWlJM0Q7SUExSko7SUEwQlU7SUFBMEQ7O0VBNkhoRTtJQXZKSjtJQXlCVTtJQUFxRDs7RUFpSTNEO0lBMUpKO0lBMEJVO0lBQTBEOztFQTZIaEU7SUF2Sko7SUF5QlU7SUFBcUQ7O0VBaUkzRDtJQTFKSjtJQTBCVTtJQUEwRDs7O0FDb0ZwRTtFQWpKQSxjQWxDa0I7RUFtQ2xCLGNBcENrQjtFQXFDbEIsUUhzUW1CO0VHclFuQixhSGlMcUI7RUdoTHJCLGFIcUxpQjtFR3BMakI7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQWxEZ0I7RUFtRGhCO0VBQ0E7RUFFYSxTQWxFQTtFQWlGYixhQXJGUztFQXNGVDtFQUNBO0VBQ0E7RUFHbUMsV0E5RXJCO0VBbUlkLGtCSGlFWTtFR2hFWixjQVJpQjtFQWFqQjtFSDFGRjs7QUdzRkU7RUFDVSxrQkFkRzs7QUFtQmI7RUFFRTs7QUF1REE7RUFqRUYsa0JIa0VjO0VHakVkLGNBdEh3QjtFQTJIeEI7O0FBSkE7RUFDVSxrQkF4SGM7O0FBNkh4QjtFQUVFOztBQXdEQTtFQWxFRixrQkhvRVk7RUduRVosY0FwSHNCO0VBeUh0Qjs7QUFKQTtFQUNVLGtCQXRIWTs7QUEySHRCO0VBRUU7O0FBeURBO0VBbkVGLGtCSG1FVTtFR2xFVixjQWxIb0I7RUF1SHBCOztBQUpBO0VBQ1Usa0JBcEhVOztBQXlIcEI7RUFFRTs7QUEwREE7RUFwRUYsa0JIcUVZO0VHcEVaLGNBaEhzQjtFQXFIdEI7O0FBSkE7RUFDVSxrQkFsSFk7O0FBdUh0QjtFQUVFOztBQTJEQTtFQXJFRixrQkhzRVM7RUdyRVQsY0E5R21CO0VBbUhuQjs7QUFKQTtFQUNVLGtCQWhIUzs7QUFxSG5CO0VBRUU7O0FBNkRBO0VBbElGLGFBcEZTO0VBcUZUO0VBQ0E7RUFDQTtFQU1tQyxXQWhGckI7O0FBME1aO0VBbklGLGFBdEZTO0VBdUZUO0VBQ0E7RUFDQTtFQUttQyxXQWpGckI7O0FBNk1aO0VBcElGLGFBdkZTO0VBd0ZUO0VBQ0E7RUFDQTtFQUltQyxXQWpGckI7O0FBK01aO0VBL0dGO0VBQ0E7RUFDQTs7QUErR0U7RUFBZ0I7RUFBa0I7O0FBQ2xDO0VBQWdCO0VBQW1COztBQUVuQztFSDNNRixlQXdQWTs7QUc1Q1Y7RUg1TUYsZUF5UGE7O0FHM0NYO0VBbEZGLGtCSGlFWTtFR2hFWixjQXhIYztFQTZIZDtFQVVBLFFIZ0ttQjtFRy9KbkIsU0F0SHNCO0VBdUh0Qjs7QUFoQkE7RUFDVSxrQkExSEk7O0FBK0hkO0VBRUU7O0FBU0Y7RUFDVSxrQkg2Q0U7O0FHa0JSO0VBbkZKLGtCSGtFYztFR2pFZCxjQXRId0I7RUEySHhCO0VBVUEsUUhnS21CO0VHL0puQixTQXRIc0I7RUF1SHRCOztBQWhCQTtFQUNVLGtCQXhIYzs7QUE2SHhCO0VBRUU7O0FBU0Y7RUFDVSxrQkg4Q0k7O0FHa0JWO0VBcEZKLGtCSG9FWTtFR25FWixjQXBIc0I7RUF5SHRCO0VBVUEsUUhnS21CO0VHL0puQixTQXRIc0I7RUF1SHRCOztBQWhCQTtFQUNVLGtCQXRIWTs7QUEySHRCO0VBRUU7O0FBU0Y7RUFDVSxrQkhnREU7O0FHaUJSO0VBckZKLGtCSG1FVTtFR2xFVixjQWxIb0I7RUF1SHBCO0VBVUEsUUhnS21CO0VHL0puQixTQXRIc0I7RUF1SHRCOztBQWhCQTtFQUNVLGtCQXBIVTs7QUF5SHBCO0VBRUU7O0FBU0Y7RUFDVSxrQkgrQ0E7O0FHbUJOO0VBdEZKLGtCSHFFWTtFR3BFWixjQWhIc0I7RUFxSHRCO0VBVUEsUUhnS21CO0VHL0puQixTQXRIc0I7RUF1SHRCOztBQWhCQTtFQUNVLGtCQWxIWTs7QUF1SHRCO0VBRUU7O0FBU0Y7RUFDVSxrQkhpREU7O0FHa0JSO0VBdkZKLGtCSHNFUztFR3JFVCxjQTlHbUI7RUFtSG5CO0VBVUEsUUhnS21CO0VHL0puQixTQXRIc0I7RUF1SHRCOztBQWhCQTtFQUNVLGtCQWhIUzs7QUFxSG5CO0VBRUU7O0FBU0Y7RUFDVSxrQkhrREQ7OztBR3NCVDtFQUEwQjtFQUFVOzs7QUFFcEM7RUFDRTtJQXpLVyxTQTBLbUM7OztBQ3RKaEQ7RUFDRTtFQUNBLE9BakNjOzs7QUFvQ2hCO0FBQ0E7RUFDRTtFQUNBLFlKc0lXOztBSXBJWDtFQUFXLGVBL0ZNOzs7QUFtR25CO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQSxZQXpITTs7O0FBOEhaO0VBQ0U7RUFDQSxRQWhJVTtFQWlJVixhQWpJVTtFQWtJVjtFQUNBLFlKaUdXO0VJaEdYLGVBbklpQjs7QUFzSWpCO0VBQ0U7RUFDQTs7QUFHRjtFQUFPOztBQUVQO0FBQUE7RUFDUTs7QUFFUjtFQUFRO0VBQWdCO0VBQXFCO0VBQXdCLFdBL0dqRDs7QUFpSHBCO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsV0FySGtCOztBQTBIbEI7RUFURjtJQVVJO0lBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7QUFHRjtFQUNFLFFBektRO0VBMEtSO0VBQ0EsV0N4TEc7O0FEMExIO0VBQ0UsYUE5S007RUErS04sV0ExS2U7RUEyS2Y7O0FBQ0E7RUFDRSxhSjREUztFSTNEVCxPSmlDSztFSWhDTDtFQUNBO0VBQ0E7O0FBTU47RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRSxPSmtCTztFSWpCUCxnQkF2Sm1CO0VBd0puQixXQXZKbUI7RUF3Sm5CLGFKMENTO0VJekNUO0VBQ0E7RUFDQTtFQUNBLFFBek1NO0VBME1OLGFBMU1NOztBQThNUjtFQUNFO0VBQ0E7O0FBRUE7RUFJRTtFQUNBO0VBQ0E7RUFDQSxPSkxLO0VJTUw7O0FKNUdWO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFrQkU7RUFDQTtFQUNBLE9JdkdnQjtFSjBHbEIsWUFDRTtFQUdGLE9JMkY2Qjs7QUp6Ri9CO0VBQ0UsWUFDRTs7QUk4RkE7RUFDRTtFQUNBOztBQUVBO0VBQWMsWUpmTDs7QUlrQlA7RUFBSSxPSnZCRzs7QUl3Qkw7RUFFRTs7O0FBVVY7RUFDRTtFQUNBO0VBQ0E7RUo5TUo7O0FJaU5JO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQSxXQzNSRztFRDRSSDs7QUFHRjtBQUFBO0VBRUUsWUF4Tm9CO0VBeU5wQjtFQUNBO0VBQ0E7O0FBR0Y7RUFDRSxZSnZEUzs7QUl3RFQ7RUFDRTtFQUNBO0VBQ0EsT0ozRU87RUk0RVA7RUFDQSxjQWxRWTtFQW1RWixhSnpEZTtFSTBEZixXQTdRYztFQThRZCxhSnREVztFSXVEWCxnQkF2UW1COztBQTBRbkI7RUFDRSxXQW5SWTtFQW9SWixlQTNRVTtFQTRRVixjQTVRVTtFRDZHbEIsa0JIaUVZO0VHaEVaLGNBUmlCO0VBYWpCOztBQUpBO0VBQ1Usa0JBZEc7O0FBbUJiO0VBRUU7O0FDd0pJO0VEbEtOLGtCSGtFYztFR2pFZCxjQVJpQjtFQWFqQjs7QUFKQTtFQUNVLGtCQWRHOztBQW1CYjtFQUVFOztBQ3lKSTtFRG5LTixrQkhvRVk7RUduRVosY0FSaUI7RUFhakI7O0FBSkE7RUFDVSxrQkFkRzs7QUFtQmI7RUFFRTs7QUMwSkk7RURwS04sa0JIbUVVO0VHbEVWLGNBUmlCO0VBYWpCOztBQUpBO0VBQ1Usa0JBZEc7O0FBbUJiO0VBRUU7O0FDNkpFO0VBQ0UsV0E5UmM7RUErUmQsZUF0Ulk7RUF1UlosY0F2Ulk7RUQ2R2xCLGtCSGlFWTtFR2hFWixjQVJpQjtFQWFqQjs7QUFKQTtFQUNVLGtCQWRHOztBQW1CYjtFQUVFOztBQ21LSTtFRDdLTixrQkhrRWM7RUdqRWQsY0FSaUI7RUFhakI7O0FBSkE7RUFDVSxrQkFkRzs7QUFtQmI7RUFFRTs7QUNvS0k7RUQ5S04sa0JIb0VZO0VHbkVaLGNBUmlCO0VBYWpCOztBQUpBO0VBQ1Usa0JBZEc7O0FBbUJiO0VBRUU7O0FDcUtJO0VEL0tOLGtCSG1FVTtFR2xFVixjQVJpQjtFQWFqQjs7QUFKQTtFQUNVLGtCQWRHOztBQW1CYjtFQUVFOztBQ3lLRTtFQUNFLGtCSjlGTztFSWdHTCxZQXpTVztFQTJTYixPSmhITzs7QUlxSFQ7RUFDRSxZSjdITTtFSThITixPSnZITzs7QUl3SFA7RUFDTSxZQWpUYztFQWtUZCxPSjFIQzs7QUlnSVg7RUFBWSxTQXJUSTs7QUF3VGhCO0VBQ0U7O0FBR0U7RUpoUlI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVVFO0VBQ0E7RUlxUVEsY0FoVVU7RUFpVVY7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFBVTs7QUFDUjtFQTlSUjtFSjJIQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VJN0hBO0VBOFJVOztBQUVGO0VBQ0U7O0FBTU47RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBblROO0VKcUhBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FJNkxNO0VBQ0U7RUFDQTs7QUFFQTtFQUNFLGFKbEpTO0VJbUpUOztBQUNBO0VBQ0UsYUpySk87O0FJeUpYO0VBRUU7RUFDQTtFQUNBLFdBM1dZOztBQTRXWjtFQUNFLE9KekxHO0VJMkxIOztBQUNBO0VBQVU7O0FBR2Q7RUFBYTs7QUFDYjtFQUFrQjs7QUFHcEI7RUFDRTtFQUNBO0VBQ0EsZ0JBcFg2QjtFQXFYN0IsT0ozTE87RUk0TFAsYUo3S1M7RUk4S1QsV0FyWHdCOzs7QUEwWDlCO0VBQWdCOzs7QUFJaEI7RUFDRTtJQUNFLFlKcE1TO0lJc01UOztFSmpSTjtJQUFvQjtJQUFjOztFQUNsQztJQUFVOztFSWtSSjtJQUFpQjs7RUFFakI7SUFBYyxPSjlLSjs7RUkrS1Y7SUFBYTs7RUFFYjtBQUFBO0FBQUE7SUFHRTtJQUNBO0lBQ0EsS0FuWlU7O0VBc1paO0lBQWEsWUpyTko7O0VJd05YO0lBQ0UsV0ZuY0k7SUVvY0o7SUFDQSxlQTliZTs7RUFpY2pCO0lKMVlKO0lJNFlNOztFQUVBO0lBQ0U7SUFDQTtJQUNBOztFQUVBO0lBQ0UsT0o1TU07O0VJNk1OO0lBQWdCOztFQU1oQjtJQUNFLGtCSmxQRztJSW9QRCxZQTdiTztJQStiVCxPSnBRRzs7RUl3UUw7SUFDRTtJQUNBLGFBOWRFO0lBK2RGLFlKM1BHOztFSTRQSDtJQUNFLGtCSi9QQztJSWlRQyxZQTFjSzs7RUFnZFg7SUFDRTtJQUNBLGFBM2VFO0lBNGVGLE9KeFJHO0lJeVJILFlKaFNFOztFSWlTRjtJQUNFLFlBbmRjO0lBb2RkLE9KNVJDOztFSXNTTDtJQUNFOztFQUNBO0lKamJaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFRTtJQUNBO0lJNGFZO0lBQ0E7O0VBTU47SUFBVTs7RUFDUjtJQWpjVjtJSnFIQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFSThVVTtJQWxjVjtJSjJIQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lJN0hBOztFQW9jUTtJQXRjUjtJSjJIQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lJN0hBOztFQTBjWTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFPUjtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUdFO0lBQ0UsT0p2Vkc7SUl3VkgsYUE1aUJFO0lBNmlCRjtJQUNBO0lBQ0EsWUozVUc7O0VJK1VIO0lBQ0UsT0poV0M7SUlpV0QsWUpqVkM7O0VJb1ZIO0lBQ0UsT0pyV0M7SUlzV0Qsa0JKeFZDO0lJMFZDLFlBbmlCSzs7RUF3aUJYO0lBQ0U7SUFDQSxZSi9WRzs7RUltV0w7SUFDRTtJQUNBOztFQUtOO0lBRUU7SUFDQTtJQUNBLGNBdmhCcUI7SUF3aEJyQjtJQUNBLFFBcGxCTTtJQXFsQk47O0VBR0Y7SUFDRSxZSnJYTztJSXNYUDtJQUNBLFFBM2xCTTs7RUFnbUJOO0lBQ0U7SUFDQTs7RUFFQTtJQUFlOztFQUlqQjtJQUNFO0lBQ0E7O0VBRUE7SUFBZTs7RUFVakI7SUFDRSxrQkpyWks7SUl1WkgsWUFobUJTO0lBa21CWCxPSnZhSzs7RUkyYVA7SUFDRSxZSm5iSTtJSW9iSixPSjdhSzs7RUltYkw7SUE3akJWO0lKMkhBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUk3SEE7O0VBK2pCUTtJQWprQlI7SUoySEE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJSTdIQTs7O0FFNERBO0VBQWdCOzs7QUFDaEI7RUFBZ0I7OztBQUNoQjtFQUFnQjs7O0FBQ2hCO0VBQWdCOzs7QUFHZDtFQUNFO0lBQThDOztFQUM5QztJQUFpRDs7RUFDakQ7SUFBaUQ7O0VBQ2pEO0lBQWlEOzs7QUFKbkQ7RUFDRTtJQUE4Qzs7RUFDOUM7SUFBaUQ7O0VBQ2pEO0lBQWlEOztFQUNqRDtJQUFpRDs7O0FBSm5EO0VBQ0U7SUFBOEM7O0VBQzlDO0lBQWlEOztFQUNqRDtJQUFpRDs7RUFDakQ7SUFBaUQ7OztBQUpuRDtFQUNFO0lBQThDOztFQUM5QztJQUFpRDs7RUFDakQ7SUFBaUQ7O0VBQ2pEO0lBQWlEOzs7QUFKbkQ7RUFDRTtJQUE4Qzs7RUFDOUM7SUFBaUQ7O0VBQ2pEO0lBQWlEOztFQUNqRDtJQUFpRDs7O0FBSm5EO0VBQ0U7SUFBOEM7O0VBQzlDO0lBQWlEOztFQUNqRDtJQUFpRDs7RUFDakQ7SUFBaUQ7OztBQUpuRDtFQUNFO0lBQThDOztFQUM5QztJQUFpRDs7RUFDakQ7SUFBaUQ7O0VBQ2pEO0lBQWlEOzs7QUFKbkQ7RUFDRTtJQUE4Qzs7RUFDOUM7SUFBaUQ7O0VBQ2pEO0lBQWlEOztFQUNqRDtJQUFpRDs7O0FBSm5EO0VBQ0U7SUFBOEM7O0VBQzlDO0lBQWlEOztFQUNqRDtJQUFpRDs7RUFDakQ7SUFBaUQ7OztBQUpuRDtFQUNFO0lBQThDOztFQUM5QztJQUFpRDs7RUFDakQ7SUFBaUQ7O0VBQ2pEO0lBQWlEOzs7QUEyQm5EO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFtQkU7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFLE9OTVU7RU1MVixpQkF2Sm1CO0VBd0puQjs7QUFFQTtFQUVFLE9BekprQjs7QUErSnBCO0VBQU07OztBQUdSO0FBQ0E7RUFDRSxhQTVMa0I7RUE2TGxCLGFOcUJlO0VNcEJmLFdBNUxnQjtFQTZMaEIsYUE1TGtCO0VBNkxsQixlQTVMb0I7RUE2THBCLGdCQXpMcUI7O0FBMkxyQjtFQWxFSjtFQUNBOztBQW1FSTtFQUNFLFdBak1vQjtFQWtNcEIsYUFqTXNCO0VBa010QixZQWpNcUI7OztBQXFNekI7QUFDQTtFQUNFLGFORG1CO0VNRW5CLGFOR2U7RU1GZixZTkVlO0VNRGYsT05SVztFTVNYLGdCQWhQa0I7RUFpUGxCLFlBblBjO0VBb1BkLGVBblBpQjtFQW9QakIsYUF0UGU7O0FBd1BmO0VBQ0UsV0E1TlU7RUE2TlYsT0E1Tlc7RUE2Tlg7OztBQUlKO0VBQUs7OztBQUNMO0VBQUs7OztBQUNMO0VBQUs7OztBQUNMO0VBQUs7OztBQUNMO0VBQUs7OztBQUNMO0VBQUs7OztBQUVMO0VBL0ZGLGFBakpzQjtFQWtKdEIsT0FqSnFCO0VBa0pyQixhTjBFbUI7RU16RW5CLFlBakpxQjtFQWtKckIsZUFqSndCOzs7QUE4T3RCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFLGFOckNhO0VNc0NiOzs7QUFHRjtFQUNFLFdBalFZO0VBa1FaOzs7QUFHRjtFQUNFLGFObkRrQjtFTW9EbEIsYU5qRGU7RU1rRGYsT041RFc7RU02RFgsa0JBdlBrQjtFQXdQbEIsY0F2UGE7RUF3UGIsY0F2UGM7RUF3UGQsY0F2UGM7RUF3UGQsU0F2UFM7OztBQTBQWDtBQUNBO0FBQUE7QUFBQTtFQUdFLFdBOVFnQjtFQStRaEIsYUE5UWtCO0VBK1FsQixlQTlRb0I7RUErUXBCLHFCQTlPZ0I7RUErT2hCLGFBcFJrQjs7O0FBdVJwQjtFQUNFLGFBbFBhOztBQW1QYjtFQUNFLGFBbFBxQjs7QUFvUG5CO0FBQUE7RUFFRSxhQXJQUztFQXNQVDtFQUNBOzs7QUFNUjtBQUdJO0FBQUE7RUFFRSxhQWxRVztFQW1RWDs7QUFNRjtFQUFROztBQUdWO0VBQVc7RUFBeUIsYUEvUXZCOztBQWdSYjtFQUFXO0VBQXlCLGFBaFJ2Qjs7QUFpUmI7RUFBUztFQUF1QixhQWpSbkI7O0FBa1JiO0VBQWM7OztBQUdoQjtBQUNBO0VBQ0UsYUF0UnFCOztBQXdSbkI7QUFBQTtFQUVFLGFBeFJXO0VBeVJYOzs7QUFLTjtBQUVFO0VBQ0UsZUEvUitCO0VBZ1MvQixhTnhIVzs7QU0wSGI7RUFBSyxlQWpTcUI7OztBQW9TNUI7QUFDQTtBQUFBO0VBRUU7RUFDQTtFQUNBLE9OOUhZO0VNK0haLGVBL1JjO0VBZ1NkLFFOckRjOzs7QU11RGhCO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBLFNBaFRlO0VBaVRmLGFBaFRjOztBQWtUZDtFQUNFO0VBQ0EsV0FuVG9CO0VBb1RwQixPQW5UcUI7O0FBb1RyQjtFQUNFOztBQUdGO0FBQUE7RUFFRSxPQTFUbUI7OztBQThUekI7QUFBQTtFQUVFLGFBaFhrQjtFQWlYbEIsT0FyVWtCOzs7QUF3VXBCO0FBQ0E7RUFDRTtFQUNBLFFBL1RlO0VBZ1VmO0VBQ0EsU0FsVWdCOztBQW9VaEI7RUFDRTtFQUNBOztBQUVGO0VBQ0UsYU5oTFc7RU1pTFgsV0FoVXlCOzs7QUFxVTNCO0VBQVcsYU50TEU7O0FNd0xiO0VBQ0UsUU41R2U7RU02R2YsaUJBL1QyQjtFQWdVM0IsYU4zTFc7RU00TFg7RUFDQSxTQXRVbUI7OztBQTJVdkI7RUFDRTtJQUFvQixhQXZiTDs7RUF3YmY7SUFBSyxXQWxiSTs7RUFtYlQ7SUFBSyxXQWxiSTs7RUFtYlQ7SUFBSyxXQWxiSTs7RUFtYlQ7SUFBSyxXQWxiSTs7RUFtYlQ7SUFBSyxXQWxiSTs7RUFtYlQ7SUFBSyxXQWxiSTs7O0FBdWJUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQWM7OztBQUNkO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFHRjtBQUFBO0lBQ1k7O0VBQ1o7SUFBZ0I7O0VBRWhCO0lBQW9COztFQUdwQjtBQUFBO0FBQUE7SUFFcUI7O0VBRXJCO0FBQUE7SUFFRTtJQUNBOztFQUdGO0lBQVE7O0VBRVI7QUFBQTtJQUNNOztFQUVOO0lBQU07O0VBRU47SUFBUTs7RUFFUjtBQUFBO0FBQUE7SUFHRTtJQUNBOztFQUdGO0FBQUE7SUFDSzs7RUFFTDtJQUFpQjs7RUFDakI7SUFBYzs7RUFDZDtJQUFrQjs7RUFDbEI7SUFBa0I7OztBQ3RPdEI7RUE1TUY7RUFLQTtFQUNBO0VBNENBOztBQUNBO0VBQ2M7RUFBa0I7OztBQXlKOUI7RUE3TUY7RUFLQTtFQUNBO0VBdURBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FQdUJBO0VBQW9CO0VBQWM7O0FBQ2xDO0VBQVU7OztBT3NIUjtFQS9NRjtFQTBFQSxZUHlGZTtFT3hGZixPUHdFZTtFT3ZFZixRQXBKYztFQXFKZCxhQXJKYztFQXdKZDs7QUFJQTtFQUNFLE9QOERhO0VPN0RiLGFQd0ZlO0VPdkZmLGFBL0pZO0VBZ0taLFFBakptQjs7QUFtSnJCO0VBQWMsV0R0SkQ7OztBQzZRWDtFQWpIRixPQXhLYztFQXlLZCxRQXpLYztFQTBLZDtFQUNBO0VBRUUsY0F0S3lCO0VBd0t6Qjs7O0FBMkdBO0VBbEhGLE9BeEtjO0VBeUtkLFFBektjO0VBMEtkO0VBQ0E7RUFPRSxhQTNLeUI7RUE2S3pCOzs7QUF3R0E7RUFuR0YsU0FyTHNCO0VBc0x0QjtFQUNBO0VBQ0EsUUE1TGM7RUE2TGQ7O0FBQ0E7RUFDRTtJQUFrQjs7O0FBSXBCO0VBQ0U7RUFDQSxPQXJNWTs7QUF1TWQ7RUFDRSxNQXhNWTtFQXlNWjs7QUFFRjtFQUNFLE1BNU1ZO0VBNk1aLE9BN01ZOzs7QUFnU1o7RUFDRSxhQW5QeUI7RUFvUHpCLE9BbFNVO0VBbVNWLFFBblNVO0VBb1NWO0VBQ0EsU0FwUHFCO0VBcVByQixPUDNFVztFTzRFWDtFQUNBOztBUG5MSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBT0k7RUFDQTtFQU1EO0VBU0gsWUFDRTtFQUdGLE9PakcwQjs7QVBtRzVCO0VBQ0UsWUFDRTs7O0FPZ0tGO0VBaFBGO0VBc0JBLE9BNUVpQjtFQTZFakI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlQdUllO0VPdElmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUF2Qkk7RUFDSjtFQUNHO0VBQ0M7RUFDQztFQUNHO0VBc0JOOztBQWhCRjtFQXJCQTs7O0FBaVBFO0VBalBGO0VBc0JBLE9BNUVpQjtFQTZFakI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlQdUllO0VPdElmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUF2Qkk7RUFDSjtFQUNHO0VBQ0M7RUFDQztFQUNHO0VBMEJOOztBQXBCRjtFQXJCQTs7O0FBbVBFO0VBdkdGO0VBQ0E7RUFDQTs7QUFHRTtFQUNFO0VBQ0EsU0FwTXFCO0VBcU1yQixPUFNXO0VPUlgsZ0JBcE00QjtFQXFNNUIsV0FwTXVCO0VBcU12QixhUHVCYTtFT3RCYixZUFVXO0VPVFgsWUFwTXdCO0VBcU14QixlQXBNMkI7RUFxTTNCLFFBcE1tQjs7QUFzTXJCO0VBQ0U7RUFDQSxTQXZNb0I7RUF3TXBCLE9Bdk1rQjtFQXdNbEIsZUF2TTBCO0VBd00xQjs7QUFDQTtFQUNFLFlBeE5jOzs7QUE2U2hCO0VBL09BO0VBQ0o7RUFDRztFQUNDO0VBQ0M7RUFDRzs7QUE2T0o7RUE1UEo7RUFnTEUsWUE5TDRCO0VBK0w1QixRQTlMd0I7RUErTHhCLFlBOUw0QjtFQWlNNUI7RUFDQTtFQUNBLFlBbE00QjtFQW1NNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7SUFDRSxZQTNNOEI7Ozs7QUEwUWhDO0VBdFBBO0VBQ0o7RUFDRztFQUNDO0VBQ0M7RUFDRzs7QUFxUEo7RUFwUUo7RUFnTEUsWUE5TDRCO0VBK0w1QixRQTlMd0I7RUErTHhCLFlBOUw0QjtFQWlNNUI7RUFDQTtFQUNBLFlBbE00QjtFQW1NNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7SUFDRSxZQTNNOEI7Ozs7QUFpUmhDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVGO0VBL1FKO0VBZ0xFLFlBOUw0QjtFQStMNUIsUUE5THdCO0VBK0x4QixZQTlMNEI7RUFpTTVCO0VBQ0E7RUFDQSxZQWxNNEI7RUFtTTVCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0lBQ0UsWUEzTThCOzs7O0FBNFJoQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRjtFQTFSSjtFQWdMRSxZQTlMNEI7RUErTDVCLFFBOUx3QjtFQStMeEIsWUE5TDRCO0VBaU01QjtFQUNBO0VBQ0EsWUFsTTRCO0VBbU01QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtJQUNFLFlBM004Qjs7OztBQXVTaEM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUY7RUFyU0o7RUFnTEUsWUE5TDRCO0VBK0w1QixRQTlMd0I7RUErTHhCLFlBOUw0QjtFQWlNNUI7RUFDQTtFQUNBLFlBbE00QjtFQW1NNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7SUFDRSxZQTNNOEI7Ozs7QUFvVGhDO0VBQXdCOztBQUN4QjtFQUF5Qjs7QUFFekI7RUFBMkIsT0FuV2Q7O0FBb1diO0VBQTRCLE1BcFdmOzs7QUFzY2pCO0VBaFpBO0VBMFRBLE9BaFhpQjtFQWlYakI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWVA5SmU7RU8rSmY7RUFDQTtFQUNBO0VBMVRJO0VBQ0o7RUFDRztFQUNDO0VBQ0M7RUFDRztFQXdUTjtFQU1GO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBeEJBO0VBelRBOztBQW9WQTtFQUNFLFNBdFl1QjtFQXVZdkIsT1B6TGE7RU8wTGIsZ0JBdFk4QjtFQXVZOUIsYVAxS2U7RU8yS2YsWUE5WGlCO0VBK1hqQixZQXJZMEI7RUFzWTFCLGVBclk2QjtFQTJZN0IsUUExWXFCOztBQXFZckI7RUFDQyxZQS9Yc0I7RUFnWXRCLFlBL1g4QjtFQWdZOUIsZUEvWGlDOztBQW1aOUI7RUFVSjtFQUlFO0VBV0o7O0FBTUU7RUF4WUU7RUFDSjtFQUNHO0VBQ0M7RUFDQztFQUNHOzs7QUF3WVI7RUF2WkE7RUEwVEEsT0FoWGlCO0VBaVhqQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZUDlKZTtFTytKZjtFQUNBO0VBQ0E7RUExVEk7RUFDSjtFQUNHO0VBQ0M7RUFDQztFQUNHO0VBNFROO0VBRUY7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUF4QkE7RUF6VEE7O0FBb1ZBO0VBQ0UsU0F0WXVCO0VBdVl2QixPUHpMYTtFTzBMYixnQkF0WThCO0VBdVk5QixhUDFLZTtFTzJLZixZQTlYaUI7RUErWGpCLFlBclkwQjtFQXNZMUIsZUFyWTZCO0VBMlk3QixRQTFZcUI7O0FBcVlyQjtFQUNDLFlBL1hzQjtFQWdZdEIsWUEvWDhCO0VBZ1k5QixlQS9YaUM7O0FBd1k5QjtFQTZCSjtFQUlFO0VBR0o7O0FBYUU7RUEvWUU7RUFDSjtFQUNHO0VBQ0M7RUFDQztFQUNHOzs7QUF1Wk47RUFqQ0E7RUFJRTtFQUdKOzs7QUE2QkU7RUE1Q0E7RUFJRTtFQVdKOzs7QUM3VkU7RUFuRUYsWVJ1S2U7RVF0S2YsZUFUb0I7RUFVcEI7RUFDQSxjQWJhOztBQWViO0VBQ0UsWUE1QmU7RUE2QmYsT1JpTGE7RVEvS1gsV0E3Qm9CO0VBOEJwQixhQTdCc0I7O0FBaUMxQjtFQUNFLFlSNEphOztBUXpKWDtBQUFBO0VBRUUsU0FwRGE7RUFxRGIsV0F4RGU7RUF5RGYsYVI0S1c7RVEzS1gsT1JpS1M7O0FRNUpmO0VBQ0UsWVI4SWE7O0FRM0lYO0FBQUE7RUFFRSxTQWxFYTtFQW1FYixXQXRFZTtFQXVFZixhUjhKVztFUTdKWCxPUm1KUzs7QVE3SWI7QUFBQTtFQUVFLFNBN0RjO0VBOERkLFdBN0RnQjtFQThEaEIsT1J5SVc7RVF4SVgsWVJtS1k7O0FRaEtkO0VBRXNCLFlSb0hUOztBUWpIZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLUSxTQXRFTTtFQXNFbUIsYUExRWY7OztBQzJUaEI7QUFDQTtFQUFPOzs7QUFFUDtBQTNSRjtFQUFPOztBQUVMO0FBQUE7RUFDVzs7QUFHWDtFQUFhOztBQUVYO0FBQUE7RUFDVzs7QUFDWDtFVG5ERixvQ1NvRDhDO0VUbkQ5QyxpQ1NtRDhDO0VUbEQ5Qyw0QlNrRDhDO0VUakQ5Qyx5QlNpRDhDOztBQUtoRDtBQUFBO0FBQUE7QUFBQTtFQUdtQjs7O0FBMlFqQjtBQUNBO0VBdk5BLFdBNUltQjtFQTZJbkIsT0ExSW9CO0VBMklwQixRQS9JaUI7RUFnSmpCO0VBQ0EsYVQrRmlCO0VTOUZqQixhQS9JcUI7RUFnSnJCLGVBN0l1QjtBQWlXckI7O0FBRkE7RUE3TUY7RUFDQTs7QUE2TUU7RUExTUY7RUFDQTs7QUEyTUU7RUFDRSxnQkFwV3FCO0VBcVdyQjs7O0FBSUo7RUFDRTs7O0FBR0Y7QUFDQTtBQUFBO0VBaE5GO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsY0FwSXlCO0VBcUl6QixjQXRJeUI7RUF1SXpCLFVBcklzQjtFQXNJdEIsV0E1S3FCO0VBNktyQjtFQUNBOzs7QUF1TUU7QUFDQTtFQTdJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBd0lBO0VBL0tBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUEyS0E7RVR4V0EsZVN3V3dDO0VUOVZ4QyxtQ0E4T1k7RUE3T1osZ0NBNk9ZO0VBNU9aLDJCQTRPWTtFQTNPWix3QkEyT1k7OztBU2lIWjtFVHpXQSxlU3lXeUM7RVQvVnpDLG9DQThPWTtFQTdPWixpQ0E2T1k7RUE1T1osNEJBNE9ZO0VBM09aLHlCQTJPWTs7O0FTa0haO0VUMVdBLGVTMFd1QztFVGhXdkMsbUNBK09hO0VBOU9iLGdDQThPYTtFQTdPYiwyQkE2T2E7RUE1T2Isd0JBNE9hOzs7QVNrSGI7RVQzV0EsZVMyV3dDO0VUald4QyxvQ0ErT2E7RUE5T2IsaUNBOE9hO0VBN09iLDRCQTZPYTtFQTVPYix5QkE0T2E7OztBU29IYjtBQUNBO0VBcE1BLFlBekpjO0VBMEpkO0VBRzJDLE9Uc0M5QjtFU2pDYixjQWpLd0I7OztBQTZWeEI7RUFwS0EsWUExTGM7RUEyTGQ7RUFHNEMsT1RLL0I7RVNBYixjQWxNd0I7OztBQStWeEI7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFlRTtFQUNBO0VBclRKLGtCVHVIZTtFU3RIZixhQXpGa0I7RUEwRmxCO0VBQ0EsWUEvRWlCO0VBZ0ZqQixPQTNGaUI7RUE0RmpCO0VBQ0EsV0E1RmdCO0VBNkZoQjtFQUNBO0VBQ0E7RUFDQTtFVHhDQSxvQlN5Q29CO0VUeENsQixpQlN3Q2tCO0VUdkNiLFlTdUNhO0VUNERwQjs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBLGNTN0p1Qjs7QUFrR3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNFLFlBckdtQjtFQXNHbkIsY0FwR3VCO0VBcUd2Qjs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDRSxrQlR1R2E7RVN0R2IsUVR1TW1COztBU25NckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFHRSxrQlQrRmE7RVM5RmIsUVQrTG1COztBUzJGakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VUdllGLGVBd1BZOzs7QVN1Sk47QUFBQTtBQUFBO0VUL1lOLGVTaVorQjtFVHZZL0Isb0NBOE9ZO0VBN09aLGlDQTZPWTtFQTVPWiw0QkE0T1k7RUEzT1oseUJBMk9ZOztBUzBKTjtFVGxaTixlU2taZ0M7RVR4WWhDLG1DQThPWTtFQTdPWixnQ0E2T1k7RUE1T1osMkJBNE9ZO0VBM09aLHdCQTJPWTs7QVM2Sk47QUFBQTtBQUFBO0VUclpOLGVTdVorQjtFVDdZL0IsbUNBOE9ZO0VBN09aLGdDQTZPWTtFQTVPWiwyQkE0T1k7RUEzT1osd0JBMk9ZOztBU2dLTjtFVHhaTixlU3daaUM7RVQ5WWpDLG9DQThPWTtFQTdPWixpQ0E2T1k7RUE1T1osNEJBNE9ZO0VBM09aLHlCQTJPWTs7QVNtS047QUFBQTtBQUFBO0VUM1pOLGVTNlorQjtFVG5aL0Isb0NBK09hO0VBOU9iLGlDQThPYTtFQTdPYiw0QkE2T2E7RUE1T2IseUJBNE9hOztBU3FLUDtFVDlaTixlUzhaZ0M7RVRwWmhDLG1DQStPYTtFQTlPYixnQ0E4T2E7RUE3T2IsMkJBNk9hO0VBNU9iLHdCQTRPYTs7QVN3S1A7QUFBQTtBQUFBO0VUamFOLGVTbWErQjtFVHpaL0IsbUNBK09hO0VBOU9iLGdDQThPYTtFQTdPYiwyQkE2T2E7RUE1T2Isd0JBNE9hOztBUzJLUDtFVHBhTixlU29haUM7RVQxWmpDLG9DQStPYTtFQTlPYixpQ0E4T2E7RUE3T2IsNEJBNk9hO0VBNU9iLHlCQTRPYTs7O0FTZ0xiO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtBQUNBO0VBdEpGO0VBQ0E7RUFDQSxrQlQzRmU7RVMrRmY7RUFHQTtFQUVBO0VBQ0E7RUFDQTtFQUNBLFdBclRnQjtFQXNUaEIsYVRwRnVCO0VTcUZ2QixPQXhUaUI7RUF5VGpCO0VUL1NFLGVTZ1RjO0VBc0laOztBQXJJSjtFVGpURSxlQXdQWTs7QVMwRGQ7RUFDRSxrQkF4UW9CO0VBeVFwQixjQXpUdUI7O0FBNFR6QjtFQUNFLGtCVDdHYTtFUzhHYixRVGJtQjs7O0FTNkluQjtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0EsY0ExZFM7RUEyZFQ7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtBQVNBO0FBQ0E7RUFwUEY7RUFDQSxTQTlOaUI7RUErTmpCLFFBOU5nQjs7QUFpT2hCO0VBQ0UsYVRaZTtFU2FmLFlUeENhO0VTeUNiLFNBL05hO0VBZ09iO0VBQ0E7OztBQThPQTtBQUdFO0VBbk5KO0VBQ0EsU0FqUDRCO0VBa1A1QixZQWpQd0I7RUFrUHhCLGVBclNhO0VBc1NiLFdBbFA4QjtFQW1QOUIsYVRwRG1CO0VTcURuQixZQWxQK0I7RUFzUC9CLFlUeEZZO0VTeUYrQixPVHBGNUI7O0FTK1JYO0VBQTBCOzs7QUFHNUI7RUF6TkY7RUFDQSxTQWpQNEI7RUFrUDVCLFlBalB3QjtFQWtQeEIsZUFyU2E7RUFzU2IsV0FsUDhCO0VBbVA5QixhVHBEbUI7RVNxRG5CLFlBbFArQjtFQXNQL0IsWVR4Rlk7RVN5RitCLE9UcEY1Qjs7O0FTdVNYO0FBQUE7QUFBQTtFQUdFOztBQUdGO0FBQUE7RUFFRSxlQXhnQk87O0FBMmdCVDtBQUFBO0VBaFArQyxPVHZFdkM7O0FTNFRSO0VBOU9KO0VBQ0EsU0FqUDRCO0VBa1A1QixZQWpQd0I7RUFrUHhCLGVBclNhO0VBc1NiLFdBbFA4QjtFQW1QOUIsYVRwRG1CO0VTcURuQixZQWxQK0I7RUFzUC9CLFlUeEZZO0VTeUYrQixPVHBGNUI7O0FTNFRUO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsZ0JBamhCbUI7RUFraEJuQjtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFOzs7QUFJSjtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFoUmlELE9UdkV2Qzs7O0FVN0tWO0VBbEJGO0VBQ0EsYUFwQmlDO0VBcUJqQyxjQXZCNEI7RUF3QjVCLFNBbkJvQjtFQW9CcEI7RUFDQSxVQWxCcUI7O0FBb0JyQjtFQUNFO0VBQ0EsT1Z1T2M7RVV0T2QsYUE1Qm9DO0VBNkJwQyxTQXJCa0I7O0FBc0JsQjtFQUFNLFNBbkJxQjs7O0FDbU0zQjtBQUNBO0VBN0pGO0VBQ0E7RUFDQSxZQTFCc0I7RUEyQnRCO0VBTUU7RUFDQSxZQTlEb0I7RUErRHBCLFFBaEVnQjtFQWlFaEIsWVh3SmE7RVd2SmI7RUFDQSxXQXBDbUI7RUFxQ25CO0VBY0EsWUE5RW9CO0VBOEtMLFdBbkxJOztBQTJEckI7RUFBa0I7O0FBQ2xCO0VBQWlCOztBQXlCZjtFWEpGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFNRTtFQUNBO0VXTEU7RUFDQTtFQUNBLE1BOUQ0QjtFQStENUI7O0FBRUY7RVhYRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUU7RUFDQTtFV0VFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQSxPQTNFNEI7O0FBNkU5QjtFQUNFO0VBQ0E7O0FBNEdBO0VBaEtKO0VBQ0E7RUFDQSxZQTFCc0I7RUEyQnRCO0VBTUU7RUFDQSxZQTlEb0I7RUErRHBCLFFBaEVnQjtFQWlFaEIsWVh3SmE7RVd2SmI7RUFDQSxXQXBDbUI7RUFxQ25CO0VBMENBO0VBQ0EsYUEzR29CO0VBOEtMLFdBbkxJOztBQTJEckI7RUFBa0I7O0FBQ2xCO0VBQWlCOztBQXNEZjtFWGpDRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBY0U7RUFDQTtFV2dCRTtFQUNBLEtBMUY0QjtFQTJGNUI7RUFDQTs7QUFFRjtFWHhDRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBY0U7RUFDQTtFV3VCRTtFQUNBO0VBQ0E7RUFDQTs7QUE0RkE7RUFwS0o7RUFDQTtFQUNBLFlBMUJzQjtFQTJCdEI7RUFNRTtFQUNBLFlBOURvQjtFQStEcEIsUUFoRWdCO0VBaUVoQixZWHdKYTtFV3ZKYjtFQUNBLFdBcENtQjtFQXFDbkI7RUErREE7RUFDQTtFQThDZSxXQW5MSTs7QUEyRHJCO0VBQWtCOztBQUNsQjtFQUFpQjs7QUEyRWY7RVh0REY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVVFO0VBQ0E7RVd5Q0U7RUFDQSxLQS9HNEI7RUFnSDVCO0VBQ0E7RUFDQTs7QUFFRjtFWDlERjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBVUU7RUFDQTtFV2lERTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQXlFQTtFQXhLSjtFQUNBO0VBQ0EsWUExQnNCO0VBMkJ0QjtFQU1FO0VBQ0EsWUE5RG9CO0VBK0RwQixRQWhFZ0I7RUFpRWhCLFlYd0phO0VXdkpiO0VBQ0EsV0FwQ21CO0VBcUNuQjtFQXNGQTtFQUNBO0VBdUJlLFdBbkxJOztBQTJEckI7RUFBa0I7O0FBQ2xCO0VBQWlCOztBQWtHZjtFWDdFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUU7RUFDQTtFV3dFRTtFQUNBO0VBQ0E7RUFDQSxNQXhJNEI7RUF5STVCO0VBQ0E7O0FBRUY7RVh0RkY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVFO0VBQ0E7RVdpRkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQXFEQTtFQXRDSixXQTdKcUI7RUE4SnJCLFFYcUlxQjtFV25JckIsYUE5SnVCO0VBK0p2Qjs7QUFFQTtFQUNVLFlYNEJLOztBVzFCZjtFWGhMRSxlQXdQWTs7QVd0RWQ7RUFDRTtFQUNBLFNBektzQjtFQTBLdEIsT1g2QmE7O0FXRlg7RUFoTEo7RUFDQTtFQUNBLFlBMUJzQjtFQTJCdEI7RUFlRSxTQWpDeUI7RUFrQ3pCO0VBQ0EsUUF6RWdCO0VBMEVoQixZQXpFb0I7RUEwRXBCLFlYOElhO0VXN0liO0VBQ0EsV0E5Q21CO0VBK0NuQjtFQW9HZSxXQW5MSTs7QUEyRHJCO0VBQWtCOztBQUNsQjtFQUFpQjs7QUE2S2I7RUFBWTs7QUFDWjtFQUFZOztBQUNaO0VBQVk7O0FBQ1o7RUFBWTs7QUFDWjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FDMU5OO0FBQ0E7RUFDRSxlQTNCa0I7RUE0QmxCLFFBdkJnQjtFQXdCaEIsYVp5TmE7RVl4TmIsT1o2TVc7O0FZM01YO0VBRUUsZUEvQnNCO0VBZ0N0QixPWmlMUTs7QVk5S1Y7RUFDYzs7O0FBR2hCO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsYVp1TWU7RVl0TWYsV0F0Q2M7RUF1Q2QsYUFwQ2dCO0VBcUNoQixTQTFDWTtFQTJDWixXQTlCYztFQStCZDtFQUNBO0VBQ0EsT1pzS1c7RVlyS1gsWVpxTFc7O0FZbkxYO0VBQ0U7RUFDQSxNQXZDVztFQXdDWDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0EsT0FsRFM7O0FBc0RiO0VabERGLGVBd1BZOztBWW5NVjtFWnJERixlQXlQYTs7QVlsTVQ7RUFDRTs7QUFJSjtFQUNFO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQSxXQTlFb0I7RUErRXBCLE9aMklXO0VZMUlYLGFad0plOzs7QVlySmpCO0VBRUk7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTtJQUNBOztFQUdGO0lBQ2M7O0VBRWQ7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FDL0VOO0FBQ0E7RUFyQkYsa0Jic01lO0Vhck1mLFFBeEJvQjtFQXlCcEI7RUFDQSxTQWhCaUI7RUFpQmpCLGVBaEIyQjs7QUFxQ3ZCO0VBZEosWWJpTGM7RWFoTGQ7RUFDQTs7QUFlSTtFQWpCSixZYmtMZ0I7RWFqTGhCO0VBQ0E7O0FBZ0JJO0VBbEJKLFlib0xjO0VhbkxkO0VBQ0E7O0FBaUJJO0VBbkJKLFlibUxZO0VhbExaO0VBQ0E7O0FBbUJJO0ViakNGLGVBd1BZOztBYXROUjtFYmxDSixlYWtDNkI7O0FBRzNCO0VickNGLGVhcUM0Qjs7QUFDeEI7RWJ0Q0osZWFzQzZCOzs7QUN5SzdCO0FBQ0E7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBR0E7SWRuQ047SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RWNrQ007SWRqRE47SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RWNrRE07SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUE5Qk47QUFDQTtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFHQTtJZG5DTjtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFY2tDTTtJZGpETjtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFY2tETTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7OztBQTlCTjtBQUNBO0VBQ0U7SUFDRTs7RUFFRjtJQUNFOztFQUdBO0lkbkNOO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0Vja0NNO0lkakROO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0Vja0RNO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBOUJOO0FBQ0E7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBR0E7SWRuQ047SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RWNrQ007SWRqRE47SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RWNrRE07SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUE5Qk47QUFDQTtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFHQTtJZG5DTjtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFY2tDTTtJZGpETjtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFY2tETTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7OztBQVlSO0FBQ0E7QUFBQTtFQUNxQjs7O0FBQ3JCO0FBQUE7RUFDcUI7OztBQUVyQjtBQUVFO0VBQ3NCOzs7QUFHdEI7RUFDc0I7OztBQUd0QjtFQUNzQjs7O0FBR3RCO0VBQ3NCOzs7QUFJdEI7QUFBQTtBQUFBO0VBQ3NCOzs7QUFHeEI7RUFDRTtBQUFBO0lBQ3FCOztFQUNyQjtBQUFBO0lBQ3FCOztBQUVyQjtFQUVFO0lBQ3NCOztFQUd0QjtJQUNzQjs7RUFHdEI7SUFDc0I7O0VBR3RCO0lBQ3NCOztFQUl0QjtBQUFBO0FBQUE7SUFDc0I7OztBQUkxQjtFQUNFO0FBQUE7SUFDc0I7O0VBQ3RCO0FBQUE7SUFDc0I7O0FBRXRCO0VBRUU7SUFDdUI7O0VBR3ZCO0lBQ3VCOztFQUd2QjtJQUN1Qjs7RUFHdkI7SUFDdUI7O0VBSXZCO0FBQUE7QUFBQTtJQUN1Qjs7O0FBSTNCO0FBQ0E7RUFBa0I7OztBQUNsQjtFQUFrQjs7O0FBQ2xCO0VBQXlCOzs7QUFDekI7RUFBeUI7OztBQUV6QjtBQUNBO0VBQXVCOzs7QUFDdkI7RUFBOEI7OztBQUM5QjtFQUF1Qjs7O0FBQ3ZCO0VBQThCOzs7QUFDOUI7RUFBdUI7OztBQUN2QjtFQUE4Qjs7O0FBQzlCO0VBQW9COzs7QUFDcEI7RUFBMkI7OztBQUMzQjtFQUFvQjs7O0FBQ3BCO0VBQTJCOzs7QUFDM0I7RUFBb0I7OztBQUNwQjtFQUEyQjs7O0FBRzNCO0FBQ0E7RUFDRTtJQUFrQjs7RUFDbEI7SUFBa0I7O0VBRWxCO0lBQXVCOztFQUN2QjtJQUF1Qjs7RUFDdkI7SUFBdUI7O0VBQ3ZCO0lBQW9COztFQUNwQjtJQUFvQjs7RUFDcEI7SUFBb0I7OztBQ2hQcEI7RUFqSEY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlmaU1lO0VlaE1mLFlBMUNrQjtFQTJDbEI7RUFDQTtFQUNBOzs7QUEwR0U7RUFoR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZWYrTVk7RWU5TVo7RUFnRFEsa0JmMEdLO0VlekdTLFNBdkdIO0VBeUdQO0VBSVosWUE1R2dCO0VBc0dNLFNBa0RpQjs7QUFqR3ZDO0VBdUZBO0lBdEZFOzs7QUFJRjtFQUFvQjs7QUFHcEI7RUFBbUI7O0FBRW5CO0VBQWtCOztBQUlsQjtFQXlFQTtJQXhFRSxPQXpFaUI7SUEwRWpCLFdibEZNO0lhbUZOO0lBQ0E7SUFDQTs7O0FBMENGO0VBMEJBO0lBekJFLEtBekhnQjs7O0FBOEpoQjtFZi9JRixlQXdQWTs7QWV4R1Y7RWZoSkYsZUF5UGE7O0FleEdYO0VBdERvQixTQXNEOEI7O0FBdkZwRDtFQXdGRTtJQXZGQSxPQXVGNEM7SUF0RjVDLFdibEZNO0lhbUZOO0lBQ0E7SUFDQTs7O0FBTEY7RUF5RkU7SUF4RkEsT0F3RjRDO0lBdkY1QyxXYmxGTTtJYW1GTjtJQUNBO0lBQ0E7OztBQUxGO0VBMEZFO0lBekZBLE9BeUY4QztJQXhGOUMsV2JsRk07SWFtRk47SUFDQTtJQUNBOzs7QUFMRjtFQTJGRTtJQTFGQSxPQTBGNEM7SUF6RjVDLFdibEZNO0lhbUZOO0lBQ0E7SUFDQTs7O0FBTEY7RUE0RkU7SUEzRkEsT0EyRjZDO0lBMUY3QyxXYmxGTTtJYW1GTjtJQUNBO0lBQ0E7OztBQXdGQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFwR0o7RUE2RkU7SUE1RkEsT0E2Rm9DO0lBNUZwQyxXYmxGTTtJYW1GTjtJQUNBO0lBQ0E7OztBQWtHQTtFQTlDSixXQTNIdUI7RUE0SHZCO0VBQ0E7RUFDQSxLQTdIaUI7RUE4SGpCLE9BN0hrQjtFQThIbEIsT2ZxRmU7RWVwRmYsYWZzR2lCO0VlckdqQixRZm1McUI7OztBZXpJbkI7RUFFRTs7QUFFQTtFQXhKSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWWZpTWU7RWVoTWYsWUExQ2tCO0VBMkNsQjtFQUNBO0VBQ0E7O0FBbUpJO0VBQ0U7OztBQUtKO0VBQ0U7SUFDRTtJQUNBOzs7QVI0UU47RUFoWkE7RUEwVEEsT0FoWGlCO0VBaVhqQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZUDlKZTtFTytKZjtFQUNBO0VBQ0E7RUExVEk7RUFDSjtFQUNHO0VBQ0M7RUFDQztFQUNHO0VBd1ROO0VBTUY7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUF4QkE7RUF6VEE7O0FBb1ZBO0VBQ0UsU0F0WXVCO0VBdVl2QixPUHpMYTtFTzBMYixnQkF0WThCO0VBdVk5QixhUDFLZTtFTzJLZixZQTlYaUI7RUErWGpCLFlBclkwQjtFQXNZMUIsZUFyWTZCO0VBMlk3QixRQTFZcUI7O0FBcVlyQjtFQUNDLFlBL1hzQjtFQWdZdEIsWUEvWDhCO0VBZ1k5QixlQS9YaUM7O0FBbVo5QjtFQVVKO0VBSUU7RUFXSjs7QUFNRTtFQXhZRTtFQUNKO0VBQ0c7RUFDQztFQUNDO0VBQ0c7OztBQXdZUjtFQXZaQTtFQTBUQSxPQWhYaUI7RUFpWGpCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlQOUplO0VPK0pmO0VBQ0E7RUFDQTtFQTFUSTtFQUNKO0VBQ0c7RUFDQztFQUNDO0VBQ0c7RUE0VE47RUFFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQXhCQTtFQXpUQTs7QUFvVkE7RUFDRSxTQXRZdUI7RUF1WXZCLE9QekxhO0VPMExiLGdCQXRZOEI7RUF1WTlCLGFQMUtlO0VPMktmLFlBOVhpQjtFQStYakIsWUFyWTBCO0VBc1kxQixlQXJZNkI7RUEyWTdCLFFBMVlxQjs7QUFxWXJCO0VBQ0MsWUEvWHNCO0VBZ1l0QixZQS9YOEI7RUFnWTlCLGVBL1hpQzs7QUF3WTlCO0VBNkJKO0VBSUU7RUFHSjs7QUFhRTtFQS9ZRTtFQUNKO0VBQ0c7RUFDQztFQUNDO0VBQ0c7OztBQXVaTjtFQWpDQTtFQUlFO0VBR0o7OztBQTZCRTtFQTVDQTtFQUlFO0VBV0o7OztBU3hjRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FDdkJBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBYUE7QUFHQTtBQUtBO0FDaENJO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJOzs7QUFJUjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOzs7QUN0Qko7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FDUFo7RUFDSTtFQUNBLGtCQ0ZNO0VER047RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsYUhURTs7O0FHY047RUFDSSxZSEZBO0VHR0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkNoQ0E7RURpQ0E7O0FBRUE7RUFDSSxPSHRCUjtFR3VCUTtFQUNBLGFIckNOO0VHc0NNO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSSxrQkg5RFo7O0FHZ0VZO0VBQ0ksa0JIakVoQjtFR2tFZ0I7RUFDQTtFQUNBLE9DbkZkO0VEb0ZjO0VBQ0E7RUFDQSxhSHBGZDs7QUdzRmM7RUFDSSxPQ3pGbEI7RUQwRmtCLGtCSDNFcEI7O0FHbUZJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlIckZKO0VHc0ZJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0EsWUhwR1o7RUdxR1ksT0gxR1o7RUcyR1k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhSDNIZDs7QUc4SGM7RUFDSTtFQUNBLE9IbkhwQjs7QUdzSGdCO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7RUFDQSxPSDVJaEI7O0FHOElnQjtFQUNJO0VBQ0EsT0gvSXhCOztBR2tKb0I7RUFDSTtFQUNBLE9Dbkt0Qjs7QUR3S1U7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLFlDbExsQjtFRG1Ma0IsT0hwS3BCO0VH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QUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFkQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0k7RUFDQTs7O0FBdU9oQjtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDSTtFQUNBOztBQUVBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVBO0VB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QTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBIiwiZmlsZSI6Imdsb2JhbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxyXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcclxuICogICAgdXNlciB6b29tLlxyXG4gKi9cclxuXHJcbmh0bWwge1xyXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXHJcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cclxuICovXHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxyXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMSBhbmQgRmlyZWZveC5cclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cclxuICovXHJcblxyXG5hcnRpY2xlLFxyXG5hc2lkZSxcclxuZGV0YWlscyxcclxuZmlnY2FwdGlvbixcclxuZmlndXJlLFxyXG5mb290ZXIsXHJcbmhlYWRlcixcclxuaGdyb3VwLFxyXG5tYWluLFxyXG5uYXYsXHJcbnNlY3Rpb24sXHJcbnN1bW1hcnkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cclxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxyXG4gKi9cclxuXHJcbmF1ZGlvLFxyXG5jYW52YXMsXHJcbnByb2dyZXNzLFxyXG52aWRlbyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxyXG4gKi9cclxuXHJcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXHJcbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cclxuICovXHJcblxyXG5baGlkZGVuXSxcclxudGVtcGxhdGUge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qIExpbmtzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAqL1xyXG5cclxuYSB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5hOmFjdGl2ZSxcclxuYTpob3ZlciB7XHJcbiAgb3V0bGluZTogMDtcclxufVxyXG5cclxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYWJiclt0aXRsZV0ge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYixcclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5kZm4ge1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcclxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmgxIHtcclxuICBmb250LXNpemU6IDJlbTtcclxuICBtYXJnaW46IDAuNjdlbSAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cclxuICovXHJcblxyXG5tYXJrIHtcclxuICBiYWNrZ3JvdW5kOiAjZmYwO1xyXG4gIGNvbG9yOiAjMDAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc21hbGwge1xyXG4gIGZvbnQtc2l6ZTogODAlO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnN1Yixcclxuc3VwIHtcclxuICBmb250LXNpemU6IDc1JTtcclxuICBsaW5lLWhlaWdodDogMDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG5zdXAge1xyXG4gIHRvcDogLTAuNWVtO1xyXG59XHJcblxyXG5zdWIge1xyXG4gIGJvdHRvbTogLTAuMjVlbTtcclxufVxyXG5cclxuLyogRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXHJcbiAqL1xyXG5cclxuc3ZnOm5vdCg6cm9vdCkge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMWVtIDQwcHg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuaHIge1xyXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxucHJlIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnByZSxcclxuc2FtcCB7XHJcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xyXG4gIGZvbnQtc2l6ZTogMWVtO1xyXG59XHJcblxyXG4vKiBGb3Jtc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXHJcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cclxuICovXHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cclxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxub3B0Z3JvdXAsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXHJcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xyXG4gIG1hcmdpbjogMDsgLyogMyAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXHJcbiAqL1xyXG5cclxuYnV0dG9uIHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cclxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cclxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cclxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuc2VsZWN0IHtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXHJcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxyXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXHJcbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXHJcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cclxuICovXHJcblxyXG5idXR0b24sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xyXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXHJcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXHJcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxyXG4gKi9cclxuXHJcbmJ1dHRvbltkaXNhYmxlZF0sXHJcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXHJcbiAqL1xyXG5cclxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxyXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXHJcbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gKi9cclxuXHJcbmlucHV0IHtcclxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG59XHJcblxyXG4vKipcclxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxyXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxyXG4gKlxyXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxyXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxyXG4gKi9cclxuXHJcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgcGFkZGluZzogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cclxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcclxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxyXG4gKi9cclxuXHJcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXHJcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxyXG4gKi9cclxuXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXHJcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gKi9cclxuXHJcbmZpZWxkc2V0IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gIG1hcmdpbjogMCAycHg7XHJcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxyXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAqL1xyXG5cclxubGVnZW5kIHtcclxuICBib3JkZXI6IDA7IC8qIDEgKi9cclxuICBwYWRkaW5nOiAwOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxyXG4gKi9cclxuXHJcbnRleHRhcmVhIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cclxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXHJcbiAqL1xyXG5cclxub3B0Z3JvdXAge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4vKiBUYWJsZXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXHJcbiAqL1xyXG5cclxudGFibGUge1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxuXHJcbnRkLFxyXG50aCB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcclxuLy9cclxuLy8gRm91bmRhdGlvbiBWYXJpYWJsZXNcclxuLy9cclxuXHJcbi8vIERhdGEgYXR0cmlidXRlIG5hbWVzcGFjZVxyXG4vLyBzdHlsZXMgZ2V0IGFwcGxpZWQgdG8gW2RhdGEtbXlzaXRlLXBsdWdpbl0sIGV0Y1xyXG4kbmFtZXNwYWNlOiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbi8vIFRoZSBkZWZhdWx0IGZvbnQtc2l6ZSBpcyBzZXQgdG8gMTAwJSBvZiB0aGUgYnJvd3NlciBzdHlsZSBzaGVldCAodXN1YWxseSAxNnB4KVxyXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxyXG5cclxuLy8gU2luY2UgdGhlIHR5cGljYWwgZGVmYXVsdCBicm93c2VyIGZvbnQtc2l6ZSBpcyAxNnB4LCB0aGF0IG1ha2VzIHRoZSBjYWxjdWxhdGlvbiBmb3IgZ3JpZCBzaXplLlxyXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxyXG4vLyBzZXQgJHJlbS1iYXNlIHRvICRiYXNlLWZvbnQtc2l6ZSBhbmQgbWFrZSBzdXJlICRiYXNlLWZvbnQtc2l6ZSBpcyBhIHB4IHZhbHVlLlxyXG4kYmFzZS1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XHJcblxyXG4vLyAkYmFzZS1saW5lLWhlaWdodCBpcyAyNHB4IHdoaWxlICRiYXNlLWZvbnQtc2l6ZSBpcyAxNnB4XHJcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XHJcblxyXG4vL1xyXG4vLyBHbG9iYWwgRm91bmRhdGlvbiBNaXhpbnNcclxuLy9cclxuXHJcbi8vIEBtaXhpbnNcclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzLlxyXG4vLyAkcmFkaXVzIC0gRGVmYXVsdDogJGdsb2JhbC1yYWRpdXMgfHwgNHB4XHJcbkBtaXhpbiByYWRpdXMoJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xyXG4gIEBpZiAkcmFkaXVzIHtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBAbWl4aW5zXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBlcXVhbCBzaWRlIGJvcmRlciByYWRpdXMgb24gZWxlbWVudHMuXHJcbi8vICRzaWRlIC0gT3B0aW9uczogbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tXHJcbkBtaXhpbiBzaWRlLXJhZGl1cygkc2lkZSwgJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xyXG4gIEBpZiAoJHNpZGUgPT0gbGVmdCBvciAkc2lkZSA9PSByaWdodCkge1xyXG4gICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcclxuICAgIC13ZWJraXQtYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgICBib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcclxuICAgIGJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgLXdlYmtpdC0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxuICAgIC13ZWJraXQtI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgYm9yZGVyLSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgYm9yZGVyLSN7JHNpZGV9LXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxuICB9XHJcbn1cclxuXHJcbi8vIEBtaXhpbnNcclxuLy9cclxuLy8gV2UgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3Qgd2UgaGF2ZSBpbnNldCBzaGFkb3dzIGVkZ2VzLlxyXG4vLyAkYWN0aXZlIC0gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2VcclxuQG1peGluIGluc2V0LXNoYWRvdygkYWN0aXZlOnRydWUpIHtcclxuICBib3gtc2hhZG93OiAkc2hpbnktZWRnZS1zaXplICRzaGlueS1lZGdlLWNvbG9yIGluc2V0O1xyXG5cclxuICBAaWYgJGFjdGl2ZSB7ICY6YWN0aXZlIHtcclxuICAgIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yIGluc2V0OyB9IH1cclxufVxyXG5cclxuLy8gQG1peGluc1xyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgdHJhbnNpdGlvbnMgdG8gZWxlbWVudHNcclxuLy8gJHByb3BlcnR5IC0gRGVmYXVsdDogYWxsLCBPcHRpb25zOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXRyYW5zaXRpb25zLyNhbmltYXRhYmxlLXByb3BlcnRpZXNcclxuLy8gJHNwZWVkIC0gRGVmYXVsdDogMzAwbXNcclxuLy8gJGVhc2UgLSBEZWZhdWx0OmVhc2Utb3V0LCBPcHRpb25zOiBodHRwOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9wcm9wZXJ0aWVzL3QvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24vXHJcbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbigkcHJvcGVydHk6YWxsLCAkc3BlZWQ6MzAwbXMsICRlYXNlOmVhc2Utb3V0KSB7XHJcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRzcGVlZCAkZWFzZTtcclxufVxyXG5cclxuLy8gQG1peGluc1xyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgYm94LXNpemluZyBhY3Jvc3MgYnJvd3NlciBwcmVmaXhlc1xyXG5AbWl4aW4gYm94LXNpemluZygkdHlwZTpib3JkZXItYm94KSB7XHJcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gQW5kcm9pZCA8IDIuMywgaU9TIDwgNFxyXG5cdCAgIC1tb3otYm94LXNpemluZzogJHR5cGU7IC8vIEZpcmVmb3ggPCAyOVxyXG5cdCAgICAgICAgYm94LXNpemluZzogJHR5cGU7IC8vIENocm9tZSwgSUUgOCssIE9wZXJhLCBTYWZhcmkgNS4xXHJcbn1cclxuXHJcbi8vIEBtaXhpbnNcclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGlzb3NjZWxlcyB0cmlhbmdsZXNcclxuLy8gJHRyaWFuZ2xlLXNpemUgLSBVc2VkIHRvIHNldCBib3JkZXItc2l6ZS4gTm8gZGVmYXVsdCwgc2V0IGEgcHggb3IgZW0gc2l6ZS5cclxuLy8gJHRyaWFuZ2xlLWNvbG9yIC0gVXNlZCB0byBzZXQgYm9yZGVyLWNvbG9yIHdoaWNoIG1ha2VzIHVwIHRyaWFuZ2xlLiBObyBkZWZhdWx0XHJcbi8vICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBVc2VkIHRvIGRldGVybWluZSB3aGljaCBkaXJlY3Rpb24gdHJpYW5nbGUgcG9pbnRzLiBPcHRpb25zOiB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHRcclxuQG1peGluIGNzcy10cmlhbmdsZSgkdHJpYW5nbGUtc2l6ZSwgJHRyaWFuZ2xlLWNvbG9yLCAkdHJpYW5nbGUtZGlyZWN0aW9uKSB7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcclxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdG9wKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xyXG4gIH1cclxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gYm90dG9tKSB7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xyXG4gIH1cclxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XHJcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XHJcbiAgfVxyXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQG1peGluc1xyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIGljb24gd2l0aCB0aHJlZSBsaW5lcyBha2EgdGhlIGhhbWJ1cmdlciBpY29uLCB0aGUgbWVudS1pY29uIG9yIHRoZSBuYXZpY29uXHJcbi8vICR3aWR0aCAtIFdpZHRoIG9mIGhhbWJ1cmdlciBpY29uIGluIHJlbVxyXG4vLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxyXG4vLyAkdG9wIC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxyXG4vLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcclxuLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxyXG4vLyAkY29sb3IgLSBpY29uIGNvbG9yXHJcbi8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyXHJcbi8vICRvZmZjYW52YXMgLSBTZXQgdG8gdHJ1ZSBvZiBAaW5jbHVkZSBpbiBvZmZjYW52YXNcclxuQG1peGluIGhhbWJ1cmdlcigkd2lkdGgsICRsZWZ0LCAkdG9wLCAkdGhpY2tuZXNzLCAkZ2FwLCAkY29sb3IsICRob3Zlci1jb2xvciwgJG9mZmNhbnZhcykge1xyXG4gIHNwYW46OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMDtcclxuXHJcbiAgICBAaWYgJG9mZmNhbnZhcyB7XHJcbiAgICAgIEBpZiAkdG9wIHtcclxuICAgICAgICB0b3A6ICR0b3A7XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0kd2lkdGgvMjtcclxuICAgICAgfVxyXG4gICAgXHRAaWYgJGxlZnQge1xyXG4gICAgXHQgIGxlZnQ6ICRsZWZ0O1xyXG4gICAgXHR9XHJcbiAgICBcdEBlbHNlIHtcclxuICAgIFx0ICBsZWZ0OiAoJHRhYmJhci1tZW51LWljb24td2lkdGggLSAkd2lkdGgpLzI7XHJcbiAgICBcdH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0oJHdpZHRoLzIpO1xyXG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OlxyXG4gICAgICAwIDBweCAwICR0aGlja25lc3MgJGNvbG9yLFxyXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkY29sb3IsXHJcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGNvbG9yO1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9XHJcbiAgc3Bhbjpob3ZlcjphZnRlciB7XHJcbiAgICBib3gtc2hhZG93OlxyXG4gICAgICAwIDBweCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxyXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXHJcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuLy8gV2UgdXNlIHRoaXMgdG8gZG8gY2xlYXIgZmxvYXRzXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjpiZWZvcmUsICY6YWZ0ZXIgeyBjb250ZW50OiBcIiBcIjsgZGlzcGxheTogdGFibGU7IH1cclxuICAmOmFmdGVyIHsgY2xlYXI6IGJvdGg7IH1cclxufVxyXG5cclxuLy8gQG1peGluc1xyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgYSBnbG93aW5nIGVmZmVjdCB0byBibG9jayBlbGVtZW50c1xyXG4vLyAkc2VsZWN0b3IgLSBVc2VkIGZvciBzZWxlY3RvciBzdGF0ZS4gRGVmYXVsdDogZm9jdXMsIE9wdGlvbnM6IGhvdmVyLCBhY3RpdmUsIHZpc2l0ZWRcclxuLy8gJGZhZGUtdGltZSAtIERlZmF1bHQ6IDMwMG1zXHJcbi8vICRnbG93aW5nLWVmZmVjdC1jb2xvciAtIERlZmF1bHQ6IGZhZGUtb3V0KCRwcmltYXJ5LWNvbG9yLCAuMjUpXHJcbkBtaXhpbiBibG9jay1nbG93aW5nLWVmZmVjdCgkc2VsZWN0b3I6Zm9jdXMsICRmYWRlLXRpbWU6MzAwbXMsICRnbG93aW5nLWVmZmVjdC1jb2xvcjpmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KSkge1xyXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJGZhZGUtdGltZSwgYm9yZGVyLWNvbG9yICRmYWRlLXRpbWUgZWFzZS1pbi1vdXQ7XHJcblxyXG4gICY6I3skc2VsZWN0b3J9IHtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZ2xvd2luZy1lZmZlY3QtY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBAbWl4aW5zXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHRyYW5zbGF0ZSBlbGVtZW50cyBpbiAyRFxyXG4vLyAkaG9yaXpvbnRhbDogRGVmYXVsdDogMFxyXG4vLyAkdmVydGljYWw6IERlZmF1bHQ6IDBcclxuQG1peGluIHRyYW5zbGF0ZTJkKCRob3Jpem9udGFsOjAsICR2ZXJ0aWNhbDowKSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGhvcml6b250YWwsJHZlcnRpY2FsKVxyXG59XHJcblxyXG4vLyBAbWl4aW5zXHJcbi8vXHJcbi8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgYWNjZXNzaWJsZS5cclxuLy8gQHNlZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XHJcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgd2lkdGg6IDFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcclxufVxyXG5cclxuLy8gQG1peGluc1xyXG4vL1xyXG4vLyBUdXJucyBvZmYgdGhlIGVsZW1lbnQtaW52aXNpYmxlIGVmZmVjdC5cclxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XHJcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xyXG4gIGhlaWdodDogYXV0bztcclxuICB3aWR0aDogYXV0bztcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICBjbGlwOiBhdXRvO1xyXG59XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgYXMgZGVmYXVsdCBjb2xvcnMgdGhyb3VnaG91dFxyXG4kcHJpbWFyeS1jb2xvcjogIzAwOENCQSAhZGVmYXVsdDsgICAvLyBib25kaS1ibHVlXHJcbiRzZWNvbmRhcnktY29sb3I6ICNlN2U3ZTcgIWRlZmF1bHQ7IC8vIHdoaXRlLWxpbGFjXHJcbiRhbGVydC1jb2xvcjogI2YwNDEyNCAhZGVmYXVsdDsgICAgIC8vIGNpbm5hYmFyXHJcbiRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBICFkZWZhdWx0OyAgIC8vIHNlYS1ncmVlblxyXG4kd2FybmluZy1jb2xvcjogI2YwOGEyNCAhZGVmYXVsdDsgICAvLyBjYXJyb3RcclxuJGluZm8tY29sb3I6ICNhMGQzZTggIWRlZmF1bHQ7ICAgICAgLy8gY29ybmZsb3dlclxyXG5cclxuJHdoaXRlICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xyXG4kZ2hvc3QgICAgICAgICA6ICNGQUZBRkEgIWRlZmF1bHQ7XHJcbiRzbm93ICAgICAgICAgIDogI0Y5RjlGOSAhZGVmYXVsdDtcclxuJHZhcG9yICAgICAgICAgOiAjRjZGNkY2ICFkZWZhdWx0O1xyXG4kd2hpdGUtc21va2UgICA6ICNGNUY1RjUgIWRlZmF1bHQ7XHJcbiRzaWx2ZXIgICAgICAgIDogI0VGRUZFRiAhZGVmYXVsdDtcclxuJHNtb2tlICAgICAgICAgOiAjRUVFRUVFICFkZWZhdWx0O1xyXG4kZ2FpbnNib3JvICAgICA6ICNEREREREQgIWRlZmF1bHQ7XHJcbiRpcm9uICAgICAgICAgIDogI0NDQ0NDQyAhZGVmYXVsdDtcclxuJGJhc2UgICAgICAgICAgOiAjQUFBQUFBICFkZWZhdWx0O1xyXG4kYWx1bWludW0gICAgICA6ICM5OTk5OTkgIWRlZmF1bHQ7XHJcbiRqdW1ibyAgICAgICAgIDogIzg4ODg4OCAhZGVmYXVsdDtcclxuJG1vbnNvb24gICAgICAgOiAjNzc3Nzc3ICFkZWZhdWx0O1xyXG4kc3RlZWwgICAgICAgICA6ICM2NjY2NjYgIWRlZmF1bHQ7XHJcbiRjaGFyY29hbCAgICAgIDogIzU1NTU1NSAhZGVmYXVsdDtcclxuJHR1YXRhcmEgICAgICAgOiAjNDQ0NDQ0ICFkZWZhdWx0O1xyXG4kb2lsICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XHJcbiRqZXQgICAgICAgICAgIDogIzIyMjIyMiAhZGVmYXVsdDtcclxuJGJsYWNrICAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgc3RhY2tzXHJcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuJGZvbnQtZmFtaWx5LXNlcmlmOiBHZW9yZ2lhLCBDYW1icmlhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWYgIWRlZmF1bHQ7XHJcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCB3ZWlnaHRzXHJcbiRmb250LXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcclxuJGZvbnQtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcclxuJGJvZHktYmc6ICNmZmYgIWRlZmF1bHQ7XHJcbiRib2R5LWZvbnQtY29sb3I6ICMyMjIgIWRlZmF1bHQ7XHJcbiRib2R5LWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuJGJvZHktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcbiRib2R5LWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgZm9udC1zbW9vdGhpbmdcclxuJGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgZGlyZWN0aW9uIHNldHRpbmdzXHJcbiR0ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xyXG4kZGVmYXVsdC1mbG9hdDogbGVmdCAhZGVmYXVsdDtcclxuJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQgIWRlZmF1bHQ7XHJcbkBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gbHRyIHtcclxuICAkZGVmYXVsdC1mbG9hdDogbGVmdDtcclxuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcclxufSBAZWxzZSB7XHJcbiAgJGRlZmF1bHQtZmxvYXQ6IHJpZ2h0O1xyXG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XHJcbn1cclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBtYWtlIHN1cmUgYm9yZGVyIHJhZGl1cyBtYXRjaGVzIHVubGVzcyB3ZSB3YW50IGl0IGRpZmZlcmVudC5cclxuJGdsb2JhbC1yYWRpdXM6IDNweCAhZGVmYXVsdDtcclxuJGdsb2JhbC1yb3VuZGVkOiAxMDAwcHggIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBpbnNldCBzaGFkb3cgc2hpbnkgZWRnZXMgYW5kIGRlcHJlc3Npb25zLlxyXG4kc2hpbnktZWRnZS1zaXplOiAwIDFweCAwICFkZWZhdWx0O1xyXG4kc2hpbnktZWRnZS1jb2xvcjogcmdiYSgjZmZmLCAuNSkgIWRlZmF1bHQ7XHJcbiRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvcjogcmdiYSgjMDAwLCAuMikgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IENTUyBjbGFzc2VzIGNvbWUgdGhyb3VnaCBpbiB0aGUgZ2VtIGZpbGVzLlxyXG4kaW5jbHVkZS1odG1sLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XHJcbiRpbmNsdWRlLXByaW50LXN0eWxlczogdHJ1ZSAhZGVmYXVsdDtcclxuJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xyXG5cclxuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcclxuXHJcbi8vIE1lZGlhIFF1ZXJ5IFJhbmdlc1xyXG4kc21hbGwtcmFuZ2U6ICgwZW0sIDQwZW0pICFkZWZhdWx0O1xyXG4kbWVkaXVtLXJhbmdlOiAoNDAuMDYzZW0sIDY0ZW0pICFkZWZhdWx0O1xyXG4kbGFyZ2UtcmFuZ2U6ICg2NC4wNjNlbSwgOTBlbSkgIWRlZmF1bHQ7XHJcbiR4bGFyZ2UtcmFuZ2U6ICg5MC4wNjNlbSwgMTIwZW0pICFkZWZhdWx0O1xyXG4keHhsYXJnZS1yYW5nZTogKDEyMC4wNjNlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XHJcblxyXG5cclxuJHNjcmVlbjogXCJvbmx5IHNjcmVlblwiICFkZWZhdWx0O1xyXG5cclxuJGxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIiAhZGVmYXVsdDtcclxuJHBvcnRyYWl0OiBcIiN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXCIgIWRlZmF1bHQ7XHJcblxyXG4kc21hbGwtdXA6ICRzY3JlZW4gIWRlZmF1bHQ7XHJcbiRzbWFsbC1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XHJcblxyXG4kbWVkaXVtLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XHJcbiRtZWRpdW0tb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIiAhZGVmYXVsdDtcclxuXHJcbiRsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XHJcbiRsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcclxuXHJcbiR4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcclxuJHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xyXG5cclxuJHh4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XHJcbiR4eGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcclxuXHJcbi8vIExlZ2FjeVxyXG4kc21hbGw6ICRtZWRpdW0tdXA7XHJcbiRtZWRpdW06ICRtZWRpdW0tdXA7XHJcbiRsYXJnZTogJGxhcmdlLXVwO1xyXG5cclxuXHJcbi8vV2UgdXNlIHRoaXMgYXMgY3Vyc29ycyB2YWx1ZXMgZm9yIGVuYWJsaW5nIHRoZSBvcHRpb24gb2YgaGF2aW5nIGN1c3RvbSBjdXJzb3JzIGluIHRoZSB3aG9sZSBzaXRlJ3Mgc3R5bGVzaGVldFxyXG4kY3Vyc29yLWF1dG8tdmFsdWU6IGF1dG8gIWRlZmF1bHQ7XHJcbiRjdXJzb3ItY3Jvc3NoYWlyLXZhbHVlOiBjcm9zc2hhaXIgIWRlZmF1bHQ7XHJcbiRjdXJzb3ItZGVmYXVsdC12YWx1ZTogZGVmYXVsdCAhZGVmYXVsdDtcclxuJGN1cnNvci1wb2ludGVyLXZhbHVlOiBwb2ludGVyICFkZWZhdWx0O1xyXG4kY3Vyc29yLWhlbHAtdmFsdWU6IGhlbHAgIWRlZmF1bHQ7XHJcbiRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dCAhZGVmYXVsdDtcclxuXHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKFwiZ2xvYmFsXCIpIHtcclxuXHJcbiAgLy8gTWV0YSBzdHlsZXMgYXJlIGluY2x1ZGVkIGluIGFsbCBidWlsZHMsIGFzIHRoZXkgYXJlIGEgZGVwZW5kYW5jeSBvZiB0aGUgSmF2YXNjcmlwdC5cclxuICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXHJcbiAgLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxyXG5cclxuICBtZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XHJcbiAgICBmb250LWZhbWlseTogXCIve3tWRVJTSU9OfX0vXCI7XHJcbiAgfVxyXG5cclxuICBtZXRhLmZvdW5kYXRpb24tbXEtc21hbGwge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkc21hbGwtdXApICsgXCIvXCI7XHJcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHNtYWxsLXJhbmdlKTtcclxuICB9XHJcblxyXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1tZWRpdW0ge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLXVwKSArIFwiL1wiO1xyXG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLXVwKSArIFwiL1wiO1xyXG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XHJcbiAgfVxyXG5cclxuICBtZXRhLmZvdW5kYXRpb24tbXEteGxhcmdlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHhsYXJnZS11cCkgKyBcIi9cIjtcclxuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKTtcclxuICB9XHJcblxyXG4gIG1ldGEuZm91bmRhdGlvbi1tcS14eGxhcmdlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHh4bGFyZ2UtdXApICsgXCIvXCI7XHJcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgbWV0YS5mb3VuZGF0aW9uLWRhdGEtYXR0cmlidXRlLW5hbWVzcGFjZSB7XHJcbiAgICBmb250LWZhbWlseTogI3skbmFtZXNwYWNlfTtcclxuICB9XHJcblxyXG4gIEBpZiAkaW5jbHVkZS1odG1sLWdsb2JhbC1jbGFzc2VzIHtcclxuXHJcbiAgICAvLyBNdXN0IGJlIDEwMCUgZm9yIG9mZiBjYW52YXMgdG8gd29ya1xyXG4gICAgaHRtbCwgYm9keSB7IGhlaWdodDogMTAwJTsgfVxyXG5cclxuICAgIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXHJcbiAgICAqLFxyXG4gICAgKjpiZWZvcmUsXHJcbiAgICAqOmFmdGVyIHtcclxuICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgIH1cclxuXHJcbiAgICBodG1sLFxyXG4gICAgYm9keSB7IGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplOyB9XHJcblxyXG4gICAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xyXG4gICAgYm9keSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5LWJnO1xyXG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9keS1mb250LXdlaWdodDtcclxuICAgICAgZm9udC1zdHlsZTogJGJvZHktZm9udC1zdHlsZTtcclxuICAgICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0OyAvLyBTZXQgdG8gJGJhc2UtbGluZS1oZWlnaHQgdG8gdGFrZSBvbiBicm93c2VyIGRlZmF1bHQgb2YgMTUwJVxyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGN1cnNvcjogJGN1cnNvci1hdXRvLXZhbHVlO1xyXG4gICAgfVxyXG5cclxuICBhOmhvdmVyIHsgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7IH1cclxuXHJcbiAgICAvLyBHcmlkIERlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XHJcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxyXG5cclxuICAgIGltZyB7IC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cclxuXHJcbiAgICAjbWFwX2NhbnZhcyxcclxuICAgIC5tYXBfY2FudmFzIHtcclxuICAgICAgaW1nLFxyXG4gICAgICBlbWJlZCxcclxuICAgICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBNaXNjZWxsYW5lb3VzIHVzZWZ1bCBIVE1MIGNsYXNzZXNcclxuICAgIC5sZWZ0ICAgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XHJcbiAgICAucmlnaHQgIHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cclxuICAgIC5jbGVhcmZpeCAgICAgeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxyXG4gICAgLmhpZGUgICAgICAgICB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbiAgICAvLyBGb250IHNtb290aGluZ1xyXG4gICAgLy8gQW50aWFsaWFzZWQgZm9udCBzbW9vdGhpbmcgd29ya3MgYmVzdCBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZC5cclxuICAgIC8vIEFwcGx5IHRvIHNpbmdsZSBlbGVtZW50cyBpbnN0ZWFkIG9mIGdsb2JhbGx5IHRvIGJvZHkuXHJcbiAgICAvLyBOb3RlIHRoaXMgb25seSBhcHBsaWVzIHRvIHdlYmtpdC1iYXNlZCBkZXNrdG9wIGJyb3dzZXJzIGFuZCBGaXJlZm94IDI1IChhbmQgbGF0ZXIpIG9uIHRoZSBNYWMuXHJcbiAgICAuYW50aWFsaWFzZWQgeyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxyXG5cclxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcclxuICAgIGltZyB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuXHJcbiAgICAvL1xyXG4gICAgLy8gR2xvYmFsIHJlc2V0cyBmb3IgZm9ybXNcclxuICAgIC8vXHJcblxyXG4gICAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XHJcbiAgICB0ZXh0YXJlYSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNTBweDsgfVxyXG5cclxuICAgIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxyXG4gICAgc2VsZWN0IHsgd2lkdGg6IDEwMCU7IH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcblxyXG4vL1xyXG4vLyBAdmFyaWFibGVzXHJcbi8vXHJcblxyXG4kaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHBhZGRpbmcuXHJcbiRzaWRlLW5hdi1wYWRkaW5nOiByZW0tY2FsYygxNCAwKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxpc3Qgc3R5bGVzLlxyXG4kc2lkZS1uYXYtbGlzdC10eXBlOiBub25lICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtbGlzdC1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcclxuJHNpZGUtbmF2LWxpc3QtbWFyZ2luOiByZW0tY2FsYygwIDAgNyAwKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxpbmsgc3R5bGVzLlxyXG4kc2lkZS1uYXYtbGluay1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRzaWRlLW5hdi1saW5rLWNvbG9yLWFjdGl2ZTogc2NhbGUtY29sb3IoJHNpZGUtbmF2LWxpbmstY29sb3IsICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XHJcbiRzaWRlLW5hdi1saW5rLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkc2lkZS1uYXYtbGluay1jb2xvciwgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcclxuJHNpZGUtbmF2LWxpbmstYmctaG92ZXI6IGhzbGEoMCwgMCwgMCwgMC4wMjUpICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtbGluay1tYXJnaW46IDAgIWRlZmF1bHQ7XHJcbiRzaWRlLW5hdi1saW5rLXBhZGRpbmc6IHJlbS1jYWxjKDcgMTQpICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XHJcbiRzaWRlLW5hdi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJHNpZGUtbmF2LWZvbnQtd2VpZ2h0LWFjdGl2ZTogJHNpZGUtbmF2LWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtZm9udC1mYW1pbHktYWN0aXZlOiAkc2lkZS1uYXYtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkaW5nIHN0eWxlcy5cclxuJHNpZGUtbmF2LWhlYWRpbmctY29sb3I6ICRzaWRlLW5hdi1saW5rLWNvbG9yICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtaGVhZGluZy1mb250LXNpemU6ICRzaWRlLW5hdi1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xyXG4kc2lkZS1uYXYtaGVhZGluZy10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xyXG4kc2lkZS1uYXYtZGl2aWRlci1zaXplOiAxcHggIWRlZmF1bHQ7XHJcbiRzaWRlLW5hdi1kaXZpZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcclxuJHNpZGUtbmF2LWRpdmlkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogMTAlKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vL1xyXG4vLyBAbWl4aW5zXHJcbi8vXHJcblxyXG5cclxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIHNpZGUtbmF2XHJcbi8vXHJcbi8vICRkaXZpZGVyLWNvbG9yIC0gQm9yZGVyIGNvbG9yIG9mIGRpdmlkZXIuIERlZmF1bHQ6ICRzaWRlLW5hdi1kaXZpZGVyLWNvbG9yLlxyXG4vLyAkZm9udC1zaXplIC0gRm9udCBzaXplIG9mIG5hdiBpdGVtcy4gRGVmYXVsdDogJHNpZGUtbmF2LWZvbnQtc2l6ZS5cclxuLy8gJGxpbmstY29sb3IgLSBDb2xvciBvZiBuYXZpZ2F0aW9uIGxpbmtzLiBEZWZhdWx0OiAkc2lkZS1uYXYtbGluay1jb2xvci5cclxuLy8gJGxpbmstY29sb3ItaG92ZXIgLSBDb2xvciBvZiBuYXZpZ2F0aW9uIGxpbmtzIHdoZW4gaG92ZXJlZC4gRGVmYXVsdDogJHNpZGUtbmF2LWxpbmstY29sb3ItaG92ZXIuXHJcbkBtaXhpbiBzaWRlLW5hdihcclxuICAkZGl2aWRlci1jb2xvcjokc2lkZS1uYXYtZGl2aWRlci1jb2xvcixcclxuICAkZm9udC1zaXplOiRzaWRlLW5hdi1mb250LXNpemUsXHJcbiAgJGxpbmstY29sb3I6JHNpZGUtbmF2LWxpbmstY29sb3IsXHJcbiAgJGxpbmstY29sb3ItaG92ZXI6JHNpZGUtbmF2LWxpbmstY29sb3ItaG92ZXIsXHJcbiAgJGxpbmstYmctaG92ZXI6JHNpZGUtbmF2LWxpbmstYmctaG92ZXIpIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogJHNpZGUtbmF2LXBhZGRpbmc7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiAkc2lkZS1uYXYtbGlzdC10eXBlO1xyXG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRzaWRlLW5hdi1saXN0LXBvc2l0aW9uO1xyXG4gIGZvbnQtZmFtaWx5OiAkc2lkZS1uYXYtZm9udC1mYW1pbHk7XHJcblxyXG4gIGxpIHtcclxuICAgIG1hcmdpbjogJHNpZGUtbmF2LWxpc3QtbWFyZ2luO1xyXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRzaWRlLW5hdi1mb250LXdlaWdodDtcclxuXHJcbiAgICBhOm5vdCguYnV0dG9uKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBjb2xvcjogJGxpbmstY29sb3I7XHJcbiAgICAgIG1hcmdpbjogJHNpZGUtbmF2LWxpbmstbWFyZ2luO1xyXG4gICAgICBwYWRkaW5nOiAkc2lkZS1uYXYtbGluay1wYWRkaW5nO1xyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkbGluay1iZy1ob3ZlcjtcclxuICAgICAgICBjb2xvcjogJGxpbmstY29sb3ItaG92ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFjdGl2ZSA+IGE6Zmlyc3QtY2hpbGQ6bm90KC5idXR0b24pIHtcclxuICAgICAgY29sb3I6ICRzaWRlLW5hdi1saW5rLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgZm9udC13ZWlnaHQ6ICRzaWRlLW5hdi1mb250LXdlaWdodC1hY3RpdmU7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAkc2lkZS1uYXYtZm9udC1mYW1pbHktYWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgICYuZGl2aWRlciB7XHJcbiAgICAgIGJvcmRlci10b3A6ICRzaWRlLW5hdi1kaXZpZGVyLXNpemUgJHNpZGUtbmF2LWRpdmlkZXItc3R5bGU7XHJcbiAgICAgIGhlaWdodDogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGRpdmlkZXItY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgJi5oZWFkaW5nIHtcclxuICAgICAgY29sb3I6ICRzaWRlLW5hdi1oZWFkaW5nLWNvbG9yO1xyXG4gICAgICBmb250OiB7XHJcbiAgICAgICAgc2l6ZTogJHNpZGUtbmF2LWhlYWRpbmctZm9udC1zaXplO1xyXG4gICAgICAgIHdlaWdodDogJHNpZGUtbmF2LWhlYWRpbmctZm9udC13ZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGV4dC10cmFuc2Zvcm06ICRzaWRlLW5hdi1oZWFkaW5nLXRleHQtdHJhbnNmb3JtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhcInNpZGUtbmF2XCIpIHtcclxuICBAaWYgJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlcyB7XHJcbiAgICAuc2lkZS1uYXYgeyBAaW5jbHVkZSBzaWRlLW5hdjsgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBpbXBvcnQgXCJnbG9iYWxcIjtcclxuXHJcbi8vXHJcbi8vIEB2YXJpYWJsZXNcclxuLy9cclxuJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcclxuJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xyXG5cclxuJHJvdy13aWR0aDogcmVtLWNhbGMoMTA2OCkgIWRlZmF1bHQ7IC8vaXQgd2FzIHNldCB0byAxMDAwLCBidXQgTmljaydzIGRlc2lnbiBpcyBiYXNlZCBvbiAxMDY4cHhcclxuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xyXG5cclxuJGxhc3QtY2hpbGQtZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb24gIWRlZmF1bHQ7XHJcblxyXG4vL1xyXG4vLyBHcmlkIEZ1bmN0aW9uc1xyXG4vL1xyXG5cclxuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMSwgdXNlIGdyaWQtY2FsYygpXHJcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XHJcbiAgQHdhcm4gXCJncmlkQ2FsYygpIGlzIGRlcHJlY2F0ZWQsIHVzZSBncmlkLWNhbGMoKVwiO1xyXG4gIEByZXR1cm4gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpO1xyXG59XHJcblxyXG4vLyBARlVOQ1RJT05cclxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcclxuLy8gJHRvdGFsQ29sdW1ucyAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcclxuQGZ1bmN0aW9uIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xyXG59XHJcblxyXG4vL1xyXG4vLyBAbWl4aW5zXHJcbi8vXHJcblxyXG4vLyBGb3IgY3JlYXRpbmcgY29udGFpbmVyLCBuZXN0ZWQsIGFuZCBjb2xsYXBzZWQgcm93cy5cclxuLy9cclxuLy9cclxuLy8gJGJlaGF2aW9yIC0gQW55IHNwZWNpYWwgYmVoYXZpb3IgZm9yIHRoaXMgcm93PyBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogbmVzdCwgY29sbGFwc2UsIG5lc3QtY29sbGFwc2UsIGZhbHNlLlxyXG5AbWl4aW4gZ3JpZC1yb3coJGJlaGF2aW9yOiBmYWxzZSkge1xyXG5cclxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdCk7IHRvIGluY2x1ZGUgYSBuZXN0ZWQgcm93XHJcbiAgQGlmICRiZWhhdmlvciA9PSBuZXN0IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xyXG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIG1heC13aWR0aDogbm9uZTtcclxuICB9XHJcblxyXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhjb2xsYXBzZSk7IHRvIGNvbGxhcHNlZCBhIGNvbnRhaW5lciByb3cgbWFyZ2luc1xyXG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBjb2xsYXBzZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcclxuICB9XHJcblxyXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0LWNvbGxhcHNlKTsgdG8gY29sbGFwc2Ugb3V0ZXIgbWFyZ2lucyBvbiBhIG5lc3RlZCByb3dcclxuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gbmVzdC1jb2xsYXBzZSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1heC13aWR0aDogbm9uZTtcclxuICB9XHJcblxyXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdzsgdG8gdXNlIGEgY29udGFpbmVyIHJvd1xyXG4gIEBlbHNlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xyXG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcclxuICB9XHJcblxyXG4gIC8vIENsZWFyZml4IGZvciBhbGwgcm93c1xyXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XHJcbn1cclxuXHJcbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xyXG4vL1xyXG4vLyAkY29sdW1ucyAtIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGlzIHNob3VsZCBiZVxyXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXHJcbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXHJcbi8vICRvZmZzZXQgLSAjIG9mIGNvbHVtbnMgdG8gb2Zmc2V0LiBEZWZhdWx0OiBmYWxzZS5cclxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXHJcbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxyXG4vLyAkY29sbGFwc2UgLSBHZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nIG9uIGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXHJcbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXHJcbkBtaXhpbiBncmlkLWNvbHVtbihcclxuICAkY29sdW1uczpmYWxzZSxcclxuICAkbGFzdC1jb2x1bW46ZmFsc2UsXHJcbiAgJGNlbnRlcjpmYWxzZSxcclxuICAkb2Zmc2V0OmZhbHNlLFxyXG4gICRwdXNoOmZhbHNlLFxyXG4gICRwdWxsOmZhbHNlLFxyXG4gICRjb2xsYXBzZTpmYWxzZSxcclxuICAkZmxvYXQ6dHJ1ZSxcclxuICAkcG9zaXRpb246ZmFsc2UpIHtcclxuXHJcbiAgLy8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXHJcbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxyXG4gIEBpZiAkcG9zaXRpb24gb3IgJHB1c2ggb3IgJHB1bGwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXHJcbiAgQGlmICRjb2xsYXBzZSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gR3V0dGVyIHBhZGRpbmcgd2hlbmV2ZXIgYSBjb2x1bW4gaXNuJ3Qgc2V0IHRvIGNvbGxhcHNlXHJcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxyXG4gIEBlbHNlIGlmICRjb2xsYXBzZSA9PSBmYWxzZSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyIC8gMjtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyIC8gMjtcclxuICB9XHJcblxyXG4gIC8vIElmIGEgY29sdW1uIG51bWJlciBpcyBnaXZlbiwgY2FsY3VsYXRlIHdpZHRoXHJcbiAgQGlmICRjb2x1bW5zIHtcclxuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcclxuXHJcbiAgICAvLyBJZiBsYXN0IGNvbHVtbiwgZmxvYXQgbmF0dXJhbGx5IGluc3RlYWQgb2YgdG8gdGhlIHJpZ2h0XHJcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cclxuICB9XHJcblxyXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxyXG4gIEBpZiAkcHVzaCB7ICN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJHB1c2gsICR0b3RhbC1jb2x1bW5zKTsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bzsgfVxyXG4gIEBpZiAkcHVsbCB7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGdyaWQtY2FsYygkcHVsbCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bzsgfVxyXG5cclxuICBAaWYgJGZsb2F0IHtcclxuICAgIEBpZiAkZmxvYXQgPT0gbGVmdCBvciAkZmxvYXQgPT0gdHJ1ZSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxyXG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cclxuICAgIEBlbHNlIHsgZmxvYXQ6IG5vbmU7IH1cclxuICB9XHJcblxyXG4gIC8vIElmIGNlbnRlcmVkLCBnZXQgcmlkIG9mIGZsb2F0IGFuZCBhZGQgYXBwcm9wcmlhdGUgbWFyZ2luc1xyXG4gIEBpZiAkY2VudGVyIHtcclxuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcclxuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAvLyBJZiBvZmZzZXQsIGNhbGN1bGF0ZSBhcHByb3ByaWF0ZSBtYXJnaW5zXHJcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLy8gQ3JlYXRlIHByZXNlbnRhdGlvbmFsIGNsYXNzZXMgZm9yIGdyaWRcclxuLy9cclxuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cclxuQG1peGluIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplKSB7XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcclxuICAgIC4jeyRzaXplfS1wdXNoLSN7JGl9IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgLiN7JHNpemV9LXB1bGwtI3skaX0ge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sdW1uLFxyXG4gIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6ZmFsc2UsICRwb3NpdGlvbjp0cnVlKTsgfVxyXG5cclxuXHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XHJcbiAgICAuI3skc2l6ZX0tI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokaSwkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcclxuICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkb2Zmc2V0OiRpLCAkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XHJcbiAgfVxyXG4gIC4jeyRzaXplfS1yZXNldC1vcmRlciB7XHJcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XHJcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICByaWdodDogYXV0bztcclxuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcclxuICB9XHJcblxyXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQsXHJcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY2VudGVyOnRydWUsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpOyB9XHJcblxyXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZCxcclxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkIHtcclxuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcclxuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xyXG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xyXG4gIH1cclxuXHJcbiAgLy8gRmlnaHRpbmcgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZFxyXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcclxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxke1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAvLyBGaWdodGluZyAuY29sdW1uLjxwcmV2aW91cy1zaXplPi1jZW50ZXJlZDpsYXN0LWNoaWxkXHJcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXHJcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcclxuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcclxuICB9XHJcblxyXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSxcclxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcclxuICAgIGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xyXG4gIEBpZiAkaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlcyB7XHJcbiAgICAucm93IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XHJcblxyXG4gICAgICAmLmNvbGxhcHNlIHtcclxuICAgICAgICAgPiAuY29sdW1uLFxyXG4gICAgICAgICA+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cclxuXHJcbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxyXG4gICAgICB9XHJcblxyXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xyXG4gICAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdC1jb2xsYXBzZSk7IH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb2x1bW4sXHJcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxyXG5cclxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQgeyBmbG9hdDogbGVmdCB9XHJcbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXS5lbmQgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtKTtcclxuICAgICAgLy8gT2xkIHB1c2ggYW5kIHB1bGwgY2xhc3Nlc1xyXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XHJcbiAgICAgICAgLnB1c2gtI3skaX0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucHVsbC0jeyRpfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcclxuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UpO1xyXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XHJcbiAgICAgICAgLnB1c2gtI3skaX0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucHVsbC0jeyRpfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XHJcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XHJcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnhsYXJnZSk7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xyXG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4eGxhcmdlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcblxyXG4vL1xyXG4vLyBAdmFyaWFibGVzXHJcbi8vXHJcbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zLlxyXG4kYnV0dG9uLXRueTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xyXG4kYnV0dG9uLXNtbDogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xyXG4kYnV0dG9uLW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGlzcGxheSBwcm9wZXJ0eS5cclxuJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWRlZmF1bHQ7XHJcbiRidXR0b24tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxyXG4kYnV0dG9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiRidXR0b24tZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XHJcbiRidXR0b24tZm9udC10bnk6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LXNtbDogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xyXG4kYnV0dG9uLWZvbnQtbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XHJcbiRidXR0b24tZm9udC1scmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGhvdmVyIGVmZmVjdHMuXHJcbiRidXR0b24tZnVuY3Rpb24tZmFjdG9yOiAtMjAlICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuXHJcbiRidXR0b24tYm9yZGVyLXdpZHRoOiAwcHggIWRlZmF1bHQ7XHJcbiRidXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1iZy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1ib3JkZXItY29sb3I6ICRidXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XHJcbiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XHJcbiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XHJcbiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Y2Nlc3MtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcclxuJHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcjogJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xyXG4kYWxlcnQtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYWxlcnQtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcclxuJGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRhbGVydC1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XHJcbiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHdhcm5pbmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcclxuJHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcjogJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xyXG4kaW5mby1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRpbmZvLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XHJcbiRpbmZvLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRpbmZvLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcbiRidXR0b24tcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHNldCBkZWZhdWx0IG9wYWNpdHkgYW5kIGN1cnNvciBmb3IgZGlzYWJsZWQgYnV0dG9ucy5cclxuJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XHJcbiRidXR0b24tZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWUgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy9cclxuLy8gQE1JWElOXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYnV0dG9uIGJhc2UuXHJcbi8vXHJcbi8vICRzdHlsZSAtIFNldHMgYmFzZSBzdHlsZXMuIENhbiBiZSBzZXQgdG8gZmFsc2UuIERlZmF1bHQ6IHRydWUuXHJcbi8vICRkaXNwbGF5IC0gVXNlZCB0byBjb250cm9sIGRpc3BsYXkgcHJvcGVydHkuIERlZmF1bHQ6ICRidXR0b24tZGlzcGxheSB8fCBpbmxpbmUtYmxvY2tcclxuXHJcbkBtaXhpbiBidXR0b24tYmFzZSgkc3R5bGU6dHJ1ZSwgJGRpc3BsYXk6JGJ1dHRvbi1kaXNwbGF5KSB7XHJcbiAgQGlmICRzdHlsZSB7XHJcbiAgICBib3JkZXItc3R5bGU6ICRidXR0b24tYm9yZGVyLXN0eWxlO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWJvcmRlci13aWR0aDtcclxuICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xyXG4gICAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgICBtYXJnaW46IDAgMCAkYnV0dG9uLW1hcmdpbi1ib3R0b207XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0ZXh0LWFsaWduOiAkYnV0dG9uLWZvbnQtYWxpZ247XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6MDtcclxuICB9XHJcbiAgQGlmICRkaXNwbGF5IHsgZGlzcGxheTogJGRpc3BsYXk7IH1cclxufVxyXG5cclxuLy8gQE1JWElOXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gc2l6ZSBzdHlsZXNcclxuLy9cclxuLy8gJHBhZGRpbmcgLSBVc2VkIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMgRGVmYXVsdDogJGJ1dHRvbi1tZWQgfHw9IHJlbS1jYWxjKDEyKVxyXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aCAtIERlZmF1bHQ6IGZhbHNlXHJcblxyXG5AbWl4aW4gYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRmdWxsLXdpZHRoOmZhbHNlKSB7XHJcblxyXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggcGFkZGluZyBzdHlsZXMgY29tZSB0aHJvdWdoLFxyXG4gIC8vIHRoZXNlIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgJHBhZGRpbmc6ZmFsc2VcclxuICBAaWYgJHBhZGRpbmcge1xyXG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xyXG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcGFkZGluZyAqIDI7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcclxuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICRwYWRkaW5nICogMjtcclxuXHJcbiAgICAvLyBXZSBjb250cm9sIHRoZSBmb250LXNpemUgYmFzZWQgb24gbWl4aW4gaW5wdXQuXHJcbiAgICBAaWYgICAgICAkcGFkZGluZyA9PSAkYnV0dG9uLW1lZCB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LW1lZDsgfVxyXG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi10bnkgeyBmb250LXNpemU6ICRidXR0b24tZm9udC10bnk7IH1cclxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tc21sIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc21sOyB9XHJcbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLWxyZyB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LWxyZzsgfVxyXG4gIH1cclxuXHJcbiAgLy8gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoLlxyXG4gIEBpZiAkZnVsbC13aWR0aCB7XHJcbiAgICAvLyBXZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGlmICRwYWRkaW5nIGlzIHNldC5cclxuICAgIEBpZiAkcGFkZGluZyB7XHJcbiAgICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcclxuICAgIH0gQGVsc2UgaWYgJHBhZGRpbmcgPT0gZmFsc2Uge1xyXG4gICAgICBwYWRkaW5nLXRvcDowO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTowO1xyXG4gICAgfVxyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQE1JWElOXHJcbi8vXHJcbi8vIHdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgYnV0dG9uIGhvdmVyIGFuZCBib3JkZXIgY29sb3JzXHJcblxyXG4vLyBATUlYSU5cclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGJ1dHRvbiBjb2xvciBzdHlsZXNcclxuLy9cclxuLy8gJGJnIC0gUHJpbWFyeSBjb2xvciBzZXQgaW4gc2V0dGluZ3MgZmlsZS4gRGVmYXVsdDogJGJ1dHRvbi1iZy5cclxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiB0cnVlXHJcbi8vICRkaXNhYmxlZCAtIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLiBEZWZhdWx0OiBmYWxzZVxyXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQmFja2dyb3VuZCBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1iZy1ob3ZlclxyXG4vLyAkYm9yZGVyLWNvbG9yIC0gQnV0dG9uIEJvcmRlciBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1ib3JkZXItY29sb3JcclxuQG1peGluIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGRpc2FibGVkOmZhbHNlLCAkYmctaG92ZXI6bnVsbCwgJGJvcmRlci1jb2xvcjpudWxsKSB7XHJcblxyXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBzdHlsZXMgYXJlIHVzZWQsXHJcbiAgLy8gdGhlc2UgY2FuIGJlIHJlbW92ZWQgYnkgc2V0dGluZyAkYmc6ZmFsc2VcclxuICBAaWYgJGJnIHtcclxuXHJcbiAgICBAaWYgJGJnLWhvdmVyID09IG51bGwge1xyXG4gICAgICAkYmctaG92ZXI6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJnLWhvdmVyLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRib3JkZXItY29sb3IgPT0gbnVsbCB7XHJcbiAgICAgICRib3JkZXItY29sb3I6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJvcmRlci1jb2xvciwgc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgZmluZCB0aGUgbGlnaHRuZXNzIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXHJcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcclxuICAgICRiZy1ob3Zlci1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmctaG92ZXIpO1xyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcclxuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjogJGJnLWhvdmVyOyB9XHJcblxyXG4gICAgLy8gV2UgY29udHJvbCB0aGUgdGV4dCBjb2xvciBmb3IgeW91IGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxyXG4gICAgY29sb3I6IGlmKCRiZy1saWdodG5lc3MgPiA3MCUsICRidXR0b24tZm9udC1jb2xvci1hbHQsICRidXR0b24tZm9udC1jb2xvcik7XHJcblxyXG4gICAgJjpob3ZlcixcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogaWYoJGJnLWhvdmVyLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLlxyXG4gIEBpZiAkZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjtcclxuICAgIG9wYWNpdHk6ICRidXR0b24tZGlzYWJsZWQtb3BhY2l0eTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxyXG4gIH1cclxuXHJcbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggYnV0dG9uIHJhZGl1cyBpcyB1c2VkLlxyXG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJGJ1dHRvbi1yYWRpdXMpOyB9XHJcbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxyXG5cclxufVxyXG5cclxuLy8gQE1JWElOXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGJ1dHRvbnMgd2l0aCBhIHNpbmdsZSBtaXhpbi4gQXMgQGphcmVkaGFyZHkgcHV0cyBpdCwgXCJ0aGUga2l0Y2hlbiBzaW5rIG1peGluXCJcclxuLy9cclxuLy8gJHBhZGRpbmcgLSBVc2VkIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMgRGVmYXVsdDogJGJ1dHRvbi1tZWQgfHw9IHJlbS1jYWxjKDEyKVxyXG4vLyAkYmcgLSBQcmltYXJ5IGNvbG9yIHNldCBpbiBzZXR0aW5ncyBmaWxlLiBEZWZhdWx0OiAkYnV0dG9uLWJnLlxyXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6ZmFsc2UuXHJcbi8vICRmdWxsLXdpZHRoIC0gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoLiBEZWZhdWx0OmZhbHNlLlxyXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDpmYWxzZS5cclxuLy8gJGlzLWlucHV0IC0gPGlucHV0PidzIGFuZCA8YnV0dG9uPidzIHRha2Ugb24gc3RyYW5nZSBwYWRkaW5nLiBXZSBhZGRlZCB0aGlzIHRvIGhlbHAgZml4IHRoYXQuIERlZmF1bHQ6ZmFsc2UuXHJcbi8vICRpcy1wcmVmaXggLSBOb3QgdXNlZD8gRGVmYXVsdDpmYWxzZS5cclxuLy8gJGJnLWhvdmVyIC0gQnV0dG9uIEhvdmVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxyXG4vLyAkYm9yZGVyLWNvbG9yIC0gQnV0dG9uIEJvcmRlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cclxuLy8gJHRyYW5zaXRpb24gLSBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zaXRpb24gcHJvcGVydHkgLSBEZWZhdWx0OnRydWUuXHJcbkBtaXhpbiBidXR0b24oJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSwgJGRpc2FibGVkOmZhbHNlLCAkaXMtaW5wdXQ6ZmFsc2UsICRpcy1wcmVmaXg6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwsICR0cmFuc2l0aW9uOiB0cnVlKSB7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmcsICRmdWxsLXdpZHRoKTtcclxuICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnLCAkcmFkaXVzLCAkZGlzYWJsZWQsICRiZy1ob3ZlciwgJGJvcmRlci1jb2xvcik7XHJcblxyXG4gIEBpZiAkdHJhbnNpdGlvbiB7XHJcbiAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKFwiYnV0dG9uXCIpIHtcclxuICBAaWYgJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlcyB7XHJcblxyXG4gICAgLy8gRGVmYXVsdCBzdHlsZXMgYXBwbGllZCBvdXRzaWRlIG9mIG1lZGlhIHF1ZXJ5XHJcbiAgICBidXR0b24sIC5idXR0b24ge1xyXG4gICAgICBAaW5jbHVkZSBidXR0b24tYmFzZTtcclxuICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemU7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xyXG5cclxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XHJcbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvciwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxyXG4gICAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cclxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XHJcbiAgICAgICYuaW5mbyAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxyXG5cclxuICAgICAgJi5sYXJnZSAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLWxyZyk7IH1cclxuICAgICAgJi5zbWFsbCAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7IH1cclxuICAgICAgJi50aW55ICAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXRueSk7IH1cclxuICAgICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpudWxsLCRmdWxsLXdpZHRoOnRydWUpOyB9XHJcblxyXG4gICAgICAmLmxlZnQtYWxpZ24gIHsgdGV4dC1hbGlnbjogbGVmdDsgdGV4dC1pbmRlbnQ6IHJlbS1jYWxjKDEyKTsgfVxyXG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxyXG5cclxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOmZhbHNlLCAkcmFkaXVzOnRydWUpOyB9XHJcbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxyXG5cclxuICAgICAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRidXR0b24tYmctY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYnV0dG9uLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxyXG4gICAgICAgICYuc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XHJcbiAgICAgICAgJi5hbGVydCB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRhbGVydC1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XHJcbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cclxuICAgICAgICAmLmluZm8geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRpbmZvLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9maXJlZm94IDJweCBmaXhcclxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICBidXR0b24sIC5idXR0b24ge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1iYXNlKCRzdHlsZTpmYWxzZSwgJGRpc3BsYXk6aW5saW5lLWJsb2NrKTtcclxuICAgICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuQGltcG9ydCBcImdsb2JhbFwiO1xyXG5AaW1wb3J0IFwiZ3JpZFwiO1xyXG5AaW1wb3J0IFwiYnV0dG9uc1wiO1xyXG5cclxuLy9cclxuLy8gVG9wIEJhciBWYXJpYWJsZXNcclxuLy9cclxuJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcclxuXHJcbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyXHJcbiR0b3BiYXItYmctY29sb3I6ICRvaWwgIWRlZmF1bHQ7XHJcbiR0b3BiYXItYmc6ICR0b3BiYXItYmctY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLyBIZWlnaHQgYW5kIG1hcmdpblxyXG4kdG9wYmFyLWhlaWdodDogNDVweCAhZGVmYXVsdDtcclxuJHRvcGJhci1tYXJnaW4tYm90dG9tOiAwICFkZWZhdWx0O1xyXG5cclxuLy8gQ29udHJvbGxpbmcgdGhlIHN0eWxlcyBmb3IgdGhlIHRpdGxlIGluIHRoZSB0b3AgYmFyXHJcbiR0b3BiYXItdGl0bGUtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG4kdG9wYmFyLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xyXG5cclxuLy8gU3R5bGUgdGhlIHRvcCBiYXIgZHJvcGRvd24gZWxlbWVudHNcclxuJHRvcGJhci1kcm9wZG93bi1iZzogJG9pbCAhZGVmYXVsdDtcclxuJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiR0b3BiYXItZHJvcGRvd24tbGluay1iZzogJG9pbCAhZGVmYXVsdDtcclxuJHRvcGJhci1kcm9wZG93bi1saW5rLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZTogNXB4ICFkZWZhdWx0O1xyXG4kdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYTogMC40ICFkZWZhdWx0O1xyXG5cclxuLy8gU2V0IHRoZSBsaW5rIGNvbG9ycyBhbmQgc3R5bGVzIGZvciB0b3AtbGV2ZWwgbmF2XHJcbiR0b3BiYXItbGluay1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdG9wYmFyLWxpbmstY29sb3ItaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xyXG4kdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbGluay1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcclxuJHRvcGJhci1saW5rLWhvdmVyLWxpZ2h0bmVzczogLTEwJSAhZGVmYXVsdDsgLy8gRGFya2VuIGJ5IDEwJVxyXG4kdG9wYmFyLWxpbmstYmc6ICR0b3BiYXItYmcgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbGluay1iZy1ob3ZlcjogIzI3MjcyNyAhZGVmYXVsdDtcclxuJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyOiAkY2hhcmNvYWwgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbGluay1iZy1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG4kdG9wYmFyLWxpbmstYmctYWN0aXZlLWhvdmVyOiBzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbGluay1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcclxuJHRvcGJhci1saW5rLXBhZGRpbmc6ICR0b3BiYXItaGVpZ2h0IC8gMyAhZGVmYXVsdDtcclxuJHRvcGJhci1iYWNrLWxpbmstc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xyXG4kdG9wYmFyLWxpbmstZHJvcGRvd24tcGFkZGluZzogMjBweDtcclxuJHRvcGJhci1idXR0b24tZm9udC1zaXplOiAwLjc1cmVtICFkZWZhdWx0O1xyXG4kdG9wYmFyLWJ1dHRvbi10b3A6IDdweCAhZGVmYXVsdDtcclxuXHJcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtY29sb3I6ICRtb25zb29uICFkZWZhdWx0O1xyXG4kdG9wYmFyLWRyb3Bkb3duLWxhYmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XHJcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG4kdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xyXG4kdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWJnOiAkb2lsICFkZWZhdWx0O1xyXG5cclxuLy8gVG9wIG1lbnUgaWNvbiBzdHlsZXNcclxuJHRvcGJhci1tZW51LWxpbmstdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XHJcbiR0b3BiYXItbWVudS1saW5rLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xyXG4kdG9wYmFyLW1lbnUtbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG4kdG9wYmFyLW1lbnUtbGluay1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdG9wYmFyLW1lbnUtaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdG9wYmFyLW1lbnUtbGluay1jb2xvci10b2dnbGVkOiAkanVtYm8gIWRlZmF1bHQ7XHJcbiR0b3BiYXItbWVudS1pY29uLWNvbG9yLXRvZ2dsZWQ6ICRqdW1ibyAhZGVmYXVsdDtcclxuXHJcbi8vIFRyYW5zaXRpb25zIGFuZCBicmVha3BvaW50IHN0eWxlc1xyXG4kdG9wYmFyLXRyYW5zaXRpb24tc3BlZWQ6IDMwMG1zICFkZWZhdWx0O1xyXG4vLyBVc2luZyByZW0tY2FsYyBmb3IgdGhlIGJlbG93IGJyZWFrcG9pbnQgY2F1c2VzIGlzc3VlcyB3aXRoIHRvcCBiYXJcclxuJHRvcGJhci1icmVha3BvaW50OiAje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSAhZGVmYXVsdDsgLy8gQ2hhbmdlIHRvIDk5OTlweCBmb3IgYWx3YXlzIG1vYmlsZSBsYXlvdXRcclxuJHRvcGJhci1tZWRpYS1xdWVyeTogJG1lZGl1bS11cCAhZGVmYXVsdDtcclxuXHJcbi8vIERpdmlkZXIgU3R5bGVzXHJcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItYm90dG9tOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogMTMlKSAhZGVmYXVsdDtcclxuJHRvcGJhci1kaXZpZGVyLWJvcmRlci10b3A6IHNvbGlkIDFweCBzY2FsZS1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKSAhZGVmYXVsdDtcclxuXHJcbi8vIFN0aWNreSBDbGFzc1xyXG4kdG9wYmFyLXN0aWNreS1jbGFzczogXCIuc3RpY2t5XCIgIWRlZmF1bHQ7XHJcbiR0b3BiYXItYXJyb3dzOiB0cnVlICFkZWZhdWx0OyAvL1NldCBmYWxzZSB0byByZW1vdmUgdGhlIHRyaWFuZ2xlIGljb24gZnJvbSB0aGUgbWVudSBpdGVtXHJcblxyXG4vLyBBY2Nlc3NpYmlsaXR5IG1peGlucyBmb3IgaGlkaW5nIGFuZCBzaG93aW5nIHRoZSBtZW51IGRyb3Bkb3duIGl0ZW1zXHJcbkBtaXhpbiB0b3BiYXItaGlkZS1kcm9wZG93biB7XHJcbiAgLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4gYnkgZGVmYXVsdCwgYnV0IHZpc2libGUgd2hlbiBmb2N1c2VkLlxyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlKCk7XHJcbn1cclxuXHJcbkBtaXhpbiB0b3BiYXItc2hvdy1kcm9wZG93biB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmKCk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IC8vIFJlc2V0IHRoZSBwb3NpdGlvbiBmcm9tIHN0YXRpYyB0byBhYnNvbHV0ZVxyXG59XHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKFwidG9wLWJhclwiKSB7XHJcblxyXG4gIEBpZiAkaW5jbHVkZS1odG1sLXRvcC1iYXItY2xhc3NlcyB7XHJcblxyXG4gICAgLy8gVXNlZCB0byBwcm92aWRlIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmb3IgamF2YXNjcmlwdCBjb21wb25lbnRzLlxyXG4gICAgLy8gVGhpcyBjbGFzcyBpcyBnZW5lcmF0ZWQgZGVzcGl0ZSB0aGUgdmFsdWUgb2YgJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXNcclxuICAgIC8vIHRvIGVuc3VyZSB3aWR0aCBjYWxjdWxhdGlvbnMgd29yayBjb3JyZWN0bHkuXHJcbiAgICBtZXRhLmZvdW5kYXRpb24tbXEtdG9wYmFyIHtcclxuICAgICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkdG9wYmFyLW1lZGlhLXF1ZXJ5KSArIFwiL1wiO1xyXG4gICAgICB3aWR0aDogJHRvcGJhci1icmVha3BvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFdyYXBwZWQgYXJvdW5kIC50b3AtYmFyIHRvIGNvbnRhaW4gdG8gZ3JpZCB3aWR0aCAqL1xyXG4gICAgLmNvbnRhaW4tdG8tZ3JpZCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnO1xyXG5cclxuICAgICAgLnRvcC1iYXIgeyBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207IH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBXcmFwcGVkIGFyb3VuZCAudG9wLWJhciB0byBtYWtlIGl0IHN0aWNrIHRvIHRoZSB0b3BcclxuICAgIC5maXhlZCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHotaW5kZXg6IDk5O1xyXG5cclxuICAgICAgJi5leHBhbmRlZDpub3QoLnRvcC1iYXIpIHtcclxuICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgICAgIC50aXRsZS1hcmVhIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgei1pbmRleDogOTk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEVuc3VyZSB5b3UgY2FuIHNjcm9sbCB0aGUgbWVudSBvbiBzbWFsbCBzY3JlZW5zXHJcbiAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICAgICB6LWluZGV4OiA5ODtcclxuICAgICAgICAgIG1hcmdpbi10b3A6ICR0b3BiYXItaGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50b3AtYmFyIHtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcclxuICAgICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICR0b3BiYXItbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgICAgIC8vIFRvcGJhciBHbG9iYWwgbGlzdCBTdHlsZXNcclxuICAgICAgdWwge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJvdyB7IG1heC13aWR0aDogbm9uZTsgfVxyXG5cclxuICAgICAgZm9ybSxcclxuICAgICAgaW5wdXQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XHJcblxyXG4gICAgICBpbnB1dCB7IGhlaWdodDogMS44cmVtOyBwYWRkaW5nLXRvcDogLjM1cmVtOyBwYWRkaW5nLWJvdHRvbTogLjM1cmVtOyBmb250LXNpemU6ICR0b3BiYXItYnV0dG9uLWZvbnQtc2l6ZTsgfVxyXG5cclxuICAgICAgLmJ1dHRvbiwgYnV0dG9uIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtICsgcmVtLWNhbGMoMSk7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4zNXJlbSArIHJlbS1jYWxjKDEpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyLWJ1dHRvbi1mb250LXNpemU7XHJcbiAgICAgICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAvLyB0b3A6IC0xcHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gQ29ycmVjdHMgYSBzbGlnaHQgbWlzYWxpZ25tZW50IHdoZW4gcHV0IG5leHQgdG8gYW4gaW5wdXQgZmllbGRcclxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgdG9wOiAtMXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVGl0bGUgQXJlYVxyXG4gICAgICAudGl0bGUtYXJlYSB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm5hbWUge1xyXG4gICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJHJlbS1iYXNlO1xyXG5cclxuICAgICAgICBoMSB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XHJcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItdGl0bGUtZm9udC1zaXplO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLXRpdGxlLXdlaWdodDtcclxuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvcjtcclxuICAgICAgICAgICAgd2lkdGg6IDc1JTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBNZW51IHRvZ2dsZSBidXR0b24gb24gc21hbGwgZGV2aWNlc1xyXG4gICAgICAudG9nZ2xlLXRvcGJhciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XHJcbiAgICAgICAgdG9wOiAwO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3I7XHJcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHRvcGJhci1tZW51LWxpbmstdHJhbnNmb3JtO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyLW1lbnUtbGluay1mb250LXNpemU7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogJHRvcGJhci1tZW51LWxpbmstd2VpZ2h0O1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nO1xyXG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFkZGluZyB0aGUgY2xhc3MgXCJtZW51LWljb25cIiB3aWxsIGFkZCB0aGUgMy1saW5lIGljb24gcGVvcGxlIGxvdmUgYW5kIGFkb3JlLlxyXG4gICAgICAgICYubWVudS1pY29uIHtcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XHJcblxyXG4gICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcclxuICAgICAgICAgICAgICB0ZXh0LWluZGVudDogLTU4cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaGVpZ2h0OiAzNHB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzNweDtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZysyNSAwICR0b3BiYXItbGluay1wYWRkaW5nO1xyXG4gICAgICAgICAgICBjb2xvcjogJHRvcGJhci1tZW51LWxpbmstY29sb3I7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICYge1xyXG4gICAgICAgICAgICAgIC8vIEBpbmNsdWRlIGhhbWJ1cmdlciBpY29uXHJcbiAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAvLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIGljb24gd2l0aCB0aHJlZSBsaW5lcyBha2EgdGhlIGhhbWJ1cmdlciBpY29uLCB0aGUgbWVudS1pY29uIG9yIHRoZSBuYXZpY29uXHJcbiAgICAgICAgICAgICAgLy8gJHdpZHRoIC0gV2lkdGggb2YgaGFtYnVyZ2VyIGljb25cclxuICAgICAgICAgICAgICAvLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxyXG4gICAgICAgICAgICAgIC8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXHJcbiAgICAgICAgICAgICAgLy8gJHRoaWNrbmVzcyAtIHRoaWNrbmVzcyBvZiBsaW5lcyBpbiBoYW1idXJnZXIgaWNvbiwgc2V0IHZhbHVlIGluIHB4XHJcbiAgICAgICAgICAgICAgLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxyXG4gICAgICAgICAgICAgIC8vICRjb2xvciAtIGljb24gY29sb3JcclxuICAgICAgICAgICAgICAvLyAkaG92ZXItY29sb3IgLSBpY29uIGNvbG9yIGR1cmluZyBob3ZlciwgaGVyZSBpdCBpcyBzZXQgdGhlIHNhbWUgYXMgJGNvbG9yIGJlY2F1c2UgdGhlIHZhbHVlcyBhcmUgY2hhbmdlZCBvbiBsaW5lIDI2NFxyXG4gICAgICAgICAgICAgIC8vICRvZmZjYW52YXMgLSBTZXQgdG8gZmFsc2Ugb2YgQGluY2x1ZGUgaW4gdG9wYmFyXHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgaGFtYnVyZ2VyKDE2cHgsIGZhbHNlLCAwLCAxcHgsIDZweCwgJHRvcGJhci1tZW51LWljb24tY29sb3IsICR0b3BiYXItbWVudS1pY29uLWNvbG9yLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIENoYW5nZSB0aGluZ3MgdXAgd2hlbiB0aGUgdG9wLWJhciBpcyBleHBhbmRlZFxyXG4gICAgICAmLmV4cGFuZGVkIHtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgICAgIC50aXRsZS1hcmVhIHsgYmFja2dyb3VuZDogJHRvcGJhci1iZzsgfVxyXG5cclxuICAgICAgICAudG9nZ2xlLXRvcGJhciB7XHJcbiAgICAgICAgICBhIHsgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yLXRvZ2dsZWQ7XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAvLyBTaGgsIGRvbid0IHRlbGwsIGJ1dCBib3gtc2hhZG93cyBjcmVhdGUgdGhlIG1lbnUgaWNvbiA6KVxyXG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAwIDFweCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvci10b2dnbGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDAgMTZweCAwIDFweCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvci10b2dnbGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDAgMjJweCAwIDFweCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvci10b2dnbGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmlnaHQgYW5kIExlZnQgTmF2aWdhdGlvbiB0aGF0IHN0YWNrZWQgYnkgZGVmYXVsdFxyXG4gICAgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbigkZGVmYXVsdC1mbG9hdCwgJHRvcGJhci10cmFuc2l0aW9uLXNwZWVkKTtcclxuXHJcbiAgICAgIHVsIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6ICRyZW0tYmFzZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5kaXZpZGVyLFxyXG4gICAgICBbcm9sZT1cInNlcGFyYXRvclwiXSB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogJHRvcGJhci1kaXZpZGVyLWJvcmRlci10b3A7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHVsIGxpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWRyb3Bkb3duLWJnO1xyXG4gICAgICAgICYgPiBhIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xyXG4gICAgICAgICAgcGFkZGluZzogMTJweCAwIDEycHggMDtcclxuICAgICAgICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICR0b3BiYXItbGluay1wYWRkaW5nO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR0b3BiYXItbGluay1mb250LWZhbWlseTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1saW5rLWZvbnQtc2l6ZTtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLWxpbmstd2VpZ2h0O1xyXG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTtcclxuXHJcblxyXG4gICAgICAgICAgJi5idXR0b24ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItbGluay1mb250LXNpemU7XHJcbiAgICAgICAgICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XHJcbiAgICAgICAgICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICR0b3BiYXItbGluay1wYWRkaW5nO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRwcmltYXJ5LWNvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICYuYnV0dG9uLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvcik7IH1cclxuICAgICAgICAgICYuYnV0dG9uLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yKTsgfVxyXG4gICAgICAgICAgJi5idXR0b24uYWxlcnQgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvcik7IH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgID4gYnV0dG9uIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1saW5rLWZvbnQtc2l6ZTtcclxuICAgICAgICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XHJcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkdG9wYmFyLWxpbmstcGFkZGluZztcclxuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpO1xyXG5cclxuICAgICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc2Vjb25kYXJ5LWNvbG9yKTsgfVxyXG4gICAgICAgICAgJi5zdWNjZXNzIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvcik7IH1cclxuICAgICAgICAgICYuYWxlcnQgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvcik7IH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFwcGx5IHRoZSBob3ZlciBsaW5rIGNvbG9yIHdoZW4gaXQgaGFzIHRoYXQgY2xhc3NcclxuICAgICAgICAmOmhvdmVyOm5vdCguaGFzLWZvcm0pID4gYSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XHJcbiAgICAgICAgICBAaWYgKCR0b3BiYXItbGluay1iZy1ob3Zlcikge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctaG92ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFwcGx5IHRoZSBhY3RpdmUgbGluayBjb2xvciB3aGVuIGl0IGhhcyB0aGF0IGNsYXNzXHJcbiAgICAgICAgJi5hY3RpdmUgPiBhIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1hY3RpdmU7XHJcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZS1ob3ZlcjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlLWhvdmVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQWRkIHNvbWUgZXh0cmEgcGFkZGluZyBmb3IgbGlzdCBpdGVtcyBjb250YWlucyBidXR0b25zXHJcbiAgICAgIC5oYXMtZm9ybSB7IHBhZGRpbmc6ICR0b3BiYXItbGluay1wYWRkaW5nOyB9XHJcblxyXG4gICAgICAvLyBTdHlsaW5nIGZvciBsaXN0IGl0ZW1zIHRoYXQgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiB0aGVtLlxyXG4gICAgICAuaGFzLWRyb3Bkb3duIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICYgPiBhIHtcclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBAaWYgKCR0b3BiYXItYXJyb3dzKXtcclxuICAgICAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZSwgcmdiYSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1jb2xvciwgJHRvcGJhci1kcm9wZG93bi10b2dnbGUtYWxwaGEpLCAkZGVmYXVsdC1mbG9hdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemUgLyAyKSAtIDI7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm1vdmVkIHsgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICAgICYgPiAuZHJvcGRvd24ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0b3BiYXItc2hvdy1kcm9wZG93bigpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICYgPiBhOmFmdGVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFN0eWxpbmcgZWxlbWVudHMgaW5zaWRlIG9mIGRyb3Bkb3duc1xyXG4gICAgICAuZHJvcGRvd24ge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAxMDAlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICB6LWluZGV4OiA5OTtcclxuICAgICAgICBAaW5jbHVkZSB0b3BiYXItaGlkZS1kcm9wZG93bigpO1xyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGhlaWdodDogYXV0bztcclxuXHJcbiAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItZHJvcGRvd24tbGluay13ZWlnaHQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAkdG9wYmFyLWxpbmstcGFkZGluZztcclxuICAgICAgICAgICAgJi5wYXJlbnQtbGluayB7XHJcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLnRpdGxlIGg1LCAmLnBhcmVudC1saW5rIHtcclxuICAgICAgICAgICAgLy8gQmFjayBCdXR0b25cclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyLWJhY2stbGluay1zaXplO1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xyXG4gICAgICAgICAgICAgIC8vIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6bm9uZTsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLmhhcy1mb3JtIHsgcGFkZGluZzogOHB4ICR0b3BiYXItbGluay1wYWRkaW5nOyB9XHJcbiAgICAgICAgICAuYnV0dG9uLCBidXR0b24geyB0b3A6IGF1dG87IH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDhweCAkdG9wYmFyLWxpbmstcGFkZGluZyAycHg7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0b3BiYXItZHJvcGRvd24tbGFiZWwtdGV4dC10cmFuc2Zvcm07XHJcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1sYWJlbC1jb2xvcjtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtd2VpZ2h0O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtc2l6ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuanMtZ2VuZXJhdGVkIHsgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcblxyXG4gICAgLy8gVG9wIEJhciBzdHlsZXMgaW50ZW5kZWQgZm9yIHNjcmVlbiBzaXplcyBhYm92ZSB0aGUgYnJlYWtwb2ludC5cclxuICAgIEBtZWRpYSAjeyR0b3BiYXItbWVkaWEtcXVlcnl9IHtcclxuICAgICAgLnRvcC1iYXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XHJcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gICAgICAgIC50b2dnbGUtdG9wYmFyIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuICAgICAgICAudGl0bGUtYXJlYSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxyXG4gICAgICAgIC5uYW1lIGgxIGEgeyB3aWR0aDogYXV0bzsgfVxyXG5cclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICAuYnV0dG9uLFxyXG4gICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHRvcDogJHRvcGJhci1idXR0b24tdG9wO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5leHBhbmRlZCB7IGJhY2tncm91bmQ6ICR0b3BiYXItYmc7IH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmNvbnRhaW4tdG8tZ3JpZCAudG9wLWJhciB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR0b3BiYXItbWFyZ2luLWJvdHRvbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24obm9uZSwwLDApO1xyXG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIHVsIHtcclxuICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcblxyXG4gICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XHJcbiAgICAgICAgICAgIC5qcy1nZW5lcmF0ZWQgeyBkaXNwbGF5OiBub25lOyB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAmLmhvdmVyIHtcclxuICAgICAgICAgICAgPiBhOm5vdCguYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyO1xyXG4gICAgICAgICAgICAgIEBpZiAoJHRvcGJhci1saW5rLWJnLWhvdmVyKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctaG92ZXI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgICY6bm90KC5oYXMtZm9ybSkge1xyXG4gICAgICAgICAgICBhOm5vdCguYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnO1xyXG4gICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyO1xyXG4gICAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWhvdmVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJi5hY3RpdmU6bm90KC5oYXMtZm9ybSkge1xyXG4gICAgICAgICAgICBhOm5vdCguYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1hY3RpdmUtaG92ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5oYXMtZHJvcGRvd24ge1xyXG5cclxuICAgICAgICAgIEBpZigkdG9wYmFyLWFycm93cyl7XHJcblxyXG4gICAgICAgICAgICAmID4gYSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZyArICR0b3BiYXItbGluay1kcm9wZG93bi1wYWRkaW5nICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZSwgcmdiYSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1jb2xvciwgJHRvcGJhci1kcm9wZG93bi10b2dnbGUtYWxwaGEpLCB0b3ApO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplIC8gMik7XHJcbiAgICAgICAgICAgICAgICB0b3A6ICR0b3BiYXItaGVpZ2h0IC8gMjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5tb3ZlZCB7IHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgJiA+IC5kcm9wZG93biB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLWhpZGUtZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuaG92ZXIsICYubm90LWNsaWNrOmhvdmVyIHtcclxuICAgICAgICAgICAgJiA+IC5kcm9wZG93biB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPiBhOmZvY3VzICsgLmRyb3Bkb3duIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuZHJvcGRvd24gbGkuaGFzLWRyb3Bkb3duIHtcclxuICAgICAgICAgICAgJiA+IGEge1xyXG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXDAwYmJcIjtcclxuICAgICAgICAgICAgICAgIHRvcDogMXJlbTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiA1cHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5kcm9wZG93biB7XHJcbiAgICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcclxuICAgICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvcjtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4ICR0b3BiYXItbGluay1wYWRkaW5nO1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tbGluay1iZztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpub3QoLmhhcy1mb3JtKTpub3QoLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICYgPiBhOm5vdCguYnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kcm9wZG93bi1saW5rLWJnO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgJjpob3ZlciA+IGE6bm90KC5idXR0b24pIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XHJcbiAgICAgICAgICAgICAgICBAaWYgKCR0b3BiYXItbGluay1iZy1ob3Zlcikge1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctaG92ZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWJnO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBTZWNvbmQgTGV2ZWwgRHJvcGRvd25zXHJcbiAgICAgICAgICAgIC5kcm9wZG93biB7XHJcbiAgICAgICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7XHJcbiAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmID4gdWwgPiAuZGl2aWRlcixcclxuICAgICAgICAmID4gdWwgPiBbcm9sZT1cInNlcGFyYXRvclwiXSB7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgICAgICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWRpdmlkZXItYm9yZGVyLWJvdHRvbTtcclxuICAgICAgICAgIGNsZWFyOiBub25lO1xyXG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcclxuICAgICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhhcy1mb3JtIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZztcclxuICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1oZWlnaHQgLyAzO1xyXG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFBvc2l0aW9uIG92ZXJyaWRlcyBmb3IgdWwucmlnaHQgYW5kIHVsLmxlZnRcclxuICAgICAgICAucmlnaHQge1xyXG4gICAgICAgICAgbGkgLmRyb3Bkb3duIHtcclxuICAgICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XHJcbiAgICAgICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XHJcblxyXG4gICAgICAgICAgICBsaSAuZHJvcGRvd24geyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAxMDAlOyB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgIGxpIC5kcm9wZG93biB7XHJcbiAgICAgICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XHJcbiAgICAgICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xyXG5cclxuICAgICAgICAgICAgbGkgLmRyb3Bkb3duIHsgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7IH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIERlZ3JhZGUgZ3JhY2VmdWxseSB3aGVuIEphdmFzY3JpcHQgaXMgZGlzYWJsZWQuIERpc3BsYXlzIGRyb3Bkb3duIGFuZCBjaGFuZ2VzXHJcbiAgICAgIC8vIGJhY2tncm91bmQgJiB0ZXh0IGNvbG9yIG9uIGhvdmVyLlxyXG4gICAgICAubm8tanMgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICAgdWwgbGkge1xyXG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGhvdmVyIGxpbmsgY29sb3Igd2hlbiBpdCBoYXMgdGhhdCBjbGFzc1xyXG4gICAgICAgICAgJjpob3ZlciA+IGEge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XHJcbiAgICAgICAgICAgIEBpZiAoJHRvcGJhci1saW5rLWJnLWhvdmVyKSB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWhvdmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGFjdGl2ZSBsaW5rIGNvbG9yIHdoZW4gaXQgaGFzIHRoYXQgY2xhc3NcclxuICAgICAgICAgICY6YWN0aXZlID4gYSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1hY3RpdmU7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhhcy1kcm9wZG93biB7XHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgJiA+IC5kcm9wZG93biB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPiBhOmZvY3VzICsgLmRyb3Bkb3duIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGh0bWwgYW5kIGJvZHkgZm9udC1zaXplIGZvciB0aGUgYmFzZSByZW0gdmFsdWUuXHJcbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcclxuXHJcbi8vIElNUE9SVCBPTkNFXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHByZXZlbnQgc3R5bGVzIGZyb20gYmVpbmcgbG9hZGVkIG11bHRpcGxlIHRpbWVzIGZvciBjb21wZW5lbnRzIHRoYXQgcmVseSBvbiBvdGhlciBjb21wb25lbnRzLiBcclxuJG1vZHVsZXM6ICgpICFkZWZhdWx0O1xyXG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xyXG4gIEBpZihub3QgaW5kZXgoJG1vZHVsZXMsICRuYW1lKSkge1xyXG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIEBmdW5jdGlvbnNcclxuLy9cclxuXHJcblxyXG4vLyBSQU5HRVNcclxuLy8gV2UgdXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkZWZpbmUgcmFuZ2VzIGZvciB2YXJpb3VzIHRoaW5ncywgbGlrZSBtZWRpYSBxdWVyaWVzLiBcclxuQGZ1bmN0aW9uIGxvd2VyLWJvdW5kKCRyYW5nZSl7XHJcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xyXG4gICAgQHJldHVybiAwO1xyXG4gIH1cclxuICBAcmV0dXJuIG50aCgkcmFuZ2UsMSk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcclxuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcclxuICAgIEByZXR1cm4gOTk5OTk5OTk5OTk5O1xyXG4gIH1cclxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xyXG59XHJcblxyXG4vLyBTVFJJUCBVTklUXHJcbi8vIEl0IHN0cmlwcyB0aGUgdW5pdCBvZiBtZWFzdXJlIGFuZCByZXR1cm5zIGl0XHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcclxufVxyXG5cclxuLy8gQ09OVkVSVCBUTyBSRU1cclxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkgIHtcclxuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcclxuICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7ICR2YWx1ZTogMDsgfSAvLyBUdXJuIDByZW0gaW50byAwXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBkYXRhKCRhdHRyKSB7XHJcbiAgQGlmICRuYW1lc3BhY2Uge1xyXG4gICAgQHJldHVybiAnW2RhdGEtJyArICRuYW1lc3BhY2UgKyAnLScgKyAkYXR0ciArICddJztcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJ1tkYXRhLScgKyAkYXR0ciArICddJztcclxufVxyXG5cclxuLy8gUkVNIENBTEMgXHJcblxyXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cclxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxyXG4vLyBcclxuLy8gICByZW0tY2FsYygxMCAyMCAzMHB4IDQwKTtcclxuLy8gXHJcbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xyXG4vLyBcclxuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xyXG4vLyBcclxuLy8gT3B0aW9uYWxseSBjYWxsIHdpdGggYSBkaWZmZXJlbnQgYmFzZSAoZWc6IDhweCkgdG8gY2FsY3VsYXRlIHJlbS5cclxuLy8gXHJcbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XHJcbi8vIFxyXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3RcclxuLy8gXHJcbi8vICAgcmVtLWNhbGMoKDE2cHgsIDMycHgsIDQ4KSwgOHB4KTtcclxuXHJcbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XHJcbiAgJG1heDogbGVuZ3RoKCR2YWx1ZXMpO1xyXG5cclxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxyXG5cclxuICAkcmVtVmFsdWVzOiAoKTtcclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xyXG4gICAgJHJlbVZhbHVlczogYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlLXZhbHVlKSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHJlbVZhbHVlcztcclxufVxyXG5cclxuLy8gT0xEIEVNIENBTENcclxuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxyXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpe1xyXG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XHJcbn1cclxuXHJcbi8vIE9MRCBFTSBDQUxDXHJcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcclxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcyl7XHJcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBpbXBvcnQgXCJnbG9iYWxcIjtcclxuXHJcbiRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzdHlsZXNcclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcbiRoZWFkZXItZm9udC1zdHlsZTogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJGhlYWRlci1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xyXG4kaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XHJcbiRoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XHJcbiRoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XHJcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHNpemVzXHJcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcclxuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzcpICFkZWZhdWx0O1xyXG4kaDMtZm9udC1zaXplOiByZW0tY2FsYygyNykgIWRlZmF1bHQ7XHJcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDIzKSAhZGVmYXVsdDtcclxuJGg1LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xyXG4kaDYtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIHNpemUgcmVkdWN0aW9uIG9uIHNtYWxsIHNjcmVlbnNcclxuJGgxLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XHJcbiRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xyXG4kaDMtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xyXG4kaDQtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xyXG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XHJcbiRoNi1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcclxuXHJcbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cclxuJHN1YmhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG4kc3ViaGVhZGVyLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcclxuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJHN1YmhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcclxuJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vIEEgZ2VuZXJhbCA8c21hbGw+IHN0eWxpbmdcclxuJHNtYWxsLWZvbnQtc2l6ZTogNjAlICFkZWZhdWx0O1xyXG4kc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHBhcmFncmFwaHNcclxuJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNiAhZGVmYXVsdDtcclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzUgIWRlZmF1bHQ7XHJcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xyXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgPGNvZGU+IHRhZ3NcclxuJGNvZGUtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XHJcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xyXG4kY29kZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJGNvZGUtYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNzAlKSAhZGVmYXVsdDtcclxuJGNvZGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcclxuJGNvZGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcclxuJGNvZGUtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY29kZS1iYWNrZ3JvdW5kLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKSAhZGVmYXVsdDtcclxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMikgcmVtLWNhbGMoNSkgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYW5jaG9yc1xyXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XHJcbiRhbmNob3ItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRhbmNob3ItZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XHJcbiRoci1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGhyLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcbiRoci1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XHJcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xyXG4kbGlzdC1mb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGxpc3QtZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XHJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW0gIWRlZmF1bHQ7XHJcbiRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW46IDEuNHJlbSAhZGVmYXVsdDtcclxuJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0OiAwICFkZWZhdWx0O1xyXG4kbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b206IC4zcmVtICFkZWZhdWx0O1xyXG4kZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBibG9ja3F1b3Rlc1xyXG4kYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XHJcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAyMyUpICFkZWZhdWx0O1xyXG4kYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vIEFjcm9ueW0gc3R5bGVzXHJcbiRhY3JvbnltLXVuZGVybGluZTogMXB4IGRvdHRlZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgcGFkZGluZyBhbmQgbWFyZ2luXHJcbiRtaWNyb2Zvcm1hdC1wYWRkaW5nOiByZW0tY2FsYygxMCAxMikgIWRlZmF1bHQ7XHJcbiRtaWNyb2Zvcm1hdC1tYXJnaW46IHJlbS1jYWxjKDAgMCAyMCAwKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXHJcbiRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJG1pY3JvZm9ybWF0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcbiRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBmdWxsIG5hbWUgZm9udCBzdHlsZXNcclxuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3VtbWFyeSBmb250IHN0eWxlc1xyXG4kbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgcGFkZGluZ1xyXG4kbWljcm9mb3JtYXQtYWJici1wYWRkaW5nOiByZW0tY2FsYygwIDEpICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIGZvbnQgc3R5bGVzXHJcbiRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xyXG5cclxuLy8gVGV4dCBhbGlnbm1lbnQgY2xhc3MgbmFtZXNcclxuJGFsaWduLWNsYXNzLW5hbWVzOlxyXG4gIHNtYWxsLW9ubHksXHJcbiAgc21hbGwsXHJcbiAgbWVkaXVtLW9ubHksXHJcbiAgbWVkaXVtLFxyXG4gIGxhcmdlLW9ubHksXHJcbiAgbGFyZ2UsXHJcbiAgeGxhcmdlLW9ubHksXHJcbiAgeGxhcmdlLFxyXG4gIHh4bGFyZ2Utb25seSxcclxuICB4eGxhcmdlO1xyXG5cclxuLy8gVGV4dCBhbGlnbm1lbnQgYnJlYWtwb2ludHNcclxuJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzOlxyXG4gICRzbWFsbC1vbmx5LFxyXG4gICRzbWFsbC11cCxcclxuICAkbWVkaXVtLW9ubHksXHJcbiAgJG1lZGl1bS11cCxcclxuICAkbGFyZ2Utb25seSxcclxuICAkbGFyZ2UtdXAsXHJcbiAgJHhsYXJnZS1vbmx5LFxyXG4gICR4bGFyZ2UtdXAsXHJcbiAgJHh4bGFyZ2Utb25seSxcclxuICAkeHhsYXJnZS11cDtcclxuXHJcbi8vIEdlbmVyYXRlcyB0ZXh0IGFsaWduIGFuZCBqdXN0aWZ5IGNsYXNzZXNcclxuQG1peGluIGFsaWduLWNsYXNzZXN7XHJcbiAgLnRleHQtbGVmdCAgICB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxyXG4gIC50ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XHJcbiAgLnRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XHJcbiAgLnRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxyXG5cclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkYWxpZ24tY2xhc3MtbmFtZXMpIHtcclxuICAgIEBtZWRpYSAjeyhudGgoJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzLCAkaSkpfSB7XHJcbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cclxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtcmlnaHQgICB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cclxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XHJcbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIFR5cG9ncmFwaHkgUGxhY2Vob2xkZXJzXHJcbi8vXHJcblxyXG4vLyBUaGVzZSB3aWxsIHRocm93IGEgZGVwcmVjYXRpb24gd2FybmluZyBpZiB1c2VkIHdpdGhpbiBhIG1lZGlhIHF1ZXJ5LlxyXG5AbWl4aW4gbGVhZCB7XHJcbiAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDMuNSk7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNjtcclxufVxyXG5cclxuQG1peGluIHN1YmhlYWRlciB7XHJcbiAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZS1oZWlnaHQ7XHJcbiAgY29sb3I6ICRzdWJoZWFkZXItZm9udC1jb2xvcjtcclxuICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcclxuICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLXRvcC1tYXJnaW47XHJcbiAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luO1xyXG59XHJcbkBpbmNsdWRlIGV4cG9ydHMoXCJ0eXBlXCIpIHtcclxuICBAaWYgJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXMge1xyXG4gICAgLy8gUmVzcG9uc2l2ZSBUZXh0IGFsaWdubWVudFxyXG4gICAgQGluY2x1ZGUgYWxpZ24tY2xhc3NlcztcclxuXHJcbiAgICAvKiBUeXBvZ3JhcGh5IHJlc2V0cyAqL1xyXG4gICAgZGl2LFxyXG4gICAgZGwsXHJcbiAgICBkdCxcclxuICAgIGRkLFxyXG4gICAgdWwsXHJcbiAgICBvbCxcclxuICAgIGxpLFxyXG4gICAgaDEsXHJcbiAgICBoMixcclxuICAgIGgzLFxyXG4gICAgaDQsXHJcbiAgICBoNSxcclxuICAgIGg2LFxyXG4gICAgcHJlLFxyXG4gICAgZm9ybSxcclxuICAgIHAsXHJcbiAgICBibG9ja3F1b3RlLFxyXG4gICAgdGgsXHJcbiAgICB0ZCB7XHJcbiAgICAgIG1hcmdpbjowO1xyXG4gICAgICBwYWRkaW5nOjA7XHJcbiAgICB9XHJcblxyXG4gICAgLyogRGVmYXVsdCBMaW5rIFN0eWxlcyAqL1xyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvci1ob3ZlcjtcclxuICAgICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xyXG4gICAgICAgIFx0dGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGltZyB7IGJvcmRlcjpub25lOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogRGVmYXVsdCBwYXJhZ3JhcGggc3R5bGVzICovXHJcbiAgICBwIHtcclxuICAgICAgZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xyXG4gICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xyXG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG4gICAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcclxuXHJcbiAgICAgICYubGVhZCB7IEBpbmNsdWRlIGxlYWQ7IH1cclxuXHJcbiAgICAgICYgYXNpZGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ7XHJcbiAgICAgICAgZm9udC1zdHlsZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogRGVmYXVsdCBoZWFkZXIgc3R5bGVzICovXHJcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcclxuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xyXG4gICAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XHJcbiAgICAgIGNvbG9yOiAkaGVhZGVyLWZvbnQtY29sb3I7XHJcbiAgICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xyXG4gICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXRvcC1tYXJnaW47XHJcbiAgICAgIG1hcmdpbi1ib3R0b206ICRoZWFkZXItYm90dG9tLW1hcmdpbjtcclxuICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7XHJcblxyXG4gICAgICBzbWFsbCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4gICAgICAgIGNvbG9yOiAkc21hbGwtZm9udC1jb2xvcjtcclxuICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplIC0gJGgxLWZvbnQtcmVkdWN0aW9uOyB9XHJcbiAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZSAtICRoMi1mb250LXJlZHVjdGlvbjsgfVxyXG4gICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemUgLSAkaDMtZm9udC1yZWR1Y3Rpb247IH1cclxuICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplIC0gJGg0LWZvbnQtcmVkdWN0aW9uOyB9XHJcbiAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZSAtICRoNS1mb250LXJlZHVjdGlvbjsgfVxyXG4gICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemUgLSAkaDYtZm9udC1yZWR1Y3Rpb247IH1cclxuXHJcbiAgICAuc3ViaGVhZGVyIHsgQGluY2x1ZGUgc3ViaGVhZGVyOyB9XHJcblxyXG4gICAgaHIge1xyXG4gICAgICBib3JkZXI6ICRoci1ib3JkZXItc3R5bGUgJGhyLWJvcmRlci1jb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAkaHItYm9yZGVyLXdpZHRoIDAgMDtcclxuICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgIG1hcmdpbjogJGhyLW1hcmdpbiAwICgkaHItbWFyZ2luIC0gcmVtLWNhbGMoJGhyLWJvcmRlci13aWR0aCkpO1xyXG4gICAgICBoZWlnaHQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyogSGVscGZ1bCBUeXBvZ3JhcGh5IERlZmF1bHRzICovXHJcbiAgICBlbSxcclxuICAgIGkge1xyXG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0cm9uZyxcclxuICAgIGIge1xyXG4gICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgfVxyXG5cclxuICAgIHNtYWxsIHtcclxuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIH1cclxuXHJcbiAgICBjb2RlIHtcclxuICAgICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xyXG4gICAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XHJcbiAgICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAkY29kZS1ib3JkZXItc2l6ZTtcclxuICAgICAgYm9yZGVyLXN0eWxlOiAkY29kZS1ib3JkZXItc3R5bGU7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvZGUtYm9yZGVyLWNvbG9yO1xyXG4gICAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIExpc3RzICovXHJcbiAgICB1bCxcclxuICAgIG9sLFxyXG4gICAgZGwge1xyXG4gICAgICBmb250LXNpemU6ICRsaXN0LWZvbnQtc2l6ZTtcclxuICAgICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmUtaGVpZ2h0O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xyXG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcclxuICAgICAgZm9udC1mYW1pbHk6ICRsaXN0LWZvbnQtZmFtaWx5O1xyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcclxuICAgICAgJi5uby1idWxsZXQge1xyXG4gICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0O1xyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgIHVsLFxyXG4gICAgICAgICAgb2wge1xyXG4gICAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogVW5vcmRlcmVkIExpc3RzICovXHJcbiAgICB1bCB7XHJcbiAgICAgIGxpIHtcclxuICAgICAgICB1bCxcclxuICAgICAgICBvbCB7XHJcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmLnNxdWFyZSxcclxuICAgICAgJi5jaXJjbGUsXHJcbiAgICAgICYuZGlzYyB7XHJcbiAgICAgICAgbGkgdWwgeyBsaXN0LXN0eWxlOiBpbmhlcml0OyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuc3F1YXJlIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxyXG4gICAgICAmLmNpcmNsZSB7IGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cclxuICAgICAgJi5kaXNjIHsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cclxuICAgICAgJi5uby1idWxsZXQgeyBsaXN0LXN0eWxlOiBub25lOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogT3JkZXJlZCBMaXN0cyAqL1xyXG4gICAgb2wge1xyXG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW47XHJcbiAgICAgIGxpIHtcclxuICAgICAgICB1bCxcclxuICAgICAgICBvbCB7XHJcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIERlZmluaXRpb24gTGlzdHMgKi9cclxuICAgIGRsIHtcclxuICAgICAgZHQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b207XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBkZCB7IG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTsgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIEFiYnJldmlhdGlvbnMgKi9cclxuICAgIGFiYnIsXHJcbiAgICBhY3JvbnltIHtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZm9udC1zaXplOiA5MCU7XHJcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkYWNyb255bS11bmRlcmxpbmU7XHJcbiAgICAgIGN1cnNvcjogJGN1cnNvci1oZWxwLXZhbHVlO1xyXG4gICAgfVxyXG4gICAgYWJiciB7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEJsb2NrcXVvdGVzICovXHJcbiAgICBibG9ja3F1b3RlIHtcclxuICAgICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xyXG4gICAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xyXG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcclxuXHJcbiAgICAgIGNpdGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJGJsb2NrcXVvdGUtY2l0ZS1mb250LXNpemU7XHJcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNCBcXDAwMjBcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGEsXHJcbiAgICAgICAgYTp2aXNpdGVkIHtcclxuICAgICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBibG9ja3F1b3RlLFxyXG4gICAgYmxvY2txdW90ZSBwIHtcclxuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XHJcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1mb250LWNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIE1pY3JvZm9ybWF0cyAqL1xyXG4gICAgLnZjYXJkIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW46ICRtaWNyb2Zvcm1hdC1tYXJnaW47XHJcbiAgICAgIGJvcmRlcjogJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aCAkbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlICRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I7XHJcbiAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1wYWRkaW5nO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgICAuZm4ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnZldmVudCB7XHJcbiAgICAgIC5zdW1tYXJ5IHsgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1zdW1tYXJ5LWZvbnQtd2VpZ2h0OyB9XHJcblxyXG4gICAgICBhYmJyIHtcclxuICAgICAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjtcclxuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICBoMSxoMixoMyxoNCxoNSxoNiB7IGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0OyB9XHJcbiAgICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XHJcbiAgICAgIGgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplOyB9XHJcbiAgICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplOyB9XHJcbiAgICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XHJcbiAgICAgIGg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XHJcbiAgICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gT25seSBpbmNsdWRlIHRoZXNlIHN0eWxlcyBpZiB5b3Ugd2FudCB0aGVtLlxyXG4gICAgQGlmICRpbmNsdWRlLXByaW50LXN0eWxlcyB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAqIFByaW50IHN0eWxlcy5cclxuICAgICAgICpcclxuICAgICAgICogSW5saW5lZCB0byBhdm9pZCByZXF1aXJlZCBIVFRQIGNvbm5lY3Rpb246IHd3dy5waHBpZWQuY29tL2RlbGF5LWxvYWRpbmcteW91ci1wcmludC1jc3MvXHJcbiAgICAgICAqIENyZWRpdCB0byBQYXVsIElyaXNoIGFuZCBIVE1MNSBCb2lsZXJwbGF0ZSAoaHRtbDVib2lsZXJwbGF0ZS5jb20pXHJcbiAgICAgICovXHJcbiAgICAgIC5wcmludC1vbmx5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcbiAgICAgIEBtZWRpYSBwcmludCB7XHJcbiAgICAgICAgKiB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgY29sb3I6ICRibGFjayAhaW1wb3J0YW50OyAvKiBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zICovXHJcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSxcclxuICAgICAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XHJcbiAgICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XHJcblxyXG4gICAgICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XHJcblxyXG4gICAgICAgIC8vIERvbid0IHNob3cgbGlua3MgZm9yIGltYWdlcywgb3IgamF2YXNjcmlwdC9pbnRlcm5hbCBsaW5rc1xyXG4gICAgICAgIC5pciBhOmFmdGVyLFxyXG4gICAgICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcclxuICAgICAgICBhW2hyZWZePVwiI1wiXTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cclxuXHJcbiAgICAgICAgcHJlLFxyXG4gICAgICAgIGJsb2NrcXVvdGUge1xyXG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFsdW1pbnVtO1xyXG4gICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IC8qIGg1YnAuY29tL3QgKi8gfVxyXG5cclxuICAgICAgICB0cixcclxuICAgICAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cclxuXHJcbiAgICAgICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgICAgICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XHJcblxyXG4gICAgICAgIHAsXHJcbiAgICAgICAgaDIsXHJcbiAgICAgICAgaDMge1xyXG4gICAgICAgICAgb3JwaGFuczogMztcclxuICAgICAgICAgIHdpZG93czogMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgyLFxyXG4gICAgICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cclxuXHJcbiAgICAgICAgLmhpZGUtb24tcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuICAgICAgICAucHJpbnQtb25seSB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cclxuICAgICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcbkBpbXBvcnQgXCJ0eXBlXCI7XHJcblxyXG4vLyBPZmYgQ2FudmFzIFRhYiBCYXIgVmFyaWFibGVzXHJcbiRpbmNsdWRlLWh0bWwtb2ZmLWNhbnZhcy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XHJcblxyXG4kdGFiYmFyLWJnOiAkb2lsICFkZWZhdWx0O1xyXG4kdGFiYmFyLWhlaWdodDogcmVtLWNhbGMoNDUpICFkZWZhdWx0O1xyXG4kdGFiYmFyLWljb24td2lkdGg6ICR0YWJiYXItaGVpZ2h0ICFkZWZhdWx0O1xyXG4kdGFiYmFyLWxpbmUtaGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcclxuJHRhYmJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdGFiYmFyLW1pZGRsZS1wYWRkaW5nOiAwIHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcclxuXHJcbi8vIE9mZiBDYW52YXMgRGl2aWRlciBTdHlsZXNcclxuJHRhYmJhci1sZWZ0LXNlY3Rpb24tYm9yZGVyOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRhYmJhci1iZywgJGxpZ2h0bmVzczogLTUwJSkgIWRlZmF1bHQ7XHJcbiR0YWJiYXItcmlnaHQtc2VjdGlvbi1ib3JkZXI6ICR0YWJiYXItbGVmdC1zZWN0aW9uLWJvcmRlcjtcclxuXHJcblxyXG4vLyBPZmYgQ2FudmFzIFRhYiBCYXIgSGVhZGVyc1xyXG4kdGFiYmFyLWhlYWRlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdGFiYmFyLWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG4kdGFiYmFyLWhlYWRlci1saW5lLWhlaWdodDogJHRhYmJhci1oZWlnaHQgIWRlZmF1bHQ7XHJcbiR0YWJiYXItaGVhZGVyLW1hcmdpbjogMCAhZGVmYXVsdDtcclxuXHJcbi8vIE9mZiBDYW52YXMgTWVudSBWYXJpYWJsZXNcclxuJG9mZi1jYW52YXMtd2lkdGg6IHJlbS1jYWxjKDMwMCkgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWJnOiAkb2lsICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHRhYmJhci1iZywgJGxpZ2h0bmVzczogLTMwJSkgIWRlZmF1bHQ7XHJcblxyXG4vLyBPZmYgQ2FudmFzIE1lbnUgTGlzdCBWYXJpYWJsZXNcclxuJG9mZi1jYW52YXMtbGFiZWwtcGFkZGluZzogMC4zcmVtIHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtbGFiZWwtY29sb3I6ICRhbHVtaW51bSAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtbGFiZWwtYmc6ICR0dWF0YXJhICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItdG9wOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtbGFiZWwtYmcsICRsaWdodG5lc3M6IDE0JSkgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci1ib3R0b206IG5vbmUgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWxhYmVsLW1hcmdpbjowICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1saW5rLXBhZGRpbmc6IHJlbS1jYWxjKDEwLCAxNSkgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWxpbmstY29sb3I6IHJnYmEoJHdoaXRlLCAwLjcpICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1saW5rLWJvcmRlci1ib3R0b206IDFweCBzb2xpZCBzY2FsZS1jb2xvcigkb2ZmLWNhbnZhcy1iZywgJGxpZ2h0bmVzczogLTI1JSkgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWJhY2stYmc6ICM0NDQgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWJhY2stYm9yZGVyLXRvcDogJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLXRvcCAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtYmFjay1ib3JkZXItYm90dG9tOiAkb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItYm90dG9tICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJnOiBzY2FsZS1jb2xvcigkb2ZmLWNhbnZhcy1iYWNrLWJnLCAkbGlnaHRuZXNzOiAtMzAlKSAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItdG9wOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtbGFiZWwtYmcsICRsaWdodG5lc3M6IDE0JSkgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLWJhY2staG92ZXItYm9yZGVyLWJvdHRvbTogbm9uZSAhZGVmYXVsdDtcclxuXHJcbi8vIE9mZiBDYW52YXMgTWVudSBJY29uIFZhcmlhYmxlc1xyXG4kdGFiYmFyLW1lbnUtaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kdGFiYmFyLW1lbnUtaWNvbi1ob3Zlcjogc2NhbGUtY29sb3IoJHRhYmJhci1tZW51LWljb24tY29sb3IsICRsaWdodG5lc3M6IC0zMCUpICFkZWZhdWx0O1xyXG5cclxuJHRhYmJhci1tZW51LWljb24tdGV4dC1pbmRlbnQ6IHJlbS1jYWxjKDM1KSAhZGVmYXVsdDtcclxuJHRhYmJhci1tZW51LWljb24td2lkdGg6ICR0YWJiYXItaWNvbi13aWR0aCAhZGVmYXVsdDtcclxuJHRhYmJhci1tZW51LWljb24taGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcclxuJHRhYmJhci1tZW51LWljb24tcGFkZGluZzogMCAhZGVmYXVsdDtcclxuXHJcbiR0YWJiYXItaGFtYnVyZ2VyLWljb24td2lkdGg6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcclxuJHRhYmJhci1oYW1idXJnZXItaWNvbi1sZWZ0OiBmYWxzZSAhZGVmYXVsdDtcclxuJHRhYmJhci1oYW1idXJnZXItaWNvbi10b3A6IGZhbHNlICFkZWZhdWx0O1xyXG4kdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzczogMXB4ICFkZWZhdWx0O1xyXG4kdGFiYmFyLWhhbWJ1cmdlci1pY29uLWdhcDogNnB4ICFkZWZhdWx0O1xyXG5cclxuLy8gT2ZmIENhbnZhcyBCYWNrLUxpbmsgT3ZlcmxheVxyXG4kb2ZmLWNhbnZhcy1vdmVybGF5LXRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZSAhZGVmYXVsdDtcclxuJG9mZi1jYW52YXMtb3ZlcmxheS1jdXJzb3I6IHBvaW50ZXIgIWRlZmF1bHQ7XHJcbiRvZmYtY2FudmFzLW92ZXJsYXktYm94LXNoYWRvdzogLTRweCAwIDRweCByZ2JhKCRibGFjaywgMC41KSwgNHB4IDAgNHB4IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjIpICFkZWZhdWx0O1xyXG4kb2ZmLWNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJHdoaXRlLCAwLjA1KSAhZGVmYXVsdDtcclxuXHJcbi8vIFRyYW5zaXRpb24gVmFyaWFibGVzXHJcbiRtZW51LXNsaWRlOiBcInRyYW5zZm9ybSA1MDBtcyBlYXNlXCIgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8gTUlYSU5TXHJcbi8vIFJlbW92ZSB0cmFuc2l0aW9uIGZsaWNrZXIgb24gcGhvbmVzXHJcbkBtaXhpbiBraWxsLWZsaWNrZXIge1xyXG4gIC8vIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDB4KTtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLy8gQmFzaWMgcHJvcGVydGllcyBmb3IgdGhlIGNvbnRlbnQgd3JhcHNcclxuQG1peGluIHdyYXAtYmFzZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNsYXRlM2QoJHR4LCR0eSwkdHopIHtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR0eCwkdHkpO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkdHgsJHR5LCR0eik7XHJcbiAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJHR4LCR0eSwkdHopO1xyXG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkdHgsJHR5LCR0eik7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwkdHksJHR6KVxyXG59XHJcblxyXG4vLyBiYXNpYyBzdHlsZXMgZm9yIG9mZi1jYW52YXMgbWVudSBjb250YWluZXJcclxuQG1peGluIG9mZi1jYW52YXMtbWVudSgkcG9zaXRpb24pIHtcclxuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XHJcbiAgKiB7IEBpbmNsdWRlIGtpbGwtZmxpY2tlcjsgfVxyXG4gIHdpZHRoOiAkb2ZmLWNhbnZhcy13aWR0aDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZztcclxuICB6LWluZGV4OiAxMDAxO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlIDBzO1xyXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcclxuXHJcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcclxuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKC0xMDAuNSUsMCwwKTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgfVxyXG4gIEBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMTAwLjUlLDAsMCk7XHJcbiAgICByaWdodDogMDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE9GRiBDQU5WQVMgV1JBUFxyXG4vLyBXcmFwIHZpc2libGUgY29udGVudCBhbmQgcHJldmVudCBzY3JvbGwgYmFyc1xyXG5AbWl4aW4gb2ZmLWNhbnZhcy13cmFwIHtcclxuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XHJcbiAgQGluY2x1ZGUgd3JhcC1iYXNlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgJi5tb3ZlLXJpZ2h0LFxyXG4gICYubW92ZS1sZWZ0IHsgbWluLWhlaWdodDogMTAwJTsgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XHJcbn1cclxuXHJcbi8vIElOTkVSIFdSQVBcclxuLy8gTWFpbiBjb250ZW50IGFyZWEgdGhhdCBtb3ZlcyB0byByZXZlYWwgdGhlIG9mZi1jYW52YXMgbmF2XHJcbkBtaXhpbiBpbm5lci13cmFwIHtcclxuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XHJcbiAgQGluY2x1ZGUgd3JhcC1iYXNlO1xyXG4gIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC0jeyRtZW51LXNsaWRlfTtcclxuICAtbW96LXRyYW5zaXRpb246IC1tb3otI3skbWVudS1zbGlkZX07XHJcbiAgLW1zLXRyYW5zaXRpb246IC1tcy0jeyRtZW51LXNsaWRlfTtcclxuICAtby10cmFuc2l0aW9uOiAtby0jeyRtZW51LXNsaWRlfTtcclxuICB0cmFuc2l0aW9uOiAjeyRtZW51LXNsaWRlfTtcclxufVxyXG5cclxuLy8gVEFCIEJBUlxyXG4vLyBUaGlzIGlzIHRoZSB0YWIgYmFyIGJhc2VcclxuQG1peGluIHRhYi1iYXItYmFzZSB7XHJcbiAgQGluY2x1ZGUga2lsbC1mbGlja2VyO1xyXG5cclxuICAvLyBiYXNlIHN0eWxlc1xyXG4gIGJhY2tncm91bmQ6ICR0YWJiYXItYmc7XHJcbiAgY29sb3I6ICR0YWJiYXItY29sb3I7XHJcbiAgaGVpZ2h0OiAkdGFiYmFyLWhlaWdodDtcclxuICBsaW5lLWhlaWdodDogJHRhYmJhci1saW5lLWhlaWdodDtcclxuXHJcbiAgLy8gbWFrZSBzdXJlIGl0J3MgYmVsb3cgdGhlIC5leGl0LW9mZi1jYW52YXMgbGlua1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAvLyB6LWluZGV4OiA5OTk7XHJcblxyXG4gIC8vIFR5cG9ncmFwaHlcclxuICBoMSxoMixoMyxoNCxoNSxoNiB7XHJcbiAgICBjb2xvcjogJHRhYmJhci1oZWFkZXItY29sb3I7XHJcbiAgICBmb250LXdlaWdodDogJHRhYmJhci1oZWFkZXItd2VpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICR0YWJiYXItaGVhZGVyLWxpbmUtaGVpZ2h0O1xyXG4gICAgbWFyZ2luOiAkdGFiYmFyLWhlYWRlci1tYXJnaW47XHJcbiAgfVxyXG4gIGgxLGgyLGgzLGg0IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XHJcbn1cclxuXHJcbi8vIFNNQUxMIFNFQ1RJT05TXHJcbi8vIFRoZXNlIGFyZSBzbWFsbCBzZWN0aW9ucyBvbiB0aGUgbGVmdCBhbmQgcmlnaHQgdGhhdCBjb250YWluIHRoZSBvZmYtY2FudmFzIHRvZ2dsZSBidXR0b25zO1xyXG5AbWl4aW4gdGFiYmFyLXNtYWxsLXNlY3Rpb24oJHBvc2l0aW9uKSB7XHJcbiAgd2lkdGg6ICR0YWJiYXItaWNvbi13aWR0aDtcclxuICBoZWlnaHQ6ICR0YWJiYXItaGVpZ2h0O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcclxuICAgIGJvcmRlci1yaWdodDogJHRhYmJhci1sZWZ0LXNlY3Rpb24tYm9yZGVyO1xyXG4gICAgLy8gYm94LXNoYWRvdzogMXB4IDAgMCBzY2FsZS1jb2xvcigkdGFiYmFyLWJnLCAkbGlnaHRuZXNzOiAxMyUpO1xyXG4gICAgbGVmdDogMDtcclxuICB9XHJcbiAgQGlmICRwb3NpdGlvbiA9PSByaWdodCB7XHJcbiAgICBib3JkZXItbGVmdDogJHRhYmJhci1yaWdodC1zZWN0aW9uLWJvcmRlcjtcclxuICAgIC8vIGJveC1zaGFkb3c6IC0xcHggMCAwIHNjYWxlLWNvbG9yKCR0YWJiYXItYmcsICRsaWdodG5lc3M6IC01MCUpO1xyXG4gICAgcmlnaHQ6MDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0YWItYmFyLXNlY3Rpb24ge1xyXG4gIHBhZGRpbmc6ICR0YWJiYXItbWlkZGxlLXBhZGRpbmc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBoZWlnaHQ6ICR0YWJiYXItaGVpZ2h0O1xyXG4gIHRvcDogMDtcclxuICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcbiAgICAmLmxlZnQsICYucmlnaHQgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XHJcbiAgfVxyXG5cclxuICAvLyBzdGlsbCBuZWVkIHRvIG1ha2UgdGhlc2Ugbm9uLXByZXNlbnRhdGlvbmFsXHJcbiAgJi5sZWZ0IHtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogJHRhYmJhci1pY29uLXdpZHRoO1xyXG4gIH1cclxuICAmLnJpZ2h0IHtcclxuICAgIGxlZnQ6ICR0YWJiYXItaWNvbi13aWR0aDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICAmLm1pZGRsZSB7XHJcbiAgICBsZWZ0OiAkdGFiYmFyLWljb24td2lkdGg7XHJcbiAgICByaWdodDogJHRhYmJhci1pY29uLXdpZHRoO1xyXG4gIH1cclxufVxyXG5cclxuLy8gT0ZGIENBTlZBUyBMSVNUXHJcbi8vIFRoaXMgaXMgdGhlIGxpc3Qgb2YgbGlua3MgaW4gdGhlIG9mZi1jYW52YXMgbWVudVxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1saXN0IHtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgcGFkZGluZzowO1xyXG4gIG1hcmdpbjowO1xyXG5cclxuICBsaSB7XHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAkb2ZmLWNhbnZhcy1sYWJlbC1wYWRkaW5nO1xyXG4gICAgICBjb2xvcjogJG9mZi1jYW52YXMtbGFiZWwtY29sb3I7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiAkb2ZmLWNhbnZhcy1sYWJlbC10ZXh0LXRyYW5zZm9ybTtcclxuICAgICAgZm9udC1zaXplOiAkb2ZmLWNhbnZhcy1sYWJlbC1mb250LXNpemU7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkb2ZmLWNhbnZhcy1sYWJlbC1mb250LXdlaWdodDtcclxuICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtbGFiZWwtYmc7XHJcbiAgICAgIGJvcmRlci10b3A6ICRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci10b3A7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICRvZmYtY2FudmFzLWxhYmVsLWJvcmRlci1ib3R0b207XHJcbiAgICAgIG1hcmdpbjogJG9mZi1jYW52YXMtbGFiZWwtbWFyZ2luO1xyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAkb2ZmLWNhbnZhcy1saW5rLXBhZGRpbmc7XHJcbiAgICAgIGNvbG9yOiAkb2ZmLWNhbnZhcy1saW5rLWNvbG9yO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkb2ZmLWNhbnZhcy1saW5rLWJvcmRlci1ib3R0b207XHJcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZTtcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmctaG92ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4vLyBCQUNLIExJTktcclxuLy8gVGhpcyBpcyBhbiBvdmVybGF5IHRoYXQsIHdoZW4gY2xpY2tlZCwgd2lsbCB0b2dnbGUgb2ZmIHRoZSBvZmYgY2FudmFzIG1lbnVcclxuQG1peGluIGJhY2stbGluayB7XHJcbiAgICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XHJcblxyXG4gICAgdHJhbnNpdGlvbjogJG9mZi1jYW52YXMtb3ZlcmxheS10cmFuc2l0aW9uO1xyXG4gICAgY3Vyc29yOiAkb2ZmLWNhbnZhcy1vdmVybGF5LWN1cnNvcjtcclxuICAgIGJveC1zaGFkb3c6ICRvZmYtY2FudmFzLW92ZXJsYXktYm94LXNoYWRvdztcclxuXHJcbiAgICAvLyBmaWxsIHRoZSBzY3JlZW5cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDowO1xyXG4gICAgcmlnaHQ6MDtcclxuICAgIHotaW5kZXg6IDEwMDI7XHJcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQtaG92ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy9cclxuLy8gREVGQVVMVCBDTEFTU0VTXHJcbi8vXHJcbkBpbmNsdWRlIGV4cG9ydHMoXCJvZmZjYW52YXNcIikge1xyXG4gIEBpZiAkaW5jbHVkZS1odG1sLW9mZi1jYW52YXMtY2xhc3NlcyB7XHJcblxyXG4gICAgLm9mZi1jYW52YXMtd3JhcCB7IEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcDsgfVxyXG4gICAgLmlubmVyLXdyYXAgeyBAaW5jbHVkZSBpbm5lci13cmFwOyB9XHJcblxyXG4gICAgLnRhYi1iYXIgeyBAaW5jbHVkZSB0YWItYmFyLWJhc2U7IH1cclxuXHJcbiAgICAubGVmdC1zbWFsbCB7IEBpbmNsdWRlIHRhYmJhci1zbWFsbC1zZWN0aW9uKCRwb3NpdGlvbjogbGVmdCk7IH1cclxuICAgIC5yaWdodC1zbWFsbCB7IEBpbmNsdWRlIHRhYmJhci1zbWFsbC1zZWN0aW9uKCRwb3NpdGlvbjogcmlnaHQpOyB9XHJcblxyXG4gICAgLnRhYi1iYXItc2VjdGlvbiB7IEBpbmNsdWRlIHRhYi1iYXItc2VjdGlvbjsgfVxyXG5cclxuICAgIC8vIE1FTlUgQlVUVE9OXHJcbiAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIGJvbnVzLiBZb3UgZG9uJ3QgbmVlZCBpdCBmb3Igb2ZmIGNhbnZhcyB0byB3b3JrLiBNaXhpbnMgdG8gYmUgd3JpdHRlbiBpbiB0aGUgZnV0dXJlLlxyXG4gICAgLnRhYi1iYXIgLm1lbnUtaWNvbiB7XHJcbiAgICAgIHRleHQtaW5kZW50OiAkdGFiYmFyLW1lbnUtaWNvbi10ZXh0LWluZGVudDtcclxuICAgICAgd2lkdGg6ICR0YWJiYXItbWVudS1pY29uLXdpZHRoO1xyXG4gICAgICBoZWlnaHQ6ICR0YWJiYXItbWVudS1pY29uLWhlaWdodDtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6ICR0YWJiYXItbWVudS1pY29uLXBhZGRpbmc7XHJcbiAgICAgIGNvbG9yOiAkdGFiYmFyLW1lbnUtaWNvbi1jb2xvcjtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcclxuXHJcbiAgICAgIC8vIEBpbmNsdWRlIGZvciB0aGUgaGFtYnVyZ2VyIG1lbnUtaWNvblxyXG4gICAgICAvL1xyXG4gICAgICAvLyBBcmd1bWVudHMgYXMgZm9sbG93czogKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yKVxyXG4gICAgICAvLyAkd2lkdGggLSBXaWR0aCBvZiBoYW1idXJnZXIgaWNvbiBpbiByZW0gRGVmYXVsdDogJHRhYmJhci1oYW1idXJnZXItaWNvbi13aWR0aC5cclxuICAgICAgLy8gJGxlZnQgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIGhvcml6b250YWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW0gRGVmYXVsdDogJHRhYmJhci1oYW1idXJnZXItaWNvbi1sZWZ0PSBGYWxzZVxyXG4gICAgICAvLyAkdG9wIC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbSBEZWZhdWx0OiA9IEZhbHNlXHJcbiAgICAgIC8vICR0aGlja25lc3MgLSB0aGlja25lc3Mgb2YgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweCBEZWZhdWx0OiAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzcyA9IDFweFxyXG4gICAgICAvLyAkZ2FwIC0gc3BhY2luZyBiZXR3ZWVuIHRoZSBsaW5lcyBpbiBoYW1idXJnZXIgaWNvbiwgc2V0IHZhbHVlIGluIHB4IERlZmF1bHQ6ICR0YWJiYXItaGFtYnVyZ2VyLWljb24tZ2FwID0gNnB4XHJcbiAgICAgIC8vICRjb2xvciAtIGljb24gY29sb3IgRGVmYXVsdDogJHRhYmJhci1tZW51LWljb24tY29sb3JcclxuICAgICAgLy8gJGhvdmVyLWNvbG9yIC0gaWNvbiBjb2xvciB3aGVuIGhvdmVyZWQgRGVmYXVsdDogJHRhYmJhci1tZW51LWljb24taG92ZXJcclxuICAgICAgLy8gJG9mZmNhbnZhcyAtIFNldCB0byB0cnVlXHJcbiAgICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXdpZHRoLCAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWxlZnQsICR0YWJiYXItaGFtYnVyZ2VyLWljb24tdG9wLCAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzcywgJHRhYmJhci1oYW1idXJnZXItaWNvbi1nYXAsICR0YWJiYXItbWVudS1pY29uLWNvbG9yLCAkdGFiYmFyLW1lbnUtaWNvbi1ob3ZlciwgdHJ1ZSlcclxuICAgIH1cclxuXHJcbiAgICAubGVmdC1vZmYtY2FudmFzLW1lbnUgeyBAaW5jbHVkZSBvZmYtY2FudmFzLW1lbnUoJHBvc2l0aW9uOiBsZWZ0KTsgfVxyXG4gICAgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbWVudSgkcG9zaXRpb246IHJpZ2h0KTsgfVxyXG5cclxuICAgIHVsLm9mZi1jYW52YXMtbGlzdCB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbGlzdDsgfVxyXG5cclxuXHJcbiAgICAvLyBBTklNQVRJT04gQ0xBU1NFU1xyXG4gICAgLy8gVGhlc2UgY2xhc3NlcyBhcmUgYWRkZWQgd2l0aCBKUyBhbmQgdHJpZ2dlciB0aGUgYWN0dWFsIGFuaW1hdGlvbi5cclxuICAgIC5tb3ZlLXJpZ2h0IHtcclxuICAgICAgPiAuaW5uZXItd3JhcCB7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoJG9mZi1jYW52YXMtd2lkdGgsMCwwKTtcclxuICAgICAgfVxyXG4gICAgICAuZXhpdC1vZmYtY2FudmFzIHsgQGluY2x1ZGUgYmFjay1saW5rO31cclxuICAgIH1cclxuXHJcbiAgICAubW92ZS1sZWZ0IHtcclxuICAgICAgPiAuaW5uZXItd3JhcCB7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoLSgkb2ZmLWNhbnZhcy13aWR0aCksMCwwKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgLmV4aXQtb2ZmLWNhbnZhcyB7IEBpbmNsdWRlIGJhY2stbGluazsgfVxyXG4gICAgfVxyXG4gICAgLm9mZmNhbnZhcy1vdmVybGFwIHtcclxuICAgICAgLmxlZnQtb2ZmLWNhbnZhcy1tZW51LCAucmlnaHQtb2ZmLWNhbnZhcy1tZW51IHtcclxuICAgICAgICAtbXMtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIC1vLXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMztcclxuICAgICAgfVxyXG4gICAgICAuZXhpdC1vZmYtY2FudmFzIHsgQGluY2x1ZGUgYmFjay1saW5rOyB9XHJcbiAgICB9XHJcbiAgICAub2ZmY2FudmFzLW92ZXJsYXAtbGVmdCB7XHJcbiAgICAgIC5yaWdodC1vZmYtY2FudmFzLW1lbnUge1xyXG4gICAgICAgIC1tcy10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgLW1vei10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgLW8tdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICB6LWluZGV4OiAxMDAzO1xyXG4gICAgICB9XHJcbiAgICAgIC5leGl0LW9mZi1jYW52YXMgeyBAaW5jbHVkZSBiYWNrLWxpbms7IH1cclxuICAgIH1cclxuICAgIC5vZmZjYW52YXMtb3ZlcmxhcC1yaWdodCB7XHJcbiAgICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB7XHJcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAtbW96LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAtby10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDM7XHJcbiAgICAgIH1cclxuICAgICAgLmV4aXQtb2ZmLWNhbnZhcyB7IEBpbmNsdWRlIGJhY2stbGluazsgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIE9sZGVyIGJyb3dzZXJzXHJcbiAgICAubm8tY3NzdHJhbnNmb3JtcyB7XHJcbiAgICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB7IGxlZnQ6IC0oJG9mZi1jYW52YXMtd2lkdGgpOyB9XHJcbiAgICAgIC5yaWdodC1vZmYtY2FudmFzLW1lbnUgeyByaWdodDogLSgkb2ZmLWNhbnZhcy13aWR0aCk7IH1cclxuXHJcbiAgICAgIC5tb3ZlLWxlZnQgPiAuaW5uZXItd3JhcCB7IHJpZ2h0OiAkb2ZmLWNhbnZhcy13aWR0aDsgfVxyXG4gICAgICAubW92ZS1yaWdodCA+IC5pbm5lci13cmFwIHsgbGVmdDogJG9mZi1jYW52YXMtd2lkdGg7IH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBPZmYtQ2FudmFzIFN1Ym1lbnUgQ2xhc3Nlc1xyXG4vL1xyXG5AbWl4aW4gb2ZmLWNhbnZhcy1zdWJtZW51KCRwb3NpdGlvbikge1xyXG4gIEBpbmNsdWRlIGtpbGwtZmxpY2tlcjtcclxuICAqIHsgQGluY2x1ZGUga2lsbC1mbGlja2VyOyB9XHJcbiAgd2lkdGg6ICRvZmYtY2FudmFzLXdpZHRoO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG1hcmdpbjogMDtcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZztcclxuICB6LWluZGV4OiAxMDAyO1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoLTEwMCUsMCwwKTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgfVxyXG4gIEBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMTAwJSwwLDApO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC0jeyRtZW51LXNsaWRlfTtcclxuICAtbW96LXRyYW5zaXRpb246IC1tb3otI3skbWVudS1zbGlkZX07XHJcbiAgLW1zLXRyYW5zaXRpb246IC1tcy0jeyRtZW51LXNsaWRlfTtcclxuICAtby10cmFuc2l0aW9uOiAtby0jeyRtZW51LXNsaWRlfTtcclxuICB0cmFuc2l0aW9uOiAjeyRtZW51LXNsaWRlfTtcclxuXHJcbiAgLy9iYWNrIGJ1dHRvbiBzdHlsZSBsaWtlIGxhYmVsXHJcbiAgLmJhY2sgPiBhIHtcclxuICAgIHBhZGRpbmc6ICRvZmYtY2FudmFzLWxhYmVsLXBhZGRpbmc7XHJcbiAgICBjb2xvcjogJG9mZi1jYW52YXMtbGFiZWwtY29sb3I7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogJG9mZi1jYW52YXMtbGFiZWwtdGV4dC10cmFuc2Zvcm07XHJcbiAgICBmb250LXdlaWdodDogJG9mZi1jYW52YXMtbGFiZWwtZm9udC13ZWlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrLWJnO1xyXG4gICAgYm9yZGVyLXRvcDogJG9mZi1jYW52YXMtYmFjay1ib3JkZXItdG9wO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtYmFjay1ib3JkZXItYm90dG9tO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICBcdGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2staG92ZXItYmc7XHJcbiAgICBcdGJvcmRlci10b3A6ICRvZmYtY2FudmFzLWJhY2staG92ZXItYm9yZGVyLXRvcDtcclxuICAgIFx0Ym9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItYm90dG9tO1xyXG4gICAgfVxyXG4gICAgbWFyZ2luOiAkb2ZmLWNhbnZhcy1sYWJlbC1tYXJnaW47XHJcbiAgICBAaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcclxuICAgICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IGxlZnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiByaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xyXG4gICAgICBAaWYgJHRleHQtZGlyZWN0aW9uID09IHJ0bCB7XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiByaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiBsZWZ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLy9MZWZ0IGRvdWJsZSBhbmdsZSBxdW90ZSBvciBSaWdodCBkb3VibGUgYW5nbGUgcXVvdGUgY2hhcnNcclxuQG1peGluIGljb24tZG91YmxlLWFycm93cyAoJHBvc2l0aW9uKXtcclxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xyXG4gICAgY29udGVudDogXCJcXEFCXCI7XHJcbiAgICBAaWYgJHRleHQtZGlyZWN0aW9uID09IHJ0bCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xyXG4gICAgY29udGVudDogXCJcXEJCXCI7XHJcbiAgICBAaWYgJHRleHQtZGlyZWN0aW9uID09IHJ0bCB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRpc3BsYXk6IGlubGluZTtcclxufVxyXG5cclxuQGlmICRpbmNsdWRlLWh0bWwtb2ZmLWNhbnZhcy1jbGFzc2VzIHtcclxuICAubGVmdC1zdWJtZW51IHtcclxuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtc3VibWVudSgkcG9zaXRpb246IGxlZnQpO1xyXG4gICAgJi5tb3ZlLXJpZ2h0IHtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCUsMCwwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5yaWdodC1zdWJtZW51IHtcclxuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtc3VibWVudSgkcG9zaXRpb246IHJpZ2h0KTtcclxuICAgICYubW92ZS1sZWZ0IHtcclxuICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCUsMCwwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcclxuICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB1bC5vZmYtY2FudmFzLWxpc3QgbGkuaGFzLXN1Ym1lbnUgPiBhOmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IGxlZnQpO1xyXG4gICAgfVxyXG4gICAgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB1bC5vZmYtY2FudmFzLWxpc3QgbGkuaGFzLXN1Ym1lbnUgPiBhOmFmdGVyIHtcclxuICAgICAgQGluY2x1ZGUgaWNvbi1kb3VibGUtYXJyb3dzKCRwb3NpdGlvbjogcmlnaHQpO1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgLmxlZnQtb2ZmLWNhbnZhcy1tZW51IHVsLm9mZi1jYW52YXMtbGlzdCBsaS5oYXMtc3VibWVudSA+IGE6YWZ0ZXIge1xyXG4gICAgICAgQGluY2x1ZGUgaWNvbi1kb3VibGUtYXJyb3dzKCRwb3NpdGlvbjogcmlnaHQpO1xyXG4gICAgfVxyXG4gICAgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB1bC5vZmYtY2FudmFzLWxpc3QgbGkuaGFzLXN1Ym1lbnUgPiBhOmJlZm9yZSB7XHJcbiAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiBsZWZ0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcblxyXG4vL1xyXG4vLyBAbmFtZSBfdGFibGVzLnNjc3NcclxuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3NcclxuLy9cclxuXHJcbi8vXHJcbi8vIEB2YXJpYWJsZXNcclxuLy9cclxuXHJcbiRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xyXG5cclxuLy8gVGhlc2UgY29udHJvbCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYmxlIGFuZCBldmVuIHJvd3NcclxuJHRhYmxlLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiR0YWJsZS1ldmVuLXJvdy1iZzogJHNub3cgIWRlZmF1bHQ7XHJcblxyXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBzdHlsZVxyXG4kdGFibGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcclxuJHRhYmxlLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XHJcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XHJcblxyXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBoZWFkIHN0eWxlc1xyXG4kdGFibGUtaGVhZC1iZzogJHdoaXRlLXNtb2tlICFkZWZhdWx0O1xyXG4kdGFibGUtaGVhZC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcclxuJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG4kdGFibGUtaGVhZC1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcclxuXHJcbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGZvb3Qgc3R5bGVzXHJcbiR0YWJsZS1mb290LWJnOiAkdGFibGUtaGVhZC1iZyAhZGVmYXVsdDtcclxuJHRhYmxlLWZvb3QtZm9udC1zaXplOiAkdGFibGUtaGVhZC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XHJcbiR0YWJsZS1mb290LWZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodCAhZGVmYXVsdDtcclxuJHRhYmxlLWZvb3QtcGFkZGluZzogJHRhYmxlLWhlYWQtcGFkZGluZyAhZGVmYXVsdDtcclxuXHJcbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGNhcHRpb25cclxuJHRhYmxlLWNhcHRpb24tYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4kdGFibGUtY2FwdGlvbi1mb250LWNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yICFkZWZhdWx0O1xyXG4kdGFibGUtY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcclxuJHRhYmxlLWNhcHRpb24tZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XHJcblxyXG4vLyBUaGVzZSBjb250cm9sIHRoZSByb3cgcGFkZGluZyBhbmQgZm9udCBzdHlsZXNcclxuJHRhYmxlLXJvdy1wYWRkaW5nOiByZW0tY2FsYyg5IDEwKSAhZGVmYXVsdDtcclxuJHRhYmxlLXJvdy1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcclxuJHRhYmxlLXJvdy1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xyXG4kdGFibGUtbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcclxuXHJcbi8vIFRoZXNlIGFyZSBmb3IgY29udHJvbGxpbmcgdGhlIGxheW91dCwgZGlzcGxheSBhbmQgbWFyZ2luIG9mIHRhYmxlc1xyXG4kdGFibGUtbGF5b3V0OiBhdXRvICFkZWZhdWx0O1xyXG4kdGFibGUtZGlzcGxheTogdGFibGUtY2VsbCAhZGVmYXVsdDtcclxuJHRhYmxlLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vL1xyXG4vLyBAbWl4aW5zXHJcbi8vXHJcblxyXG5AbWl4aW4gdGFibGUge1xyXG4gIGJhY2tncm91bmQ6ICR0YWJsZS1iZztcclxuICBtYXJnaW4tYm90dG9tOiAkdGFibGUtbWFyZ2luLWJvdHRvbTtcclxuICBib3JkZXI6ICR0YWJsZS1ib3JkZXItc3R5bGUgJHRhYmxlLWJvcmRlci1zaXplICR0YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgdGFibGUtbGF5b3V0OiAkdGFibGUtbGF5b3V0O1xyXG5cclxuICBjYXB0aW9uIHtcclxuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1jYXB0aW9uLWJnO1xyXG4gICAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I7XHJcbiAgICBmb250OiB7XHJcbiAgICAgIHNpemU6ICR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTtcclxuICAgICAgd2VpZ2h0OiAkdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRoZWFkIHtcclxuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJnO1xyXG5cclxuICAgIHRyIHtcclxuICAgICAgdGgsXHJcbiAgICAgIHRkIHtcclxuICAgICAgICBwYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodDtcclxuICAgICAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGZvb3Qge1xyXG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWZvb3QtYmc7XHJcblxyXG4gICAgdHIge1xyXG4gICAgICB0aCxcclxuICAgICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1mb290LXBhZGRpbmc7XHJcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtZm9vdC1mb250LXNpemU7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1mb290LWZvbnQtd2VpZ2h0O1xyXG4gICAgICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0ciB7XHJcbiAgICB0aCxcclxuICAgIHRkIHtcclxuICAgICAgcGFkZGluZzogJHRhYmxlLXJvdy1wYWRkaW5nO1xyXG4gICAgICBmb250LXNpemU6ICR0YWJsZS1yb3ctZm9udC1zaXplO1xyXG4gICAgICBjb2xvcjogJHRhYmxlLXJvdy1mb250LWNvbG9yO1xyXG4gICAgICB0ZXh0LWFsaWduOiAkZGVmYXVsdC1mbG9hdDtcclxuICAgIH1cclxuXHJcbiAgICAmLmV2ZW4sXHJcbiAgICAmLmFsdCxcclxuICAgICY6bnRoLW9mLXR5cGUoZXZlbikgeyBiYWNrZ3JvdW5kOiAkdGFibGUtZXZlbi1yb3ctYmc7IH1cclxuICB9XHJcblxyXG4gIHRoZWFkIHRyIHRoLFxyXG4gIHRmb290IHRyIHRoLFxyXG4gIHRmb290IHRyIHRkLFxyXG4gIHRib2R5IHRyIHRoLFxyXG4gIHRib2R5IHRyIHRkLFxyXG4gIHRyIHRkIHsgZGlzcGxheTogJHRhYmxlLWRpc3BsYXk7IGxpbmUtaGVpZ2h0OiAkdGFibGUtbGluZS1oZWlnaHQ7IH1cclxufVxyXG5cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoXCJ0YWJsZVwiKSB7XHJcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlcyB7XHJcbiAgICB0YWJsZSB7XHJcbiAgICAgIEBpbmNsdWRlIHRhYmxlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBpbXBvcnQgXCJnbG9iYWxcIjtcclxuQGltcG9ydCBcImJ1dHRvbnNcIjtcclxuXHJcbi8vXHJcbi8vIEB2YXJpYWJsZXNcclxuLy9cclxuJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFzZSBmb3IgbG90cyBvZiBmb3JtIHNwYWNpbmcgYW5kIHBvc2l0aW9uaW5nIHN0eWxlc1xyXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxhYmVscyBpbiBkaWZmZXJlbnQgd2F5c1xyXG4kZm9ybS1sYWJlbC1wb2ludGVyOiBwb2ludGVyICFkZWZhdWx0O1xyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcclxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XHJcbiRmb3JtLWxhYmVsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRibGFjaywgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcclxuJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFkZWZhdWx0O1xyXG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xyXG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XHJcbiRpbnB1dC1mb250LWNvbG9yOiByZ2JhKDAsMCwwLDAuNzUpICFkZWZhdWx0O1xyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XHJcbiRpbnB1dC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kaW5wdXQtZm9jdXMtYmctY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIlKSAhZGVmYXVsdDtcclxuJGlucHV0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcclxuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKSAhZGVmYXVsdDtcclxuJGlucHV0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XHJcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG4kaW5wdXQtZGlzYWJsZWQtYmc6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XHJcbiRpbnB1dC1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcclxuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XHJcbiRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBmaWVsZHNldCBib3JkZXIgYW5kIHNwYWNpbmcuXHJcbiRmaWVsZHNldC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xyXG4kZmllbGRzZXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XHJcbiRmaWVsZHNldC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XHJcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsZWdlbmRzIHdoZW4geW91IHVzZSB0aGVtXHJcbiRsZWdlbmQtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJGxlZ2VuZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XHJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcHJlZml4IGFuZCBwb3N0Zml4IGlucHV0IGVsZW1lbnRzXHJcbiRpbnB1dC1wcmVmaXgtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcclxuJGlucHV0LXByZWZpeC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSkgIWRlZmF1bHQ7XHJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcclxuJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XHJcbiRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c6IGhpZGRlbiAhZGVmYXVsdDtcclxuJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xyXG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxyXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXHJcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc6IHJlbS1jYWxjKDYgOSA5KSAhZGVmYXVsdDtcclxuJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wOiAtMXB4ICFkZWZhdWx0O1xyXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcclxuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcclxuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDogJG9pbCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBnbG93aW5nIGVmZmVjdCBvZiBpbnB1dHMgd2hlbiBmb2N1c2VkXHJcbiRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWU6IDAuNDVzICFkZWZhdWx0O1xyXG4kZ2xvd2luZy1lZmZlY3QtY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLyBTZWxlY3QgdmFyaWFibGVzXHJcbiRzZWxlY3QtYmctY29sb3I6ICRnaG9zdCAhZGVmYXVsdDtcclxuJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcclxuXHJcbi8vXHJcbi8vIEBNSVhJTlNcclxuLy9cclxuXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgdXMgZm9ybSBzdHlsZXMgZm9yIHJvd3MgaW5zaWRlIG9mIGZvcm1zXHJcbkBtaXhpbiBmb3JtLXJvdy1iYXNlIHtcclxuICAucm93IHsgbWFyZ2luOiAwICgoLSRmb3JtLXNwYWNpbmcpIC8gMik7XHJcblxyXG4gICAgLmNvbHVtbixcclxuICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMCAkZm9ybS1zcGFjaW5nIC8gMjsgfVxyXG5cclxuICAgIC8vIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBtYXJnaW5zIG9mIGEgZm9ybSByb3dcclxuICAgICYuY29sbGFwc2UgeyBtYXJnaW46IDA7XHJcblxyXG4gICAgICAuY29sdW1uLFxyXG4gICAgICAuY29sdW1ucyB7IHBhZGRpbmc6IDA7IH1cclxuICAgICAgaW5wdXQge1xyXG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sIDApO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBpbnB1dC5jb2x1bW4sXHJcbiAgaW5wdXQuY29sdW1ucyxcclxuICB0ZXh0YXJlYS5jb2x1bW4sXHJcbiAgdGV4dGFyZWEuY29sdW1ucyB7IHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICRmb3JtLXNwYWNpbmcgLyAyOyB9XHJcbn1cclxuXHJcbi8vIEBNSVhJTlxyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzIHRoZWlyIHN0eWxlXHJcbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZy1jb2xvcjtcclxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xyXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlci13aWR0aCAkaW5wdXQtYm9yZGVyLXN0eWxlICRpbnB1dC1ib3JkZXItY29sb3I7XHJcbiAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3c7XHJcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XHJcbiAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XHJcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcclxuICB3aWR0aDogMTAwJTtcclxuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCB7XHJcbiAgICBAaW5jbHVkZSBibG9jay1nbG93aW5nLWVmZmVjdChmb2N1cywgJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZSwgJGdsb3dpbmctZWZmZWN0LWNvbG9yKTtcclxuICB9XHJcbiAgLy8gQmFzaWMgZm9jdXMgc3R5bGVzXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XHJcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuICAvLyBEaXNiYWxlZCBTdHlsZXNcclxuICAmOmRpc2FibGVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcclxuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcclxuICB9XHJcblxyXG4gIC8vIERpc2FibGVkIGJhY2tncm91bmQgaW5wdXQgYmFja2dyb3VuZCBjb2xvclxyXG4gICZbZGlzYWJsZWRdLFxyXG4gICZbcmVhZG9ubHldLFxyXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcclxuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEBNSVhJTlxyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZm9ybSBsYWJlbHNcclxuLy9cclxuLy8gJGFsaWdubWVudCAtIEFsaWdubWVudCBvcHRpb25zLiBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogW3JpZ2h0LCBpbmxpbmUsIGZhbHNlXVxyXG4vLyAkYmFzZS1zdHlsZSAtIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC4gRGVmYXVsdDogdHJ1ZS5cclxuQG1peGluIGZvcm0tbGFiZWwoJGFsaWdubWVudDpmYWxzZSwgJGJhc2Utc3R5bGU6dHJ1ZSkge1xyXG5cclxuICAvLyBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guXHJcbiAgQGlmICRiYXNlLXN0eWxlIHtcclxuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xyXG4gICAgY29sb3I6ICRmb3JtLWxhYmVsLWZvbnQtY29sb3I7XHJcbiAgICBjdXJzb3I6ICRmb3JtLWxhYmVsLXBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW47XHJcbiAgfVxyXG5cclxuICAvLyBBbGlnbm1lbnQgb3B0aW9uc1xyXG4gIEBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcclxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBpbmxpbmUge1xyXG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xyXG4gICAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHBvc3RmaXgvcHJlZml4IGZvcm0gTGFiZWxzXHJcbkBtaXhpbiBwcmVmaXgtcG9zdGZpeC1iYXNlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZy10b3A6IDA7XHJcbiAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgYm9yZGVyLXN0eWxlOiAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlO1xyXG4gIGJvcmRlci13aWR0aDogJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTtcclxuICBvdmVyZmxvdzogJGlucHV0LXByZWZpeC1vdmVyZmxvdztcclxuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcclxuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xyXG4gIGxpbmUtaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcclxufVxyXG5cclxuLy8gQE1JWElOXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwcmVmaXggbGFiZWwgc3R5bGVzXHJcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XHJcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OmZhbHNlXHJcbi8vXHJcbkBtaXhpbiBwcmVmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcclxuXHJcbiAgQGlmICRiZyB7XHJcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcclxuICAgIGJhY2tncm91bmQ6ICRiZztcclxuICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBub25lO1xyXG5cclxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXHJcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxyXG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRib3JkZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgQGlmICRpcy1idXR0b24ge1xyXG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcclxuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzQpO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8vIEBNSVhJTlxyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeCBsYWJlbCBzdHlsZXNcclxuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcclxuLy8gJGlzLWJ1dHRvbiAtIFRvZ2dsZSBwb3NpdGlvbiBzZXR0aW5ncyBpZiBwcmVmaXggaXMgYSBidXR0b24uIERlZmF1bHQ6IGZhbHNlXHJcbkBtaXhpbiBwb3N0Zml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XHJcblxyXG4gIEBpZiAkYmcge1xyXG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XHJcbiAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06IG5vbmU7XHJcblxyXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcclxuICAgIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlICBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxyXG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRib3JkZXIge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgQGlmICRpcy1idXR0b24ge1xyXG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcclxuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzQpO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHN0eWxlIGZpZWxkc2V0c1xyXG5AbWl4aW4gZmllbGRzZXQge1xyXG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlci13aWR0aCAkZmllbGRzZXQtYm9yZGVyLXN0eWxlICRmaWVsZHNldC1ib3JkZXItY29sb3I7XHJcbiAgcGFkZGluZzogJGZpZWxkc2V0LXBhZGRpbmc7XHJcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xyXG5cclxuICAvLyBhbmQgbGVnZW5kIHN0eWxlc1xyXG4gIGxlZ2VuZCB7XHJcbiAgICBmb250LXdlaWdodDogJGxlZ2VuZC1mb250LXdlaWdodDtcclxuICAgIGJhY2tncm91bmQ6ICRsZWdlbmQtYmc7XHJcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IHJlbS1jYWxjKC0zKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEBNSVhJTlxyXG4vL1xyXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjb250cm9sIGJvcmRlciBhbmQgYmFja2dyb3VuZCBjb2xvciBvZiBlcnJvciBpbnB1dHNcclxuLy8gJGNvbG9yIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxyXG5AbWl4aW4gZm9ybS1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7XHJcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsIDAuMSk7XHJcblxyXG4gIC8vIEdvIGJhY2sgdG8gbm9ybWFsIG9uIGZvY3VzXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XHJcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBATUlYSU5cclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgc2ltcGxlIG1peGluIHRvIHN0eWxlIGxhYmVscyBmb3IgZXJyb3IgaW5wdXRzXHJcbi8vICRjb2xvciAtIERlZmF1bHQ6JGFsZXJ0LWNvbG9yLiBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXHJcbkBtaXhpbiBmb3JtLWxhYmVsLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHsgY29sb3I6ICRjb2xvcjsgfVxyXG5cclxuLy8gQE1JWElOXHJcbi8vXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBlcnJvciBtZXNzYWdlIHN0eWxlc1xyXG4vLyAkYmcgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKEZvdW5kIGluIHNldHRpbmdzIGZpbGUpXHJcbkBtaXhpbiBmb3JtLWVycm9yLW1lc3NhZ2UoJGJnOiRhbGVydC1jb2xvcikge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6ICRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc7XHJcbiAgbWFyZ2luLXRvcDogJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wO1xyXG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU7XHJcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xyXG4gIGZvbnQtc3R5bGU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU7XHJcblxyXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGJhc2VkIG9uIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kLlxyXG4gICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xyXG4gIGJhY2tncm91bmQ6ICRiZztcclxuICBAaWYgJGJnLWxpZ2h0bmVzcyA8IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I7IH1cclxuICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDsgfVxyXG59XHJcblxyXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBzZWxlY3QgZWxlbWVudHNcclxuQG1peGluIGZvcm0tc2VsZWN0ICB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iZy1jb2xvcjtcclxuXHJcbiAgLy8gVGhlIGN1c3RvbSBhcnJvdyBoYXZlIHNvbWUgZmFrZSBob3Jpem9udGFsIHBhZGRpbmcgc28gd2UgY2FuIGFsaWduIGl0XHJcbiAgLy8gZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHJlbHlpbmcgb24gQ1NTM1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpsY25OcGIyNDlJakV1TVNJZ2VEMGlNVEp3ZUNJZ2VUMGlNSEI0SWlCM2FXUjBhRDBpTWpSd2VDSWdhR1ZwWjJoMFBTSXpjSGdpSUhacFpYZENiM2c5SWpBZ01DQTJJRE1pSUdWdVlXSnNaUzFpWVdOclozSnZkVzVrUFNKdVpYY2dNQ0F3SURZZ015SWdlRzFzT25Od1lXTmxQU0p3Y21WelpYSjJaU0krUEhCdmJIbG5iMjRnY0c5cGJuUnpQU0kxTGprNU1pd3dJREl1T1RreUxETWdMVEF1TURBNExEQWdJaTgrUEM5emRtYyspO1xyXG5cclxuICAvLyBXZSBjYW4gc2FmZWx5IHVzZSBsZWZ0bW9zdCBhbmQgcmlnaHRtb3N0IG5vd1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSAncnRsJywgMCUsIDEwMCUpIGNlbnRlcjtcclxuXHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggJGlucHV0LWJvcmRlci1zdHlsZSAkaW5wdXQtYm9yZGVyLWNvbG9yO1xyXG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xyXG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgQGluY2x1ZGUgcmFkaXVzKDApO1xyXG4gICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcmFkaXVzKTsgfVxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjtcclxuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcclxuICB9XHJcbiAgLy8gRGlzYmFsZWQgU3R5bGVzXHJcbiAgJjpkaXNhYmxlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XHJcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byB0dXJuIG9uL29mZiBIVE1MNSBudW1iZXIgc3Bpbm5lcnNcclxuQG1peGluIGh0bWw1bnVtYmVyKCRicm93c2VyLCAkb246dHJ1ZSkge1xyXG4gIEBpZiAkb249PWZhbHNlIHtcclxuICAgICAgQGlmICRicm93c2VyPT13ZWJraXQge1xyXG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH0gQGVsc2UgaWYgJGJyb3dzZXI9PW1veiB7XHJcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XHJcbiAgICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoXCJmb3JtXCIpIHtcclxuICBAaWYgJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXMge1xyXG4gICAgLyogU3RhbmRhcmQgRm9ybXMgKi9cclxuICAgIGZvcm0geyBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nOyB9XHJcblxyXG4gICAgLyogVXNpbmcgZm9ybXMgd2l0aGluIHJvd3MsIHdlIG5lZWQgdG8gc2V0IHNvbWUgZGVmYXVsdHMgKi9cclxuICAgIGZvcm0gLnJvdyB7IEBpbmNsdWRlIGZvcm0tcm93LWJhc2U7IH1cclxuXHJcbiAgICAvKiBMYWJlbCBTdHlsZXMgKi9cclxuICAgIGxhYmVsIHsgQGluY2x1ZGUgZm9ybS1sYWJlbDtcclxuICAgICAgJi5yaWdodCB7IEBpbmNsdWRlIGZvcm0tbGFiZWwocmlnaHQsZmFsc2UpOyB9XHJcbiAgICAgICYuaW5saW5lIHsgQGluY2x1ZGUgZm9ybS1sYWJlbChpbmxpbmUsZmFsc2UpOyB9XHJcbiAgICAgIC8qIFN0eWxlcyBmb3IgcmVxdWlyZWQgaW5wdXRzICovXHJcbiAgICAgIHNtYWxsIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xyXG4gICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZm9ybS1sYWJlbC1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAxNSUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0OjotbXMtZXhwYW5kIHtcclxuICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEF0dGFjaCBlbGVtZW50cyB0byB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiBhbiBpbnB1dCAqL1xyXG4gICAgLnByZWZpeCxcclxuICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcHJlZml4LXBvc3RmaXgtYmFzZTsgfVxyXG5cclxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXHJcbiAgICAucG9zdGZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSxmYWxzZSk7IEBpbmNsdWRlIHBvc3RmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxyXG4gICAgLnByZWZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSxmYWxzZSk7IEBpbmNsdWRlIHByZWZpeChmYWxzZSwgZmFsc2UsIHRydWUpOyB9XHJcblxyXG4gICAgLnByZWZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XHJcbiAgICAucG9zdGZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cclxuICAgIC5wcmVmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cclxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yb3VuZCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cclxuXHJcbiAgICAvKiBTZXBhcmF0ZSBwcmVmaXggYW5kIHBvc3RmaXggc3R5bGVzIHdoZW4gb24gc3BhbiBvciBsYWJlbCBzbyBidXR0b25zIGtlZXAgdGhlaXIgb3duICovXHJcbiAgICBzcGFuLnByZWZpeCxsYWJlbC5wcmVmaXggeyBAaW5jbHVkZSBwcmVmaXgoKTsgfVxyXG4gICAgc3Bhbi5wb3N0Zml4LGxhYmVsLnBvc3RmaXggeyBAaW5jbHVkZSBwb3N0Zml4KCk7IH1cclxuXHJcbiAgICAvKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xyXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwidGVsXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwidXJsXCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxyXG4gICAgdGV4dGFyZWEge1xyXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gICAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XHJcbiAgICAgIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCA9PSBmYWxzZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihhbGwsIDAuMTVzLCBsaW5lYXIpO1xyXG4gICAgICB9XHJcbiAgICAgICYucmFkaXVzIHtcclxuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybSB7XHJcbiAgICAgIC5yb3cge1xyXG4gICAgICAgIC5wcmVmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XHJcbiAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgIHRleHRhcmVhLFxyXG4gICAgICAgICAgc2VsZWN0IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cclxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJhZGl1cyk7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XHJcbiAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgIHRleHRhcmVhLFxyXG4gICAgICAgICAgc2VsZWN0IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XHJcbiAgICAgICAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcmVmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcclxuICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgdGV4dGFyZWEsXHJcbiAgICAgICAgICBzZWxlY3QgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XHJcbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnBvc3RmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcclxuICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgdGV4dGFyZWEsXHJcbiAgICAgICAgICBzZWxlY3QgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxyXG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLyogUmVzcGVjdCBlbmZvcmNlZCBhbW91bnQgb2Ygcm93cyBmb3IgdGV4dGFyZWEgKi9cclxuICAgIHRleHRhcmVhW3Jvd3NdIHtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEFkZCBoZWlnaHQgdmFsdWUgZm9yIHNlbGVjdCBlbGVtZW50cyB0byBtYXRjaCB0ZXh0IGlucHV0IGhlaWdodCAqL1xyXG4gICAgc2VsZWN0IHtcclxuICAgICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XHJcbiAgICAgIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQWRqdXN0IG1hcmdpbiBmb3IgZm9ybSBlbGVtZW50cyBiZWxvdyAqL1xyXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXHJcbiAgICBzZWxlY3Qge1xyXG4gICAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXHJcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZm9ybS1zcGFjaW5nICogLjU7XHJcbiAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZm9ybS1zcGFjaW5nO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLyogTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGggKi9cclxuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcclxuICAgICAgd2lkdGg6MTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBIVE1MNSBOdW1iZXIgc3Bpbm5lcnMgc2V0dGluZ3MgKi9cclxuICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XHJcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKG1veiwgJGlucHV0LW51bWJlci1zcGlubmVycylcclxuICAgIH1cclxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICAgICAgQGluY2x1ZGUgaHRtbDVudW1iZXIod2Via2l0LCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBXZSBhZGQgYmFzaWMgZmllbGRzZXQgc3R5bGluZyAqL1xyXG4gICAgZmllbGRzZXQge1xyXG4gICAgICBAaW5jbHVkZSBmaWVsZHNldDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBFcnJvciBIYW5kbGluZyAqL1xyXG5cclxuICAgICN7ZGF0YSgnYWJpZGUnKX0ge1xyXG4gICAgICAuZXJyb3Igc21hbGwuZXJyb3IsIC5lcnJvciBzcGFuLmVycm9yLCBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XHJcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHsgZGlzcGxheTogbm9uZTsgfVxyXG4gICAgfVxyXG5cclxuICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcclxuICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIC5lcnJvciB7XHJcbiAgICAgIGlucHV0LFxyXG4gICAgICB0ZXh0YXJlYSxcclxuICAgICAgc2VsZWN0IHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbiAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZ1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsYWJlbCxcclxuICAgICAgbGFiZWwuZXJyb3Ige1xyXG4gICAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNtYWxsLmVycm9yIHtcclxuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgID4gc21hbGwge1xyXG4gICAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xyXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgZm9udC1zaXplOiA2MCU7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBzcGFuLmVycm9yLW1lc3NhZ2Uge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQuZXJyb3IsXHJcbiAgICB0ZXh0YXJlYS5lcnJvcixcclxuICAgIHNlbGVjdC5lcnJvciB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5lcnJvciB7IEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7IH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcblxyXG4vL1xyXG4vLyBAdmFyaWFibGVzXHJcbi8vXHJcbiRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWFyZ2lucyBhbmQgcGFkZGluZyBvZiB0aGUgaW5saW5lIGxpc3QuXHJcbiRpbmxpbmUtbGlzdC10b3AtbWFyZ2luOiAwICFkZWZhdWx0O1xyXG4kaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luOiAwICFkZWZhdWx0O1xyXG4kaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xyXG4kaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1tYXJnaW46IHJlbS1jYWxjKC0yMikgIWRlZmF1bHQ7XHJcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XHJcblxyXG4kaW5saW5lLWxpc3QtcGFkZGluZzogMCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG92ZXJmbG93IG9mIHRoZSBpbmxpbmUgbGlzdC5cclxuJGlubGluZS1saXN0LW92ZXJmbG93OiBoaWRkZW4gIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBsaXN0IGl0ZW1zXHJcbiRpbmxpbmUtbGlzdC1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYW55IGVsZW1lbnRzIHdpdGhpbiBsaXN0IGl0ZW1zXHJcbiRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcclxuXHJcbi8vXHJcbi8vIEBtaXhpbnNcclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGlubGluZSBsaXN0c1xyXG5AbWl4aW4gaW5saW5lLWxpc3Qge1xyXG4gIG1hcmdpbjogJGlubGluZS1saXN0LXRvcC1tYXJnaW4gYXV0byAkaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbiBhdXRvO1xyXG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luO1xyXG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luO1xyXG4gIHBhZGRpbmc6ICRpbmxpbmUtbGlzdC1wYWRkaW5nO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgb3ZlcmZsb3c6ICRpbmxpbmUtbGlzdC1vdmVyZmxvdztcclxuXHJcbiAgJiA+IGxpIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XHJcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luO1xyXG4gICAgZGlzcGxheTogJGlubGluZS1saXN0LWRpc3BsYXk7XHJcbiAgICAmPiogeyBkaXNwbGF5OiAkaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTsgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhcImlubGluZS1saXN0XCIpIHtcclxuICBAaWYgJGluY2x1ZGUtaHRtbC1pbmxpbmUtbGlzdC1jbGFzc2VzIHtcclxuICAgIC5pbmxpbmUtbGlzdCB7XHJcbiAgICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuQGltcG9ydCBcImdsb2JhbFwiO1xyXG5cclxuLy9cclxuLy8gQHZhcmlhYmxlc1xyXG4vL1xyXG4kaW5jbHVkZS1odG1sLWRyb3Bkb3duLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9scyBoZWlnaHQgYW5kIHdpZHRoIHN0eWxlcy5cclxuJGYtZHJvcGRvd24tbWF4LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcclxuJGYtZHJvcGRvd24taGVpZ2h0OiBhdXRvICFkZWZhdWx0O1xyXG4kZi1kcm9wZG93bi1tYXgtaGVpZ2h0OiBub25lICFkZWZhdWx0O1xyXG5cclxuLy8gVXNlZCBmb3IgYm90dG9tIHBvc2l0aW9uXHJcbiRmLWRyb3Bkb3duLW1hcmdpbi10b3A6IDJweCAhZGVmYXVsdDtcclxuXHJcbi8vIFVzZWQgZm9yIHJpZ2h0IHBvc2l0aW9uXHJcbiRmLWRyb3Bkb3duLW1hcmdpbi1sZWZ0OiAkZi1kcm9wZG93bi1tYXJnaW4tdG9wICFkZWZhdWx0O1xyXG5cclxuLy8gVXNlZCBmb3IgbGVmdCBwb3NpdGlvblxyXG4kZi1kcm9wZG93bi1tYXJnaW4tcmlnaHQ6ICRmLWRyb3Bkb3duLW1hcmdpbi10b3AgIWRlZmF1bHQ7XHJcblxyXG4vLyBVc2VkIGZvciB0b3AgcG9zaXRpb25cclxuJGYtZHJvcGRvd24tbWFyZ2luLWJvdHRvbTogJGYtZHJvcGRvd24tbWFyZ2luLXRvcCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3JcclxuJGYtZHJvcGRvd24tYmc6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYm9yZGVyIHN0eWxlcyBmb3IgZHJvcGRvd25zLlxyXG4kZi1kcm9wZG93bi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xyXG4kZi1kcm9wZG93bi1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xyXG5cclxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSB0cmlhbmdsZSBwaXAuXHJcbiRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemU6IDZweCAhZGVmYXVsdDtcclxuJGYtZHJvcGRvd24tdHJpYW5nbGUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQ6IDEwcHggIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBzdHlsZXMgZm9yIHRoZSBsaXN0IGVsZW1lbnRzLlxyXG4kZi1kcm9wZG93bi1saXN0LXN0eWxlOiBub25lICFkZWZhdWx0O1xyXG4kZi1kcm9wZG93bi1mb250LWNvbG9yOiAkY2hhcmNvYWwgIWRlZmF1bHQ7XHJcbiRmLWRyb3Bkb3duLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xyXG4kZi1kcm9wZG93bi1saXN0LXBhZGRpbmc6IHJlbS1jYWxjKDUsIDEwKSAhZGVmYXVsdDtcclxuJGYtZHJvcGRvd24tbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcclxuJGYtZHJvcGRvd24tbGlzdC1ob3Zlci1iZzogJHNtb2tlICFkZWZhdWx0O1xyXG4kZHJvcGRvd24tbW9iaWxlLWRlZmF1bHQtZmxvYXQ6IDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBzdHlsZXMgZm9yIHdoZW4gdGhlIGRyb3Bkb3duIGhhcyBjdXN0b20gY29udGVudC5cclxuJGYtZHJvcGRvd24tY29udGVudC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XHJcblxyXG4vLyBEZWZhdWx0IHJhZGl1cyBmb3IgZHJvcGRvd24uXHJcbiRmLWRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vL1xyXG4vLyBAbWl4aW5zXHJcbi8vXHJcbi8vXHJcbi8vIE5PVEU6IE1ha2UgZGVmYXVsdCBtYXgtd2lkdGggY2hhbmdlIGJldHdlZW4gbGlzdCBhbmQgY29udGVudCB0eXBlcy4gQ2FuIGFkZCBtb3JlIHdpZHRoIHdpdGggY2xhc3NlcywgbWF5YmUgLnNtYWxsLCAubWVkaXVtLCAubGFyZ2UsIGV0Yy47XHJcbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBkcm9wZG93biBjb250YWluZXIgZWxlbWVudC5cclxuLy8gJGNvbnRlbnQtbGlzdCAtIFNldHMgbGlzdC1zdHlsZS4gRGVmYXVsdDogbGlzdC4gT3B0aW9uczogW2xpc3QsIGNvbnRlbnRdXHJcbi8vICR0cmlhbmdsZSAtIFNldHMgaWYgZHJvcGRvd24gaGFzIHRyaWFuZ2xlLiBEZWZhdWx0OnRydWUuXHJcbi8vICRtYXgtd2lkdGggLSBEZWZhdWx0OiAkZi1kcm9wZG93bi1tYXgtd2lkdGggfHwgMjAwcHguXHJcbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIoJGNvbnRlbnQ6bGlzdCwgJHRyaWFuZ2xlOnRydWUsICRtYXgtd2lkdGg6JGYtZHJvcGRvd24tbWF4LXdpZHRoKSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IC05OTk5cHg7XHJcbiAgbGlzdC1zdHlsZTogJGYtZHJvcGRvd24tbGlzdC1zdHlsZTtcclxuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XHJcblxyXG4gID4gKjpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cclxuICA+ICo6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cclxuXHJcbiAgQGlmICRjb250ZW50ID09IGxpc3Qge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAkZi1kcm9wZG93bi1tYXgtaGVpZ2h0O1xyXG4gICAgaGVpZ2h0OiAkZi1kcm9wZG93bi1oZWlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZi1kcm9wZG93bi1iZztcclxuICAgIGJvcmRlcjogJGYtZHJvcGRvd24tYm9yZGVyLXN0eWxlICRmLWRyb3Bkb3duLWJvcmRlci13aWR0aCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3I7XHJcbiAgICBmb250LXNpemU6ICRmLWRyb3Bkb3duLWZvbnQtc2l6ZTtcclxuICAgIHotaW5kZXg6IDg5O1xyXG4gIH1cclxuICBAZWxzZSBpZiAkY29udGVudCA9PSBjb250ZW50IHtcclxuICAgIHBhZGRpbmc6ICRmLWRyb3Bkb3duLWNvbnRlbnQtcGFkZGluZztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAkZi1kcm9wZG93bi1oZWlnaHQ7XHJcbiAgICBtYXgtaGVpZ2h0OiAkZi1kcm9wZG93bi1tYXgtaGVpZ2h0O1xyXG4gICAgYmFja2dyb3VuZDogJGYtZHJvcGRvd24tYmc7XHJcbiAgICBib3JkZXI6ICRmLWRyb3Bkb3duLWJvcmRlci1zdHlsZSAkZi1kcm9wZG93bi1ib3JkZXItd2lkdGggJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yO1xyXG4gICAgZm9udC1zaXplOiAkZi1kcm9wZG93bi1mb250LXNpemU7XHJcbiAgICB6LWluZGV4OiA4OTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHJpYW5nbGUgPT0gYm90dG9tIHtcclxuICAgIG1hcmdpbi10b3A6ICRmLWRyb3Bkb3duLW1hcmdpbi10b3A7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSwgJGYtZHJvcGRvd24tdHJpYW5nbGUtY29sb3IsIGJvdHRvbSk7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKTtcclxuICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0O1xyXG4gICAgICB6LWluZGV4OiA4OTtcclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSArIDEsICRmLWRyb3Bkb3duLWJvcmRlci1jb2xvciwgYm90dG9tKTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC0oKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKyAxKSAqIDIpO1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQgLSAxO1xyXG4gICAgICB6LWluZGV4OiA4ODtcclxuICAgIH1cclxuXHJcbiAgICAmLnJpZ2h0OmJlZm9yZSB7XHJcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xyXG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcclxuICAgIH1cclxuICAgICYucmlnaHQ6YWZ0ZXIge1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcclxuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQgLSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICR0cmlhbmdsZSA9PSAkZGVmYXVsdC1mbG9hdCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi1tYXJnaW4tcmlnaHQ7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSwgJGYtZHJvcGRvd24tdHJpYW5nbGUtY29sb3IsICN7JG9wcG9zaXRlLWRpcmVjdGlvbn0pO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQ7XHJcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKTtcclxuICAgICAgei1pbmRleDogODk7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKyAxLCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3IsICN7JG9wcG9zaXRlLWRpcmVjdGlvbn0pO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQgLSAxO1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMikgLSAyO1xyXG4gICAgICB6LWluZGV4OiA4ODtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBAaWYgJHRyaWFuZ2xlID09ICRvcHBvc2l0ZS1kaXJlY3Rpb24ge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSRmLWRyb3Bkb3duLW1hcmdpbi1yaWdodDtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplLCAkZi1kcm9wZG93bi10cmlhbmdsZS1jb2xvciwgI3skZGVmYXVsdC1mbG9hdH0pO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQ7XHJcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpO1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcclxuICAgICAgei1pbmRleDogODk7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKyAxLCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3IsICN7JGRlZmF1bHQtZmxvYXR9KTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0IC0gMTtcclxuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMikgLSAyO1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcclxuICAgICAgei1pbmRleDogODg7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQGlmICR0cmlhbmdsZSA9PSB0b3Age1xyXG4gICAgbWFyZ2luLXRvcDogLSRmLWRyb3Bkb3duLW1hcmdpbi1ib3R0b207XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplLCAkZi1kcm9wZG93bi10cmlhbmdsZS1jb2xvciwgdG9wKTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IGF1dG87XHJcbiAgICAgIGJvdHRvbTogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMik7XHJcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcclxuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcclxuICAgICAgei1pbmRleDogODk7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKyAxLCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3IsIHRvcCk7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICBib3R0b206IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpIC0gMjtcclxuICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0IC0gMTtcclxuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcclxuICAgICAgei1pbmRleDogODg7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQGlmICRtYXgtd2lkdGggeyBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7IH1cclxuICBAZWxzZSB7IG1heC13aWR0aDogJGYtZHJvcGRvd24tbWF4LXdpZHRoOyB9XHJcblxyXG59XHJcblxyXG4vLyBATUlYSU5cclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIGxpc3QgZWxlbWVudHMgb3IgY29udGVudCBpbnNpZGUgdGhlIGRyb3Bkb3duLlxyXG5cclxuQG1peGluIGRyb3Bkb3duLXN0eWxlIHtcclxuICBmb250LXNpemU6ICRmLWRyb3Bkb3duLWZvbnQtc2l6ZTtcclxuICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcclxuXHJcbiAgbGluZS1oZWlnaHQ6ICRmLWRyb3Bkb3duLWxpbmUtaGVpZ2h0O1xyXG4gIG1hcmdpbjogMDtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHsgYmFja2dyb3VuZDogJGYtZHJvcGRvd24tbGlzdC1ob3Zlci1iZzsgfVxyXG5cclxuICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkZi1kcm9wZG93bi1yYWRpdXMpOyB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAkZi1kcm9wZG93bi1saXN0LXBhZGRpbmc7XHJcbiAgICBjb2xvcjogJGYtZHJvcGRvd24tZm9udC1jb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoXCJkcm9wZG93blwiKSB7XHJcbiAgQGlmICRpbmNsdWRlLWh0bWwtZHJvcGRvd24tY2xhc3NlcyB7XHJcblxyXG4gICAgLyogRm91bmRhdGlvbiBEcm9wZG93bnMgKi9cclxuICAgIC5mLWRyb3Bkb3duIHtcclxuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyKGxpc3QsIGJvdHRvbSk7XHJcblxyXG4gICAgICAmLmRyb3AtI3skb3Bwb3NpdGUtZGlyZWN0aW9ufSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyKGxpc3QsICN7JGRlZmF1bHQtZmxvYXR9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5kcm9wLSN7JGRlZmF1bHQtZmxvYXR9IHtcclxuICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXIobGlzdCwgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZHJvcC10b3Age1xyXG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCB0b3ApO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIG1heC13aWR0aDogbm9uZTtcclxuXHJcbiAgICAgIGxpIHsgQGluY2x1ZGUgZHJvcGRvd24tc3R5bGU7IH1cclxuXHJcbiAgICAgIC8vIFlvdSBjYW4gYWxzbyBwdXQgY3VzdG9tIGNvbnRlbnQgaW4gdGhlc2UgZHJvcGRvd25zXHJcbiAgICAgICYuY29udGVudCB7IEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihjb250ZW50LCAkdHJpYW5nbGU6ZmFsc2UpOyB9XHJcblxyXG4gICAgICAvLyBTaXplc1xyXG4gICAgICAmLnRpbnkgICAgeyBtYXgtd2lkdGg6IDIwMHB4OyB9XHJcbiAgICAgICYuc21hbGwgICB7IG1heC13aWR0aDogMzAwcHg7IH1cclxuICAgICAgJi5tZWRpdW0gIHsgbWF4LXdpZHRoOiA1MDBweDsgfVxyXG4gICAgICAmLmxhcmdlICAgeyBtYXgtd2lkdGg6IDgwMHB4OyB9XHJcbiAgICAgICYubWVnYSAgICB7XHJcbiAgICAgICAgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAmLm9wZW57XHJcbiAgICAgICAgICBsZWZ0OjAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcblxyXG4vL1xyXG4vLyBUb29sdGlwIFZhcmlhYmxlc1xyXG4vL1xyXG4kaW5jbHVkZS1odG1sLXRvb2x0aXAtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xyXG5cclxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkaXJvbiAhZGVmYXVsdDtcclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG4kaGFzLXRpcC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xyXG4kaGFzLXRpcC1ib3JkZXItYm90dG9tLWhvdmVyOiBkb3R0ZWQgMXB4IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNTUlKSAhZGVmYXVsdDtcclxuJGhhcy10aXAtZm9udC1jb2xvci1ob3ZlcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRoYXMtdGlwLWN1cnNvci10eXBlOiBoZWxwICFkZWZhdWx0O1xyXG5cclxuJHRvb2x0aXAtcGFkZGluZzogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1iZzogJG9pbCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XHJcbiR0b29sdGlwLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiR0b29sdGlwLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XHJcbiR0b29sdGlwLWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1jbG9zZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtY2xvc2UtZm9udC1jb2xvcjogJG1vbnNvb24gIWRlZmF1bHQ7XHJcbiR0b29sdGlwLWZvbnQtc2l6ZS1zbWw6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuJHRvb2x0aXAtcm91bmRlZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1waXAtc2l6ZTogNXB4ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1tYXgtd2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xyXG5cclxuQGluY2x1ZGUgZXhwb3J0cyhcInRvb2x0aXBcIikge1xyXG4gIEBpZiAkaW5jbHVkZS1odG1sLXRvb2x0aXAtY2xhc3NlcyB7XHJcblxyXG4gICAgLyogVG9vbHRpcHMgKi9cclxuICAgIC5oYXMtdGlwIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcclxuICAgICAgY3Vyc29yOiAkaGFzLXRpcC1jdXJzb3ItdHlwZTtcclxuICAgICAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xyXG4gICAgICBjb2xvcjogJGhhcy10aXAtZm9udC1jb2xvcjtcclxuXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b20taG92ZXI7XHJcbiAgICAgICAgY29sb3I6ICRoYXMtdGlwLWZvbnQtY29sb3ItaG92ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYudGlwLWxlZnQsXHJcbiAgICAgICYudGlwLXJpZ2h0IHsgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG5cclxuICAgIC50b29sdGlwIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiAxMDA2O1xyXG4gICAgICBmb250LXdlaWdodDogJHRvb2x0aXAtZm9udC13ZWlnaHQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xyXG4gICAgICBsaW5lLWhlaWdodDogJHRvb2x0aXAtbGluZS1oZWlnaHQ7XHJcbiAgICAgIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XHJcbiAgICAgIG1heC13aWR0aDogJHRvb2x0aXAtbWF4LXdpZHRoO1xyXG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogNTAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgY29sb3I6ICR0b29sdGlwLWZvbnQtY29sb3I7XHJcbiAgICAgIGJhY2tncm91bmQ6ICR0b29sdGlwLWJnO1xyXG5cclxuICAgICAgJj4ubnViIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogJHRvb2x0aXAtcGlwLXNpemU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICBib3JkZXI6IHNvbGlkICR0b29sdGlwLXBpcC1zaXplO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRvb2x0aXAtYmcgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgdG9wOiAtKCR0b29sdGlwLXBpcC1zaXplICogMik7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICAgICAgICYucnRsIHtcclxuICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9vbHRpcC1waXAtc2l6ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYucmFkaXVzIHtcclxuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJHRvb2x0aXAtcmFkaXVzKTtcclxuICAgICAgfVxyXG4gICAgICAmLnJvdW5kIHtcclxuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJHRvb2x0aXAtcm91bmRlZCk7XHJcbiAgICAgICAgJj4ubnViIHtcclxuICAgICAgICAgIGxlZnQ6IDJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLm9wZW5lZCB7XHJcbiAgICAgICAgY29sb3I6ICRoYXMtdGlwLWZvbnQtY29sb3ItaG92ZXIgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tLWhvdmVyICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudGFwLXRvLWNsb3NlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtc2l6ZTogJHRvb2x0aXAtY2xvc2UtZm9udC1zaXplO1xyXG4gICAgICBjb2xvcjogJHRvb2x0aXAtY2xvc2UtZm9udC1jb2xvcjtcclxuICAgICAgZm9udC13ZWlnaHQ6ICR0b29sdGlwLWNsb3NlLWZvbnQtd2VpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbH0ge1xyXG4gICAgICAudG9vbHRpcCB7XHJcbiAgICAgICAgJj4ubnViIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRvb2x0aXAtYmcgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB0b3A6IC0oJHRvb2x0aXAtcGlwLXNpemUgKiAyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi50aXAtdG9wPi5udWIge1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkdG9vbHRpcC1iZyB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICAgIGJvdHRvbTogLSgkdG9vbHRpcC1waXAtc2l6ZSAqIDIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi50aXAtbGVmdCxcclxuICAgICAgICAmLnRpcC1yaWdodCB7IGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgICAgICAgJi50aXAtbGVmdD4ubnViIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRvb2x0aXAtYmc7XHJcbiAgICAgICAgICByaWdodDogLSgkdG9vbHRpcC1waXAtc2l6ZSAqIDIpO1xyXG4gICAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogLSR0b29sdGlwLXBpcC1zaXplO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLnRpcC1yaWdodD4ubnViIHtcclxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRvb2x0aXAtYmcgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICAgIGxlZnQ6IC0oJHRvb2x0aXAtcGlwLXNpemUgKiAyKTtcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogLSR0b29sdGlwLXBpcC1zaXplO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuQGltcG9ydCBcImdsb2JhbFwiO1xyXG5cclxuLy9cclxuLy8gQHZhcmlhYmxlc1xyXG4vL1xyXG4kaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgcHJvZ3Jlc3MgYmFyIGhlaWdodFxyXG4kcHJvZ3Jlc3MtYmFyLWhlaWdodDogcmVtLWNhbGMoMjUpICFkZWZhdWx0O1xyXG4kcHJvZ3Jlc3MtYmFyLWNvbG9yOiAkdmFwb3IgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYm9yZGVyIHN0eWxlc1xyXG4kcHJvZ3Jlc3MtYmFyLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAyMCUpICFkZWZhdWx0O1xyXG4kcHJvZ3Jlc3MtYmFyLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XHJcbiRwcm9ncmVzcy1iYXItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcclxuJHByb2dyZXNzLWJhci1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtYXJnaW4gJiBwYWRkaW5nXHJcbiRwcm9ncmVzcy1iYXItcGFkOiByZW0tY2FsYygyKSAhZGVmYXVsdDtcclxuJHByb2dyZXNzLWJhci1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBtZXRlciBjb2xvcnNcclxuJHByb2dyZXNzLW1ldGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJHByb2dyZXNzLW1ldGVyLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcclxuJHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3I6ICRzdWNjZXNzLWNvbG9yICFkZWZhdWx0O1xyXG4kcHJvZ3Jlc3MtbWV0ZXItYWxlcnQtY29sb3I6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vIEBtaXhpbnNcclxuLy9cclxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHVwIHRoZSBwcm9ncmVzcyBiYXIgY29udGFpbmVyXHJcbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYXItY29sb3I7XHJcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtYmFyLWhlaWdodDtcclxuICBib3JkZXI6ICRwcm9ncmVzcy1iYXItYm9yZGVyLXNpemUgJHByb2dyZXNzLWJhci1ib3JkZXItc3R5bGUgJHByb2dyZXNzLWJhci1ib3JkZXItY29sb3I7XHJcbiAgcGFkZGluZzogJHByb2dyZXNzLWJhci1wYWQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLWJhci1tYXJnaW4tYm90dG9tO1xyXG59XHJcblxyXG4vLyBAbWl4aW5zXHJcbi8vXHJcbi8vICRiZyAtIERlZmF1bHQ6ICRwcm9ncmVzcy1tZXRlci1jb2xvciB8fCAkcHJpbWFyeS1jb2xvclxyXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXIoJGJnOiRwcm9ncmVzcy1tZXRlci1jb2xvcikge1xyXG4gIGJhY2tncm91bmQ6ICRiZztcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcblxyXG5AaW5jbHVkZSBleHBvcnRzKFwicHJvZ3Jlc3MtYmFyXCIpIHtcclxuICBAaWYgJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzIHtcclxuXHJcbiAgICAvKiBQcm9ncmVzcyBCYXIgKi9cclxuICAgIC5wcm9ncmVzcyB7XHJcbiAgICAgIEBpbmNsdWRlIHByb2dyZXNzLWNvbnRhaW5lcjtcclxuXHJcbiAgICAgIC8vIE1ldGVyXHJcbiAgICAgIC5tZXRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XHJcbiAgICAgIH1cclxuICAgICAgJi5zZWNvbmRhcnkgLm1ldGVyIHsgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXIoJGJnOiRwcm9ncmVzcy1tZXRlci1zZWNvbmRhcnktY29sb3IpOyB9XHJcbiAgICAgICYuc3VjY2VzcyAubWV0ZXIgeyBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3IpOyB9XHJcbiAgICAgICYuYWxlcnQgLm1ldGVyIHsgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXIoJGJnOiRwcm9ncmVzcy1tZXRlci1hbGVydC1jb2xvcik7IH1cclxuXHJcbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRwcm9ncmVzcy1iYXItYm9yZGVyLXJhZGl1cyk7XHJcbiAgICAgICAgLm1ldGVyIHsgQGluY2x1ZGUgcmFkaXVzKCRwcm9ncmVzcy1iYXItYm9yZGVyLXJhZGl1cyAtIDEpOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMTAwMHB4KTtcclxuICAgICAgICAubWV0ZXIgeyBAaW5jbHVkZSByYWRpdXMoOTk5cHgpOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBpbXBvcnQgXCJnbG9iYWxcIjtcclxuXHJcbi8vXHJcbi8vIEZvdW5kYXRpb24gVmlzaWJpbGl0eSBDbGFzc2VzXHJcbi8vXHJcbiRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XHJcbiRpbmNsdWRlLWFjY2Vzc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcclxuJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xyXG4kaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy9cclxuLy8gTWVkaWEgQ2xhc3MgTmFtZXNcclxuLy9cclxuLy8gVmlzaWJpbGl0eSBCcmVha3BvaW50c1xyXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzOlxyXG4gIHNtYWxsLFxyXG4gIG1lZGl1bSxcclxuICBsYXJnZSxcclxuICB4bGFyZ2UsXHJcbiAgeHhsYXJnZTtcclxuXHJcbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllczpcclxuICB1bnF1b3RlKCRzbWFsbC11cCksXHJcbiAgdW5xdW90ZSgkbWVkaXVtLXVwKSxcclxuICB1bnF1b3RlKCRsYXJnZS11cCksXHJcbiAgdW5xdW90ZSgkeGxhcmdlLXVwKSxcclxuICB1bnF1b3RlKCR4eGxhcmdlLXVwKTtcclxuXHJcbkBtaXhpbiB2aXNpYmlsaXR5LWxvb3Age1xyXG4gIEBlYWNoICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcclxuICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogKCk7XHJcbiAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6ICgpO1xyXG5cclxuICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogKCk7XHJcbiAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogKCk7XHJcblxyXG4gICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogKCk7XHJcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogKCk7XHJcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogKCk7XHJcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogKCk7XHJcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6ICgpO1xyXG5cclxuICAgIEBlYWNoICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcclxuICAgICAgQGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPCBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcclxuICAgICAgICAvLyBTbWFsbGVyIHRoYW4gY3VycmVudCBicmVha3BvaW50XHJcblxyXG4gICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG5cclxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcclxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xyXG4gICAgICAgIC8vIGZvciBzbWFsbCwgbWVkaXVtLCBhbmQgbGFyZ2UgYnJlYWtwb2ludHMgb25seVxyXG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9IEBlbHNlIGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcclxuICAgICAgICAvLyBMYXJnZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcclxuXHJcbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcblxyXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxyXG4gICAgICAgIC8vIEluY2x1ZGUgLnNob3cvaGlkZS1mb3ItW3NpemVdIGFuZCAuc2hvdy9oaWRlLWZvci1bc2l6ZV0tZG93biBjbGFzc2VzXHJcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XHJcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIC8vIEN1cnJlbnQgYnJlYWtwb2ludFxyXG5cclxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcclxuICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXHJcbiAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xyXG4gICAgICAgICksIGNvbW1hKTtcclxuXHJcbiAgICAgICAgLy8gRm91bmRhdGlvbiA0IGNvbXBhdGliaWxpdHk6XHJcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcclxuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcclxuICAgICAgICBAaWYgJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlcyBhbmQgaW5kZXgoKHNtYWxsLCBtZWRpdW0sIGxhcmdlKSwgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSAhPSBmYWxzZSB7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXHJcbiAgICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xyXG4gICAgICAgICAgKSwgY29tbWEpO1xyXG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxyXG4gICAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcclxuICAgICAgICAgICksIGNvbW1hKTtcclxuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcclxuICAgICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXHJcbiAgICAgICAgICApLCBjb21tYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogI3skY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnR9IGRpc3BsYXlzICovXHJcbiAgICBAbWVkaWEgI3tudGgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1xdWVyaWVzLCBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpKX0ge1xyXG4gICAgICAjeyR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdH0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgICAjeyR2aXNpYmlsaXR5LW5vbmUtbGlzdH0ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgICBAaWYgJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcclxuICAgICAgICAjeyR2aXNpYmlsaXR5LXZpc2libGUtbGlzdH0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xyXG4gICAgICAgIH1cclxuICAgICAgICAjeyR2aXNpYmlsaXR5LWhpZGRlbi1saXN0fSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQGlmICRpbmNsdWRlLXRhYmxlLXZpc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XHJcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1saXN0fSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdH0ge1xyXG4gICAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3R9IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0fSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3R9IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5AaWYgJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xyXG5cclxuICBAaW5jbHVkZSB2aXNpYmlsaXR5LWxvb3A7XHJcblxyXG4gIC8qIE9yaWVudGF0aW9uIHRhcmdldGluZyAqL1xyXG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXHJcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XHJcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcclxuICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXHJcbiAgdGFibGUge1xyXG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXHJcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGU7IH1cclxuICB9XHJcbiAgdGhlYWQge1xyXG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXHJcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cclxuICB9XHJcbiAgdGJvZHkge1xyXG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXHJcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cclxuICB9XHJcbiAgdHIge1xyXG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXHJcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cclxuICB9XHJcbiAgdGQsXHJcbiAgdGgge1xyXG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXHJcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgI3skbGFuZHNjYXBlfSB7XHJcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxyXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XHJcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxyXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXHJcbiAgICB0YWJsZSB7XHJcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxyXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGU7IH1cclxuICAgIH1cclxuICAgIHRoZWFkIHtcclxuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXHJcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gICAgdGJvZHkge1xyXG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcclxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgICB0ciB7XHJcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxyXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICAgIHRkLFxyXG4gICAgdGgge1xyXG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcclxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhICN7JHBvcnRyYWl0fSB7XHJcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQsXHJcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XHJcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQsXHJcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXHJcbiAgICB0YWJsZSB7XHJcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXHJcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGU7IH1cclxuICAgIH1cclxuICAgIHRoZWFkIHtcclxuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcclxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gICAgdGJvZHkge1xyXG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxyXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgICB0ciB7XHJcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXHJcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICAgIHRkLFxyXG4gICAgdGgge1xyXG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxyXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogVG91Y2gtZW5hYmxlZCBkZXZpY2UgdGFyZ2V0aW5nICovXHJcbiAgLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcbiAgLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XHJcbiAgLnRvdWNoIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxyXG4gIC50b3VjaCAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXHJcbiAgdGFibGUuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZTsgfVxyXG4gIC50b3VjaCB0YWJsZS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlOyB9XHJcbiAgdGhlYWQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxyXG4gIC50b3VjaCB0aGVhZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgdGJvZHkuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxyXG4gIC50b3VjaCB0Ym9keS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgdHIuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxyXG4gIC50b3VjaCB0ci5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XHJcbiAgdGQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cclxuICAudG91Y2ggdGQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cclxuICB0aC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG4gIC50b3VjaCB0aC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG5cclxuXHJcbiAgLyogUHJpbnQgdmlzaWJpbGl0eSAqL1xyXG4gIEBtZWRpYSBwcmludCB7XHJcbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxyXG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGU7IH1cclxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cclxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cclxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cclxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XHJcbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuQGltcG9ydCBcImdsb2JhbFwiO1xyXG5cclxuLy9cclxuLy8gQG5hbWUgX3JldmVhbC5zY3NzXHJcbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXHJcbi8vXHJcblxyXG4kaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIHJldmVhbCBvdmVybGF5LlxyXG4kcmV2ZWFsLW92ZXJsYXktYmc6IHJnYmEoJGJsYWNrLCAuNDUpICFkZWZhdWx0O1xyXG4kcmV2ZWFsLW92ZXJsYXktYmctb2xkOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIG1vZGFsIGl0c2VsZi5cclxuJHJldmVhbC1tb2RhbC1iZzogJHdoaXRlICFkZWZhdWx0O1xyXG4kcmV2ZWFsLXBvc2l0aW9uLXRvcDogcmVtLWNhbGMoMTAwKSAhZGVmYXVsdDtcclxuJHJldmVhbC1kZWZhdWx0LXdpZHRoOiA4MCUgIWRlZmF1bHQ7XHJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkcm93LXdpZHRoICFkZWZhdWx0O1xyXG4kcmV2ZWFsLW1vZGFsLXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuJHJldmVhbC1ib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywuNCkgIWRlZmF1bHQ7XHJcblxyXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHJldmVhbCBjbG9zZSBidXR0b25cclxuJHJldmVhbC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDQwKSAhZGVmYXVsdDtcclxuJHJldmVhbC1jbG9zZS10b3A6IHJlbS1jYWxjKDgpICFkZWZhdWx0O1xyXG4kcmV2ZWFsLWNsb3NlLXNpZGU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcclxuJHJldmVhbC1jbG9zZS1jb2xvcjogJGJhc2UgIWRlZmF1bHQ7XHJcbiRyZXZlYWwtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcbiRyZXZlYWwtcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcclxuXHJcbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtb2RhbCBib3JkZXJcclxuJHJldmVhbC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xyXG4kcmV2ZWFsLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xyXG4kcmV2ZWFsLWJvcmRlci1jb2xvcjogJHN0ZWVsICFkZWZhdWx0O1xyXG5cclxuJHJldmVhbC1tb2RhbC1jbGFzczogXCJyZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcclxuJGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzczogXCJjbG9zZS1yZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcclxuXHJcbi8vXHJcbi8vIEBtaXhpbnNcclxuLy9cclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgcmV2ZWFsIGJhY2tncm91bmQgb3ZlcmxheSBzdHlsZXNcclxuQG1peGluIHJldmVhbC1iZyggJGluY2x1ZGUtei1pbmRleC12YWx1ZTogdHJ1ZSApIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iZy1vbGQ7IC8vIEF1dG9wcmVmaXhlciBzaG91bGQgYmUgdXNlZCB0byBhdm9pZCBzdWNoIHZhcmlhYmxlcyBuZWVkZWQgd2hlbiBGb3VuZGF0aW9uIGZvciBTaXRlcyBjYW4gZG8gc28gaW4gdGhlIG5lYXIgZnV0dXJlLlxyXG4gIGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iZztcclxuICB6LWluZGV4OiBpZiggJGluY2x1ZGUtei1pbmRleC12YWx1ZSwgMTAwNCwgYXV0byApO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgI3skZGVmYXVsdC1mbG9hdH06IDA7XHJcbn1cclxuXHJcbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgc3RydWN0dXJlIG9mIGEgcmV2ZWFsIG1vZGFsXHJcbi8vXHJcbi8vICRiYXNlLXN0eWxlIC0gUHJvdmlkZXMgcmV2ZWFsIGJhc2Ugc3R5bGVzLCBjYW4gYmUgc2V0IHRvIGZhbHNlIHRvIG92ZXJyaWRlLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxyXG4vLyAkd2lkdGggLSBTZXRzIHJldmVhbCB3aWR0aCBEZWZhdWx0OiAkcmV2ZWFsLWRlZmF1bHQtd2lkdGggfHwgODAlXHJcbi8vXHJcbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSggJGJhc2Utc3R5bGU6IHRydWUsICR3aWR0aDokcmV2ZWFsLWRlZmF1bHQtd2lkdGgsICRtYXgtd2lkdGg6JHJldmVhbC1tYXgtd2lkdGgsICRib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cykge1xyXG4gIEBpZiAkYmFzZS1zdHlsZSB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogMTAwNTtcclxuICAgIHdpZHRoOiAxMDB2dztcclxuICAgIHRvcDowO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XHJcbiAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICBtaW4taGVpZ2h0OjEwMHZoO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxyXG4gICAgLmNvbHVtbiwgLmNvbHVtbnMgeyBtaW4td2lkdGg6IDA7IH1cclxuXHJcbiAgICAvLyBHZXQgcmlkIG9mIG1hcmdpbiBmcm9tIGZpcnN0IGFuZCBsYXN0IGVsZW1lbnQgaW5zaWRlIG1vZGFsXHJcbiAgICAmID4gOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxyXG5cclxuICAgICYgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cclxuICB9XHJcblxyXG4gIEBpZiAkd2lkdGgge1xyXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSByZXZlYWwgbW9kYWwgZGVmYXVsdHNcclxuLy9cclxuLy8gJGJnIC0gU2V0cyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1iZyB8fCAkd2hpdGVcclxuLy8gJHBhZGRpbmcgLSBQYWRkaW5nIHRvIGFwcGx5IHRvIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1wYWRkaW5nLlxyXG4vLyAkYm9yZGVyIC0gQ2hvb3NlIHdoZXRoZXIgcmV2ZWFsIHVzZXMgYSBib3JkZXIuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXHJcbi8vICRib3JkZXItc3R5bGUgLSBTZXQgcmV2ZWFsIGJvcmRlciBzdHlsZS4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItc3R5bGUgfHwgc29saWRcclxuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciAoaS5lLiAxcHgpLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci13aWR0aC5cclxuLy8gJGJvcmRlci1jb2xvciAtIENvbG9yIG9mIGJvcmRlci4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItY29sb3IuXHJcbi8vICRib3gtc2hhZG93IC0gQ2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2VcclxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBtb2RhbCByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXHJcbi8vICR0b3Atb2Zmc2V0IC0gRGVmYXVsdDogJHJldmVhbC1wb3NpdGlvbi10b3AgfHwgNTBweFxyXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXN0eWxlKFxyXG4gICRiZzpmYWxzZSxcclxuICAkcGFkZGluZzpmYWxzZSxcclxuICAkYm9yZGVyOmZhbHNlLFxyXG4gICRib3JkZXItc3R5bGU6JHJldmVhbC1ib3JkZXItc3R5bGUsXHJcbiAgJGJvcmRlci13aWR0aDokcmV2ZWFsLWJvcmRlci13aWR0aCxcclxuICAkYm9yZGVyLWNvbG9yOiRyZXZlYWwtYm9yZGVyLWNvbG9yLFxyXG4gICRib3gtc2hhZG93OmZhbHNlLFxyXG4gICRyYWRpdXM6ZmFsc2UsXHJcbiAgJHRvcC1vZmZzZXQ6ZmFsc2UpIHtcclxuXHJcbiAgQGlmICRiZyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxyXG4gIEBpZiAkcGFkZGluZyAhPSBmYWxzZSB7IHBhZGRpbmc6ICRwYWRkaW5nOyB9XHJcblxyXG4gIEBpZiAkYm9yZGVyIHsgYm9yZGVyOiAkYm9yZGVyLXN0eWxlICRib3JkZXItd2lkdGggJGJvcmRlci1jb2xvcjsgfVxyXG5cclxuICAvLyBXZSBjYW4gY2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy5cclxuICBAaWYgJGJveC1zaGFkb3cge1xyXG4gICAgYm94LXNoYWRvdzogJHJldmVhbC1ib3gtc2hhZG93O1xyXG4gIH1cclxuXHJcbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggcmFkaXVzIGlzIHVzZWQgb24gdGhlIG1vZGFsXHJcbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmV2ZWFsLXJhZGl1cyk7IH1cclxuICBAZWxzZSBpZiAkcmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpOyB9XHJcblxyXG4gIEBpZiAkdG9wLW9mZnNldCB7XHJcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XHJcbiAgICAgIHRvcDogJHRvcC1vZmZzZXQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgYSBjbG9zZSBidXR0b24gZm9yIHRoZSByZXZlYWwgbW9kYWxcclxuLy9cclxuLy8gJGNvbG9yIC0gRGVmYXVsdDogJHJldmVhbC1jbG9zZS1jb2xvciB8fCAkYmFzZVxyXG5AbWl4aW4gcmV2ZWFsLWNsb3NlKCRjb2xvcjokcmV2ZWFsLWNsb3NlLWNvbG9yKSB7XHJcbiAgZm9udC1zaXplOiAkcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAkcmV2ZWFsLWNsb3NlLXRvcDtcclxuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcmV2ZWFsLWNsb3NlLXNpZGU7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBmb250LXdlaWdodDogJHJldmVhbC1jbG9zZS13ZWlnaHQ7XHJcbiAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGV4cG9ydHMoXCJyZXZlYWxcIikge1xyXG4gIEBpZiAkaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzIHtcclxuXHJcbiAgICAvLyBSZXZlYWwgTW9kYWxzXHJcbiAgICAucmV2ZWFsLW1vZGFsLWJnIHsgQGluY2x1ZGUgcmV2ZWFsLWJnOyB9XHJcblxyXG4gICAgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30ge1xyXG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcclxuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKFxyXG4gICAgICAgICRiZzokcmV2ZWFsLW1vZGFsLWJnLFxyXG4gICAgICAgICRwYWRkaW5nOiRyZXZlYWwtbW9kYWwtcGFkZGluZyxcclxuICAgICAgICAkYm9yZGVyOnRydWUsXHJcbiAgICAgICAgJGJveC1zaGFkb3c6dHJ1ZSxcclxuICAgICAgICAkcmFkaXVzOmZhbHNlLFxyXG4gICAgICAgICR0b3Atb2Zmc2V0OiRyZXZlYWwtcG9zaXRpb24tdG9wXHJcbiAgICAgICk7XHJcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcGFkZGluZzokcmV2ZWFsLW1vZGFsLXBhZGRpbmcgKiAxLjUpO1xyXG5cclxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czp0cnVlKTsgfVxyXG4gICAgICAmLnJvdW5kICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcmFkaXVzOiRyZXZlYWwtcm91bmQpOyB9XHJcbiAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHBhZGRpbmc6MCk7IH1cclxuICAgICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAzMCUpOyB9XHJcbiAgICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNDAlKTsgfVxyXG4gICAgICAmLm1lZGl1bSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNjAlKTsgfVxyXG4gICAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDcwJSk7IH1cclxuICAgICAgJi54bGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgOTUlKTsgfVxyXG4gICAgICAmLmZ1bGwge1xyXG4gICAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAxMDB2dyk7XHJcbiAgICAgICAgdG9wOjA7XHJcbiAgICAgICAgbGVmdDowO1xyXG4gICAgICAgIGhlaWdodDoxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgbWluLWhlaWdodDoxMDB2aDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuI3skY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzfSB7IEBpbmNsdWRlIHJldmVhbC1jbG9zZTsgfVxyXG4gICAgfVxyXG5cclxuICAgIGRpYWxvZyB7XHJcbiAgICAgIEBleHRlbmQgLiN7JHJldmVhbC1tb2RhbC1jbGFzc307XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAmOjpiYWNrZHJvcCwgJiArIC5iYWNrZHJvcCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcmV2ZWFsLWJnKGZhbHNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJltvcGVuXXtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldmVhbCBQcmludCBTdHlsZXM6IEl0IHNob3VsZCBiZSBpbnZpc2libGUsIGFkZHMgbm8gdmFsdWUgYmVpbmcgcHJpbnRlZC5cclxuICAgIEBtZWRpYSBwcmludCB7XHJcbiAgICAgIGRpYWxvZywgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30geyBcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIu+7v0BjaGFyc2V0IFwiVVRGLThcIjtcclxuLy8gRm91bmRhdGlvbiBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLyBNYWtlIHN1cmUgdGhlIGNoYXJzZXQgaXMgc2V0IGFwcHJvcHJpYXRlbHlcclxuXHJcbi8vIEJlaG9sZCwgaGVyZSBhcmUgYWxsIHRoZSBGb3VuZGF0aW9uIGNvbXBvbmVudHMuXHJcblxyXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3NpZGUtbmF2XCI7XHJcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZ3JpZFwiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RvcC1iYXJcIjtcclxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9vZmZjYW52YXNcIjtcclxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy90YWJsZXNcIjtcclxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9mb3Jtc1wiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2lubGluZS1saXN0c1wiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Ryb3Bkb3duXCI7XHJcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdG9vbHRpcHNcIjtcclxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy90YWJsZXNcIjtcclxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9wcm9ncmVzcy1iYXJzXCI7XHJcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdmlzaWJpbGl0eVwiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3JldmVhbFwiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL29mZmNhbnZhc1wiO1xyXG4vKiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9ncmlkXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9hY2NvcmRpb25cIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9ibG9jay1ncmlkXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9icmVhZGNydW1ic1wiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnV0dG9uLWdyb3Vwc1wiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnV0dG9uc1wiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvY2xlYXJpbmdcIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbnNcIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2ZsZXgtdmlkZW9cIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Zvcm1zXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9pY29uLWJhclwiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvaW5saW5lLWxpc3RzXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9qb3lyaWRlXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9rZXlzdHJva2VzXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9sYWJlbHNcIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL21hZ2VsbGFuXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9vcmJpdFwiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvcGFnaW5hdGlvblwiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvcGFuZWxzXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9wcmljaW5nLXRhYmxlc1wiO1xyXG4gIFxyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9yZXZlYWxcIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3NpZGUtbmF2XCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9zcGxpdC1idXR0b25zXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9zdWItbmF2XCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9zd2l0Y2hlc1wiO1xyXG4gIEBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy90YWJzXCI7XHJcbiAgQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy90aHVtYnNcIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RvcC1iYXJcIjtcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3R5cGVcIjtcclxuICBcclxuICBAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3Zpc2liaWxpdHlcIjtcclxuICAqL1xyXG4iLCIvKlxyXG4gICAgRXhhbXBsZSB1c2FnZTogXHJcbiAgICBAaW5jbHVkZSBhbmltYXRpb24oMTBzLCA1cywgY2hhbmdlY29sb3VyKVxyXG4gKi9cclxuXHJcbkBtaXhpbiBhbmltYXRpb24gKCRkZWxheSwgJGR1cmF0aW9uLCAkYW5pbWF0aW9uKSB7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xyXG4gICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ICRhbmltYXRpb247XHJcblx0LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcblx0LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiBcclxuICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAkZGVsYXk7XHJcbiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xyXG4gICAgLW1vei1hbmltYXRpb24tbmFtZTogJGFuaW1hdGlvbjtcclxuXHQtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG4gICAgLW1vei1hbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgXHJcblx0LW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgXHJcbiAgICBhbmltYXRpb24tZGVsYXk6ICRkZWxheTtcclxuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6ICRhbmltYXRpb247XHJcblx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcclxuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbn0iLCIvKiAtLS0tLSBWYXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbiRyYWxld2F5OiAnR290aGFtIFNTbSBBJywgJ0dvdGhhbSBTU20gQic7XHJcbiRsYXRvOiAnTGF0bycsIHNhbnMtc2VyaWY7XHJcblxyXG4kcGxheTogJ0dvdGhhbSBTU20gQScsICdHb3RoYW0gU1NtIEInO1xyXG5cclxuLypcclxuJGxhdG86ICdMYXRvJywgc2Fucy1zZXJpZjtcclxuJHBsYXk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7XHJcbiovXHJcblxyXG4vKiAtLS0tLSBDb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuJGJsYWNrOiAjMjIyMjIyO1xyXG4kZGFyay1ncmV5OiAjNDA0MDQwO1xyXG4kd2hpdGU6ICNmZmZmZmY7XHJcblxyXG4vL01pc2NcclxuJGdyZXk6ICM5NDk0OTQ7XHJcbiRsaWdodEdyZXk6ICNmNWY1ZjU7XHJcbiRkYXJrR3JleTogIzFlMmEyNDtcclxuXHJcbi8vSG92ZXJcclxuJHByaW1hcnlIb3Zlcjogc2NhbGUtY29sb3IoJHByaW1hcnksICRsaWdodG5lc3M6IC0zMCUpO1xyXG5cclxuLyogRm9ybSBWYWxpZGF0b3JzIEVycm9yIENvbG9yICovXHJcbiRlcnJvclJlZDogI2ZmMDAwMDtcclxuXHJcbi8qJHByaW1hcnk6ICM0Y2I4NDg7Ki9cclxuJG1lZFByaW1hcnk6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LCAkbGlnaHRuZXNzOiAtMjAlKTtcclxuJGRhcmtQcmltYXJ5OiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTQwJSk7XHJcblxyXG5cclxuLyokc2Vjb25kYXJ5OiAjY2QwMjVmOyovIiwidWwge1xyXG4gICAgJi5wbGFpbiB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxufVxyXG5cclxuYSB7XHJcbiAgICAmLCAmOnZpc2l0ZWQsICY6YWN0aXZlLCAmOmZvY3VzIHtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZ3JvdXAge1xyXG4gICAgem9vbTogMTsgLyogRm9yIElFIDYvNyAodHJpZ2dlciBoYXNMYXlvdXQpICovXHJcblxyXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG59IiwiYm9keS5zZlBhZ2VFZGl0b3Ige1xyXG4gICAgLm1vYmlsZS1mZWF0dXJlcy1udWRnZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIC5tb2JpbGUtc2hvdy1mZWF0dXJlcyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5hbGVydC1iYXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRyYWxld2F5O1xyXG4gICAgfVxyXG59XHJcblxyXG4udG9wLWNvbnRhaW5lciB7XHJcbiAgICAudG9wLWJhciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgLmdyZXktYmtnZCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAxNTVweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICNuYXYtdGlja2V0LWxpbmsge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMTU1cHg7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRyYWxld2F5O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDAlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMTlweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkICRzZWNvbmRhcnk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNjYuNzVyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOiBsZWZ0IDMwMG1zIGVhc2Utb3V0O1xyXG4gICAgICAgICAgICAtby10cmFuc2l0aW9uOiBsZWZ0IDMwMG1zIGVhc2Utb3V0O1xyXG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgMzAwbXMgZWFzZS1vdXQ7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGxlZnQgMzAwbXMgZWFzZS1vdXQ7XHJcblxyXG4gICAgICAgICAgICB1bC5zZmxhbmd1YWdlc1ZlcnRpY2FsTGlzdCB7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcblxyXG4gICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcmFsZXdheTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICB1bC5tYWluLW5hdiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAxNTVweDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHRHcmV5O1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCAxMHB4IC0xMHB4IHJnYmEoJGJsYWNrLDAuMyk7XHJcbiAgICAgICAgICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgNnB4IDEwcHggLTEwcHggcmdiYSgkYmxhY2ssMC4zKTtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggLTEwcHggcmdiYSgkYmxhY2ssMC4zKTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE3MHB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuXHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgc2NhbGUtY29sb3IoJGxpZ2h0R3JleSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcmFsZXdheTtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLnNlbGVjdGVkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJi5oYXMtZHJvcGRvd24gPiBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJi5oYXMtZHJvcGRvd24gPiBhOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRncmV5LCAwLjIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmRyb3Bkb3duIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYTpub3QoLmJ1dHRvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGxpZ2h0R3JleSwgJGxpZ2h0bmVzczogLTUlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZGFyay1ncmV5O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLnNlbGVjdGVkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJi5idXktdGlja2V0cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAwIDJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxlZnQtdHJpOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogNjNweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxlZnQtdHJpOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMTJweCBzb2xpZCAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiA3M3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmlnaHQtdHJpOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA2M3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJpZ2h0LXRyaTo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDEycHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA3M3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogLTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZWRQcmltYXJ5O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubGVmdC10cmk6OmFmdGVyLCAucmlnaHQtdHJpOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRtZWRQcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJi5zZWFyY2gge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEuYnV5LXRpY2tldHMubW9iaWxlIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNTVweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDU1cHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIsICY6YWN0aXZlLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVkUHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjA0cHg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA0O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5jb250YWN0LWluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogLjc1cmVtIDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLnNvY2lhbC1saW5rcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5ldmVudC1pbmZvIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDE4MHB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiA2MHB4O1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogNDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA2MDBweDtcclxuXHJcbiAgICAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJHJhbGV3YXk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZGF0ZXMge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjQ1cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5hZGp1c3QtZm9yLWhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAzNDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYmxhY2stYmFyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFya0dyZXk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW0gM3JlbTtcclxuXHJcbiAgICAgICAgLmZhIHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudG9wLWFkLXNwYWNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHRHcmV5O1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAxNHB4O1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xyXG4gICAgICAgIC5ibGFjay1iYXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDk7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudG9wLWJhciB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNzVweDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gICAgICAgICAgICAudG9wLWJhci1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDc1cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgLmxvZ28ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDVweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5sb2dvLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLnNvY2lhbC1saW5rcyBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjhweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5sLTMwMC0xNjUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTMwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmFkanVzdC1sb2dvLWZvci1ob3Jpem9udGFsIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5ncmV5LWJrZ2Qge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNmbGFuZ3VhZ2VzVmVydGljYWxMaXN0IHtcclxuICAgICAgICAgICAgICAgIGxpLCBhLCBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zZmxhbmd1YWdlc1ZlcnRpY2FsTGlzdCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaXMtZml4ZWQge1xyXG5cclxuICAgICAgICAgICAgLnRvcC1iYXIge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogOTtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAwIHJnYmEoJGRhcmtHcmV5LDAuMzUpO1xyXG5cclxuICAgICAgICAgICAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVsLm1haW4tbmF2IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogaW5pdGlhbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDNyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGkuYnV5LXRpY2tldHMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxlZnQtdHJpLCAucmlnaHQtdHJpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIsICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246IGhlaWdodCAwLjJzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW8tdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCAwLjJzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmxvZ28tdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTQ1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA2OHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2ZpbWFnZVdycCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY29udGFjdC1pbmZvLCAuc29jaWFsLWxpbmtzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5hZGp1c3QtbG9nby1mb3ItaG9yaXpvbnRhbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5ldmVudC1pbmZvIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTgwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5hZGp1c3QtZm9yLWhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDM0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmdyZXktYmtnZCB7XHJcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggMCByZ2JhKCRkYXJrR3JleSwwLjM1KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5ibGFjay1oaWRkZW4ge1xyXG4gICAgICAgICAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB1bC5tYWluLW5hdiwgLmdyZXktYmtnZCwgLmxvZ28sIC50b3AtYmFyIHtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIC50b3AtYWxlcnQge1xyXG4gICAgICAgICAgICAudG9wLXNvY2lhbC1hcmVhIHtcclxuICAgICAgICAgICAgICAgIHVsI3NvY2lhbC1tZWRpYS1hcmVhIHtcclxuICAgICAgICAgICAgICAgICAgICBsaS5pY29uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLnRvcC1iYXIge1xyXG4gICAgICAgICAgICAjbmF2LXRpY2tldC1saW5rIHtcclxuICAgICAgICAgICAgICAgIHRvcDogMTE2cHg7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG5cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAudG9wLWJhci1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuY29udGFjdC1pbmZvLCAuc29jaWFsLWxpbmtzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5sLTMwMC0xNjUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZXZlbnQtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMTIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc2ZsYW5ndWFnZXNWZXJ0aWNhbExpc3Qge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaXRpYWw7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtNDBweDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgICAgICAgICAgbGksIGEsIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5ibGFjay1iYXIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IC43NXJlbTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IC45cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJpZ2h0LWFsaWduLWV2ZW50LWluZm8ge1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJyIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgICAgIC50b3AtYmFyIHtcclxuICAgICAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLmNvbnRhY3QtaW5mbywgLnNvY2lhbC1saW5rcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZXZlbnQtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XHJcbiAgICAgICAgLnRvcC1iYXIge1xyXG4gICAgICAgICAgICAuZ3JleS1ia2dkIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAxMTJweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgI25hdi10aWNrZXQtbGluayB7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDExNHB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuXHJcbiAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnNvY2lhbC1saW5rcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA1cHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAubC0zMDAtMTY1IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5hZGp1c3QtZm9yLWhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMzQwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB1bC5tYWluLW5hdiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnJpZ2h0LWFsaWduLWV2ZW50LWluZm8ge1xyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJyIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XHJcbiAgICAgICAgLnRvcC1iYXIge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE5NXB4O1xyXG5cclxuICAgICAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxOTVweDtcclxuXHJcbiAgICAgICAgICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZXZlbnQtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5yaWdodC1hbGlnbi1ldmVudC1pbmZvIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICByaWdodDogMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogNzBweDtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmdyZXktYmtnZCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnNmbGFuZ3VhZ2VzVmVydGljYWxMaXN0IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgICAgICAgICAgICBsaSwgYSwgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYmxhY2stYmFyIHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmlzLWZpeGVkIHtcclxuICAgICAgICAgICAgLndoaXRlLWJrZ2Qge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogOTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE5NXB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC50b3AtYmFyIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtMjBweDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIC5zZWNvbmRhcnktYmtnZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgICAgICAgICAgICAgIC8qdG9wOiAwOyovXHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAudG9wLWJhci1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLnJpZ2h0LWFsaWduLWV2ZW50LWluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogNzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdWwubWFpbi1uYXYge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE3NXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKndpZHRoOjEwMCU7Ki9cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLyojbmF2LXRpY2tldC1saW5rIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAubG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmxvZ28tdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLnNmaW1hZ2VXcnAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jb250YWN0LWluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zb2NpYWwtbGlua3Mge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5ldmVudC1pbmZvLCAucmlnaHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdWwubWFpbi1uYXYge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGkuYnV5LXRpY2tldHMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxlZnQtdHJpLCAucmlnaHQtdHJpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIsICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246IGhlaWdodCAwLjJzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW8tdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCAwLjJzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9Ki9cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZ3JleS1ia2dkIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiA5O1xyXG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAwIHJnYmEoJGRhcmtHcmV5LDAuMzUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5zZmxhbmd1YWdlc1ZlcnRpY2FsTGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5ibGFjay1oaWRkZW4ge1xyXG4gICAgICAgICAgICAgICAgLnRvcC1iYXItc2VjdGlvbiwgLmdyZXktYmtnZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcclxuICAgIC50b3AtY29udGFpbmVyIC50b3AtYmFyIC50b3AtYmFyLXNlY3Rpb24gdWwubWFpbi1uYXYge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDE1NXB4O1xyXG4gICAgICAgIHotaW5kZXg6IDM7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDEwcHggLTEwcHggcmdiYSgkYmxhY2ssMC4zKTtcclxuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgNnB4IDEwcHggLTEwcHggcmdiYSgkYmxhY2ssMC4zKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDZweCAxMHB4IC0xMHB4IHJnYmEoJGJsYWNrLDAuMyk7XHJcbiAgICAgICAgbGVmdDogMjVweDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE3MHB4O1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtY29udGFpbmVyLmlzLWZpeGVkIC50b3AtYmFyIC50b3AtYmFyLXNlY3Rpb24gdWwubWFpbi1uYXZ7XHJcbiAgICAgICAgbGVmdDogMjBweDtcclxuICAgIH1cclxufVxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpe1xyXG4gICAgLnRvcC1jb250YWluZXIgLnRvcC1iYXIgLnRvcC1iYXItc2VjdGlvbiB1bC5tYWluLW5hdiBsaSBhe1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgIH1cclxufSIsIiRwcmltYXJ5OiAjQTYxOTJFO1xyXG4kc2Vjb25kYXJ5OiAjQTYxOTJFO1xyXG5AaW1wb3J0IFwiLi4vU2hhcmVkL191bml2ZXJzYWwuc2Nzc1wiOyIsIi5yaWdodC1vZmYtY2FudmFzLW1lbnUge1xyXG4gICAgYmFja2dyb3VuZDogJHByaW1hcnk7XHJcbiAgICAvKi5oYXMtZHJvcGRvd257XHJcbiAgICAgICAgLmRyb3Bkb3due1xyXG4gICAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfSovXHJcbiAgICAvKi5ob3ZlcntcclxuICAgICAgICAuZHJvcGRvd257XHJcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tb3ZlZHtcclxuICAgICAgICAuZHJvcGRvd257XHJcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfSovXHJcbiAgICAub2ZmLWNhbnZhcy1saXN0IHtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LCAkbGlnaHRuZXNzOiAxMCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmZhIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5zZWFyY2gge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAuZmEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYuYnV5LXRpY2tldHMge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAuZmEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtOCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLmRyb3Bkb3duIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LCAkbGlnaHRuZXNzOiAtMjAlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgc2NhbGUtY29sb3IoJHByaW1hcnksICRsaWdodG5lc3M6IC0yNiUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNvY2lhbC1saW5rcyB7XHJcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnVwY29taW5nLWV2ZW50cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cclxuICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHNjYWxlLWNvbG9yKCRsaWdodEdyZXksICRsaWdodG5lc3M6IC04JSk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDIwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgY29sb3I6ICM5NDk0OTQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMjBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pbmZvIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMjBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGg0IHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ28tY29udGFpbmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgQGV4dGVuZCAuY2xlYXJmaXg7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA1N3B4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmV2ZW50LWluZm8sIC5jb250YWN0LWluZm8ge1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICAgICAgd2lkdGg6IDE3MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDEwcHggMCAwIDEwcHg7XHJcblxyXG4gICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLm1vdmUtbGVmdCAubW9iaWxlLW5hdi1pY29uIHtcclxuICAgIGNvbG9yOiAkZGFya1ByaW1hcnk7XHJcbn1cclxuXHJcbi5tb2JpbGUtbmF2LWljb24ge1xyXG4gICAgaGVpZ2h0OiA3NXB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgd2lkdGg6IDcwcHg7XHJcbiAgICBjb2xvcjogJGRhcmstZ3JleTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGZvbnQtc2l6ZTogMjVweCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDI1cHggIWltcG9ydGFudDtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHRvcDogMTIycHg7XHJcbiAgICBsZWZ0OiAxODBweDtcclxuICAgIHotaW5kZXg6IDExO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkZGFya1ByaW1hcnk7XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogNTZweDtcclxuICAgICAgICBsZWZ0OiA0M3B4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufSIsIlxyXG5cclxuLmJ1eWVycy1ndWlkZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuXHJcbiAgICBwIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43ZW07XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAubGVmdCB7XHJcbiAgICAgICAgJG1pbl9oZWlnaHQ6IDQ2NHB4O1xyXG5cclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vbXBlLWFoZmpkOWdrYzhndGhqYmMuejAxLmF6dXJlZmQubmV0L3NpdGVmaW5pdHkvaW1hZ2VzL2RlZmF1bHQtc291cmNlL2Zsb3dlci1zaG93L2V4aGliaXRvci1saXN0LmpwZycpO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6ICRtaW5faGVpZ2h0O1xyXG5cclxuICAgICAgICAubm8tc3BvbnNvcmVkLWNvbnRlbnQtcGxhY2Vob2xkZXIgeyAvL25ldyBjc3MgZm9yIHRoZSBuZXcgaG9sZSBvbiB0ZW1wYWx0ZXMgNy8xNi8yMDE4IHtcclxuICAgICAgICAgICAgLypwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1OyAvL0dyZWF0ZXIgdGhhbiB0aGUgaGFuZGxlcyBvbiB0aGUgc2xpY2sgc2xpZGVyIGFuZCB0aGUgaW1hZ2UgLmxlZnQgYWJvdmUuXHJcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NTBweDtcclxuICAgICAgICAgICAgICAgIC8vbWluLWhlaWdodDogJG1pbl9oZWlnaHQ7XHJcbiAgICAgICAgICAgIH0qL1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNwb25zb3JlZC1jb250ZW50LXNsaWRlciB7XHJcbiAgICAgICAgICAgIC5zbGlkZXMge1xyXG4gICAgICAgICAgICAgICAgLnNsaWRlIHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkbWluX2hlaWdodCArIDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yaWdodCB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICBwYWRkaW5nOiA2cmVtO1xyXG5cclxuICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgLnJpZ2h0IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcclxuXHJcbiAgICAgICAgICAgICoge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XHJcbiAgICAgICAgLnJpZ2h0IHtcclxuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwi77u/LypcclxuKlxyXG4qIDkvMjUvMjAxNyBcclxuKlxyXG4qIFRoaXMgZmlsZSBoYW5kbGVzIHRoZSBiYWRnZXMvaWNvbnMgb24gdGhlIEV4aGliaXRvciBMaXN0aW5nIFBhZ2UgZm9yIGEgcGFydGljdWxhciBzaG93LlxyXG4qIFxyXG4qIFBhZ2VzIC0+IEV4aGliaXRvciBMaXN0IC0+IEV4aGliaXRvcnNcclxuKiBFZGl0IHRoZSBMaXN0aW5ncyBXaWRnZXQgLT4gTGlzdCBTZXR0aW5ncyAtPiBFZGl0IExpc3Qgb2YgbGlzdGluZ3NcclxuXHJcbiogUGFnZXMgLT4gRXhoaWJpdG9yIExpc3QgLT4gRXhoaWJpdG9yc1xyXG4qIEVkaXQgdGhlIExpc3RpbmdzIFdpZGdldCAtPiBTaW5nbGUgSXRlbSBTZXR0aW5ncyAtPiBFZGl0IEV4aGliaXRvciBMaXN0aW5nIERldGFpbCBQYWdlXHJcbiogXHJcbiovXHJcblxyXG4uYmFkZ2VzLWxpc3QgLmJhZGdlXHJcbnsgXHJcblx0bWFyZ2luOiAwIDEwcHggMCAwICFpbXBvcnRhbnQ7XHJcblx0aGVpZ2h0OiAyOHB4O1xyXG59ICAiLCIuYnV0dG9uOnZpc2l0ZWQsIC5idXR0b246bGluayB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBmb250LWZhbWlseTogJGxhdG87XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgcGFkZGluZzogMCAxcmVtO1xyXG4gICAgbWFyZ2luOiAxcmVtIGF1dG8gMDtcclxuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG5cclxuICAgICYubmV3LWJ1dHRvbiB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJi50aWNrZXRzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMi41cmVtO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJHNlY29uZGFyeSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudGlja2V0LWRlYWxzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwLjNyZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JleTtcclxuICAgICAgICBwYWRkaW5nOiAxLjRyZW0gMnJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDowO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGRhcmstZ3JleSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYubWVkaXVtIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4O1xyXG4gICAgfVxyXG5cclxuICAgICYuc21hbGwge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LCAkbGlnaHRuZXNzOiAtMzAlKTtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICYud2hpdGUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcblxyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5idXR0b24uZGlzYWJsZWQsIGJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcclxuICAgIGJhY2tncm91bmQ6ICRncmV5O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRncmV5O1xyXG4gICAgfVxyXG59IiwiQGltcG9ydCBcIm5vcm1hbGl6ZVwiO1xyXG5AaW1wb3J0IFwiZm91bmRhdGlvblwiO1xyXG5AaW1wb3J0IFwibWl4aW5zXCI7XHJcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcclxuXHJcblxyXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XHJcbiBcclxuQGltcG9ydCBcInZlbmRvci9zaXRlZmluaXR5XCI7XHJcblxyXG5AaW1wb3J0IFwidGVtcGxhdGUvaGVhZGVyXCI7XHJcbkBpbXBvcnQgXCJ0ZW1wbGF0ZS9tb2JpbGUtbWVudVwiO1xyXG5AaW1wb3J0IFwidGVtcGxhdGUvYnV5ZXJzLWd1aWRlXCI7XHJcblxyXG5cclxuQGltcG9ydCBcImNvbXBvbmVudHMvYmFkZ2VzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbnNcIjtcclxuLypAaW1wb3J0IFwiY29tcG9uZW50cy9oZXJvXCI7Ki9cclxuQGltcG9ydCBcImNvbXBvbmVudHMvc2xpZGVzLnNjc3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvbW9iaWxlLW51ZGdlXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3Nwb25zb3JlZC1jb250ZW50XCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RpY2tldC1zcG9uc29yXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xpc3RpbmdzXCI7XHJcblxyXG4vKiAtLS0tLSBVbml2ZXJzYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbjo6c2VsZWN0aW9uIHtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxufVxyXG5cclxuLW1vei06OnNlbGVjdGlvbiB7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgYmFja2dyb3VuZDogJHByaW1hcnk7XHJcbn1cclxuXHJcbioge1xyXG4gICAgZm9udC1mYW1pbHk6ICRsYXRvO1xyXG59XHJcblxyXG5odG1sIHtcclxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIG1pbi13aWR0aDogMjUwcHg7XHJcblxyXG4gICAgJi5zZlBhZ2VFZGl0b3Ige1xyXG4gICAgICAgIG1heC13aWR0aDogaW5oZXJpdDtcclxuXHJcbiAgICAgICAgLmlubmVyLXdyYXAge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0NTBweDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNDQwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuaWZyYW1lIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGJvcmRlcjowO1xyXG59XHJcblxyXG4uaW5uZXItd3JhcCB7XHJcbiAgICBtaW4taGVpZ2h0OiAyNDVweDtcclxufVxyXG5cclxuYTpsaW5rLCBhOnZpc2l0ZWQge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yZXF1aXJlZCB7XHJcbiAgICAvKmNvbG9yOiAkb3JhbmdlOyovXHJcbn1cclxuXHJcbi5zZkVycm9yIHtcclxuICAgIGNvbG9yOiByZWQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ubXQwIHtcclxuICAgIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubXQxMCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tdDIwIHtcclxuICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1iMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1iMTAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWIyMCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYjMwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1iMzAge1xyXG4gICAgaDIge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi50YWwge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGFyIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50YWMge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ncmV5LWJrZ2Qge1xyXG4gICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcclxufVxyXG5cclxuLnNlY29uZGFyeS1ia2dkIHtcclxuICAgIGJhY2tncm91bmQ6ICRzZWNvbmRhcnk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDE1NXB4O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbi5zZlBhZ2VFZGl0b3IgLnRvcC1jb250YWluZXIgLnRvcC1iYXIgLmdyZXktYmtnZCwgLnNmUGFnZUVkaXRvciAuc2Vjb25kYXJ5LWJrZ2Qge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2ZQYWdlRWRpdG9yICNjdGwwMF9GbG93ZXJTaG93TmF2QmFyX2N0bDAwX0Mge1xyXG4gICAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLnNmUGFnZUVkaXRvciAubWFpbi1uYXYsIC5zZlBhZ2VFZGl0b3IgI25hdi10aWNrZXQtbGluayB7XHJcbiAgICB0b3A6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2ZQYWdlRWRpdG9yIC5tb2JpbGUtbmF2LWljb24ge1xyXG4gICAgdG9wOiA5cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmludGVyaW9yLnNmUGFnZUVkaXRvciAubWFpbi1uYXYsIC5pbnRlcmlvci5zZlBhZ2VFZGl0b3IgI25hdi10aWNrZXQtbGluayB7XHJcbiAgICB0b3A6IDkwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmRhcmstZ3JleS1ia2dkIHtcclxuICAgIGJhY2tncm91bmQ6ICRkYXJrLWdyZXk7XHJcbn1cclxuXHJcbi5wcmltYXJ5LWJrZ2Qge1xyXG4gICAgYmFja2dyb3VuZDogJHByaW1hcnk7XHJcbiAgICBwYWRkaW5nOiA0NnB4IDA7XHJcbn1cclxuXHJcbi53aGl0ZS1ia2dkIHtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxufVxyXG5cclxuaDIge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuXHJcbiAgICAmLmhlYWRpbmcge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkcGxheTtcclxuICAgICAgICBjb2xvcjogJGRhcmtHcmV5O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRkYXJrR3JleTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG59XHJcblxyXG5oMSwgaDIsIGgzLCBoNCB7XHJcbiAgICBmb250LWZhbWlseTogJHJhbGV3YXk7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgY29sb3I6ICRkYXJrLWdyZXk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG5oMiB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbnAge1xyXG4gICAgbWFyZ2luOiAxMHB4IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgY29sb3I6ICM0NTRiNGY7XHJcbn1cclxuXHJcblxyXG4vKiAtLS0tLSBGb3JtcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLmV4YW1wbGUge1xyXG4gICAgbWFyZ2luOiAtLjdyZW0gMCAxcmVtIDA7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxuICAgIGNvbG9yOiAkZ3JleTtcclxufVxyXG5cclxuLnN1bW1hcnkge1xyXG4gICAgcCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIGNvbG9yOiAkZ3JleTtcclxuICAgIH1cclxufVxyXG5cclxubGFiZWwge1xyXG4gICAgY29sb3I6ICRibGFjaztcclxuXHJcbiAgICAmLmNoZWNrYm94IHtcclxuICAgICAgICBjb2xvcjogJGdyZXk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9Y2hlY2tib3hdLCBpbnB1dFt0eXBlPXJhZGlvXSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCwgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xyXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zZkZvcm1DaGVja2JveGxpc3QsIC5zZkZvcm1SYWRpb2xpc3Qge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuXHJcbi8qIC0tLS0tIFRhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG50YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgdGhlYWQge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcblxyXG4gICAgICAgIHRyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAgICAgdGgge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRyLmV2ZW4sIHRyLmFsdCwgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgdHIub2RkLCB0ciwgdHI6bnRoLW9mLXR5cGUob2RkKSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGxpZ2h0R3JleSwgJGxpZ2h0bmVzczogNzUlKTtcclxuICAgIH1cclxufVxyXG4vKi0tLS1FbXBsb3llZXMtLS0tLS0qL1xyXG4uZW1wbG95ZWUge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCAxNXB4O1xyXG5cclxuICAgIGEuaGVhZHNob3Qge1xyXG4gICAgICAgICRwaG90b19zaXplOiAxNDVweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbiAgICAgICAgaGVpZ2h0OiAkcGhvdG9fc2l6ZTtcclxuICAgICAgICB3aWR0aDogJHBob3RvX3NpemU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMTBweDtcclxuICAgIH1cclxuXHJcbiAgICBoNCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuXHJcbiAgICAgICAgc21hbGwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiA1cHggMCAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogTGF0byxzYW5zLXNlcmlmO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYmlvLWNvbnRlbnQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgKyAuZW1wbG95ZWUge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5mZWF0aGVybGlnaHQtY29udGVudCB7XHJcbiAgICAuYmlvLWNvbnRlbnQge1xyXG4gICAgICAgIHdpZHRoOiA2MDBweDtcclxuXHJcbiAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgJHBob3RvX3NpemU6IDE1NXB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICRwaG90b19zaXplO1xyXG4gICAgICAgICAgICB3aWR0aDogJHBob3RvX3NpemU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAxMHB4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnk7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDE1cHg7XHJcblxyXG4gICAgICAgICAgICBzbWFsbCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBMYXRvLHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4IDAgMDtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzIwcHgpIHtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYmlvIHtcclxuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xyXG59XHJcblxyXG4uc2ZQYWdlRWRpdG9yIC5iaW8ge1xyXG4gICAgbWluLWhlaWdodDogMzAwcHg7XHJcbn1cclxuLyogLS0tLS0gSGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbi8vIE1vdmVkIHRvIHRlbXBsYXRlL19oZWFkZXIuc2Nzc1xyXG4vKiAtLS0tLSBNb2JpbGUgTmF2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbi8vIE1vdmVkIHRvIHRlbXBsYXRlL19tb2JpbGUtbWVudS5zY3NzXHJcbi51cGNvbWluZy1ldmVudHMge1xyXG4gICAgbWF4LXdpZHRoOiA1MDBweDtcclxuICAgIHotaW5kZXg6IDU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgLnNmQ29udGVudEJsb2NrIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgICAgICB3aWR0aDogMTUwcHg7XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBjb2xvcjogJGdyZXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ldmVudCB7XHJcbiAgICAgICAgd2lkdGg6IDExOHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgICAgdG9wOiAyNXB4O1xyXG4gICAgICAgIHotaW5kZXg6IDI7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDkwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgxKTtcclxuICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMCk7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyomLm9yYW5nZSB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG9yYW5nZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkZGFya09yYW5nZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICYuYmx1ZSB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtCbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmdyZWVuIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtHcmVlbjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5mb3Jlc3RncmVlbiB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGZvcmVzdEdyZWVuO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrRm9yZXN0R3JlZW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubWFyc2FsYSB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1hcnNhbGE7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtNYXJzYWxhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnRlYWwge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0ZWFsO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrVGVhbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jZG50ZWFsIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY2RuVGVhbDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY2RuRGFya1RlYWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYubGlnaHRncmVlbiB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0R3JlZW47XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtMaWdodEdyZWVuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmxpZ2h0Ymx1ZSB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0Qmx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkZGFya0xpZ2h0Qmx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi50ZXJyYWNvdHRhIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdGVycmFjb3R0YTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkZGFya1RlcnJhY290dGE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYucGluayB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHBpbms7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtQaW5rO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmZhbGxwaW5rIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZmFsbFBpbms7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtGYWxsUGluaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yZWQge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRyZWQ7XHJcblxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtSZWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuaG9saWRheWJsdWUge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRob2xpZGF5Qmx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkZGFya0hvbGlkYXlCbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmhvbGlkYXlyZWQge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRob2xpZGF5UmVkO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrSG9saWRheVJlZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5jaHJpc3RtYXNncmVlbiB7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNocmlzdG1hc0dyZWVuO1xyXG5cclxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrQ2hyaXN0bWFzR3JlZW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuY2hyaXN0bWFzcmVkIHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY2hyaXN0bWFzUmVkO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrQ2hyaXN0bWFzUmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmZhbGxyZWQyMDE4IHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZmFsbFJlZDIwMTg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtGYWxsUmVkMjAxODtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5vdXRkb29ycGluazIwMTkge1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvdXRkb29yUGluazIwMTk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmtPdXRkb29yUGluazIwMTk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYucmVtb2RlbGluZ3RlYWwyMDE5IHtcclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmVtb2RlbGluZ1RlYWwyMDE5O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrUmVtb2RlbGluZ1RlYWwyMDE5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnNwcmluZ2dyZWVuMjAxOSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzcHJpbmdHcmVlbjIwMTk7XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrU3ByaW5nR3JlZW4yMDE5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm10bGdyZWVuIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG10bEdyZWVuO1xyXG5cclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkZGFya010bEdyZWVuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm10bG9yYW5nZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtdGxPcmFuZ2U7XHJcblxyXG4gICAgICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrTXRsT3JhbmdlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSovXHJcbiAgICB9XHJcbn1cclxuXHJcbi5sZWZ0LXNtYWxsLFxyXG4ucmlnaHQtc21hbGwge1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgd2lkdGg6IDYwcHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgLm1lbnUtaWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDYwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG5cclxuICAgICAgICBzcGFuOjphZnRlciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xyXG4gICAgICAgICAgICBsZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICRwcmltYXJ5LCAwIDEwcHggMCAzcHggJHByaW1hcnksIDAgMjBweCAwIDNweCAkcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmhyIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBib3JkZXI6IDBweDtcclxuICAgIGhlaWdodDogLjVyZW07XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNWY4O1xyXG4gICAgbWFyZ2luOiAxcmVtIDA7XHJcbn1cclxuXHJcbi5tb3ZlLXJpZ2h0IC5tZW51LWljb24gc3BhbjphZnRlciB7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJGRhcmtQcmltYXJ5LCAwIDEwcHggMCAzcHggJGRhcmtQcmltYXJ5LCAwIDIwcHggMCAzcHggJGRhcmtQcmltYXJ5O1xyXG59XHJcblxyXG4ucmlnaHQtc21hbGwge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6IDcwcHg7XHJcblxyXG4gICAgJi5zZWNvbmQge1xyXG4gICAgICAgIHJpZ2h0OiA1MHB4O1xyXG4gICAgICAgIHdpZHRoOiA1MHB4O1xyXG5cclxuICAgICAgICAuZmEge1xyXG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeUhvdmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mYSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG4gICAgICAgIGNvbG9yOiAkZ3JleTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQge1xyXG4gICAgLnJpZ2h0LXNtYWxsIHtcclxuICAgICAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XHJcblxyXG4gICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5oYXMtdGlwIHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJHByaW1hcnlIb3ZlcjtcclxuICAgIH1cclxufVxyXG5cclxuLmYtZHJvcGRvd24ge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsLjk1KTtcclxuICAgIGJvcmRlci1jb2xvcjogJGxpZ2h0R3JleTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9wZW4ge1xyXG4gICAgICAgIGxlZnQ6IDEwcHggIWltcG9ydGFudDtcclxuICAgICAgICByaWdodDogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgbGVmdDogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICByaWdodDogMTNweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBsZWZ0OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5sZWZ0LW9mZi1jYW52YXMtbWVudSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxufVxyXG5cclxuLyogLS0tLS0gRm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbmZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHRHcmV5O1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICBtYXJnaW4tdG9wOiAycmVtICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDA7XHJcblxyXG4gICAgc2VjdGlvbiB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xyXG5cclxuICAgICAgICAmLmluZm9ybWF0aW9uLWZvci1leGhpYml0b3JzIHtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ib3R0b20ge1xyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgyIHtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zb2NpYWwtbGlua3Mge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci1jdGEgLmRhdGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOjJyZW07XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zcG9uc29ycywgLmluZm9ybWF0aW9uLWZvci1leGhpYml0b3Jze1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLmJvdHRvbSB7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcblxyXG5cclxuICAgIGIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC40cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206MXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuc29jaWFsLWxpbmtzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbmxpbmUtbGlzdCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ib3R0b20gdWwsIC5ib3R0b20gbGkge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcclxufVxyXG5cclxuXHJcbi5zcG9uc29ycyB7XHJcbiAgICBtYXJnaW4tdG9wOiAtNTBweDtcclxuXHJcbiAgICAuc2ZpbWFnZXNMaXN0IHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgMS4zN3JlbSAxLjM3cmVtIDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkMGQwZDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uaW5mb3JtYXRpb24tZm9yLWV4aGliaXRvcnMge1xyXG5cclxuICAgIC5pbmxpbmUtbGlzdCB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgc2NhbGUtY29sb3IoJGdyZXksICRsaWdodG5lc3M6IDMwJSk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTNweCAwIDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG4gICAgICAgICAgICAmLnJvIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5kbyBzcGFuIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYubW8gc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjFweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5ldCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuc2luZ2xlLWxpbmUgYSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAvKmJhY2tncm91bmQtaW1hZ2U6ICRpY29uU3ByaXRlOyovXHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggMjAwcHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRyYWxld2F5O1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1N3B4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYm90dG9tIHtcclxuXHJcblxyXG4gICAgLnNvY2lhbC1saW5rcyB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XHJcblxyXG5cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAoJHByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgLypiYWNrZ3JvdW5kLWltYWdlOiAkc29jaWFsU3ByaXRlOyovXHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI3cHggMTkycHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyN3B4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDI3cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHggMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3Vic2NyaWJlLWZvcm0ge1xyXG4gICAgICAgIHdpZHRoOiAzNTBweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xyXG5cclxuICAgICAgICBpbnB1dFt0eXBlPWVtYWlsXSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDI1MHB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJpZ2h0IHtcclxuICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcblxyXG4gICAgICAgIC5pbmxpbmUtbGlzdCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIC41cmVtO1xyXG5cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2s7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBhLnBob25lIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYucHJpdmFjeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2s7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5zZWNvbmQge1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vKiAtLS0tLSBJbnRlcmlvciBzbGlkZSAtLS0tLS0qL1xyXG4jU2xpZGVzaG93IHtcclxuICAgICYuc3VicGFnZSB7XHJcbiAgICAgICAgI1NsaWRlcyB7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOjJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi8qIC0tLS0tIE1haW4gQ29udGVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4ubWFpbi1jb250ZW50IHtcclxuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xyXG59XHJcblxyXG4ucHJpbWFyeS1jb250ZW50LCAuc2lkZWJhci1jb250ZW50IHtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRncmV5O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xyXG4gICAgcGFkZGluZy1yaWdodDogMy41cmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHJcbiAgICBoMSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDoxcmVtO1xyXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIGgyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcclxuICAgIH1cclxuXHJcbiAgICB1bC5wYWdpbmF0aW9uIHtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMTBweCAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuXHJcbiAgICAgICAgICAgICAgICBzcGFuLnNyLW9ubHkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNmQ29udGVudEJsb2NrLCAuc2ZpbWFnZXNUbWJMaXN0IHtcclxuICAgICAgICBAZXh0ZW5kIC5jbGVhcmZpeDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDJyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgxOmZpcnN0LW9mLXR5cGUsXHJcbiAgICAgICAgaDI6Zmlyc3Qtb2YtdHlwZSxcclxuICAgICAgICBoMzpmaXJzdC1vZi10eXBlLFxyXG4gICAgICAgIGg0OmZpcnN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcDpsYXN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBtYXJnaW46IDJyZW0gMCAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaHIge1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcclxuICAgICAgICAgICAgQGV4dGVuZCAuY2xlYXJmaXg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0YWJsZSB7XHJcbiAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgdGFibGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udG9wLWFsZXJ0IHtcclxuICAgIHBhZGRpbmc6IDdweCAwO1xyXG5cclxuICAgIC5hbGVydC1hcmVhIHtcclxuICAgICAgICBpbWcjYWxlcnQtc2lnbiB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCNhbGVydC10ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJhbGV3YXk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50b3Atc29jaWFsLWFyZWEge1xyXG4gICAgICAgIGZsb2F0OnJpZ2h0ICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgIHVsI3NvY2lhbC1tZWRpYS1hcmVhIHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICYuZmlyc3Qge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgI3skbGFyZ2V9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmLmpvaW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pbnRyb2R1Y3Rpb24ge1xyXG4gICAgcGFkZGluZy10b3A6IDk1cHg7XHJcblxyXG4gICAgcCNpbnRyb2R1Y3Rpb24ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5jdGEge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW46IDVweCBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZXZlbnQtaW5mb3JtYXRpb24ge1xyXG4gICAgICAgIHBhZGRpbmc6IDk1cHggMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmludHJvIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcmFsZXdheTtcclxuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAuYWRkcmVzcyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5nYXJkZW5zLWZlYXR1cmVzLWFyZWEge1xyXG4gICAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IC0zMHB4O1xyXG5cclxuICAgIGZpZ3VyZS5zaG93LWZlYXR1cmVzIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWdjYXB0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuICAgICAgICAgICAgaDMsIHAsIGEsIHAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmlndXJlIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcbiAgICAgICAgICAgIGgzLCBwLCBhLCBwIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4vKi5jb2w1LXVuaXR7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigyLjQpO1xyXG4gICAgcGFkZGluZy1sZWZ0OjA7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OjEwcHg7XHJcbiAgICAmOm50aC1jaGlsZCg1KXtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OjA7XHJcbiAgICB9XHJcbn0qLyAuYWR2ZXJ0aXNlbWVudCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMTVweDtcclxufVxyXG5cclxuc2VjdGlvbi50aHJlZS1jb2wtYWRzIHtcclxuICAgIHBhZGRpbmc6IDkwcHggMDtcclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIHBhZGRpbmc6IDY1cHggMDtcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcclxuXHJcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuc2VjdGlvbi50d2l0dGVyLWFyZWEge1xyXG4gICAgcGFkZGluZzogMjJweCAwO1xyXG5cclxuICAgIHAge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcclxuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcclxuICAgIH1cclxuXHJcbiAgICBhLmJ1dHRvbiB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIC5sYXRlc3QtdXBkYXRlIHtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc3Vic2NyaWJlLXNvY2lhbC1tZWRpYS1hcmVhIHtcclxuICAgIGgzIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICAgICNzb2NpYWwtbGlua3Mge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ucHJpbWFyeS1jb250ZW50IHtcclxuICAgIGltZyB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDEwcHggMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAuc2ZfcGFnZXJOdW1lcmljIHtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAxNXB4IDEwcHggMDtcclxuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGEuc2ZfUGFnZXJDdXJyZW50IHtcclxuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMTBweCAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2lkZWJhci1jb250ZW50IHtcclxuICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDMuNXJlbTtcclxuXHJcbiAgICBwIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcclxuICAgICAgICBmb250LXNpemU6IC44NXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuc2lkZWJhci1hZHZlcnRpc2VtZW50cyB7XHJcblxyXG4gICAgICAgIGRpdiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjUwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNTBweDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI1MHB4O1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmdhbGxlcmlhLWNvbnRhaW5lciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHRHcmV5O1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZ2FsbGVyaWEtdGh1bWJuYWlscyAuZ2FsbGVyaWEtaW1hZ2Uge1xyXG4gICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLm1mcC1maWd1cmUge1xyXG4gICAgZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLyogLS0tLS0gSG9tZXBhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbiNTbGlkZXNob3cgI1NsaWRlcyAuc2xpZGUgLnNwb25zb3Ige1xyXG4gICAgYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcclxufVxyXG5cclxuI1NsaWRlc2hvdyAjU2xpZGVzIC5zbGlkZSAuc3BvbnNvciB7XHJcbiAgICBib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jU2xpZGVzaG93ICNTbGlkZXMgLnNsaWRlIC5zcG9uc29yIC5pbnRybyB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XHJcbiAgICBtaW4taGVpZ2h0OiAyNXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMyk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAwIDhweDtcclxufVxyXG5cclxuI1NsaWRlc2hvdyAjU2xpZGVzIC5zbGlkZSAuc3BvbnNvciBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiByZXZlcnQ7XHJcbiAgICBkaXNwbGF5OmJsb2NrO1xyXG4gICAgbWFyZ2luOjAgYXV0bztcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XHJcblxyXG4gICAgLnNsaWRlLWltZ3tcclxuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAjU2xpZGVzaG93ICNTbGlkZXMgLnNsaWRlIC5zcG9uc29yIHtcclxuICAgICAgICBib3R0b206IDFyZW0gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAjU2xpZGVzaG93ICNTbGlkZXMgLnNsaWRlIC5zcG9uc29yIGltZyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1heC1oZWlnaHQ6NTBweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5zaG93LWZlYXR1cmVzIHtcclxuICAgIG1hcmdpbjogMXJlbSBhdXRvO1xyXG4gICAgcGFkZGluZzogOTBweCAwO1xyXG5cclxuICAgIC5jb2x1bW5zIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuZmVhdHVyZSB7XHJcbiAgICAgICAgLypib3JkZXI6IDFweCBzb2xpZCBzY2FsZS1jb2xvcigkbGlnaHRHcmV5LCAkbGlnaHRuZXNzOiAtMTAlKTsqL1xyXG4gICAgICAgIC8qcGFkZGluZzogMS41cmVtOyovXHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGg0LmhlYWRpbmcge1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBmb250LWZhbWlseTogJGxhdG87XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRkYXJrR3JleTtcclxuICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogJHBsYXk7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBjb2xvcjogJGRhcmtHcmV5O1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDcuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICB3aWR0aDogMTMwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAxLjVyZW0gYXV0byAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcblxyXG4uay1hbmltYXRpb24tY29udGFpbmVyIC5rLWxpc3QtY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAuay1pdGVtIHtcclxuICAgICAgICBib3JkZXI6IDAgc29saWQgIzAwMDtcclxuICAgIH1cclxuXHJcbiAgICAuay1zdGF0ZS1ob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxufVxyXG5cclxuLnNmc2VhcmNoQm94IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNmc2VhcmNoQm94IC5zZnNlYXJjaFR4dCB7XHJcbiAgICB3aWR0aDogNzUlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG4uc2ZzZWFyY2hCb3ggLnNmc2VhcmNoU3VibWl0IHtcclxuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkxhdG9cIixzYW5zLXNlcmlmO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIHBhZGRpbmc6IDBweCAxcmVtO1xyXG4gICAgbWFyZ2luOiAxcmVtIGF1dG8gMHB4O1xyXG4gICAgYm9yZGVyOiAwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XHJcbn1cclxuXHJcblxyXG4udGhyZWUtY29sLWFkcyB7XHJcbiAgICBtYXJnaW46IDFyZW0gYXV0bztcclxufVxyXG5cclxuLnR3by1jb2wtYWRzIHtcclxuICAgIG1hcmdpbjogMS41cmVtIGF1dG87XHJcbn1cclxuXHJcbi5zZnBvc3RBdXRob3JBbmREYXRlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBjb2xvcjogJGdyZXk7XHJcbn1cclxuXHJcbi5mcm9tLXRoZS1ibG9nIHtcclxuICAgIHBhZGRpbmc6IDEwMHB4IDA7XHJcblxyXG4gICAgLmJsb2ctZmVhdHVyZSB7XHJcbiAgICAgICAgbWluLWhlaWdodDogNDMwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIGJvcmRlcjoxcHggc29saWQgI2RkZDtcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1hcmdpbjogMCAxcmVtIDFyZW0gMDtcclxuICAgIH1cclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjpsZWZ0O1xyXG4gICAgICAgIHBhZGRpbmc6IDVweCAyNXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogJHJhbGV3YXk7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBjb2xvcjogJGdyZXk7XHJcbiAgICAgICAgcGFkZGluZzogMCAyNXB4O1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAgICAgICAvL2Rpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgLy9hbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIC8vanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgLy93aWR0aDogMjc1cHg7XHJcbiAgICAgICAgLy9tYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZ3JleS1ia2dkIC5mcm9tLXRoZS1ibG9nIC5ibG9nLWZlYXR1cmUge1xyXG4gICAgYm9yZGVyOjA7XHJcbn1cclxuXHJcblxyXG4udHdpdHRlci1hbmQtZXhoaWJpdG9yIHtcclxuICAgIG1hcmdpbjogMnJlbSBhdXRvO1xyXG5cclxuICAgIC50d2l0dGVyLWZlZWQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmFkcyB7XHJcbiAgICAgICAgLmNvbHVtbnMge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi8qIC0tLS0tIE1vZGFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbi5tb2RhbCB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIC5wcmltYXJ5LCAudXBjb21pbmcsIC5ib3R0b20ge1xyXG4gICAgICAgIHBhZGRpbmc6IDJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnByaW1hcnkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgcGFkZGluZzogMnJlbSA0cmVtO1xyXG5cclxuICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudXBjb21pbmcge1xyXG4gICAgICAgIC5sYXJnZS00IHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGdyZXk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcclxuXHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZGFya0dyZXk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ib3R0b20ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XHJcbiAgICAgICAgcGFkZGluZzogM3JlbSAxcmVtO1xyXG5cclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubGFyZ2UtNiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgM3JlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGdyZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdyZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogaW5zZXQgNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG4uc2ZQYWdlRWRpdG9yIC5tb2RhbCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcblxyXG4gICAgJi5oaWRkZW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG59XHJcbi8qIC0tLS0tIEltYWdlIFJvdGF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLmZ1bGwtd2lkdGgtYmFubmVyLCAuZnVsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuI0hlcm9Db250YWluZXIgLnNmaW1hZ2VXcnAge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiKDM0LCAzNCwgMzQpIDAlLCByZ2JhKDM0LCAzNCwgMzQsIDApIDEwMCUpIHJlcGVhdCBzY3JvbGwgMCUgMCU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG4jSGVyb0NvbnRhaW5lciAuc2ZpbWFnZVdycCBpbWcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuI0hlcm9Db250YWluZXIgZGl2IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcbi8qIC0tLS0tIEV4aGliaXRvciBMaXN0aW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4ubGlzdGluZyB7XHJcbiAgICAuY2l0eS1wb3N0YWwtemlwIHtcclxuICAgICAgICBtYXJnaW46IC41ZW0gMDtcclxuICAgIH1cclxufVxyXG5cclxuLmxpc3RpbmcgaDIge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4XHJcbn1cclxuLyogLS0tLS0gTGlzdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLm51bWJlcmVkLWxpc3Qge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm51bWJlci1oZWFkaW5nIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkcGxheTtcclxuICAgIGNvbG9yOiAkZ3JleTtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLm51bWJlciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRsaWdodEdyZXk7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgbWFyZ2luOiAtM3B4IDVweCAwIDA7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICB3aWR0aDogMzBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gICAgZm9udC1mYW1pbHk6ICRwbGF5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbkBtZWRpYSAjeyRzbWFsbC11cH0ge1xyXG4gICAgLmZ1bGwtd2lkdGgtYmFubmVyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5mcm9tLXRoZS1ibG9nIHtcclxuICAgICAgICBwYWRkaW5nOiA0LjVyZW0gMDtcclxuXHJcbiAgICAgICAgLmNvbHVtbnMge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudHdpdHRlci1hbmQtZXhoaWJpdG9yIC5pbWFnZS1jb2x1bW4ge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMC45Mzc1cmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbCB7XHJcbiAgICAgICAgLmJvdHRvbSB7XHJcbiAgICAgICAgICAgIC5sYXJnZS02IHtcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgaDEsIGgyLCBoMywgaDQge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtYWxlcnQge1xyXG4gICAgICAgIC5hbGVydC1hcmVhIHtcclxuICAgICAgICAgICAgaW1nI2FsZXJ0LXNpZ24ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAjYWxlcnQtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAuYWxlcnQtdGV4dC1hcmVhIHtcclxuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50b3AtY29udGFpbmVyIHtcclxuICAgICAgICAudG9wLWJhciB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTU2cHg7XHJcblxyXG4gICAgICAgICAgICAudG9wLWJhci1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTQwcHg7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuaG9yaXpvbnRhbC1sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDo0M3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6YXV0bzsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuZXZlbnQtaW5mbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDEzNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5pcy1maXhlZCB7XHJcbiAgICAgICAgICAgIC50b3AtYmFyIHtcclxuXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDBweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxMzVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDoxMDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOjQzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6YXV0bzsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDoxMDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5ldmVudC1pbmZvIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTM1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnByaW1hcnktY29udGVudCwgLnNpZGViYXItY29udGVudCB7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6IDBweDtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ib3R0b20gLnJpZ2h0IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5mcm9tLXRoZS1ibG9nIHtcclxuICAgICAgICBwYWRkaW5nOiAzcmVtIDAgMXJlbTtcclxuXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIuMTI1cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJsb2ctZmVhdHVyZSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnR3aXR0ZXItZmVlZCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuaW5mb3JtYXRpb24tZm9yLWV4aGliaXRvcnMgLmlubGluZS1saXN0IGxpIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmluZm9ybWF0aW9uLWZvci1leGhpYml0b3JzIHtcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xMjVyZW07XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ib3R0b20ge1xyXG4gICAgICAgIC5sZWZ0LCAucmlnaHQge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdWJzY3JpYmUtZm9ybSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN1YnNjcmliZS1mb3JtIGlucHV0W3R5cGU9ZW1haWxdLFxyXG4gICAgICAgIC5zdWJzY3JpYmUtZm9ybSBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmFkcyB7XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDEuNXJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2ctZmVhdHVyZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNob3ctZmVhdHVyZXMge1xyXG4gICAgICAgIC5jb2x1bW5zIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMCAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZlYXR1cmUge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5nYXJkZW5zLWZlYXR1cmVzLWFyZWEge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG5cclxuICAgICAgICAuY29sNS11bml0LmNvbHVtbnMge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWd1cmUuc2hvdy1mZWF0dXJlcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMjBweDsgLyogRklYIFRISVMgVE8gQkUgMTgwcHgqL1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmaWdjYXB0aW9uIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAxNSU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAyMCU7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuNzVyZW07XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgIGZpZ2NhcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuXHJcbiAgICAgICAgICAgICAgICBoMywgaDMgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbnRyb2R1Y3Rpb24ge1xyXG4gICAgICAgIHBhZGRpbmc6IDJyZW07XHJcblxyXG4gICAgICAgIC5ldmVudC1pbmZvcm1hdGlvbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMCAwIDA7XHJcblxyXG4gICAgICAgICAgICAuZXZlbnQtZGV0YWlsIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1eWVycy1ndWlkZSB7XHJcbiAgICAgICAgLmxlZnQge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyODBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yaWdodCB7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5OyovXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VjdGlvbi5zdWJzY3JpYmUtc29jaWFsLW1lZGlhLWFyZWEge1xyXG4gICAgICAgIHBhZGRpbmc6IDQ2cHggMjBweDtcclxuXHJcbiAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XHJcblxyXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICNzb2NpYWwtbGlua3Mge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWN0aW9uLnR3aXR0ZXItYXJlYSB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweCAyMHB4IDQwcHg7XHJcblxyXG4gICAgICAgIC5sYXRlc3QtdXBkYXRlIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3BvbnNvcnMge1xyXG4gICAgICAgIC5yb3cge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbCB7XHJcbiAgICAgICAgLnByaW1hcnkge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnVwY29taW5nIC5ldmVudCB7XHJcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJvdHRvbSB7XHJcbiAgICAgICAgICAgIC5jb2x1bW5zIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XHJcbiAgICAudG9wLWFsZXJ0IHtcclxuICAgICAgICAuYWxlcnQtYXJlYSB7XHJcbiAgICAgICAgICAgIGltZyNhbGVydC1zaWduIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50b3AtY29udGFpbmVyIHtcclxuICAgICAgICAudG9wLWJhciB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTU2cHg7XHJcblxyXG4gICAgICAgICAgICAudG9wLWJhci1zZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtMTVweDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA4MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmhvcml6b250YWwtbG9nbyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6NDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OmF1dG87IFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuYWRqdXN0LWxvZ28tZm9yLWhvcml6b250YWx7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6MzAwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmV2ZW50LWluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDE2MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuYWRqdXN0LWZvci1ob3Jpem9udGFsLWxvZ297XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDozMzBweDtcclxuICAgICAgICAgICAgICAgICAgICB0b3A6NDBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5pcy1maXhlZCB7XHJcbiAgICAgICAgICAgIC50b3AtYmFyIHtcclxuICAgICAgICAgICAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIC5sb2dvIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5ob3Jpem9udGFsLWxvZ28ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDo0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OmF1dG87IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuYWRqdXN0LWxvZ28tZm9yLWhvcml6b250YWx7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOjMwMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmV2ZW50LWluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxNjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmFkanVzdC1mb3ItaG9yaXpvbnRhbC1sb2dve1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OjMzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6NDBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJsb2ctZmVhdHVyZSB7XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pbnRyb2R1Y3Rpb24ge1xyXG4gICAgICAgIC5ldmVudC1pbmZvcm1hdGlvbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMCAwIDA7XHJcblxyXG4gICAgICAgICAgICAuZXZlbnQtZGV0YWlsIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmdhcmRlbnMtZmVhdHVyZXMtYXJlYSB7XHJcbiAgICAgICAgLmNvbHVtbiwgLmNvbHVtbnMge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuM3JlbTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC4zcmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42cmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaDMsIHAsIGEsIHAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGU7IC8qc2VwaWEsIGh1ZS1yb3RhdGUsIGludmVydC4uLi4qL1xyXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBicmlnaHRuZXNzKDUwJSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaDMsIHAsIGEsIHAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWd1cmUuc2hvdy1mZWF0dXJlcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxODBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMzAlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMTglO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDYwJTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjc1cmVtO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZnJvbS10aGUtYmxvZyB7XHJcbiAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaG93LWZlYXR1cmVzIHtcclxuICAgICAgICAuY29sdW1ucyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5mZWF0dXJlIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWN0aW9uLnN1YnNjcmliZS1zb2NpYWwtbWVkaWEtYXJlYSB7XHJcbiAgICAgICAgcGFkZGluZzogNDVweCAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmltYXJ5LWNvbnRlbnQge1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuc2lkZWJhci1jb250ZW50IHtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xyXG4gICAgLmNvbDUtdW5pdCB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMi40KTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICBmaWd1cmUuc2hvdy1mZWF0dXJlcyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICBmaWdjYXB0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDMwJTtcclxuICAgICAgICAgICAgd2lkdGg6IDQ1JTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmlndXJlI3JlZGJveC1pbmxpbmUge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICBmaWd1cmUge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWdjYXB0aW9uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuICAgICAgICAgICAgaDMsIHAsIGEsIHAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlOyAvKnNlcGlhLCBodWUtcm90YXRlLCBpbnZlcnQuLi4uKi9cclxuICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBicmlnaHRuZXNzKDUwJSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGgzLCBwLCBhLCBwIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcclxuICAgIC5hZHMge1xyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZnJvbS10aGUtYmxvZyB7XHJcbiAgICAgICAgcGFkZGluZzogNC41cmVtIDA7XHJcblxyXG4gICAgICAgIC5jb2x1bW5zIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnR3aXR0ZXItY29udGFpbmVyIHtcclxuICAgICAgICBoZWlnaHQ6IDQ1MnB4O1xyXG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICAgIH1cclxuXHJcbiAgICAudHdpdHRlci1hbmQtZXhoaWJpdG9yIC5pbWFnZS1jb2x1bW4ge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIH1cclxufVxyXG5cclxuLmZpZWxkLXZhbGlkYXRpb24tZXJyb3Ige1xyXG4gICAgY29sb3I6ICRlcnJvclJlZDtcclxufVxyXG5cclxuI2JhY2stdG8tdG9wIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIC8qcmlnaHQ6IDEwMHB4OyovXHJcbiAgICBib3R0b206IDI1cHg7XHJcbiAgICB6LWluZGV4OiA5OTk5O1xyXG4gICAgd2lkdGg6IDQ2cHg7XHJcbiAgICBoZWlnaHQ6IDQ2cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAyMXB4O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodDogNDZweFxyXG59XHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgI2JhY2stdG8tdG9wIHtcclxuICAgICAgICBib3R0b206NzVweDtcclxuICAgIH1cclxufVxyXG5cclxuLmdyZWNhcHRjaGEtYmFkZ2Uge1xyXG4gICAgei1pbmRleDogMTAwMCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi5hY2Nlc3NpYmlsaXR5LWFsdCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAtMTAwMDAwcHhcclxufVxyXG4vKiAtLS0tLSBUZXN0aW1vbmlhbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cclxuLmpjYXJvdXNlbC13cmFwcGVyIHtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIC5zZl9wYWdlck51bWVyaWMge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5qY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiA5MCU7XHJcbiAgICB0b3A6IDI1JTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG59XHJcblxyXG4uamNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiA5MCU7XHJcbiAgICB0b3A6IDI1JTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG59XHJcblxyXG4uamNhcm91c2VsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5qY2Fyb3VzZWwgdWwge1xyXG4gICAgd2lkdGg6IDIwMDAwZW07XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLmpjYXJvdXNlbCBsaSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuLnRlc3RpbW9uaWFscyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi50ZXN0aW1vbmlhbCB7XHJcbiAgICBtYXJnaW46IDAgMzZweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmFsZXJ0LWJhciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcclxuXHJcbiAgICBhIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tcGUtbG9nbyB7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcblxyXG4uYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgcGFkZGluZzogLjVyZW0gMnJlbTtcclxuICAgIGJvcmRlcjogMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxuICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxuICAgIC1vLXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG59XHJcblxyXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgLnNwb25zb3JzIC5yb3cge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgICAgICBkaXYuc3BvbnNvciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNyU7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMyU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9vdGVyIHNlY3Rpb257XHJcbiAgICAgICAgcGFkZGluZzoxcmVtIDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb25zb3Jze1xyXG4gICAgICAgIHBhZGRpbmc6MXJlbSAwO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xyXG4gICAgLnNwb25zb3JzIC5yb3cge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgICAgICBoMnt3aWR0aDoxMDAlO31cclxuXHJcbiAgICAgICAgZGl2LnNwb25zb3Ige1xyXG4gICAgICAgICAgICB3aWR0aDogMTAlO1xyXG4gICAgICAgICAgICBtYXJnaW46MiU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2hvdy1mZWF0dXJlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmNWY1ZjU7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb25zb3JlZC1ieS1sYWJlbCB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG9uc29yLWxvZ29zIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBtYXJnaW46IDFyZW07XHJcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29weSB7XHJcbiAgICAgICAgbWFyZ2luOiAxcmVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5sZWFybi1tb3JlIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgICAgIC5sZWFybi1tb3JlLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJMYXRvXCIsc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDFyZW07XHJcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSBhdXRvIDA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xyXG4gICAgICAgIC5sZWFybi1tb3JlIHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnNob3ctZmVhdHVyZS1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5hZGQtcGFkZGluZ3tcclxuICAgIHBhZGRpbmc6OTBweCAwO1xyXG59XHJcblxyXG5idXR0b24sIC5idXR0b24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XHJcbn1cclxuXHJcbi5zZi1zZWFyY2gtcmVzdWx0LWNvbnRhaW5lciB7XHJcbiAgICBwe1xyXG4gICAgICAgIGRpc3BsYXk6bm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuLnBhZ2luYXRpb24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG5cclxuICAgIC5wYWdlLWxpbmsge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbjogMTBweCAxMHB4IDAgMCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdlLWxpbms6aG92ZXIge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHByaW1hcnksICRsaWdodG5lc3M6IC0zMCUpXHJcbiAgICB9XHJcblxyXG4gICAgLmFjdGl2ZSAucGFnZS1saW5rIHtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LCAkbGlnaHRuZXNzOiAtMzAlKVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmJ1dHRvbjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbn1cclxuXHJcblxyXG4uZmFxIHtcclxuICAgIG1hcmdpbi1ib3R0b206MXJlbTsgXHJcblxyXG4gICAgLnF1ZXN0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcclxuICAgICAgICBib3JkZXItbGVmdDogMDtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgICAgICAgY29sb3I6ICMwMDA7XHJcblxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucXVlc3Rpb246aG92ZXIge1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuYW5zd2VyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wcmltYXJ5e1xyXG4gICAgY29sb3I6JHByaW1hcnk7XHJcbn1cclxuXHJcbi5ibG9nLWxpc3Qge1xyXG4gICAgaW1ne1xyXG4gICAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wcm9tb3Rpb24gaW1ne1xyXG4gICAgbWFyZ2luOjA7XHJcbn1cclxuXHJcbi5mb3RvcmFtYSAuZm90b3JhbWFfX25hdi13cmFwIHtcclxuICAgIG1hcmdpbi10b3A6MXJlbTtcclxufVxyXG5cclxuLmZvdG9yYW1hX190aHVtYntcclxuICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOjAgLThweDtcclxufVxyXG5cclxuLmQtbm9uZXtkaXNwbGF5Om5vbmU7fVxyXG5cclxuXHJcbi5ncmV5LWJrZ2QgaHIge1xyXG4gICAgYmFja2dyb3VuZDojZGRkO1xyXG59XHJcblxyXG4uZ3JpZC0zIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOyAvKiBDcmVhdGVzIDMgZXF1YWwtd2lkdGggY29sdW1ucyAqL1xyXG4gICAgd2lkdGg6IDEwMCU7IC8qIEVuc3VyZXMgdGhlIGdyaWQgc3BhbnMgdGhlIGZ1bGwgd2lkdGggb2YgaXRzIHBhcmVudCAqL1xyXG4gICAgZ2FwOiAxMHB4OyAvKiBPcHRpb25hbDogQWRkcyBzcGFjaW5nIGJldHdlZW4gY29sdW1ucyAqL1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MjBweCkge1xyXG4gICAgLmdyaWQtMyB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTsgLyogQ3JlYXRlcyAzIGVxdWFsLXdpZHRoIGNvbHVtbnMgKi9cclxuICAgIH1cclxuICAgIH1cclxuXHJcbi5oaWdobGlnaHQge1xyXG4gICAgcGFkZGluZzogNXJlbSAycmVtO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5oaWdobGlnaHQtY29udGVudCB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgdGV4dC1zaGFkb3c6IDBweCAwcHggNXB4ICMwMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLm92ZXJsYXkge1xyXG4gICAgICAgIHotaW5kZXg6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDBweDtcclxuICAgICAgICB0b3A6IDBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDUwMHB4O1xyXG4gICAgICAgIG9wYWNpdHk6IC40O1xyXG4gICAgfVxyXG59XHJcblxyXG4uaGlnaGxpZ2h0OmhvdmVye1xyXG4gICAgLm92ZXJsYXl7XHJcbiAgICAgICAgb3BhY2l0eTouNjtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5zaG93LXNhdmUtdGhlLWRhdGUge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxcmVtO1xyXG4gICAgbWFyZ2luOiAxMHB4IDA7XHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBtYXJnaW4tdG9wOjA7XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgICAgbWFyZ2luOiAycHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgfVxyXG5cclxuICAgIGgyLCBwLCAuZmEge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5zdGQtY29udGVudHtcclxuICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmZhIHtcclxuICAgICAgICBmb250LXNpemU6IDI1cHg7XHJcbiAgICAgICAgbWFyZ2luOjFyZW07XHJcbiAgICB9XHJcbn0iLCIuaG9tZXBhZ2Utcm90YXRvciB7XHJcbiAgICAjU2xpZGVzaG93IHsgXHJcbiAgICAgICAgLnNsaWRle1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA2MDBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbiNTbGlkZXNob3cge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAxO1xyXG5cclxuICAgICYsICoge1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gICAgI1NsaWRlcyB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogNDtcclxuXHJcbiAgICAgICAgLnNsaWRlIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICAgICAgICAgZmlndXJlLnNsaWRlLWltZyB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcclxuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zcG9uc29yIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogNTAwO1xyXG5cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGRpdi5jYXB0aW9uLXRleHQge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMztcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMTkwcHggMCAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG5cclxuICAgICAgICAgICAgICAgIGgxIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA0NnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgKyBhLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDM0LDM0LDM0LDEpIDAlLCByZ2JhKDM0LDM0LDM0LDApIDEwMCUpOyAvKiBGRjMuNisgKi9cclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLHJnYmEoMzQsMzQsMzQsMSkpLCBjb2xvci1zdG9wKDEwMCUscmdiYSgzNCwzNCwzNCwwKSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMzQsMzQsMzQsMSkgMCUscmdiYSgzNCwzNCwzNCwwKSAxMDAlKTsgLyogQ2hyb21lMTArLFNhZmFyaTUuMSsgKi9cclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDM0LDM0LDM0LDEpIDAlLHJnYmEoMzQsMzQsMzQsMCkgMTAwJSk7IC8qIE9wZXJhIDExLjEwKyAqL1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDM0LDM0LDM0LDEpIDAlLHJnYmEoMzQsMzQsMzQsMCkgMTAwJSk7IC8qIElFMTArICovXHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMzQsMzQsMzQsMSkgMCUscmdiYSgzNCwzNCwzNCwwKSAxMDAlKTsgLyogVzNDICovXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzIyMjIyMicsIGVuZENvbG9yc3RyPScjMDAyMjIyMjInLEdyYWRpZW50VHlwZT0xICk7IC8qIElFNi05ICovXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCwgJi5zbGljay1zbGlkZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm12YyB7XHJcbiAgICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bC5zbGljay1kb3RzIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICB6LWluZGV4OiA5O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuc2xpY2stYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWRlc2hvd0Fycm93IHtcclxuICAgICAgICAkYXJyb3dfb2Zmc2V0OiAzMHB4O1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG5cclxuICAgICAgICAmOmxpbmssICY6dmlzaXRlZCwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgei1pbmRleDogOTtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuOCk7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeSwgJGxpZ2h0bmVzczogLTIwJSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYjTGVmdCB7XHJcbiAgICAgICAgICAgIGxlZnQ6ICRhcnJvd19vZmZzZXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmI1JpZ2h0IHtcclxuICAgICAgICAgICAgcmlnaHQ6ICRhcnJvd19vZmZzZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xyXG4gICAgICAgICNTbGlkZXMge1xyXG4gICAgICAgICAgICAuc2xpZGUge1xyXG4gICAgICAgICAgICAgICAgLnJvdyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLnRsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC00MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTc1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAudHIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTc1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5sIHtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5jIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC5yIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmJsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMjVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuYiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMTI1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAuYnIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTEyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xyXG4gICAgICAgICNTbGlkZXMge1xyXG4gICAgICAgICAgICAuc2xpZGUge1xyXG4gICAgICAgICAgICAgICAgI1NsaWRlMiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBkaXYuY2FwdGlvbi10ZXh0IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyMDBweDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgICAgICAkaW1nX2hlaWdodDogMjI1cHg7XHJcblxyXG4gICAgICAgICNTbGlkZXMge1xyXG4gICAgICAgICAgICAvL2hlaWdodDogYXV0bztcclxuICAgICAgICAgICAgLnNsaWRlIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgI0hlcm9Db250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjExNXB4O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAuaGVyby13cmFwIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGZpZ3VyZS5zbGlkZS1pbWcge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJGltZ19oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGRpdi5jYXB0aW9uLXRleHQge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vbWFyZ2luLXRvcDogNTBweDtcclxuICAgICAgICAgICAgICAgICAgICAvL3BhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjVweDtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYS5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBoMSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVsLnNsaWNrLWRvdHMge1xyXG4gICAgICAgICAgICBib3R0b206IGF1dG87XHJcbiAgICAgICAgICAgIHRvcDogJGltZ19oZWlnaHQgLSAzMDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJcclxuXHJcblxyXG4ubW9iaWxlLWZlYXR1cmVzLW51ZGdlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAkb2Zmc2V0OiAxNXB4O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB6LWluZGV4OiAxMDAwMDA7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMTVweCByZ2JhKCMwMDAsMC41KTtcclxuXHJcbiAgICAqLCAmIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogLW1vei1ub25lO1xyXG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogI0ZGRjtcclxuICAgIH1cclxuXHJcbiAgICBoZWFkZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lZFByaW1hcnk7XHJcbiAgICAgICAgY29sb3I6ICNGRkY7XHJcblxyXG4gICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgIGgyLCBoMywgaDQsIGg1IHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdWJ0aXRsZSB7XHJcbiAgICAgICAgICAgIGEsIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDRweCAwIDA7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogJG9mZnNldDtcclxuICAgICAgICAgICAgcmlnaHQ6ICRvZmZzZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlY3Rpb24ubW9iaWxlLXNob3ctZmVhdHVyZXMge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XHJcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gICAgICAgIGhlaWdodDogMDtcclxuXHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAkdGlsZV9zaXplOiAyMDBweDtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6ICRvZmZzZXQ7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkdGlsZV9zaXplO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICR0aWxlX3NpemU7XHJcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0M7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkb2Zmc2V0O1xyXG5cclxuICAgICAgICAgICAgICAgIGgzIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYXJ0aWNsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICsgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJi5idXktdGlja2V0cy1ib3gge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltZy9idXktdGlja2V0cy1iZy0wMS5zdmcnKTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkdGlsZV9zaXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjVweCAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJi5jb3Zlci1saW5rIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBhcnRpY2xlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLmZhLXRpY2tldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZGFya1ByaW1hcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEwcHggYXV0byAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnU2Nyb2xsIHRvIHNlZSBzaG93IGZlYXR1cmVzJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oI0ZGRiwzMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNsaWRlLXJhaWwge1xyXG4gICAgICAgICAgICB3aWR0aDogOTk5OSU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuIiwic2VjdGlvbi5zcG9uc29yZWQtY29udGVudC1zbGlkZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCNGRkYsNSk7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgJi5hcnJvdyB7XHJcbiAgICAgICAgICAgICRhcnJvd19vZmZzZXQ6IDE1cHg7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgY29sb3I6IGRhcmtlbigjRkZGLDMwKTtcclxuICAgICAgICAgICAgdG9wOiAyODBweDtcclxuICAgICAgICAgICAgei1pbmRleDogMztcclxuXHJcbiAgICAgICAgICAgICYucHJldiB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAkYXJyb3dfb2Zmc2V0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLm5leHQge1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvd19vZmZzZXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VjdGlvbi5zbGlkZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuXHJcbiAgICAgICAgZmlndXJlIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFydGljbGUge1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcclxuICAgICAgICAgICAgcGFkZGluZzogMjVweCA1MHB4IDMwcHg7XHJcbiAgICAgICAgICAgIC8vcGFkZGluZy1yaWdodDogNTBweDtcclxuXHJcbiAgICAgICAgICAgIGhncm91cCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xyXG5cclxuICAgICAgICAgICAgICAgIGg0IHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoJG1lZFByaW1hcnksMC4zKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiA1cHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29sb3I6ICNGRkY7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMTBweCAwIDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcclxuICAgICAgICAgICAgICAgIC8vY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkLCAmLnNsaWNrLXNsaWRlIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsLnNsaWNrLWRvdHMge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgICAgIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAkZG90X3NpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRkb3Rfc2l6ZTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAkZG90X3NpemU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVkUHJpbWFyeTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgKyBsaSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLnNsaWNrLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XHJcbiAgICAgICAgbWluLWhlaWdodDogMzgwcHg7XHJcbiAgICB9XHJcbn0iLCIudGlja2V0LXNwb25zb3Ige1xyXG4gICAgJGxvZ29faGVpZ2h0OiAyNHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XHJcbiAgICBjb2xvcjogI0ZGRjtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBoMiwgaDMsIGg0LCBoNSB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuXHJcbiAgICAgICAgJiwgKiB7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nb19oZWlnaHQ7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICNGRkY7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkcGxheTtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyLCAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI0ZGRiwwLjQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuM3MgZWFzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0ZGRjtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogJGxvZ29faGVpZ2h0O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW0ge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDAuN2VtO1xyXG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAvL3RvcDogLTNweDtcclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYudGlja2V0LWRpc2NvdW50IHtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIH1cclxuXHJcbiAgICAmLnRpY2tldC1kaXNjb3VudC1zcG9uc29yIHtcclxuICAgICAgICBoMiwgaDMsIGg0LCBoNSB7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ob21lcGFnZS1yb3RhdG9yICsgLnRpY2tldC1zcG9uc29yIHtcclxuICAgIG1hcmdpbjogMCAwIDIwcHg7XHJcbn0iLCIubGlzdGluZ3MtbmF2IHtcclxuICAgIGgxIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICAgICAgICBjb2xvcjogIzAwMDtcclxuICAgIH1cclxuXHJcbiAgICAuY2F0ZWdvcmllcyB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wcmltYXJ5LWNvbnRlbnQgLmNhdGVnb3J5IGgyIHtcclxuICAgIHRleHQtYWxpZ246Y2VudGVyOyBcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBmb250LXdlaWdodDo0MDA7XHJcbn1cclxuXHJcbi5saXN0aW5ncyB7XHJcbiAgICBtYXJnaW46IDJyZW0gMDtcclxuXHJcbiAgICBoMSwgLmgxIHtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcclxuICAgICAgICBwYWRkaW5nOiAuNXJlbTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIH1cclxuXHJcbiAgICAuc2hhcmUtaGVhcnRzLCAudmlldy1teS1oZWFydHMsIC52aWV3LWFsbC1oZWFydHMge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcclxuXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaGFyZS1oZWFydHM6aG92ZXIsIC52aWV3LW15LWhlYXJ0czpob3ZlciwgLnZpZXctYWxsLWhlYXJ0czpob3ZlciB7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaGFyZS1oZWFydHMtbW9kYWwge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAgICAgcGFkZGluZzogMi41cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG4gICAgICAgIGlucHV0W3R5cGU9dGV4dF0ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5idXR0b246aG92ZXIge1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubmV3c2xldHRlci1vcHQtaW4ge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cclxuICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi5oZWFydCB7XHJcbiAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMi41cmVtO1xyXG4gICAgdG9wOiAxLjFyZW07XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxufVxyXG5cclxuLmhlYXJ0OmhvdmVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuI3Byb21vdGlvbi1maWx0ZXItc2VsZWN0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBmb250LXNpemU6IC44cmVtO1xyXG4gICAgcGFkZGluZzogLjVyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnByb21vdGlvbiB7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMTBweCAwcHggcmdiYSgwLDAsMCwwLjI1KTtcclxuICAgIC1tb3otYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IDBweCByZ2JhKDAsMCwwLDAuMjUpO1xyXG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IDBweCByZ2JhKDAsMCwwLDAuMjUpO1xyXG4gICAgcGFkZGluZzogMXJlbTtcclxuICAgIG1hcmdpbi10b3A6IDFyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgZm9udC1zaXplOiAuOXJlbTtcclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxuICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTtcclxuICAgIC1vLXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG5cclxuICAgIGgyIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDA7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGNvbG9yOiRwcmltYXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIHB7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6MS4yO1xyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLnByb21vdGlvbjpob3ZlciB7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMTBweCAwcHggcmdiYSgwLDAsMCwwLjUpO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDEwcHggMHB4IHJnYmEoMCwwLDAsMC41KTtcclxuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTBweCAwcHggcmdiYSgwLDAsMCwwLjUpO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4ub3dsLWRvdHMge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuXHJcbiAgICAub3dsLWRvdCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgICAgIGhlaWdodDogMXJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgbWFyZ2luOiAwIC4yNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuYWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcclxuICAgIH1cclxufVxyXG5cclxuLnN1Yi1jYXRlZ29yaWVzIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xyXG4gICAgcGFkZGluZzogLjVyZW07XHJcbn1cclxuXHJcbi5saXN0aW5nLWxpc3Qge1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDEwcHggMHB4IHJnYmEoMCwwLDAsMC4yNSk7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6IDBweCAwcHggMTBweCAwcHggcmdiYSgwLDAsMCwwLjI1KTtcclxuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTBweCAwcHggcmdiYSgwLDAsMCwwLjI1KTtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgICBmb250LXNpemU6IC45cmVtO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlO1xyXG4gICAgLW8tdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgICAgbWluLWhlaWdodDogODBweDtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYTpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b246aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5pY29ucyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XHJcblxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmxpc3RpbmdzLWxpc3Q6aG92ZXIge1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDEwcHggMHB4IHJnYmEoMCwwLDAsMC41KTtcclxuICAgIC1tb3otYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IDBweCByZ2JhKDAsMCwwLDAuNSk7XHJcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggMHB4IHJnYmEoMCwwLDAsMC41KTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLnByb21vdGlvbnMge1xyXG4gICAgLnByb21vdGlvbi1jb250YWluZXIge1xyXG4gICAgICAgIG1hcmdpbjogLjVyZW07XHJcblxyXG4gICAgICAgIC5wcm9tb3Rpb24ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XHJcblxyXG4gICAgICAgICAgICAuYnV0dG9ue1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDoxcmVtO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAub3dsLXByZXYgc3BhbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IC00cmVtO1xyXG4gICAgICAgIHRvcDogNnJlbTtcclxuICAgICAgICBmb250LXNpemU6IDZyZW0gIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogI2E2YTFhMTtcclxuICAgIH1cclxuXHJcbiAgICAub3dsLW5leHQgc3BhbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAtNHJlbTtcclxuICAgICAgICB0b3A6IDZyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiA2cmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgY29sb3I6ICNhNmExYTE7XHJcbiAgICB9XHJcblxyXG4gICAgLm93bC1wcmV2IHNwYW46aG92ZXIsIC5vd2wtbmV4dCBzcGFuOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICB9XHJcblxyXG4gICAgLm93bC1uYXYge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBoZWlnaHQ6IDBweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdG9wOiAwcHg7XHJcblxyXG4gICAgICAgIC5vd2wtcHJldiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcclxuICAgIC5wcm9tb3Rpb25zIHtcclxuICAgICAgICAub3dsLW5hdiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwcHg7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRvcDogMHB4O1xyXG5cclxuICAgICAgICAgICAgLm93bC1wcmV2IHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDM1cHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAzNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc3BvbnNvcnMge1xyXG4gICAgcGFkZGluZzogMXJlbSA0cmVtIDNyZW07XHJcblxyXG4gICAgLm93bC1uYXYge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBoZWlnaHQ6IDBweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdG9wOiAwcHg7XHJcblxyXG4gICAgICAgIC5vd2wtcHJldiB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5vd2wtbmV4dCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5vd2wtcHJldiBzcGFuIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogLTRyZW07XHJcbiAgICAgICAgdG9wOiAtNy41cmVtO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGNvbG9yOiAjYTZhMWExO1xyXG4gICAgfVxyXG5cclxuICAgIC5vd2wtbmV4dCBzcGFuIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6IC00cmVtO1xyXG4gICAgICAgIHRvcDogLTcuNXJlbTtcclxuICAgICAgICBmb250LXNpemU6IDZyZW0gIWltcG9ydGFudDtcclxuICAgICAgICBjb2xvcjogI2E2YTFhMTtcclxuICAgIH1cclxuXHJcbiAgICAub3dsLXByZXYgc3Bhbjpob3ZlciwgLm93bC1uZXh0IHNwYW46aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgIH1cclxuXHJcbiAgICAuaXRlbSB7XHJcbiAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbi5saXN0aW5nIHtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgbWFyZ2luOiAycmVtIDAgMXJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICMwMDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYTpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5zb2NpYWwgYSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcclxuXHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuaW5mbyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuYWRkcmVzcyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBhLmJ1dHRvbjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b246aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrUHJpbWFyeTtcclxuICAgIH1cclxuXHJcbiAgICAuY3RhcyB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmZhIHtcclxuICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jYXRlZ29yeS1zdWItaGVhZHtcclxuICAgIHRleHQtYWxpZ246bGVmdDtcclxufVxyXG5cclxuXHJcbi5jdGFzIHtcclxuICAgIHBhZGRpbmctdG9wOiAycmVtO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XHJcbn1cclxuXHJcbi5tYXNvbnJ5IHtcclxuICAgIC13ZWJraXQtY29sdW1uLWNvdW50OiAzO1xyXG4gICAgLW1vei1jb2x1bW4tY291bnQ6IDM7XHJcbiAgICBjb2x1bW4tY291bnQ6IDM7XHJcbiAgICAtd2Via2l0LWNvbHVtbi1nYXA6IDJyZW07XHJcbiAgICAtbW96LWNvbHVtbi1nYXA6IDJyZW07XHJcbiAgICBjb2x1bW4tZ2FwOiAycmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAucHJvbW90aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZXhoaWJpdG9ycyB7XHJcbiAgICBoMSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6MjhweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XHJcbiAgICAubWFzb25yeSB7XHJcbiAgICAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDE7XHJcbiAgICAgICAgLW1vei1jb2x1bW4tY291bnQ6IDE7XHJcbiAgICAgICAgY29sdW1uLWNvdW50OiAxO1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */
