/**
 *
 * Marco Stylesheet
 * by Puruno
 * https://themeforest.net/user/puruno
 * 
 * please do not edit directly in theme, for any adjustments we recomend using child theme
 * https://codex.wordpress.org/Child_Themes
 *
 *  *
 * 1. 	Foundation base styles
 * 2. 	Global elements
 * 3. 	Navbar styles
 * 4. 	Home templates styles
 * 5. 	Blog template styles
 * 6. 	Food menu templates styles
 * 7. 	Gallery templates styles
 * 8. 	Restaurant reservation styles
 * 9. 	Contact form styles
 * 10. 	Team members element styles
 * 11.	Mosaic element styles
 * 12.	Widgets sidebar/footer styles
 * 13.	Footer styles
 * 14.	Animations
 * 15.	Vegas slider styles
 * 16.	Swiper slider styles
 * 17.	Swipebox slider styles
 */
/**
 *
 * 1. Foundation base styles
 *
 */
/**
 * Foundation for Sites by ZURB
 * Version 6.2.4
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
@import url(../fonts/SerialPublication/font.css);
.alt-h h1 {
  font-size: 4.5rem; }

.alt-h h2 {
  font-size: 3.5rem; }

.alt-h h3 {
  font-size: 2.5rem; }

.alt-h h4 {
  font-size: 2rem; }

.alt-h h5 {
  font-size: 1.5rem; }

.alt-h h6 {
  font-size: 1rem; }

.tooltipster-fall, .tooltipster-grow.tooltipster-show {
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-base {
  display: flex;
  pointer-events: none;
  position: absolute; }

.tooltipster-box {
  flex: 1 1 auto; }

.tooltipster-content {
  box-sizing: border-box;
  max-height: 100%;
  max-width: 100%;
  overflow: auto; }

.tooltipster-ruler {
  bottom: 0;
  left: 0;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  visibility: hidden; }

.tooltipster-fade {
  opacity: 0;
  -webkit-transition-property: opacity;
  -moz-transition-property: opacity;
  -o-transition-property: opacity;
  -ms-transition-property: opacity;
  transition-property: opacity; }

.tooltipster-fade.tooltipster-show {
  opacity: 1; }

.tooltipster-grow {
  -webkit-transform: scale(0, 0);
  -moz-transform: scale(0, 0);
  -o-transform: scale(0, 0);
  -ms-transform: scale(0, 0);
  transform: scale(0, 0);
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform;
  -webkit-backface-visibility: hidden; }

.tooltipster-grow.tooltipster-show {
  -webkit-transform: scale(1, 1);
  -moz-transform: scale(1, 1);
  -o-transform: scale(1, 1);
  -ms-transform: scale(1, 1);
  transform: scale(1, 1);
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-swing {
  opacity: 0;
  -webkit-transform: rotateZ(4deg);
  -moz-transform: rotateZ(4deg);
  -o-transform: rotateZ(4deg);
  -ms-transform: rotateZ(4deg);
  transform: rotateZ(4deg);
  -webkit-transition-property: -webkit-transform,opacity;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform; }

.tooltipster-swing.tooltipster-show {
  opacity: 1;
  -webkit-transform: rotateZ(0);
  -moz-transform: rotateZ(0);
  -o-transform: rotateZ(0);
  -ms-transform: rotateZ(0);
  transform: rotateZ(0);
  -webkit-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 1);
  -webkit-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  -moz-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  -ms-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  -o-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4); }

.tooltipster-fall {
  -webkit-transition-property: top;
  -moz-transition-property: top;
  -o-transition-property: top;
  -ms-transition-property: top;
  transition-property: top;
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-fall.tooltipster-initial {
  top: 0 !important; }

.tooltipster-fall.tooltipster-dying {
  -webkit-transition-property: all;
  -moz-transition-property: all;
  -o-transition-property: all;
  -ms-transition-property: all;
  transition-property: all;
  top: 0 !important;
  opacity: 0; }

.tooltipster-slide {
  -webkit-transition-property: left;
  -moz-transition-property: left;
  -o-transition-property: left;
  -ms-transition-property: left;
  transition-property: left;
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-slide.tooltipster-initial {
  left: -40px !important; }

.tooltipster-slide.tooltipster-dying {
  -webkit-transition-property: all;
  -moz-transition-property: all;
  -o-transition-property: all;
  -ms-transition-property: all;
  transition-property: all;
  left: 0 !important;
  opacity: 0; }

@keyframes tooltipster-fading {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.tooltipster-update-fade {
  animation: tooltipster-fading .4s; }

@keyframes tooltipster-rotating {
  25% {
    transform: rotate(-2deg); }
  75% {
    transform: rotate(2deg); }
  100% {
    transform: rotate(0); } }

.tooltipster-update-rotate {
  animation: tooltipster-rotating .6s; }

@keyframes tooltipster-scaling {
  50% {
    transform: scale(1.1); }
  100% {
    transform: scale(1); } }

.tooltipster-update-scale {
  animation: tooltipster-scaling .6s; }

.tooltipster-sidetip .tooltipster-box {
  background: #565656;
  border: 2px solid #000;
  border-radius: 4px; }

.tooltipster-sidetip.tooltipster-bottom .tooltipster-box {
  margin-top: 8px; }

.tooltipster-sidetip.tooltipster-left .tooltipster-box {
  margin-right: 8px; }

.tooltipster-sidetip.tooltipster-right .tooltipster-box {
  margin-left: 8px; }

.tooltipster-sidetip.tooltipster-top .tooltipster-box {
  margin-bottom: 8px; }

.tooltipster-sidetip .tooltipster-content {
  color: #fff;
  line-height: 18px;
  padding: 6px 14px; }

.tooltipster-sidetip .tooltipster-arrow {
  overflow: hidden;
  position: absolute; }

.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
  height: 10px;
  margin-left: -10px;
  top: 0;
  width: 20px; }

.tooltipster-sidetip.tooltipster-left .tooltipster-arrow {
  height: 20px;
  margin-top: -10px;
  right: 0;
  top: 0;
  width: 10px; }

.tooltipster-sidetip.tooltipster-right .tooltipster-arrow {
  height: 20px;
  margin-top: -10px;
  left: 0;
  top: 0;
  width: 10px; }

.tooltipster-sidetip.tooltipster-top .tooltipster-arrow {
  bottom: 0;
  height: 10px;
  margin-left: -10px;
  width: 20px; }

.tooltipster-sidetip .tooltipster-arrow-background, .tooltipster-sidetip .tooltipster-arrow-border {
  height: 0;
  position: absolute;
  width: 0; }

.tooltipster-sidetip .tooltipster-arrow-background {
  border: 10px solid transparent; }

.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background {
  border-bottom-color: #565656;
  left: 0;
  top: 3px; }

.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background {
  border-left-color: #565656;
  left: -3px;
  top: 0; }

.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background {
  border-right-color: #565656;
  left: 3px;
  top: 0; }

.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background {
  border-top-color: #565656;
  left: 0;
  top: -3px; }

.tooltipster-sidetip .tooltipster-arrow-border {
  border: 10px solid transparent;
  left: 0;
  top: 0; }

.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border {
  border-bottom-color: #000; }

.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border {
  border-left-color: #000; }

.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border {
  border-right-color: #000; }

.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border {
  border-top-color: #000; }

.tooltipster-sidetip .tooltipster-arrow-uncropped {
  position: relative; }

.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped {
  top: -10px; }

.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped {
  left: -10px; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
   * Define consistent border, margin, and padding.
   * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
   */
/* 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; }

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

html {
  font-size: 100%;
  box-sizing: border-box; }

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

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

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

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

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

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

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1; }
  [data-whatinput='mouse'] button {
    outline: 0; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

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

.column, .columns {
  width: 100%;
  float: left;
  padding-left: 0.625rem;
  padding-right: 0.625rem; }
  @media screen and (min-width: 40em) {
    .column, .columns {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; } }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

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

.row .column.row.row, .row .row.row.columns {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0; }

.small-1 {
  width: 8.33333%; }

.small-push-1 {
  position: relative;
  left: 8.33333%; }

.small-pull-1 {
  position: relative;
  left: -8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  width: 16.66667%; }

.small-push-2 {
  position: relative;
  left: 16.66667%; }

.small-pull-2 {
  position: relative;
  left: -16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  width: 25%; }

.small-push-3 {
  position: relative;
  left: 25%; }

.small-pull-3 {
  position: relative;
  left: -25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  width: 33.33333%; }

.small-push-4 {
  position: relative;
  left: 33.33333%; }

.small-pull-4 {
  position: relative;
  left: -33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  width: 41.66667%; }

.small-push-5 {
  position: relative;
  left: 41.66667%; }

.small-pull-5 {
  position: relative;
  left: -41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  width: 50%; }

.small-push-6 {
  position: relative;
  left: 50%; }

.small-pull-6 {
  position: relative;
  left: -50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  width: 58.33333%; }

.small-push-7 {
  position: relative;
  left: 58.33333%; }

.small-pull-7 {
  position: relative;
  left: -58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  width: 66.66667%; }

.small-push-8 {
  position: relative;
  left: 66.66667%; }

.small-pull-8 {
  position: relative;
  left: -66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  width: 75%; }

.small-push-9 {
  position: relative;
  left: 75%; }

.small-pull-9 {
  position: relative;
  left: -75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  width: 83.33333%; }

.small-push-10 {
  position: relative;
  left: 83.33333%; }

.small-pull-10 {
  position: relative;
  left: -83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  width: 91.66667%; }

.small-push-11 {
  position: relative;
  left: 91.66667%; }

.small-pull-11 {
  position: relative;
  left: -91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-up-1 > .column, .small-up-1 > .columns {
  width: 100%;
  float: left; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  width: 50%;
  float: left; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  width: 33.33333%;
  float: left; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  width: 25%;
  float: left; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  width: 20%;
  float: left; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  width: 16.66667%;
  float: left; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  width: 14.28571%;
  float: left; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  width: 12.5%;
  float: left; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

.small-collapse > .column, .small-collapse > .columns {
  padding-left: 0;
  padding-right: 0; }

.small-collapse .row {
  margin-left: 0;
  margin-right: 0; }

.expanded.row .small-collapse.row {
  margin-left: 0;
  margin-right: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-left: 0.625rem;
  padding-right: 0.625rem; }

.small-centered {
  margin-left: auto;
  margin-right: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

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

@media screen and (min-width: 40em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    width: 100%;
    float: left; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    width: 50%;
    float: left; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    width: 33.33333%;
    float: left; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    width: 25%;
    float: left; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    width: 20%;
    float: left; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    width: 16.66667%;
    float: left; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    width: 14.28571%;
    float: left; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    width: 12.5%;
    float: left; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .medium-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .expanded.row .medium-collapse.row {
    margin-left: 0;
    margin-right: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .medium-centered {
    margin-left: auto;
    margin-right: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left; } }

@media screen and (min-width: 64.0625em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    width: 100%;
    float: left; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    width: 50%;
    float: left; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    width: 33.33333%;
    float: left; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    width: 25%;
    float: left; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    width: 20%;
    float: left; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    width: 16.66667%;
    float: left; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    width: 14.28571%;
    float: left; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    width: 12.5%;
    float: left; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .large-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .expanded.row .large-collapse.row {
    margin-left: 0;
    margin-right: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .large-centered {
    margin-left: auto;
    margin-right: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left; } }

@media screen and (min-width: 75em) {
  .xlarge-1 {
    width: 8.33333%; }
  .xlarge-push-1 {
    position: relative;
    left: 8.33333%; }
  .xlarge-pull-1 {
    position: relative;
    left: -8.33333%; }
  .xlarge-offset-0 {
    margin-left: 0%; }
  .xlarge-2 {
    width: 16.66667%; }
  .xlarge-push-2 {
    position: relative;
    left: 16.66667%; }
  .xlarge-pull-2 {
    position: relative;
    left: -16.66667%; }
  .xlarge-offset-1 {
    margin-left: 8.33333%; }
  .xlarge-3 {
    width: 25%; }
  .xlarge-push-3 {
    position: relative;
    left: 25%; }
  .xlarge-pull-3 {
    position: relative;
    left: -25%; }
  .xlarge-offset-2 {
    margin-left: 16.66667%; }
  .xlarge-4 {
    width: 33.33333%; }
  .xlarge-push-4 {
    position: relative;
    left: 33.33333%; }
  .xlarge-pull-4 {
    position: relative;
    left: -33.33333%; }
  .xlarge-offset-3 {
    margin-left: 25%; }
  .xlarge-5 {
    width: 41.66667%; }
  .xlarge-push-5 {
    position: relative;
    left: 41.66667%; }
  .xlarge-pull-5 {
    position: relative;
    left: -41.66667%; }
  .xlarge-offset-4 {
    margin-left: 33.33333%; }
  .xlarge-6 {
    width: 50%; }
  .xlarge-push-6 {
    position: relative;
    left: 50%; }
  .xlarge-pull-6 {
    position: relative;
    left: -50%; }
  .xlarge-offset-5 {
    margin-left: 41.66667%; }
  .xlarge-7 {
    width: 58.33333%; }
  .xlarge-push-7 {
    position: relative;
    left: 58.33333%; }
  .xlarge-pull-7 {
    position: relative;
    left: -58.33333%; }
  .xlarge-offset-6 {
    margin-left: 50%; }
  .xlarge-8 {
    width: 66.66667%; }
  .xlarge-push-8 {
    position: relative;
    left: 66.66667%; }
  .xlarge-pull-8 {
    position: relative;
    left: -66.66667%; }
  .xlarge-offset-7 {
    margin-left: 58.33333%; }
  .xlarge-9 {
    width: 75%; }
  .xlarge-push-9 {
    position: relative;
    left: 75%; }
  .xlarge-pull-9 {
    position: relative;
    left: -75%; }
  .xlarge-offset-8 {
    margin-left: 66.66667%; }
  .xlarge-10 {
    width: 83.33333%; }
  .xlarge-push-10 {
    position: relative;
    left: 83.33333%; }
  .xlarge-pull-10 {
    position: relative;
    left: -83.33333%; }
  .xlarge-offset-9 {
    margin-left: 75%; }
  .xlarge-11 {
    width: 91.66667%; }
  .xlarge-push-11 {
    position: relative;
    left: 91.66667%; }
  .xlarge-pull-11 {
    position: relative;
    left: -91.66667%; }
  .xlarge-offset-10 {
    margin-left: 83.33333%; }
  .xlarge-12 {
    width: 100%; }
  .xlarge-offset-11 {
    margin-left: 91.66667%; }
  .xlarge-up-1 > .column, .xlarge-up-1 > .columns {
    width: 100%;
    float: left; }
    .xlarge-up-1 > .column:nth-of-type(1n), .xlarge-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-1 > .column:nth-of-type(1n+1), .xlarge-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .xlarge-up-1 > .column:last-child, .xlarge-up-1 > .columns:last-child {
      float: left; }
  .xlarge-up-2 > .column, .xlarge-up-2 > .columns {
    width: 50%;
    float: left; }
    .xlarge-up-2 > .column:nth-of-type(1n), .xlarge-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-2 > .column:nth-of-type(2n+1), .xlarge-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .xlarge-up-2 > .column:last-child, .xlarge-up-2 > .columns:last-child {
      float: left; }
  .xlarge-up-3 > .column, .xlarge-up-3 > .columns {
    width: 33.33333%;
    float: left; }
    .xlarge-up-3 > .column:nth-of-type(1n), .xlarge-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-3 > .column:nth-of-type(3n+1), .xlarge-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .xlarge-up-3 > .column:last-child, .xlarge-up-3 > .columns:last-child {
      float: left; }
  .xlarge-up-4 > .column, .xlarge-up-4 > .columns {
    width: 25%;
    float: left; }
    .xlarge-up-4 > .column:nth-of-type(1n), .xlarge-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-4 > .column:nth-of-type(4n+1), .xlarge-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .xlarge-up-4 > .column:last-child, .xlarge-up-4 > .columns:last-child {
      float: left; }
  .xlarge-up-5 > .column, .xlarge-up-5 > .columns {
    width: 20%;
    float: left; }
    .xlarge-up-5 > .column:nth-of-type(1n), .xlarge-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-5 > .column:nth-of-type(5n+1), .xlarge-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .xlarge-up-5 > .column:last-child, .xlarge-up-5 > .columns:last-child {
      float: left; }
  .xlarge-up-6 > .column, .xlarge-up-6 > .columns {
    width: 16.66667%;
    float: left; }
    .xlarge-up-6 > .column:nth-of-type(1n), .xlarge-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-6 > .column:nth-of-type(6n+1), .xlarge-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .xlarge-up-6 > .column:last-child, .xlarge-up-6 > .columns:last-child {
      float: left; }
  .xlarge-up-7 > .column, .xlarge-up-7 > .columns {
    width: 14.28571%;
    float: left; }
    .xlarge-up-7 > .column:nth-of-type(1n), .xlarge-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-7 > .column:nth-of-type(7n+1), .xlarge-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .xlarge-up-7 > .column:last-child, .xlarge-up-7 > .columns:last-child {
      float: left; }
  .xlarge-up-8 > .column, .xlarge-up-8 > .columns {
    width: 12.5%;
    float: left; }
    .xlarge-up-8 > .column:nth-of-type(1n), .xlarge-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .xlarge-up-8 > .column:nth-of-type(8n+1), .xlarge-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .xlarge-up-8 > .column:last-child, .xlarge-up-8 > .columns:last-child {
      float: left; }
  .xlarge-collapse > .column, .xlarge-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .xlarge-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .expanded.row .xlarge-collapse.row {
    margin-left: 0;
    margin-right: 0; }
  .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .xlarge-centered {
    margin-left: auto;
    margin-right: auto; }
    .xlarge-centered, .xlarge-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .xlarge-uncentered,
  .xlarge-push-0,
  .xlarge-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left; } }

@media screen and (min-width: 90em) {
  .xxlarge-1 {
    width: 8.33333%; }
  .xxlarge-push-1 {
    position: relative;
    left: 8.33333%; }
  .xxlarge-pull-1 {
    position: relative;
    left: -8.33333%; }
  .xxlarge-offset-0 {
    margin-left: 0%; }
  .xxlarge-2 {
    width: 16.66667%; }
  .xxlarge-push-2 {
    position: relative;
    left: 16.66667%; }
  .xxlarge-pull-2 {
    position: relative;
    left: -16.66667%; }
  .xxlarge-offset-1 {
    margin-left: 8.33333%; }
  .xxlarge-3 {
    width: 25%; }
  .xxlarge-push-3 {
    position: relative;
    left: 25%; }
  .xxlarge-pull-3 {
    position: relative;
    left: -25%; }
  .xxlarge-offset-2 {
    margin-left: 16.66667%; }
  .xxlarge-4 {
    width: 33.33333%; }
  .xxlarge-push-4 {
    position: relative;
    left: 33.33333%; }
  .xxlarge-pull-4 {
    position: relative;
    left: -33.33333%; }
  .xxlarge-offset-3 {
    margin-left: 25%; }
  .xxlarge-5 {
    width: 41.66667%; }
  .xxlarge-push-5 {
    position: relative;
    left: 41.66667%; }
  .xxlarge-pull-5 {
    position: relative;
    left: -41.66667%; }
  .xxlarge-offset-4 {
    margin-left: 33.33333%; }
  .xxlarge-6 {
    width: 50%; }
  .xxlarge-push-6 {
    position: relative;
    left: 50%; }
  .xxlarge-pull-6 {
    position: relative;
    left: -50%; }
  .xxlarge-offset-5 {
    margin-left: 41.66667%; }
  .xxlarge-7 {
    width: 58.33333%; }
  .xxlarge-push-7 {
    position: relative;
    left: 58.33333%; }
  .xxlarge-pull-7 {
    position: relative;
    left: -58.33333%; }
  .xxlarge-offset-6 {
    margin-left: 50%; }
  .xxlarge-8 {
    width: 66.66667%; }
  .xxlarge-push-8 {
    position: relative;
    left: 66.66667%; }
  .xxlarge-pull-8 {
    position: relative;
    left: -66.66667%; }
  .xxlarge-offset-7 {
    margin-left: 58.33333%; }
  .xxlarge-9 {
    width: 75%; }
  .xxlarge-push-9 {
    position: relative;
    left: 75%; }
  .xxlarge-pull-9 {
    position: relative;
    left: -75%; }
  .xxlarge-offset-8 {
    margin-left: 66.66667%; }
  .xxlarge-10 {
    width: 83.33333%; }
  .xxlarge-push-10 {
    position: relative;
    left: 83.33333%; }
  .xxlarge-pull-10 {
    position: relative;
    left: -83.33333%; }
  .xxlarge-offset-9 {
    margin-left: 75%; }
  .xxlarge-11 {
    width: 91.66667%; }
  .xxlarge-push-11 {
    position: relative;
    left: 91.66667%; }
  .xxlarge-pull-11 {
    position: relative;
    left: -91.66667%; }
  .xxlarge-offset-10 {
    margin-left: 83.33333%; }
  .xxlarge-12 {
    width: 100%; }
  .xxlarge-offset-11 {
    margin-left: 91.66667%; }
  .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
    width: 100%;
    float: left; }
    .xxlarge-up-1 > .column:nth-of-type(1n), .xxlarge-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-1 > .column:nth-of-type(1n+1), .xxlarge-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .xxlarge-up-1 > .column:last-child, .xxlarge-up-1 > .columns:last-child {
      float: left; }
  .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
    width: 50%;
    float: left; }
    .xxlarge-up-2 > .column:nth-of-type(1n), .xxlarge-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-2 > .column:nth-of-type(2n+1), .xxlarge-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .xxlarge-up-2 > .column:last-child, .xxlarge-up-2 > .columns:last-child {
      float: left; }
  .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
    width: 33.33333%;
    float: left; }
    .xxlarge-up-3 > .column:nth-of-type(1n), .xxlarge-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-3 > .column:nth-of-type(3n+1), .xxlarge-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .xxlarge-up-3 > .column:last-child, .xxlarge-up-3 > .columns:last-child {
      float: left; }
  .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
    width: 25%;
    float: left; }
    .xxlarge-up-4 > .column:nth-of-type(1n), .xxlarge-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-4 > .column:nth-of-type(4n+1), .xxlarge-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .xxlarge-up-4 > .column:last-child, .xxlarge-up-4 > .columns:last-child {
      float: left; }
  .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
    width: 20%;
    float: left; }
    .xxlarge-up-5 > .column:nth-of-type(1n), .xxlarge-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-5 > .column:nth-of-type(5n+1), .xxlarge-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .xxlarge-up-5 > .column:last-child, .xxlarge-up-5 > .columns:last-child {
      float: left; }
  .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
    width: 16.66667%;
    float: left; }
    .xxlarge-up-6 > .column:nth-of-type(1n), .xxlarge-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-6 > .column:nth-of-type(6n+1), .xxlarge-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .xxlarge-up-6 > .column:last-child, .xxlarge-up-6 > .columns:last-child {
      float: left; }
  .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
    width: 14.28571%;
    float: left; }
    .xxlarge-up-7 > .column:nth-of-type(1n), .xxlarge-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-7 > .column:nth-of-type(7n+1), .xxlarge-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .xxlarge-up-7 > .column:last-child, .xxlarge-up-7 > .columns:last-child {
      float: left; }
  .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
    width: 12.5%;
    float: left; }
    .xxlarge-up-8 > .column:nth-of-type(1n), .xxlarge-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .xxlarge-up-8 > .column:nth-of-type(8n+1), .xxlarge-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .xxlarge-up-8 > .column:last-child, .xxlarge-up-8 > .columns:last-child {
      float: left; }
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .xxlarge-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .expanded.row .xxlarge-collapse.row {
    margin-left: 0;
    margin-right: 0; }
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .xxlarge-centered {
    margin-left: auto;
    margin-right: auto; }
    .xxlarge-centered, .xxlarge-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .xxlarge-uncentered,
  .xxlarge-push-0,
  .xxlarge-pull-0 {
    position: static;
    margin-left: 0;
    margin-right: 0;
    float: left; } }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  font-size: inherit;
  line-height: 1.75em;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility; }

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

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

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Lato";
  font-weight: normal;
  font-style: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    color: #ddd;
    line-height: 0; }

h1 {
  font-size: 1.5rem; }

h2 {
  font-size: 1.25rem; }

h3 {
  font-size: 1.1875rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.0625rem; }

h6 {
  font-size: 1rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 2.25rem; }
  h2 {
    font-size: 2rem; }
  h3 {
    font-size: 1.75rem; }
  h4 {
    font-size: 1.5rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

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

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

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

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

li {
  font-size: inherit; }

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

ol {
  margin-left: 1.25rem; }

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

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

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #ddd; }
  blockquote, blockquote p {
    line-height: 1.75em;
    color: #8a8a8a; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a; }
  cite:before {
    content: '\2014 \0020'; }

abbr {
  color: #333;
  cursor: help;
  border-bottom: 1px dotted #111; }

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

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

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 64.0625em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

@media screen and (min-width: 75em) {
  .xlarge-text-left {
    text-align: left; }
  .xlarge-text-right {
    text-align: right; }
  .xlarge-text-center {
    text-align: center; }
  .xlarge-text-justify {
    text-align: justify; } }

@media screen and (min-width: 90em) {
  .xxlarge-text-left {
    text-align: left; }
  .xxlarge-text-right {
    text-align: right; }
  .xxlarge-text-center {
    text-align: center; }
  .xxlarge-text-justify {
    text-align: justify; } }

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

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

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

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #ddd;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #111;
  background-color: #fff;
  box-shadow: inset 0 1px 2px rgba(17, 17, 17, 0.1);
  border-radius: 0;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    border: 1px solid #8a8a8a;
    background-color: #fff;
    outline: none;
    box-shadow: 0 0 5px #ddd;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

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

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #f5f5f5;
  cursor: default; }

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

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

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

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

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

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

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #111; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

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

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 1rem; }
  .input-group > :first-child {
    border-radius: 0 0 0 0; }
  .input-group > :last-child > * {
    border-radius: 0 0 0 0; }

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

.input-group-label {
  text-align: center;
  padding: 0 1rem;
  background: #f5f5f5;
  color: #111;
  border: 1px solid #ddd;
  white-space: nowrap;
  width: 1%;
  height: 100%; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  height: 2.5rem; }

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

.input-group .input-group-button {
  display: table-cell; }

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

legend {
  margin-bottom: 0.5rem;
  max-width: 100%; }

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

select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #ddd;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #111;
  background-color: #fff;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-size: 9px 6px;
  background-position: right -1rem center;
  background-origin: content-box;
  background-repeat: no-repeat;
  padding-right: 1.5rem; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:disabled {
    background-color: #f5f5f5;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

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

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

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

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

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

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #fff, 0 14px 0 #fff; }
  .menu-icon:hover::after {
    background: #ddd;
    box-shadow: 0 7px 0 #ddd, 0 14px 0 #ddd; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon.dark::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #111;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #111, 0 14px 0 #111; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

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

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

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

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

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  thead, tbody, tfoot {
    border: 1px solid #f2f2f2;
    background-color: #fff; }
  caption {
    font-weight: bold;
    padding: 0.5rem 0.625rem 0.625rem; }
  thead {
    background: #f9f9f9;
    color: #333; }
  tfoot {
    background: #f2f2f2;
    color: #333; }
  thead tr, tfoot tr {
    background: transparent; }
  thead th, thead td, tfoot th, tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  tbody tr:nth-child(even) {
    background-color: #f2f2f2; }
  tbody th, tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }

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

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

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

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

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

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

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

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 39.9375em) {
  .hide-for-small-only {
    display: none !important; } }

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

@media screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

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

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

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

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

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

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

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

@media screen and (min-width: 75em) {
  .hide-for-xlarge {
    display: none !important; } }

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

@media screen and (min-width: 75em) and (max-width: 89.9375em) {
  .hide-for-xlarge-only {
    display: none !important; } }

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

@media screen and (min-width: 90em) {
  .hide-for-xxlarge {
    display: none !important; } }

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

@media screen and (min-width: 90em) {
  .hide-for-xxlarge-only {
    display: none !important; } }

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

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

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

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

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

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

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

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

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

.clearfix::after {
  clear: both; }

/**
 *
 * 1.1 Fonts
 *
 */
@font-face {
  font-family: 'The Dead Saloon';
  src: url("../fonts/thedeadsaloon-regular-webfont.eot");
  src: url("../fonts/thedeadsaloon-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/thedeadsaloon-regular-webfont.woff2") format("woff2"), url("../fonts/thedeadsaloon-regular-webfont.woff") format("woff"), url("../fonts/thedeadsaloon-regular-webfont.ttf") format("truetype"), url("../fonts/thedeadsaloon-regular-webfont.svg#the_dead_saloonregular") format("svg");
  font-weight: normal;
  font-style: normal; }

/**
 *
 * 1.1 Variables
 *
 */
/**
 *
 * 2. Global elements
 *
 */
/**
 *
 * Mixins
 *
 */
body {
  overflow-x: hidden; }
  body a,
  body button {
    color: inherit; }
    body a:hover,
    body button:hover {
      color: inherit; }
    body a:hover, body a:focus, body a:active, body a:visited,
    body button:hover,
    body button:focus,
    body button:active,
    body button:visited {
      outline: none;
      color: inherit; }
  body .content a:not(.btn) {
    border-bottom-style: dotted;
    border-bottom-width: 1px;
    transition: border-color .4s; }
    body .content a:not(.btn):hover {
      border-color: inherit; }
  body .content p {
    font-size: 18px; }
    body .content p * {
      font-size: inherit; }
  body.no-scroll {
    overflow: hidden; }
  body p {
    font-size: 18px; }
  body.error404 {
    background-color: #1c1c1c; }

.columns {
  min-height: 1px; }

.header-uppercase {
  text-transform: uppercase; }

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin-bottom: 30px; }

.alt-h h1, .alt-h h2, .alt-h h3, .alt-h h4, .alt-h h5, .alt-h h6 {
  font-family: "Serial Publication", Impact, "Arial Black", Arial, sans-serif !important;
  color: #fff;
  text-transform: lowercase;
  font-style: normal;
  letter-spacing: 0px !important;
  line-height: 1;
  margin-bottom: -0.2em !important; }

.alt-h i.flatleaves-left {
  content: '';
  display: inline-block;
  background: url(../img/flatleaves_left.svg) no-repeat center right;
  background-size: contain; }

.alt-h i.flatleaves-right {
  content: '';
  display: inline-block;
  background: url(../img/flatleaves_right.svg) no-repeat center right;
  background-size: contain; }

.alt-h h2 i.flatleaves-left, .alt-h h2 i.flatleaves-right {
  width: 120px;
  height: 40px; }

.italic-header {
  font-family: "Lora";
  font-style: italic; }

.page-wrapper {
  overflow: hidden;
  width: 100%; }

.btn-content {
  display: inline-block; }
  .btn-content .button-border {
    background: #111; }

.content-left {
  margin-left: 0;
  text-align: left; }

.content-right {
  margin-right: 0;
  text-align: right; }

.content-center {
  margin: 0 auto;
  text-align: center; }

.element-cta {
  width: 100%; }
  .element-cta .cta-content,
  .element-cta .image-content {
    vertical-align: middle; }
  .element-cta .cta-content {
    padding: 0 30px; }
    .element-cta .cta-content *:not(.btn-text) {
      color: inherit; }
  .element-cta.cta-bg-img {
    position: relative;
    display: block; }
    .element-cta.cta-bg-img .cta-content {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 2;
      display: block;
      width: 100%; }
      .element-cta.cta-bg-img .cta-content p:empty {
        display: none; }
    .element-cta.cta-bg-img .image-content {
      display: block; }
    .element-cta.cta-bg-img .cta-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: #111;
      opacity: .6;
      z-index: 2; }
  @media screen and (max-width: 64em) {
    .element-cta.cta-left-img .image-content,
    .element-cta.cta-right-img .image-content {
      margin-bottom: 30px; } }
  @media screen and (min-width: 64.0625em) {
    .element-cta.cta-left-img, .element-cta.cta-right-img {
      display: table;
      table-layout: fixed; }
      .element-cta.cta-left-img .cta-content,
      .element-cta.cta-left-img .image-content, .element-cta.cta-right-img .cta-content,
      .element-cta.cta-right-img .image-content {
        display: table-cell;
        direction: ltr; }
    .element-cta.cta-right-img {
      direction: rtl; } }

.default-content {
  margin-bottom: 30px; }

.loading-wrapper {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #fff;
  z-index: 999; }

.loading-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: #333;
  transition: width 0.7s ease-in; }

.page-intro {
  overflow: hidden;
  opacity: 1;
  transition: opacity 0.7s, transform 0.7s cubic-bezier(0.77, 0, 0.175, 1);
  transform: translateX(-20px); }
  .page-intro .row,
  .page-intro .columns,
  .page-intro .intro-content-wrapper {
    height: inherit; }
  .page-intro:before {
    content: '';
    background: #fff;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    transform: translateX(0) translateY(0) translateZ(0);
    transition: opacity 0.7s, transform 0.7s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 1; }
  .page-intro.intro-loaded {
    opacity: 1;
    transform: translateX(0); }
    .page-intro.intro-loaded:before {
      transform: translateY(-100%) translateX(0) translateZ(0);
      opacity: 1; }
    .page-intro.intro-loaded:after {
      transform: translateY(0%); }

.intro-content-wrapper {
  transform: translateY(-50px);
  transition: transform 1.5s 0s cubic-bezier(0.77, 0, 0.175, 1), opacity 1.5s 0s cubic-bezier(0.77, 0, 0.175, 1);
  opacity: 0; }

.intro-loaded .intro-content-wrapper {
  transform: translateY(0);
  opacity: 1; }

.link-hover,
.wpb_text_column p a {
  position: relative;
  border-bottom: none !important; }
  .link-hover:after,
  .wpb_text_column p a:after {
    content: "";
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
    opacity: .5;
    transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64), transform 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
    transform-origin: top; }
  .link-hover:hover:after,
  .wpb_text_column p a:hover:after {
    opacity: 1;
    transform: scale3d(1, 2, 1);
    transform-origin: top; }

.link-hover-text:hover:after,
.wpb_text_column p a:after {
  transform: scale3d(1, 1, 1); }

.link-hover-text:after,
.wpb_text_column p a:after {
  border-bottom-style: dotted;
  border-bottom-width: 1px;
  border-color: inherit;
  background: transparent !important; }

.page-padding-top {
  position: relative; }

.standard-page {
  padding-bottom: 90px; }

.single-post-nav .arrow-prev,
.single-post-nav .arrow-next {
  width: auto; }

.single-post-nav .arrow-prev {
  text-align: right; }

.single-post-nav .arrow-next {
  text-align: left; }

.lead {
  font-size: 24px !important;
  margin-bottom: 45px !important; }

.element-gallery-grid {
  overflow: hidden; }
  .element-gallery-grid:last-of-type {
    margin-bottom: 60px; }
  @media screen and (min-width: 64.0625em) {
    .element-gallery-grid.two-columns .image-content {
      width: 50%; }
    .element-gallery-grid.three-columns .image-content {
      width: 33.3332%; }
    .element-gallery-grid.four-columns .image-content {
      width: 25%; }
    .element-gallery-grid .image-content {
      float: left; } }

.element-list-table {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }
  .element-list-table li {
    width: 50%;
    float: left;
    border-top: 1px solid;
    padding: 20px 30px;
    position: relative;
    list-style-type: none; }

ul.element-list-table li:before {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  margin-top: -3px;
  top: 50%;
  left: 10px;
  background: #ddd;
  border-radius: 50%; }

ol.element-list-table {
  counter-reset: counter_level1; }
  ol.element-list-table li:before {
    content: counter(counter_level1) ".";
    counter-increment: counter_level1;
    position: absolute;
    left: 10px;
    background: transparent; }

blockquote {
  color: #fff;
  font-size: 18px;
  border-left: none;
  padding: 10px 30px 10px 50px;
  position: relative;
  margin-bottom: 30px; }
  blockquote:before {
    content: '"';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    font-family: "Serial Publication", Impact, "Arial Black", Arial, sans-serif;
    font-size: 130px;
    line-height: 130px;
    color: #bd1e2c; }
  blockquote cite {
    color: #bd1e2c;
    font-size: 18px;
    font-weight: bold; }
  blockquote p {
    color: #fff;
    font-style: italic; }
  blockquote p:last-of-type {
    margin-bottom: 0; }

.dropcap {
  font-family: "Lora";
  font-size: 32px;
  line-height: 1; }

.el-intro-page > .row {
  margin-bottom: 0 !important; }

.default-page > .row {
  margin-bottom: 60px; }

.img-content.float-left {
  margin: 8px 30px 15px 0; }

.img-content.float-right {
  margin: 8px 0px 15px 30px; }

figcaption {
  margin-top: 5px;
  font-family: "Lora";
  font-size: 12px;
  color: #8a8a8a; }

.img-content-lightbox,
.gallery-content-lightbox {
  position: relative;
  display: block;
  overflow: hidden; }
  .img-content-lightbox:before,
  .gallery-content-lightbox:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: translateY(30px);
    opacity: 0;
    transition: opacity .4s, transform .4s;
    z-index: 1;
    background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.3) 30%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.8) 80%, black 100%); }
  .img-content-lightbox:hover:before,
  .gallery-content-lightbox:hover:before {
    opacity: 1;
    transform: translateY(0); }

.grid-table {
  border: 1px solid #ddd;
  margin-bottom: 10px !important; }
  .grid-table .columns:nth-child(2) {
    background: #e1e1e1; }
  .grid-table .columns {
    background: #f1f1f1;
    padding-top: 10px;
    padding-bottom: 10px; }

.fluid-row {
  background: #e1e1e1; }

.grid-page > .row {
  margin-bottom: 30px; }

.grid-page .grid-padding-top {
  margin-top: 60px; }

.separator {
  width: 100%;
  height: 1px;
  background: #ddd;
  margin: 60px 0; }

.el-block-page .separator {
  margin-bottom: 0; }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important; }

pre {
  background: #f5f5f5;
  padding: 15px; }

.wp-caption {
  max-width: 100%; }

.wp-caption-text {
  margin-top: 5px;
  font-family: "Lora";
  font-size: 12px !important;
  color: #8a8a8a;
  margin-bottom: 5px !important; }

img.alignleft {
  margin: 0;
  float: left;
  margin-right: 1.5em; }

img.alignright {
  margin: 0;
  float: right;
  margin-left: 1.5em; }

.alignleft {
  margin: 0;
  float: left;
  margin-right: 1.5em; }

.alignright {
  margin: 0;
  float: right;
  margin-left: 1.5em; }

.aligncenter {
  clear: both;
  display: block;
  margin: 30px auto; }

.alignnone {
  margin: 30px 0; }

/**
 *
 * Pagination 
 *
 */
.nav-links {
  width: 100%;
  text-align: center; }
  .nav-links a,
  .nav-links span {
    display: inline-block;
    vertical-align: middle; }
  .nav-links .arrow-prev,
  .nav-links .arrow-next {
    width: 50px; }
  .nav-links .page-numbers,
  .nav-links .page-number {
    padding: 0 5px;
    font-size: 16px;
    font-family: "Lora";
    font-style: italic; }
    .nav-links .page-numbers:not(.prev):not(.next):not(.current),
    .nav-links .page-number:not(.prev):not(.next):not(.current) {
      opacity: .5;
      transition: opacity .4s; }
    .nav-links .page-numbers:hover,
    .nav-links .page-number:hover {
      opacity: 1 !important; }

.page-links {
  width: 100%;
  text-align: center; }
  .page-links a,
  .page-links span {
    display: inline-block;
    vertical-align: middle;
    padding: 0 5px;
    font-size: 16px;
    font-family: "Lora";
    font-style: italic; }
  .page-links a {
    opacity: .5;
    transition: opacity .4s; }
    .page-links a:hover {
      opacity: 1; }

/**
 *
 * Buttons
 *
 */
.btn {
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  display: inline-block;
  position: relative;
  vertical-align: middle; }
  .btn.btn-full {
    display: block;
    width: 100%; }

.btn-xs {
  padding: 10px 20px;
  font-size: 12px; }

.btn-sm {
  padding: 10px 20px; }

.btn-md {
  padding: 15px 30px; }

.btn-lg {
  padding: 25px 75px; }

.btn-load-more {
  text-align: center;
  background: transparent !important; }
  .btn-load-more.btn-dark {
    color: #333; }
    .btn-load-more.btn-dark .btn-text {
      color: #333; }
    .btn-load-more.btn-dark .link-hover:after {
      background: #111; }
  .btn-load-more.btn-light {
    color: #fff; }
    .btn-load-more.btn-light .btn-text {
      color: #fff; }
    .btn-load-more.btn-light .link-hover:after {
      background: #fff; }
  .btn-load-more .btn-text {
    text-transform: uppercase;
    color: inherit;
    padding-bottom: 5px; }

.btn-rounded {
  border-radius: 40px; }

.btn-solid {
  transition: opacity .4s; }
  .btn-solid:hover {
    opacity: .85; }

.btn-custom.btn-solid {
  background: #fff;
  color: #333; }

.btn-custom.btn-border-animate .btn-text {
  color: #fff; }

.btn-custom.btn-border-animate .button-border {
  background: #fff; }

.btn-icon .icon-rounded {
  border-radius: 50%; }
  .btn-icon .icon-rounded:before {
    border-radius: 50%; }

.btn-icon.btn-lg .btn-text {
  padding-right: 64px; }

.btn-icon.btn-lg span:not(.btn-text) {
  position: absolute;
  top: 5px;
  bottom: 5px;
  right: 5px;
  width: 64px; }
  .btn-icon.btn-lg span:not(.btn-text):before {
    content: "";
    position: absolute;
    top: -3px;
    bottom: -3px;
    right: -3px;
    width: 70px;
    height: 70px;
    border: 1px solid; }

.btn-icon.btn-lg svg {
  width: 64px;
  height: 64px; }

.btn-icon.btn-md .btn-text {
  padding-right: 44px; }

.btn-icon.btn-md span:not(.btn-text) {
  position: absolute;
  top: 5px;
  bottom: 5px;
  right: 5px;
  width: 44px; }
  .btn-icon.btn-md span:not(.btn-text):before {
    content: "";
    position: absolute;
    top: -3px;
    bottom: -3px;
    right: -3px;
    width: 50px;
    height: 50px;
    border: 1px solid; }

.btn-icon.btn-md svg {
  width: 44px;
  height: 44px; }

.btn-icon.btn-sm .btn-text {
  padding-right: 34px; }

.btn-icon.btn-sm span:not(.btn-text) {
  position: absolute;
  top: 5px;
  bottom: 5px;
  right: 5px;
  width: 34px; }
  .btn-icon.btn-sm span:not(.btn-text):before {
    content: "";
    position: absolute;
    top: -3px;
    bottom: -3px;
    right: -3px;
    width: 40px;
    height: 40px;
    border: 1px solid; }

.btn-icon.btn-sm svg {
  width: 34px;
  height: 34px; }

.btn-icon.btn-xs .btn-text {
  padding-right: 28px; }

.btn-icon.btn-xs span:not(.btn-text) {
  position: absolute;
  top: 5px;
  bottom: 5px;
  right: 5px;
  width: 28px; }
  .btn-icon.btn-xs span:not(.btn-text):before {
    content: "";
    position: absolute;
    top: -3px;
    bottom: -3px;
    right: -3px;
    width: 34px;
    height: 34px;
    border: 1px solid; }

.btn-icon.btn-xs svg {
  width: 28px;
  height: 28px; }

.btn-light {
  background: #fff;
  color: #333; }
  .btn-light .btn-text {
    color: #333; }
  .btn-light.btn-icon span:not(.btn-text) {
    background: #333; }
    .btn-light.btn-icon span:not(.btn-text):before {
      border-color: #333; }
    .btn-light.btn-icon span:not(.btn-text) svg * {
      stroke: #fff;
      fill: #fff; }

.btn-dark {
  background: #111;
  color: #fff; }
  .btn-dark .btn-text {
    color: #fff; }
  .btn-dark.btn-icon span:not(.btn-text) {
    background: #fff; }
    .btn-dark.btn-icon span:not(.btn-text):before {
      border-color: #fff; }
    .btn-dark.btn-icon span:not(.btn-text) svg * {
      stroke: #111;
      fill: #111; }

.btn-border-animate {
  position: relative;
  overflow: hidden;
  background: transparent !important; }
  .btn-border-animate .button-border {
    position: absolute; }
  .btn-border-animate .top {
    top: 0;
    left: 30px;
    width: 100%;
    height: 1px;
    transition: left .4s, background .4s; }
  .btn-border-animate .left {
    left: 0;
    width: 1px;
    height: 100%;
    transition: top .3s .1s, background .4s; }
  .btn-border-animate .left-bottom {
    top: 30px; }
  .btn-border-animate .left-top {
    top: -100%; }
  .btn-border-animate .bottom {
    bottom: 0;
    width: 100%;
    height: 1px;
    transition: right .4s .2s, background .4s; }
  .btn-border-animate .bottom-right {
    right: 0; }
  .btn-border-animate .bottom-left {
    right: 100%; }
  .btn-border-animate .right {
    right: 0;
    width: 1px;
    height: 100%;
    top: 0;
    transition: top .4s .1s, background .4s; }
  .btn-border-animate.btn-dark {
    color: #333; }
    .btn-border-animate.btn-dark .btn-text {
      color: #333; }
    .btn-border-animate.btn-dark .button-border {
      background: #111; }
  .btn-border-animate.btn-light {
    color: #fff; }
    .btn-border-animate.btn-light .btn-text {
      color: #fff; }
    .btn-border-animate.btn-light .button-border {
      background: #fff; }
  .btn-border-animate.btn-xs .top {
    left: 15px; }
  .btn-border-animate.btn-xs .left-bottom {
    top: 15px; }
  .btn-border-animate.btn-sm .top {
    left: 20px; }
  .btn-border-animate.btn-sm .left-bottom {
    top: 20px; }
  .btn-border-animate:hover .top {
    left: 0; }
  .btn-border-animate:hover .left-bottom {
    top: 0; }
  .btn-border-animate:hover .bottom-right {
    right: 30px; }
  .btn-border-animate:hover .right {
    top: -30px; }
  .btn-border-animate:hover.btn-xs .bottom-right {
    right: 15px; }
  .btn-border-animate:hover.btn-xs .right {
    top: -15px; }
  .btn-border-animate:hover.btn-sm .bottom-right {
    right: 20px; }
  .btn-border-animate:hover.btn-sm .right {
    top: -20px; }

#scroll-up {
  width: 50px;
  height: 50px;
  cursor: pointer; }
  #scroll-up svg {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -20px;
    margin-left: -10px; }
  @media screen and (max-width: 64em) {
    #scroll-up {
      margin: 0 auto; } }
  @media screen and (min-width: 64.0625em) {
    #scroll-up {
      margin-right: 0;
      margin-left: auto; } }

/**
 *
 * Forms
 *
 */
.forms-style fieldset {
  position: relative;
  width: 100%;
  text-align: center;
  margin-bottom: 60px; }
  .forms-style fieldset:after {
    content: "";
    position: absolute;
    bottom: 0;
    background: #ddd;
    height: 1px;
    z-index: -1; }
    @media screen and (max-width: 64em) {
      .forms-style fieldset:after {
        width: 100%; } }

.forms-style .mf-input {
  float: left;
  width: -moz-calc(100% / 3);
  width: -webkit-calc(100% / 3);
  width: calc(100% / 3);
  position: relative; }
  .forms-style .mf-input.message {
    width: 100%; }
    .forms-style .mf-input.message label,
    .forms-style .mf-input.message .border-label {
      width: -moz-calc(100% / 3);
      width: -webkit-calc(100% / 3);
      width: calc(100% / 3); }
    .forms-style .mf-input.message .border-label {
      position: relative; }
    .forms-style .mf-input.message textarea {
      resize: none;
      text-align: left; }
    .forms-style .mf-input.message:after {
      left: 33%;
      margin-left: 0; }
  .forms-style .mf-input:not(.message):after,
  .forms-style .mf-input .border-label:after {
    content: "";
    position: absolute;
    bottom: 0px;
    width: 90px;
    left: 50%;
    margin-left: -45px;
    height: 1px;
    background: #111;
    z-index: 1;
    transition: transform .4s, background .4s; }
  .forms-style .mf-input.message-error:not(.message):after,
  .forms-style .mf-input.message-error .border-label:after {
    background: #f10a4a !important; }
  .forms-style .mf-input.message-error label {
    color: #f10a4a !important; }

.forms-style label {
  position: absolute;
  text-transform: uppercase;
  line-height: 60px;
  display: block;
  width: 100%;
  text-align: center;
  z-index: 1;
  bottom: 0;
  transition: bottom .4s, opacity .4s, font-size .4s, color .4s; }
  .forms-style label span {
    width: 10px;
    height: 10px;
    position: absolute;
    top: 50%;
    margin-left: 5px;
    margin-top: -5px;
    opacity: 0;
    transition: opacity .4s; }
    .forms-style label span svg {
      position: absolute;
      top: 0;
      left: 0; }
  .forms-style label .clear-input {
    opacity: 1;
    cursor: pointer; }

@keyframes autofill {
  to {
    background: transparent; } }

.forms-style input,
.forms-style select,
.forms-style textarea {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  height: 60px;
  line-height: 60px;
  margin: 0;
  text-align: center;
  z-index: 2; }
  @media screen and (max-width: 39.9375em) {
    .forms-style input,
    .forms-style select,
    .forms-style textarea {
      padding: 0 10px; } }
  @media screen and (min-width: 40em) {
    .forms-style input,
    .forms-style select,
    .forms-style textarea {
      padding: 0 30px; } }
  .forms-style input:focus,
  .forms-style select:focus,
  .forms-style textarea:focus {
    outline: none; }
  .forms-style input:-webkit-autofill,
  .forms-style select:-webkit-autofill,
  .forms-style textarea:-webkit-autofill {
    -webkit-animation-name: autofill;
    -webkit-animation-fill-mode: both; }

.forms-style .active-input label {
  bottom: -60px;
  opacity: .4;
  font-size: 12px; }

.forms-style .active-input:after,
.forms-style .active-input .border-label:after {
  transform: scale3d(1, 2, 1) !important; }

@media screen and (max-width: 64em) {
  .form-with-image.img_right .form-image {
    margin-top: 30px;
    margin-bottom: 0;
    max-width: 50%; } }

.form-with-image.img_right fieldset:after {
  left: 0;
  right: -50% !important; }

@media screen and (min-width: 64.0625em) {
  .form-with-image.img_right .form-image .form-image-wrapper {
    padding-left: 0;
    padding-right: 60px; } }

@media screen and (max-width: 64em) {
  .form-image {
    max-width: 50%;
    margin-bottom: 30px; } }

@media screen and (min-width: 64.0625em) {
  .form-image .form-image-wrapper {
    padding-left: 60px; } }

.form-container {
  margin-bottom: 60px; }

@media screen and (min-width: 64.0625em) {
  .form-container {
    display: table;
    width: 100%; }
  .marco-form {
    width: 66.666%;
    display: table-cell;
    vertical-align: middle; }
  .form-image {
    width: 33.3332%;
    display: table-cell;
    vertical-align: middle; } }

.form-container:not(.form-with-image) .marco-form fieldset:after {
  left: 0;
  right: 0; }

.marco-form {
  text-align: center; }
  .marco-form fieldset:after {
    right: 0; }
    @media screen and (max-width: 64em) {
      .marco-form fieldset:after {
        width: 100%; } }
    @media screen and (min-width: 64.0625em) {
      .marco-form fieldset:after {
        left: -50%; } }
  .marco-form .btn-contact {
    margin: 0 auto;
    display: block;
    transition: color .4s; }
    @media screen and (max-width: 64em) {
      .marco-form .btn-contact {
        margin-bottom: 60px; } }
    .marco-form .btn-contact .button-border {
      background: #111; }
    .marco-form .btn-contact.button-success {
      color: #2ec556 !important; }
      .marco-form .btn-contact.button-success .button-border {
        background: #2ec556; }

.post-password-form fieldset {
  margin-bottom: 30px; }
  .post-password-form fieldset p {
    display: none; }

.post-password-form p {
  text-align: right; }

.gallery-item {
  display: inline-block;
  text-align: left;
  vertical-align: top;
  margin: 0 0 1.5em;
  padding: 0 1em 0 0;
  width: 50%; }
  .gallery-item a,
  .gallery-item a:hover,
  .gallery-item a:focus {
    box-shadow: none;
    background: none;
    display: inline-block;
    max-width: 100%; }
  .gallery-item a img {
    display: block;
    transition: filter 0.2s ease-in;
    backface-visibility: hidden; }
  .gallery-item a:hover img,
  .gallery-item a:focus img {
    filter: opacity(60%); }

.gallery-columns-1 .gallery-item {
  float: none;
  width: 100%;
  max-width: 100%; }

.gallery-columns-2 .gallery-item {
  float: none;
  max-width: 50%; }

.gallery-columns-3 .gallery-item {
  float: none;
  max-width: 33.3332%; }

.gallery-columns-4 .gallery-item {
  float: none;
  max-width: 25%; }

.gallery-columns-5 .gallery-item {
  float: none;
  max-width: 20%; }

.gallery-columns-6 .gallery-item {
  float: none;
  max-width: 16.6667%; }

.gallery-columns-7 .gallery-item {
  float: none;
  max-width: 14.28%; }

.gallery-columns-8 .gallery-item {
  float: none;
  max-width: 12.5%; }

.gallery-columns-9 .gallery-item {
  float: none;
  max-width: 11.11%; }

.gallery-caption {
  display: block;
  text-align: left;
  padding: 0 10px 0 0;
  margin-bottom: 0; }

/**
 *
 * Page Intro
 *
 */
.page-intro {
  position: relative;
  width: 100%;
  background-size: cover;
  background-position: center center; }
  .page-intro .intro-overlay {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    opacity: .5; }
  .page-intro .intro-content-wrapper {
    display: table;
    min-height: 350px;
    padding: 90px 0;
    position: relative;
    z-index: 1;
    width: 100%; }
  .page-intro .intro-content {
    display: table-cell;
    vertical-align: middle;
    padding: 0 30px; }
    .page-intro .intro-content p:last-of-type {
      margin-bottom: 0; }
    .page-intro .intro-content.intro-content-left {
      text-align: left; }
    .page-intro .intro-content.intro-content-right {
      text-align: right; }
    .page-intro .intro-content.intro-content-center {
      text-align: center; }
  @media screen and (max-width: 39.9375em) {
    .page-intro .intro-header:last-child {
      margin: 0 0 30px; } }
  @media screen and (min-width: 40em) and (max-width: 64em) {
    .page-intro .intro-header:last-child {
      margin: 0 30px 30px; } }
  @media screen and (min-width: 64.0625em) and (max-width: 74.9375em) {
    .page-intro .intro-header:last-child {
      margin: 0 60px 60px; } }
  @media screen and (min-width: 75em) {
    .page-intro .intro-header:last-child {
      margin: 0 120px 90px; } }
  .page-intro .intro-header .post-meta {
    margin-bottom: -60px;
    position: relative;
    padding-top: 60px; }
  .page-intro .page-header {
    padding: 0; }

.page-header-intro {
  position: relative; }

.classic .page-header {
  margin-bottom: 0; }
  .classic .page-header > div {
    margin-bottom: 30px; }
    .classic .page-header > div * {
      margin-bottom: 0; }
    .classic .page-header > div:last-of-type {
      margin-bottom: 0; }

.page-header {
  padding: 60px 30px 30px;
  overflow: hidden; }
  @media screen and (max-width: 39.9375em) {
    .page-header .header {
      width: 100%; }
    .page-header .content {
      width: 100%; } }
  @media screen and (min-width: 40em) and (max-width: 64em) {
    .page-header .header {
      width: 75%; }
    .page-header .content {
      width: 75%; } }
  @media screen and (min-width: 64.0625em) {
    .page-header .header {
      width: 50%;
      float: left;
      padding-right: 30px; }
    .page-header .content {
      width: 50%;
      float: right;
      padding-left: 30px; } }
  .page-header .content p {
    font-size: 16px; }
  .page-header .header h3 {
    margin-bottom: 30px;
    letter-spacing: 1px; }
  .page-header a {
    color: inherit; }
  .page-header .post-meta {
    margin-bottom: 30px; }

/**
 *
 * Elements typo
 *
 */
.el-table {
  display: table;
  width: 100%; }
  .el-table .el-table-cell {
    display: table-cell;
    padding: 15px; }

.section-dark {
  background: #333;
  padding: 15px; }

.el-intro .el-table .el-table-cell {
  padding: 15px 0; }

/**
 *
 * 404 error
 *
 */
.error-404 {
  margin: 60px 0 120px 0; }
  .error-404 h1 {
    z-index: -1;
    font-size: 260px;
    font-family: "Lora";
    font-style: italic;
    color: #f5f5f5;
    line-height: 1;
    text-align: center;
    margin-bottom: 0; }
  .error-404 .page-content {
    margin-top: 15px; }
  .error-404 fieldset {
    margin-bottom: 0; }
  @media screen and (max-width: 64em) {
    .error-404 {
      text-align: center; }
      .error-404 h1 {
        margin-bottom: 30px; }
      .error-404 .search-input {
        margin: 0 auto;
        width: 70%; } }
  @media screen and (max-width: 39.9375em) {
    .error-404 h1 {
      font-size: 150px; } }

.search-input {
  position: relative;
  width: 100%;
  border-bottom: 1px solid #ddd; }
  .search-input:after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 200px;
    height: 1px;
    background: #111; }
  .search-input input {
    position: relative;
    border: none;
    background: transparent;
    box-shadow: none;
    margin-bottom: 0;
    height: 60px;
    display: inline-block;
    padding-right: 30px; }
    .search-input input:focus {
      border: none;
      box-shadow: none; }
  .search-input button {
    position: absolute;
    right: 0;
    height: 60px;
    width: 30px;
    bottom: 0;
    text-align: center;
    cursor: pointer; }

/**
 *
 * SVG icons
 *
 */
.arrow-prev {
  width: 100px;
  height: 50px;
  cursor: pointer;
  text-align: right; }
  .arrow-prev svg {
    opacity: .5;
    transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64), transform 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
    transform: translate3d(0, 0, 0);
    transform-origin: left;
    width: 50px;
    height: 50px; }
    .arrow-prev svg:hover {
      opacity: 1;
      transform: translateX(-15px); }

.arrow-next {
  width: 100px;
  height: 50px;
  opacity: .5;
  transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64), transform 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
  transform: translateX(0);
  transform-origin: right; }
  .arrow-next svg {
    width: 50px;
    height: 50px; }
  .arrow-next:hover {
    opacity: 1;
    transform: translateX(15px); }

.arrow-prev line,
.arrow-next line {
  stroke: #111; }

svg#icon-big-arrow-prev,
svg#icon-big-arrow-next {
  width: 90px;
  height: 50px; }
  svg#icon-big-arrow-prev line,
  svg#icon-big-arrow-next line {
    stroke-width: 1px;
    vector-effect: non-scaling-stroke;
    fill: none; }

/**
 *
 * Colors
 *
 */
.page-header-intro li {
  color: #8a8a8a; }

.page-header-intro .link-hover:after,
.page-header .link-hover:after {
  background: #333; }

.page-intro .intro-overlay {
  background: #111; }

.page-intro .intro-content,
.page-intro .page-header-intro li {
  color: #fff; }

.page-intro .link-hover:after {
  background: #fff; }

.element-list-table li {
  color: #8a8a8a;
  border-color: #ddd; }
  .element-list-table li:before {
    background: #ddd; }

.element-cta.cta-content-light {
  color: #fff; }

.content a {
  border-color: #ddd; }

.vc_row-flex > .columns {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }
  .vc_row-flex > .columns > .vc_column-inner {
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; }

.vc_row-flex.vc_row-o-content-top > .vc_vc_column > .vc_column_container > .vc_column-inner,
.vc_row-flex.vc_row-o-content-top > .vc_vc_column_inner > .vc_column_container > .vc_column-inner {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start; }

.vc_row-flex.vc_row-o-content-top:not(.vc_row-o-equal-height) > .vc_vc_column > .vc_column_container,
.vc_row-flex.vc_row-o-content-top:not(.vc_row-o-equal-height) > .vc_vc_column_inner > .vc_column_container {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start; }

.vc_row-flex.vc_row-o-content-bottom > .columns > .vc_column-inner {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end; }

.vc_row-flex.vc_row-o-content-bottom:not(.vc_row-o-equal-height) > .vc_vc_column > .vc_column_container,
.vc_row-flex.vc_row-o-content-bottom:not(.vc_row-o-equal-height) > .vc_vc_column_inner > .vc_column_container {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end; }

.vc_row-flex.vc_row-o-content-middle > .columns > .vc_column-inner {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

.vc_row-flex.vc_row-o-content-middle:not(.vc_row-o-equal-height) > .vc_vc_column > .vc_column_container,
.vc_row-flex.vc_row-o-content-middle:not(.vc_row-o-equal-height) > .vc_vc_column_inner > .vc_column_container {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center; }

/**
 *
 * 3. Navbar styles
 *
 */
/**
 *
 * Main navigation 
 *
 */
body.admin-bar.nav-top .main-navigation {
  top: 32px; }

@media screen and (max-width: 782px) {
  body.admin-bar.nav-top .main-navigation {
    top: 46px; } }

@media screen and (max-width: 64em) {
  .nav-solid .page-wrapper {
    padding-top: 100px; }
    .nav-solid .page-wrapper .home-bg-slider {
      top: 100px; }
    .nav-solid .page-wrapper .page-intro {
      margin-top: 100px; }
  .main-navigation {
    height: 100px;
    z-index: 999; }
    .main-navigation .nav-wrapper {
      height: 100px; }
  .nav-transparent .intro-content-wrapper {
    padding-top: 160px !important; }
  .mobile-navbar-overlay .menu-mobile {
    margin-top: 130px !important; }
  .nav-solid.nav-home > .page-wrapper {
    padding-top: 0;
    top: 0; }
    .nav-solid.nav-home > .page-wrapper .page-wrapper {
      top: 0; } }

@media screen and (min-width: 64.0625em) {
  .main-navigation .nav-wrapper {
    height: 150px; }
  .nav-solid.nav-top .page-wrapper {
    padding-top: 150px; }
    .nav-solid.nav-top .page-wrapper .home-bg-slider {
      top: 150px; }
    .nav-solid.nav-top .page-wrapper .page-intro {
      margin-top: 150px; }
  .nav-transparent.nav-top .page-wrapper .intro-content-wrapper {
    padding-top: 240px !important; }
  .nav-transparent.nav-top .page-wrapper .home-content {
    padding-top: 210px; }
    .nav-transparent.nav-top .page-wrapper .home-content .home-top {
      top: 210px; }
  .nav-solid.nav-bottom .page-wrapper .home-bg-slider {
    bottom: 150px; }
  .nav-transparent.nav-bottom .page-wrapper .home-content {
    padding-bottom: 210px; }
    .nav-transparent.nav-bottom .page-wrapper .home-content .home-bottom {
      bottom: 210px; } }

@media screen and (max-width: 64em) {
  .page-padding-top {
    padding-top: 60px; }
  .nav-solid .page-wrapper .page-intro .page-header-intro {
    top: 0; }
  .home-bg-slider {
    bottom: 0 !important; }
  .nav-bottom .main-navigation,
  .nav-center-ver .main-navigation {
    bottom: auto;
    top: 0; }
  #reorder-mobile {
    width: 34px;
    height: 34px;
    z-index: 3;
    cursor: pointer;
    position: absolute;
    top: 50%;
    margin-top: -17px;
    right: 15px; }
  .nav-transparent .page-wrapper .home-bg-slider,
  .nav-transparent .page-wrapper .page-padding-top {
    top: 0;
    bottom: 0; }
  .nav-transparent .page-wrapper .page-intro {
    top: 0; }
  .main-navigation {
    text-align: center !important; }
    .main-navigation .nav-logo {
      position: relative;
      z-index: 2;
      float: left !important;
      margin-right: 35px; }
      .main-navigation .nav-logo a {
        margin-left: 15px !important;
        padding: 20px 0 !important; }
      .main-navigation .nav-logo img {
        position: relative;
        top: 50%;
        transform: translateY(-50%); }
      .main-navigation .nav-logo h1 {
        margin-bottom: 0; } }

@media screen and (min-width: 64.0625em) {
  .nav-solid.nav-top .page-wrapper .home-bg-slider {
    bottom: 0; }
  .nav-solid.nav-top .page-wrapper .page-intro .page-header-intro {
    top: 0; }
  .page-padding-top {
    padding-top: 60px; }
  .nav-transparent .page-wrapper .home-bg-slider,
  .nav-transparent .page-wrapper .page-padding-top {
    top: 0;
    bottom: 0; }
  .nav-transparent .page-wrapper .page-intro {
    top: 0; }
  .nav-transparent.nav-top .page-wrapper .page-intro + .page-padding-top,
  .nav-transparent.nav-top .page-wrapper .page-header-intro + .page-padding-top {
    padding-top: 60px !important; }
  .nav-solid.nav-bottom .page-wrapper .home-bg-slider {
    top: 0; }
  .nav-solid.nav-bottom .page-wrapper .page-padding-top {
    bottom: 0; }
  .nav-solid.nav-center-ver .page-wrapper .home-bg-slider,
  .nav-solid.nav-center-ver .page-wrapper .page-padding-top {
    top: 0;
    bottom: 0; }
  .home-content {
    padding-top: 60px; }
    .home-content .home-top {
      top: 60px; } }

.nav-classes {
  width: 100%; }

.main-navigation {
  z-index: 4;
  width: 100%; }
  .main-navigation .nav-wrapper {
    position: relative; }
  .main-navigation .nav-items {
    transition: opacity .4s;
    height: inherit; }
    .main-navigation .nav-items ul {
      margin: 0;
      height: 100%; }
    .main-navigation .nav-items li {
      list-style-type: none;
      position: relative;
      height: 50px;
      line-height: 50px;
      top: 50%;
      margin-top: -25px; }
    .main-navigation .nav-items a {
      text-transform: uppercase;
      letter-spacing: 3px;
      font-size: 14px;
      padding: 8px 0;
      margin: 0 20px;
      text-align: center; }
      .main-navigation .nav-items a[href="#"] {
        cursor: default; }
  .main-navigation .nav-logo {
    height: 100%;
    opacity: 0;
    transition: opacity .4s; }
    .main-navigation .nav-logo a {
      display: inline-block;
      height: 100%;
      margin: 0 40px;
      padding: 40px 0; }
    .main-navigation .nav-logo img {
      max-height: 100%; }
    .main-navigation .nav-logo.active-logo {
      opacity: 1; }
    .main-navigation .nav-logo h1 {
      margin-bottom: 0;
      line-height: 60px; }
  .main-navigation .menu-item .sub-menu {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.08); }
    .main-navigation .menu-item .sub-menu li {
      position: relative;
      width: 100%;
      text-align: left !important; }
      .main-navigation .menu-item .sub-menu li:hover > a {
        opacity: 1; }
      .main-navigation .menu-item .sub-menu li a {
        white-space: nowrap;
        transition: opacity 0.4s;
        opacity: 0.6; }

.show-plus .menu-item-has-children.first-level > a::before {
  right: -15px;
  position: absolute;
  content: '+';
  opacity: 1; }

.menu-item-has-children:not(.first-level) > a::after {
  right: 15px;
  position: absolute;
  content: '+';
  opacity: 1;
  background: transparent !important; }

.menu-item-has-children {
  position: relative; }
  .menu-item-has-children .sub-menu {
    display: none;
    position: absolute;
    left: 50%;
    z-index: 19;
    height: auto !important;
    padding: 7px 0; }
    .menu-item-has-children .sub-menu .sub-menu {
      left: 100%;
      margin-left: 0; }
    .menu-item-has-children .sub-menu .dropdown-left {
      left: auto;
      right: 100%;
      margin-right: 0; }
    .menu-item-has-children .sub-menu li {
      top: 0;
      margin-top: 0;
      padding: 7px 15px;
      height: auto !important;
      line-height: 1; }
    .menu-item-has-children .sub-menu a {
      display: block;
      font-size: 12px !important;
      letter-spacing: 2px; }

.dropdown > li > a {
  position: relative;
  border-bottom: none !important; }
  .dropdown > li > a:after {
    content: "";
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
    opacity: .5;
    transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64), transform 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
    transform-origin: top;
    background: #333; }
  .dropdown > li > a:hover:after {
    opacity: 1;
    transform: translateY(2px);
    transform-origin: top; }

.nav-top .menu-item-has-children .sub-menu,
.nav-center-ver .menu-item-has-children .sub-menu {
  top: 100%; }
  .nav-top .menu-item-has-children .sub-menu .sub-menu,
  .nav-center-ver .menu-item-has-children .sub-menu .sub-menu {
    top: -7px; }

.nav-bottom .menu-item-has-children .sub-menu {
  bottom: 100%; }
  .nav-bottom .menu-item-has-children .sub-menu .sub-menu {
    top: auto;
    bottom: -7px; }

.nav-top .main-navigation {
  position: absolute;
  left: 0;
  top: 0; }

.nav-center-ver .main-navigation {
  position: absolute;
  left: 0; }
  @media screen and (min-width: 64.0625em) {
    .nav-center-ver .main-navigation {
      top: 50%;
      transform: translateY(-50%); } }

.nav-bottom .main-navigation {
  position: absolute;
  bottom: 0;
  left: 0; }

.nav-left-all .nav-logo,
.nav-left-all .nav-items {
  float: left; }

.nav-left-all .nav-items li {
  float: left; }

.nav-left .nav-logo {
  float: left; }

.nav-left .nav-items {
  float: right; }
  .nav-left .nav-items li {
    float: left; }

.nav-right-all .nav-logo,
.nav-right-all .nav-items {
  float: right; }

.nav-right-all .nav-items li {
  float: left; }

.nav-right .nav-logo {
  float: right; }

.nav-right .nav-items {
  float: left; }
  .nav-right .nav-items li {
    float: left; }

.nav-center .main-navigation {
  text-align: center; }
  .nav-center .main-navigation .nav-items {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2; }
    .nav-center .main-navigation .nav-items li {
      float: left; }
  .nav-center .main-navigation .nav-logo {
    display: inline-block;
    position: relative;
    float: left;
    display: block; }
    .nav-center .main-navigation .nav-logo a {
      position: relative;
      z-index: 3; }
  .nav-center .main-navigation .main-nav-left {
    text-align: right;
    height: 100%;
    float: left; }
    .nav-center .main-navigation .main-nav-left > ul {
      float: right; }
      .nav-center .main-navigation .main-nav-left > ul:after {
        content: "";
        clear: both; }
  .nav-center .main-navigation .main-nav-right {
    height: 100%;
    float: left; }

.nav-icons {
  width: 50px;
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  text-align: center;
  z-index: 3; }
  .nav-icons a {
    height: 50px;
    width: 50px;
    line-height: 50px;
    left: 0;
    top: 50%;
    margin-top: -25px;
    position: absolute; }

.nav-right .nav-icons,
.nav-right-all .nav-icons {
  right: auto;
  left: 0; }

/**
 *
 * Fixed navigation
 *
 */
.fixed-nav {
  position: relative;
  z-index: 6;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  transform: translateY(-100%);
  transition: transform 0.4s;
  display: table;
  width: 100%;
  white-space: nowrap; }
  .fixed-nav .menu-main-menu {
    margin: 0;
    padding-left: 30px;
    padding-right: 45px;
    display: table-cell;
    text-align: right;
    vertical-align: middle;
    max-height: 100%;
    max-width: 100%; }
  .fixed-nav .nav-logo {
    display: table-cell !important;
    text-align: left;
    vertical-align: middle;
    height: inherit;
    float: none; }
    .fixed-nav .nav-logo a {
      display: block;
      height: inherit;
      margin: 0 30px;
      padding: 25px 0; }
      .fixed-nav .nav-logo a img {
        max-height: 100%; }
    .fixed-nav .nav-logo h1 {
      margin-bottom: 0;
      line-height: 60px; }
  .fixed-nav > ul > li {
    padding: 15px;
    display: inline-block; }
    .fixed-nav > ul > li > a {
      font-size: 12px;
      padding-bottom: 5px; }
  .fixed-nav a {
    text-transform: uppercase;
    letter-spacing: 2px; }
    .fixed-nav a[href="#"] {
      cursor: default; }
    .fixed-nav a span {
      display: block;
      white-space: nowrap; }
  .fixed-nav .dropdown .dropdown a {
    color: #fff; }
  .fixed-nav.show-fixed-nav {
    transform: translateY(0); }
  .fixed-nav .menu-item-has-children.first-level > a::before,
  .fixed-nav .menu-item-has-children > a span.title::after {
    line-height: 1;
    top: 50%;
    margin-top: -9px; }
  .fixed-nav li {
    list-style-type: none;
    text-align: center; }
    .fixed-nav li .title {
      transition: opacity 0.4s;
      opacity: 0.6; }
  .fixed-nav .menu-item-has-children .sub-menu a {
    margin: 0 10px;
    padding: 8px 0;
    transition: opacity 0.4s;
    opacity: 0.6;
    white-space: nowrap; }
    .fixed-nav .menu-item-has-children .sub-menu a:hover {
      opacity: 1; }
    .fixed-nav .menu-item-has-children .sub-menu a:after {
      right: 10px; }

.nav-top .fixed-nav .menu-item-has-children .dropdown {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.08); }
  .nav-top .fixed-nav .menu-item-has-children .dropdown .dropdown {
    top: -7px; }

/**
 *
 * Mobile navigation
 *
 */
@media screen and (max-width: 64em) {
  .home-mobile-icon {
    display: none !important;
    position: fixed;
    width: 100%;
    text-align: center;
    z-index: 6;
    bottom: 30px; }
    .home-mobile-icon .homepage-icon {
      border-radius: 50%;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
      width: 50px;
      height: 50px;
      position: relative;
      display: inline-block;
      margin: 0 5px; }
      .home-mobile-icon .homepage-icon a {
        display: block; }
      .home-mobile-icon .homepage-icon svg {
        width: 25px;
        height: 50px; }
      .home-mobile-icon .homepage-icon.video-mobile-control svg {
        width: 40px; }
  .info-mobile-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: translateY(-100%);
    transition: transform 0.5s cubic-bezier(0.16, 0.51, 0.78, 0.64) 0.2s, opacity 0.5s 0.2s;
    z-index: 6;
    background: rgba(0, 0, 0, 0.7); }
    .info-mobile-overlay.open-overlay {
      transform: translateY(0);
      opacity: 1;
      transition: transform 0.5s cubic-bezier(0.16, 0.51, 0.78, 0.64), opacity 0.5s; }
    .info-mobile-overlay .close-nav {
      z-index: 30;
      position: absolute;
      left: 50%;
      margin-left: -20px;
      top: 30px;
      padding: 0;
      width: 40px;
      height: 40px;
      cursor: pointer; }
      .info-mobile-overlay .close-nav circle {
        opacity: .2; }
    .info-mobile-overlay .home-mobile-corners {
      margin-top: 100px;
      text-align: center; }
    .info-mobile-overlay .home-social-media {
      margin: 0 0 60px; }
      .info-mobile-overlay .home-social-media li {
        list-style-type: none; }
      .info-mobile-overlay .home-social-media a {
        padding: 2px 0;
        display: block;
        display: inline-block;
        font-size: 16px; }
    .info-mobile-overlay .home-contact-info {
      margin-bottom: 60px; }
      .info-mobile-overlay .home-contact-info * {
        font-size: 16px;
        text-align: center !important; }
  .mobile-navbar-helper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transform: translateY(-100%);
    transition: transform 0.5s cubic-bezier(0.16, 0.51, 0.78, 0.64) 0.2s, opacity 0.5s 0.2s;
    z-index: 7; }
    .mobile-navbar-helper.open-overlay {
      transform: translateY(0);
      opacity: 1;
      transition: transform 0.5s cubic-bezier(0.16, 0.51, 0.78, 0.64), opacity 0.5s; }
  .mobile-navbar-overlay {
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 8;
    opacity: 0;
    transform: translateY(-100%);
    visibility: hidden;
    transition: opacity .4s 0s, transform .4s 0s, visibility .4s .4s;
    padding: 0 60px 60px;
    text-align: center;
    overflow: hidden;
    top: 0; }
    .mobile-navbar-overlay.show-mobile-nav {
      opacity: 1;
      transform: translateY(0);
      visibility: visible;
      transition: opacity .4s .4s, transform .4s .4s, visibility .4s 0s;
      overflow-y: scroll; }
    .mobile-navbar-overlay .menu-mobile {
      margin: 0; }
      .mobile-navbar-overlay .menu-mobile li {
        list-style-type: none;
        padding: 0 15px !important; }
        .mobile-navbar-overlay .menu-mobile li a {
          display: inline-block; }
      .mobile-navbar-overlay .menu-mobile > li {
        margin-bottom: 15px; }
        .mobile-navbar-overlay .menu-mobile > li > a {
          text-transform: uppercase;
          font-weight: bold;
          letter-spacing: 3px;
          padding-bottom: 5px; }
        .mobile-navbar-overlay .menu-mobile > li > .sub-menu > li > a {
          letter-spacing: 2px;
          margin: 5px 0;
          padding: 5px 0;
          text-transform: uppercase;
          font-size: 14px; }
        .mobile-navbar-overlay .menu-mobile > li > .sub-menu > li .sub-menu {
          display: block; }
          .mobile-navbar-overlay .menu-mobile > li > .sub-menu > li .sub-menu a {
            letter-spacing: 2px;
            margin: 5px 0;
            padding: 5px 0;
            font-size: 14px; }
      .mobile-navbar-overlay .menu-mobile > .menu-item-has-children > .sub-menu > li {
        margin-bottom: 20px; }
      .mobile-navbar-overlay .menu-mobile > .menu-item-has-children > a {
        margin-bottom: 15px; }
    .mobile-navbar-overlay .sub-menu {
      margin: 0;
      padding: 0; }
    .mobile-navbar-overlay .close-nav {
      z-index: 30;
      position: absolute;
      left: 50%;
      margin-left: -20px;
      top: 30px;
      padding: 0;
      width: 40px;
      height: 40px;
      cursor: pointer; }
      .mobile-navbar-overlay .close-nav circle {
        opacity: .2; }
  .menu-mobile .menu-item-has-children .sub-menu {
    display: block;
    position: relative;
    left: 0;
    top: auto !important; }
    .menu-mobile .menu-item-has-children .sub-menu a {
      position: relative; }
      .menu-mobile .menu-item-has-children .sub-menu a:after {
        content: "";
        position: absolute;
        width: 100%;
        height: 1px;
        background: #fff;
        left: 0;
        bottom: 0;
        opacity: .5;
        transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64), transform 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
        transform-origin: top; }
      .menu-mobile .menu-item-has-children .sub-menu a:hover:after {
        transform: scale3d(1, 2, 1);
        opacity: 1;
        transform-origin: top; }
  .menu-mobile > .menu-item-has-children > a:after {
    display: none; }
  .home-content .content {
    position: relative; } }

#fixed-nav .menu-item-has-children .sub-menu {
  bottom: initial;
  top: 100%; }

/**
 *
 * Navigation Colors 
 *
 */
.nav-light-text .main-navigation,
.nav-light-text .menu-item-has-children .sub-menu {
  background: #111; }

.nav-light-text .menu-item-has-children .sub-menu {
  border-color: #fff !important; }

.nav-light-text .nav-items a,
.nav-light-text .nav-icons a {
  color: #fff; }
  .nav-light-text .nav-items a:after,
  .nav-light-text .nav-icons a:after {
    background: #fff; }
  .nav-light-text .nav-items a:hover,
  .nav-light-text .nav-icons a:hover {
    border-color: #fff; }

.nav-light-text #reorder-mobile line {
  stroke: #fff; }

.nav-dark-text .desktop-menu .main-navigation,
.nav-dark-text .desktop-menu .menu-item-has-children .sub-menu {
  background: #fff; }

.nav-dark-text .menu-item-has-children .sub-menu {
  border-color: #333 !important; }

.nav-dark-text .nav-items a,
.nav-dark-text .nav-icons a {
  color: #333; }
  .nav-dark-text .nav-items a:after,
  .nav-dark-text .nav-icons a:after {
    background: #bd1e2c !important;
    height: 2px; }
  .nav-dark-text .nav-items a:hover,
  .nav-dark-text .nav-icons a:hover {
    border-color: #bd1e2c !important; }

.nav-dark-text #reorder-mobile line {
  stroke: #333; }

.fixed-nav {
  background: #fff; }
  .fixed-nav > ul > li > a:after {
    background: #111; }
  .fixed-nav a {
    color: inherit; }

.mobile-navbar-helper {
  background: #111; }

.mobile-navbar-overlay .menu-mobile a {
  color: #fff; }

.mobile-navbar-overlay .menu-mobile li > a:after {
  background: #fff; }

.homepage-icon {
  background: #fff; }

/**
 *
 * 4. Home template styles
 *
 */
.homepage .home-top {
  bottom: auto; }

.homepage .home-bottom {
  bottom: 60px;
  top: auto; }

.homepage .home-left {
  left: 30px;
  right: auto; }

.homepage .home-right {
  right: 30px;
  left: auto; }

.homepage .home-bg-slider {
  position: fixed;
  width: 100%;
  left: 0; }
  @media screen and (max-width: 64em) {
    .homepage .home-bg-slider {
      position: relative;
      height: 100vh; } }

.homepage .home-overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  transition: opacity 1.5s;
  opacity: 0; }

.homepage .home-content {
  position: relative;
  z-index: 3;
  height: 100%;
  padding-bottom: 90px; }
  .homepage .home-content .content {
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s 0s, visibility 0s .4s; }
    .homepage .home-content .content.show-content {
      opacity: 1;
      visibility: visible;
      transition: opacity .4s 0s, visibility 0s 0s; }

.homepage .content, .homepage .columns {
  height: 100%; }

.homepage .home-slider-pagination {
  position: absolute;
  z-index: 4;
  width: 100px;
  height: 50px;
  text-align: center; }
  .homepage .home-slider-pagination .slide-number {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    line-height: 50px;
    font-size: 18px;
    font-family: "Lora";
    transition: opacity .4s; }
    .homepage .home-slider-pagination .slide-number span {
      font-style: italic;
      font-size: 18px;
      vertical-align: baseline;
      padding: 0 10px; }
    .homepage .home-slider-pagination .slide-number.slide-active {
      opacity: .8;
      background: transparent !important; }
  .homepage .home-slider-pagination .progress-slide {
    transition: left .4s;
    width: 100%; }
    .homepage .home-slider-pagination .progress-slide .vegas-timer {
      height: 1px; }
  .homepage .home-slider-pagination:before, .homepage .home-slider-pagination .progress-slide {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0px;
    height: 1px; }
  .homepage .home-slider-pagination:before {
    opacity: .3;
    width: 100%; }

.homepage .home-contact-info {
  position: absolute;
  z-index: 4;
  text-align: center; }
  .homepage .home-contact-info span, .homepage .home-contact-info a {
    font-size: 14px; }
  .homepage .home-contact-info > span {
    vertical-align: middle; }
    .homepage .home-contact-info > span svg {
      height: 20px;
      display: inline-block;
      vertical-align: middle;
      transform: rotate(25deg); }
    .homepage .home-contact-info > span:after {
      content: "/";
      color: inherit;
      padding: 0 2px; }
    .homepage .home-contact-info > span:last-of-type:after {
      display: none; }
  .homepage .home-contact-info a {
    color: inherit;
    position: relative; }
  .homepage .home-contact-info a:after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    height: 1px;
    width: 100%;
    border-bottom-style: dotted;
    border-bottom-width: 1px;
    transition: border-color .4s;
    background: transparent; }
    .homepage .home-contact-info a:after:hover {
      border-color: inherit; }

.homepage .home-slider-languages {
  position: absolute;
  z-index: 4;
  height: 50px;
  margin: 0;
  overflow: hidden; }
  .homepage .home-slider-languages li {
    list-style-type: none;
    float: left;
    margin-right: 40px;
    position: relative; }
    .homepage .home-slider-languages li:after {
      content: "";
      position: absolute;
      width: 20px;
      height: 1px;
      top: 50%;
      right: -30px;
      opacity: .5; }
    .homepage .home-slider-languages li:last-of-type {
      margin: none; }
      .homepage .home-slider-languages li:last-of-type:after {
        display: none; }
  .homepage .home-slider-languages a {
    opacity: .5;
    transition: opacity .4s; }
    .homepage .home-slider-languages a:hover {
      opacity: 1; }
    .homepage .home-slider-languages a.active {
      font-style: italic;
      opacity: 1; }

.homepage .home-video-controls {
  position: absolute;
  z-index: 4;
  margin: 0; }
  .homepage .home-video-controls a:after {
    bottom: -5px; }

.homepage .home-slider-text {
  position: absolute;
  top: 50%;
  text-align: center;
  width: 80%;
  height: 50%;
  transform: translate3d(0, -50%, 0);
  perspective: 800px;
  left: 10%;
  z-index: 3; }
  @media screen and (max-width: 64em) {
    .homepage .home-slider-text {
      background: url(/wp-content/uploads/2017/05/ScotchAndSmoke-WhiteText-400x500.png) no-repeat center center;
      background-size: contain; } }

.homepage .slider-text {
  position: absolute;
  text-align: center;
  top: 50%;
  width: 100%;
  z-index: 3;
  transform: translateY(-50%); }
  .homepage .slider-text .btn-rounded {
    position: relative; }
  .homepage .slider-text .slider-text-first {
    opacity: 0;
    transition: opacity .7s 0s, transform .7s 0s;
    transform: translate3d(0, 20px, 0);
    display: inline-block; }
  .homepage .slider-text .slider-text-second {
    opacity: 0;
    transition: opacity .7s 0s, transform .7s 0s;
    transform: translate3d(0, 20px, 0);
    display: inline-block; }
  .homepage .slider-text .slider-text-third {
    opacity: 0;
    transition: opacity .7s 0s, transform .7s 0s;
    transform: translate3d(0, 20px, 0);
    display: inline-block; }
  .homepage .slider-text.slide-active {
    z-index: 4; }
    .homepage .slider-text.slide-active .slider-text-first, .homepage .slider-text.slide-active .slider-text-second, .homepage .slider-text.slide-active .slider-text-third {
      opacity: 1 !important;
      transform: translate3d(0, 0, 0); }
    .homepage .slider-text.slide-active .slider-text-first {
      transition: opacity 1s 0.4s, transform 1s 0.4s; }
    .homepage .slider-text.slide-active .slider-text-second {
      transition: opacity 1s 0.6s, transform 1s 0.6s; }
    .homepage .slider-text.slide-active .slider-text-third {
      transition: opacity 1s 0.8s, transform 1s 0.8s; }
  .homepage .slider-text h1, .homepage .slider-text h2, .homepage .slider-text h3, .homepage .slider-text h4, .homepage .slider-text h5, .homepage .slider-text h6 {
    font-style: italic;
    font-family: "Lora";
    margin: 30px 0; }

.homepage .home-slider-arrows {
  cursor: pointer; }
  .homepage .home-slider-arrows line {
    stroke-width: 1px;
    vector-effect: non-scaling-stroke;
    fill: none; }
  .homepage .home-slider-arrows .arrow-prev {
    position: absolute;
    left: 30px;
    top: 50%;
    margin-top: -25px;
    z-index: 4; }
  .homepage .home-slider-arrows .arrow-next {
    position: absolute;
    right: 30px;
    top: 50%;
    margin-top: -25px;
    z-index: 4; }
  @media screen and (min-width: 90em) {
    .homepage .home-slider-arrows .arrow-prev {
      left: 100px; }
    .homepage .home-slider-arrows .arrow-next {
      right: 100px; } }

.homepage .home-social-media {
  margin: 0;
  position: absolute; }
  .homepage .home-social-media li {
    list-style-type: none; }
  .homepage .home-social-media a {
    padding: 2px 0;
    display: block;
    display: inline-block; }

.homepage .btn-slider-1 {
  position: absolute;
  opacity: 0;
  visibility: hidden;
  transition: opacity .4s 0s, visibility 0s .4s;
  text-align: center;
  cursor: pointer;
  padding: 0 5px; }
  .homepage .btn-slider-1.btn-slider-active {
    opacity: 0.7;
    visibility: visible;
    transition: opacity .4s 0s, visibility 0s 0s; }
    .homepage .btn-slider-1.btn-slider-active:hover {
      opacity: 1; }
  .homepage .btn-slider-1 a {
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 1px; }

.homepage .btn-rounded {
  position: absolute; }

.content-loaded .home-overlay.active-overlay {
  opacity: 1; }

/**
 *
 * Home Slider Centered
 *
 */
.homepage-slider2 .home-overlay.active-overlay {
  opacity: 1; }

.homepage-slider2 .swiper-wrapper {
  display: flex;
  height: 100%; }

.homepage-slider2 .swiper-slide {
  height: 100%;
  -webkit-flex-shrink: 0;
  -ms-flex: 0 0 auto;
  flex-shrink: 0;
  height: 100%;
  overflow: hidden;
  position: relative;
  width: 100vw !important;
  max-width: 60vw !important; }
  .homepage-slider2 .swiper-slide .slide {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat; }
  .homepage-slider2 .swiper-slide:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: .5;
    z-index: 2;
    transition: opacity .4s; }
  .homepage-slider2 .swiper-slide.active:after {
    opacity: 0;
    transition: opacity .4s; }

.homepage-slider2 .home-social-media, .homepage-slider2 .btn-slider-1 {
  z-index: 3; }

/**
 *
 * Home Video
 *
 */
.homepage-video .video-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }

.homepage-video .video-mobile-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center center; }

/**
 *
 * Home Mobile
 *
 */
@media screen and (max-width: 64em) {
  .homepage .home-slider-arrows .arrow-prev, .homepage .home-slider-arrows .arrow-next {
    top: auto;
    bottom: 90px; }
  .homepage .home-content .content {
    padding-bottom: 50px; } }

@media screen and (max-width: 64em) {
  .homepage-slider2 .home-left {
    left: 30px; }
  .homepage-slider2 .home-right {
    right: 30px; }
  .homepage-slider2 .home-content .content {
    position: static; } }

/**
 *
 * Home Colors 
 *
 */
.homepage .home-content {
  color: #fff; }

.homepage .home-slider-pagination .slide-number {
  color: #fff; }

.homepage .home-slider-pagination:before {
  background: #fff; }

.homepage .home-slider-arrows line {
  stroke: #fff; }

.homepage .home-slider-languages li:after {
  background: #fff; }

.homepage .home-slider-languages a {
  color: #fff; }

.homepage .home-social-media a {
  color: #fff; }
  .homepage .home-social-media a:after {
    background: #fff; }

.homepage .home-contact-info a {
  color: #fff; }
  .homepage .home-contact-info a:after {
    border-color: #fff; }

.homepage .btn-slider-1 a {
  color: #fff; }

.homepage .home-video-controls a {
  color: #fff; }
  .homepage .home-video-controls a:after {
    background: #fff; }

.homepage-slider1 .home-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.7) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#99000000', endColorstr='#99000000',GradientType=0 ); }

.homepage-slider2 .home-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.5) 20%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.5) 80%, rgba(0, 0, 0, 0.7) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#99000000', endColorstr='#99000000',GradientType=0 ); }

.homepage-slider2 .home-slider-pagination .progress-slide {
  background: #fff; }

.homepage-video .home-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.5) 20%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.5) 80%, rgba(0, 0, 0, 0.7) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#99000000', endColorstr='#99000000',GradientType=0 ); }

.page-wrapper .page-wrapper {
  margin-top: 100vh;
  padding-top: 0 !important;
  z-index: 5; }
  @media screen and (max-width: 64em) {
    .page-wrapper .page-wrapper {
      margin-top: 0; } }

.nav-transparent .page-wrapper .page-wrapper {
  top: 0;
  background-color: #181818 !important;
  color: #fff; }

.nav-home.nav-top .main-navigation, .nav-home.nav-center-ver .main-navigation {
  position: fixed; }

a#scrolldown {
  display: inline-block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  text-decoration: none;
  border: 1px solid #fff;
  font-size: 20px !important; }

a#scrolldown:after {
  display: none; }

a#scrolldown .fa {
  width: 40px;
  padding-left: 2px;
  text-align: center; }

/**
 *
 * 5. Blog template styles
 *
 */
/**
 *
 * Blog
 *
 */
.post-content p:last-of-type {
  margin-bottom: 0; }

.post-content p a {
  position: relative;
  border-bottom: none !important; }
  .post-content p a:after {
    content: "";
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
    opacity: .5;
    transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
    border-bottom-style: dotted;
    border-bottom-width: 1px;
    border-color: inherit;
    background: transparent !important;
    z-index: -1; }
  .post-content p a:hover:after {
    opacity: 1; }

.post-meta ul {
  margin: 0; }

.post-meta li {
  list-style-type: none;
  display: inline-block;
  font-size: 14px; }
  .post-meta li:after {
    content: "/";
    position: relative;
    margin-left: 3px;
    font-size: 12px; }
  .post-meta li:last-of-type:after, .post-meta li:first-of-type:after {
    display: none; }
  .post-meta li a {
    font-size: 14px;
    display: inline-block;
    padding-bottom: 3px; }

.post-date {
  margin-bottom: 15px; }
  .post-date a {
    font-size: 10px;
    letter-spacing: 3px;
    text-transform: uppercase;
    transition: color .4s; }

.blog a {
  color: inherit; }

@media screen and (max-width: 39.9375em) {
  .blog .blog-filter-posts {
    margin-bottom: 30px; }
  .blog .post-image, .blog .post-header {
    margin-bottom: 30px; }
  .blog .post-header h4 {
    margin-bottom: 5px; }
  .blog .blog-load-more {
    padding-top: 30px; } }

@media screen and (min-width: 40em) and (max-width: 64em) {
  .blog .blog-filter-posts {
    margin-bottom: 30px; }
  .blog .post-image {
    width: 50%;
    float: left;
    padding-right: 15px; }
  .blog .post-header {
    margin-bottom: 30px; }
  .blog .blog-load-more {
    padding-top: 30px; } }

@media screen and (min-width: 64.0625em) {
  .blog .blog-load-more {
    padding: 60px 60px 0 60px; }
  .blog .post-header h4 {
    margin-bottom: 15px; }
  .blog .blog-filter-posts {
    height: 60px;
    line-height: 60px; }
    .blog .blog-filter-posts .blog-input-wrapper {
      height: 60px; }
    .blog .blog-filter-posts .blog-search {
      float: left;
      width: auto;
      margin: 0;
      padding-left: 30px; }
    .blog .blog-filter-posts .blog-filters-views {
      float: right; }
    .blog .blog-filter-posts .blog-filters li {
      padding-bottom: 0; } }

.blog .post-header h4 a {
  background-size: 100% 0;
  background-position: 0 100%;
  transition: background .5s !important;
  background-repeat: no-repeat; }
  .blog .post-header h4 a:hover {
    background-size: 100% 100%; }

.blog .footer {
  margin-top: 0; }

.blog .blog-load-more-content {
  display: none; }

/**
 *
 * Blog classic
 *
 */
.blog-classic .post-image {
  margin-top: 30px; }

.blog-classic .post-content {
  margin-bottom: 30px; }

.blog-classic .post-item.sticky {
  position: relative; }
  .blog-classic .post-item.sticky:after {
    content: "";
    background: #f5f5f5;
    position: absolute;
    content: "";
    top: 0;
    height: 100%;
    left: -30px;
    right: -30px;
    z-index: -1; }

/**
 *
 * Blog grid
 *
 */
.blog-grid .blog-content-rows {
  display: none; }

.blog-grid .blog-load-more {
  clear: both;
  padding-top: 0; }

.blog-grid .blog-content > div {
  overflow: hidden;
  padding: 60px 0; }

.blog-grid .post-date, .blog-grid .post-meta, .blog-grid .post-header {
  text-align: center;
  margin-left: 15px;
  margin-right: 15px; }

.blog-grid .post-header {
  margin-bottom: 0; }
  .blog-grid .post-header h4 {
    margin-bottom: 15px; }

@media screen and (max-width: 39.9375em) {
  .blog-grid .post-item {
    width: 100%;
    margin-bottom: 60px; } }

@media screen and (min-width: 40em) and (max-width: 64em) {
  .blog-grid .post-item {
    width: -moz-calc(100% / 2);
    width: -webkit-calc(100% / 2);
    width: calc(100% / 2);
    padding: 0px 30px 60px;
    float: left; }
    .blog-grid .post-item:nth-child(2n + 1) {
      clear: both; }
  .blog-grid .post-image {
    display: inline-block;
    padding-bottom: 100%;
    position: relative;
    width: 100%;
    vertical-align: middle;
    margin-bottom: 30px; }
    .blog-grid .post-image a {
      cursor: pointer;
      left: 50%;
      position: absolute;
      top: 50%;
      transform: translate3d(-50%, -50%, 0); }
      .blog-grid .post-image a.img-high {
        height: 100%;
        width: 100%;
        text-align: center; }
        .blog-grid .post-image a.img-high img {
          height: 100%;
          width: auto; }
      .blog-grid .post-image a.img-wide, .blog-grid .post-image a.img-wide img {
        width: 100%;
        height: auto; }
      .blog-grid .post-image a span {
        display: inline-block;
        height: 100%; } }

@media screen and (min-width: 64.0625em) {
  .blog-grid .post-item {
    width: -moz-calc(100% / 3);
    width: -webkit-calc(100% / 3);
    width: calc(100% / 3);
    padding: 0px 30px 120px;
    float: left; }
    .blog-grid .post-item:nth-child(3n + 1) {
      clear: both; }
  .blog-grid .post-image {
    display: inline-block;
    padding-bottom: 100%;
    position: relative;
    width: 100%;
    vertical-align: middle;
    margin-bottom: 30px; }
    .blog-grid .post-image a {
      cursor: pointer;
      left: 50%;
      position: absolute;
      top: 50%;
      transform: translate3d(-50%, -50%, 0);
      overflow: hidden; }
      .blog-grid .post-image a.img-high {
        height: 100%;
        width: 100%;
        text-align: center; }
        .blog-grid .post-image a.img-high img {
          height: 100%;
          width: auto; }
      .blog-grid .post-image a.img-wide, .blog-grid .post-image a.img-wide img {
        width: 100%;
        height: auto; }
      .blog-grid .post-image a span {
        display: inline-block;
        height: 100%;
        position: relative; }
        .blog-grid .post-image a span:before {
          content: "";
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          transform: translateY(30px);
          opacity: 0;
          transition: opacity .4s, transform .4s;
          z-index: 1; }
      .blog-grid .post-image a:hover span:before {
        opacity: 1;
        transform: translateY(0); } }

/**
 *
 * Blog rows
 *
 */
.blog-rows {
  padding-bottom: 60px; }
  .blog-rows .blog-content-grid {
    display: none; }
  @media screen and (max-width: 39.9375em) {
    .blog-rows .post-item {
      margin-bottom: 30px; }
    .blog-rows .post-content {
      margin-bottom: 15px; }
    .blog-rows .post-btn-more {
      margin-bottom: 1px; } }
  @media screen and (min-width: 40em) and (max-width: 64em) {
    .blog-rows .post-item {
      overflow: hidden;
      padding-bottom: 30px;
      margin-bottom: 30px; }
    .blog-rows .post-header, .blog-rows .post-content, .blog-rows .post-btn-more {
      margin-left: 50%;
      width: 50%;
      padding-left: 15px; }
    .blog-rows .post-content {
      margin-bottom: 15px; } }
  @media screen and (min-width: 64.0625em) {
    .blog-rows .post-item {
      display: table;
      width: 100%;
      table-layout: fixed; }
    .blog-rows .post-image {
      display: table-cell;
      text-align: right;
      vertical-align: middle;
      padding: 60px 0px 60px 30px; }
    .blog-rows .post-header, .blog-rows .post-content, .blog-rows .post-btn-more {
      display: table-cell;
      vertical-align: middle;
      padding: 60px 30px; } }
  .blog-rows .post-item {
    border-bottom-width: 1px;
    border-bottom-style: solid; }
  .blog-rows .post-btn-more {
    width: 200px !important; }
    .blog-rows .post-btn-more a {
      padding-bottom: 5px;
      text-transform: uppercase;
      letter-spacing: 1px;
      font-size: 14px; }
  .blog-rows .post-image span {
    display: block;
    height: 100%;
    position: relative;
    overflow: hidden; }
    .blog-rows .post-image span:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      transform: translateY(30px);
      opacity: 0;
      transition: opacity .4s, transform .4s;
      z-index: 1; }
  .blog-rows .post-image a:hover span:before {
    opacity: 1;
    transform: translateY(0); }

/**
 *
 * Blog filters
 *
 */
.blog-filter-posts {
  width: 100%;
  position: relative; }
  .blog-filter-posts .blog-input-wrapper {
    position: relative; }
  .blog-filter-posts .blog-search, .blog-filter-posts .blog-filters-views {
    float: none; }
  .blog-filter-posts .blog-search {
    margin-bottom: 15px; }
  .blog-filter-posts .blog-filters-views .blog-filters, .blog-filter-posts .blog-filters-views .post-views {
    margin: 0;
    display: inline-block;
    height: 100%; }
  .blog-filter-posts .blog-filters-views li {
    list-style-type: none;
    display: inline-block;
    margin: 0 10px;
    padding-bottom: 15px;
    height: 60px;
    position: relative; }
    .blog-filter-posts .blog-filters-views li:after {
      content: "";
      position: absolute;
      bottom: 1px;
      left: 0;
      width: 100%;
      height: 1px;
      opacity: 0;
      transition: opacity .4s, transform .4s;
      background: #111; }
    .blog-filter-posts .blog-filters-views li:hover:after {
      opacity: 1; }
    .blog-filter-posts .blog-filters-views li.active-filter:after {
      opacity: 1;
      transform: scale3d(1, 2, 1); }
    .blog-filter-posts .blog-filters-views li a {
      font-size: 14px;
      display: block;
      line-height: 60px; }
  .blog-filter-posts:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 15px;
    right: 15px;
    height: 1px;
    z-index: -1; }
  .blog-filter-posts .search-icon {
    position: relative;
    width: 30px;
    display: inline-block;
    height: 100%;
    text-align: center;
    margin-right: 15px; }
    .blog-filter-posts .search-icon .search-icon-close {
      opacity: 0;
      visibility: hidden;
      transition: opacity .4s 0s, visibility 0s .4s;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }
    .blog-filter-posts .search-icon > i {
      opacity: 1;
      visibility: visible;
      transition: opacity .4s 0s, visibility 0s 0s;
      display: inline-block; }
  .blog-filter-posts .search-input {
    display: inline-block;
    height: 60px;
    width: 0;
    transition: width .4s 0s, visibility 0s .4s;
    padding: 0;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    visibility: hidden;
    position: relative; }
    .blog-filter-posts .search-input input {
      position: relative;
      border: none;
      background: transparent;
      box-shadow: none;
      margin-bottom: 0;
      height: 60px;
      display: inline-block;
      padding-right: 30px; }
    .blog-filter-posts .search-input button {
      position: absolute;
      right: 0;
      height: 60px;
      width: 30px;
      bottom: 0;
      text-align: center;
      opacity: 0;
      transition: opacity .4s;
      cursor: pointer; }
  .blog-filter-posts .blog-search {
    width: 100%; }
    .blog-filter-posts .blog-search.active-search .search-icon > svg {
      opacity: 0;
      visibility: hidden;
      transition: opacity .4s 0s, visibility 0s .4s; }
    .blog-filter-posts .blog-search.active-search .search-icon .search-icon-close {
      opacity: .5;
      visibility: visible;
      transition: opacity .4s 0s, visibility 0s 0s; }
      .blog-filter-posts .blog-search.active-search .search-icon .search-icon-close:hover {
        opacity: 1; }
    .blog-filter-posts .blog-search.active-search .search-input {
      width: 200px;
      visibility: visible;
      transition: width .4s 0s, visibility 0s 0s; }
      .blog-filter-posts .blog-search.active-search .search-input button {
        opacity: .5; }
        .blog-filter-posts .blog-search.active-search .search-input button:hover {
          opacity: 1; }

/**
 *
 * Single Post
 *
 */
.single-post .post-content p {
  margin-bottom: 30px;
  font-size: 17px; }

.single-post a {
  color: inherit; }

.single-post .footer {
  margin-top: 90px; }

.single-post-nav {
  width: 100%;
  text-align: center;
  display: table;
  margin-bottom: 60px; }
  .single-post-nav a {
    display: inline-block; }
  .single-post-nav .arrow-prev, .single-post-nav .arrow-next, .single-post-nav .icon-close {
    display: table-cell;
    vertical-align: middle;
    cursor: default; }
  .single-post-nav .icon-close a {
    padding: 15px; }

@media screen and (max-width: 64em) {
  .single-post-header {
    margin-bottom: 30px; }
    .single-post-header .post-meta {
      margin-bottom: 30px; }
    .single-post-header .post-date {
      margin-bottom: 15px; }
    .single-post-header h3 {
      margin-bottom: 15px; } }

@media screen and (min-width: 64.0625em) {
  .single-post-header {
    display: table;
    width: 100%;
    table-layout: fixed;
    margin-bottom: 60px; }
    .single-post-header .post-header {
      padding-right: 120px; }
    .single-post-header .post-header, .single-post-header .post-image {
      display: table-cell;
      vertical-align: middle;
      text-align: left; }
    .single-post-header .post-date {
      margin-bottom: 30px; }
    .single-post-header h3 {
      margin-bottom: 30px; } }

.post-tags {
  margin: 30px 0 60px; }
  .post-tags li {
    list-style-type: none;
    display: inline-block;
    font-size: 12px; }
    .post-tags li:after {
      content: "/";
      position: relative;
      margin-left: 3px;
      font-size: 10px; }
    .post-tags li:last-of-type:after, .post-tags li:first-of-type:after {
      display: none; }
    .post-tags li a {
      font-size: 10px;
      text-transform: uppercase;
      display: inline-block;
      padding-bottom: 3px; }

/**
 *
 * Comments
 *
 */
.post-comments {
  margin-top: -1px;
  padding-top: 60px;
  border-top: 1px solid #ddd;
  overflow: hidden; }
  .post-comments > h6 {
    margin-bottom: 30px; }
  .post-comments > .comment-list {
    margin: 0; }
    .post-comments > .comment-list li {
      list-style-type: none; }
    @media screen and (max-width: 64em) {
      .post-comments > .comment-list .comment-list {
        margin-left: 0; } }
    @media screen and (min-width: 64.0625em) {
      .post-comments > .comment-list .comment-list {
        margin-left: 80px; } }
  .post-comments .comment-list .comment-body ul li {
    list-style-type: disc; }
  .post-comments .comment-list .comment-body ol li {
    list-style-type: decimal; }
  .post-comments .comment-list {
    overflow: hidden;
    clear: both; }
    .post-comments .comment-list > li:last-of-type {
      margin-bottom: 0 !important; }
  .post-comments .recentcomments {
    margin-bottom: 30px;
    margin-top: 30px;
    overflow: hidden; }
  .post-comments .comment-author-avatar {
    float: left;
    width: 50px; }
  .post-comments .comment-header {
    margin-bottom: 15px; }
    .post-comments .comment-header .comment-author-link {
      font-weight: bold;
      margin-bottom: 3px; }
    .post-comments .comment-header .comment-date {
      font-size: 10px;
      letter-spacing: 3px;
      text-transform: uppercase; }
  .post-comments .comment-header, .post-comments .comment-body {
    margin-left: 80px; }
  .post-comments .comment-reply-link {
    text-transform: uppercase;
    float: right;
    font-size: 12px;
    letter-spacing: 1px; }

#recentcomments {
  margin-bottom: 90px; }

.comment-form fieldset:after {
  left: 0;
  right: 0; }

.btn-comment {
  margin: 0 auto;
  display: block;
  transition: color .4s; }
  .btn-comment .button-border {
    background: #111; }
  .btn-comment.button-success {
    color: #2ec556 !important; }
    .btn-comment.button-success .button-border {
      background: #2ec556; }

/**
 *
 * Blog Colors
 *
 */
.blog .post-item {
  border-color: #ddd; }

.blog-grid .post-image a span:before, .blog-rows .post-image a span:before {
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.3) 30%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.8) 80%, black 100%); }

.post-header h4 a {
  background-image: linear-gradient(to bottom, transparent 0%, transparent 95%, black 100%); }

.blog .blog-filter-posts:after {
  background: #ddd; }

.blog .blog-filter-posts .blog-filter-views li:after {
  background: #111; }

.blog .post-meta, .single-post .post-meta {
  color: #8a8a8a; }

.blog .post-content {
  color: #696969; }

.single-post .post-content {
  color: #696969; }

.blog .link-hover:after {
  background: #333; }

.blog .blog-filter-posts .search-input {
  border-color: #111; }

.blog .post-date a, .single-post .post-date a {
  color: #8a8a8a; }

.post-date a:hover {
  color: #333; }

.single-post .link-hover:after {
  background: #333; }

/**
 *
 * 6. Food menu templates styles
 *
 */
/**
 *
 * Food menu
 *
 */
@media screen and (max-width: 39.9375em) {
  .food-menu .food-menu-filters-list {
    margin-bottom: 30px; }
  .food-menu .grid-sizer {
    width: 100%; }
  .food-menu .food-menu-featured-img {
    margin-bottom: 30px; }
  .food-menu .food-menu-cat-img {
    padding: 0 30px;
    transform: none !important; }
  .food-menu .food-menu-items {
    padding: 0 30px; }
  .food-menu .food-menu-category {
    margin-bottom: 60px; } }

@media screen and (min-width: 40em) and (max-width: 64em) {
  .food-menu .food-menu-filters-list {
    margin-bottom: 30px; }
  .food-menu .food-menu-featured-img {
    margin-bottom: 30px; }
  .food-menu .grid-sizer {
    width: 100%; }
  .food-menu .food-menu-cat-img {
    padding: 0 30px;
    transform: none !important; }
  .food-menu .food-menu-items {
    padding: 0 30px; }
  .food-menu .food-menu-category {
    margin-bottom: 60px; } }

@media screen and (min-width: 64.0625em) {
  .food-menu .grid-sizer {
    width: 50%; }
  .food-menu .food-menu-filters-list {
    height: 60px;
    line-height: 60px; }
    .food-menu .food-menu-filters-list li {
      padding-bottom: 0; }
  .food-menu.food-menu-img .food-menu-cat-img {
    width: 33.332%;
    padding: 0 30px; }
  .food-menu.food-menu-img .food-menu-items {
    width: 66.666%;
    padding: 0 30px; }
  .food-menu.food-menu-img.all-img-right .food-menu-cat-img {
    float: right;
    padding-left: 60px; }
  .food-menu.food-menu-img.all-img-right .food-menu-items {
    float: left;
    padding-right: 60px; }
  .food-menu.food-menu-img.all-img-left .food-menu-cat-img {
    float: left;
    padding-right: 60px; }
  .food-menu.food-menu-img.all-img-left .food-menu-items {
    float: right;
    padding-left: 60px; }
  .food-menu.food-menu-img.odd-img-left .food-menu-category .food-menu-cat-img {
    float: left;
    padding-right: 60px; }
  .food-menu.food-menu-img.odd-img-left .food-menu-category .food-menu-items {
    float: right;
    padding-left: 60px; }
  .food-menu.food-menu-img.odd-img-left .food-menu-category:nth-child(2n-1) .food-menu-cat-img {
    float: right;
    padding-left: 60px;
    padding-right: 30px; }
  .food-menu.food-menu-img.odd-img-left .food-menu-category:nth-child(2n-1) .food-menu-items {
    float: left;
    padding-right: 60px;
    padding-left: 30px; }
  .food-menu.food-menu-img.odd-img-right .food-menu-category .food-menu-cat-img {
    float: right;
    padding-left: 60px; }
  .food-menu.food-menu-img.odd-img-right .food-menu-category .food-menu-items {
    float: left;
    padding-right: 60px; }
  .food-menu.food-menu-img.odd-img-right .food-menu-category:nth-child(2n-1) .food-menu-cat-img {
    float: left;
    padding-right: 60px;
    padding-left: 30px; }
  .food-menu.food-menu-img.odd-img-right .food-menu-category:nth-child(2n-1) .food-menu-items {
    float: right;
    padding-left: 60px;
    padding-right: 30px; }
  .food-menu.food-menu-img.cat-above-img .food-menu-items {
    margin-top: 45px; }
  .food-menu.food-menu-img.cat-title-above-img .food-menu-cat-header h4 {
    text-align: center; }
  .food-menu.food-menu-img.cat-title-above-img .food-menu-items {
    margin-top: 60px; }
  .food-menu.food-menu-img .food-menu-category {
    margin-bottom: 90px; } }

.food-menu.food-menu-img.cat-above-items .food-menu-cat-img .food-menu-cat-header {
  display: none; }

.food-menu.food-menu-img.cat-above-img .food-menu-items .food-menu-cat-header {
  display: none; }

.food-menu.food-menu-img.cat-title-above-img .food-menu-cat-img .food-menu-subtitle {
  display: none; }

.food-menu.food-menu-img.cat-title-above-img .food-menu-items .food-menu-cat-header h4 {
  display: none; }

.food-menu.food-menu-standard {
  overflow: hidden; }
  .food-menu.food-menu-standard .food-menu-cat-img {
    display: none; }
  .food-menu.food-menu-standard .food-menu-cat-header h4 {
    text-align: left; }
  .food-menu.food-menu-standard .food-menu-category {
    padding: 0 30px;
    margin-bottom: 60px; }
    @media screen and (max-width: 64em) {
      .food-menu.food-menu-standard .food-menu-category {
        width: 100%; } }
    @media screen and (min-width: 64.0625em) {
      .food-menu.food-menu-standard .food-menu-category {
        width: 50%; } }
  .food-menu.food-menu-standard .food-menu-icon {
    display: none !important; }

.food-menu .footer {
  margin-top: 60px; }

.food-menu-category {
  cursor: default; }
  .food-menu-category::before, .food-menu-category::after {
    content: ' ';
    display: table; }
  .food-menu-category::after {
    clear: both; }
  .food-menu-category:last-of-type {
    margin-bottom: 0; }

.food-menu-items .food-menu-cat-header {
  margin-top: 0;
  margin-bottom: 45px; }
  .food-menu-items .food-menu-cat-header h4 {
    margin-bottom: 15px; }

.food-menu-cat-img {
  position: relative; }
  .food-menu-cat-img.stuck {
    position: fixed;
    top: 0; }
  .food-menu-cat-img .food-menu-cat-header {
    margin-top: 0;
    margin-bottom: 30px; }
    .food-menu-cat-img .food-menu-cat-header h4 {
      margin-bottom: 15px; }

.food-menu-featured-img {
  position: relative; }
  .food-menu-featured-img img {
    opacity: 1;
    transition: opacity .4s; }
  .food-menu-featured-img img:first-of-type {
    opacity: 1; }
  .food-menu-featured-img img:not(:first-of-type) {
    position: absolute;
    top: 0;
    left: 0;
    max-height: 100%;
    opacity: 0;
    max-width: 100%; }
  .food-menu-featured-img .show-img:not(:first-of-type) {
    opacity: 1; }

.food-menu-item {
  margin-bottom: 30px;
  position: relative;
  cursor: default; }
  .food-menu-item .gallery-icon {
    position: absolute;
    top: 2px;
    left: -25px;
    width: 20px;
    opacity: .2; }
    .food-menu-item .gallery-icon svg {
      width: 16px; }

.food-menu-title {
  font-size: 18px;
  display: inline-block;
  position: relative;
  padding-bottom: 5px; }
  .food-menu-title:after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    z-index: 1; }

.food-menu-item-header {
  margin-bottom: 5px;
  display: inline-block;
  position: relative; }
  .food-menu-item-header:not(.food-menu-no-separator):after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px; }

.food-menu-price {
  margin-left: 30px;
  position: relative;
  float: right;
  line-height: 1.8em;
  padding-bottom: 5px; }
  .food-menu-price:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    z-index: 1; }

.food-menu-desc {
  font-style: italic;
  font-family: "Lora";
  font-style: italic;
  font-size: 14px; }

.food-menu-filters {
  margin-bottom: 60px; }

.food-menu-filters-list {
  margin: 0;
  position: relative;
  padding: 0 15px; }
  .food-menu-filters-list.filters-right {
    text-align: right; }
  .food-menu-filters-list.filters-center {
    text-align: center; }
  .food-menu-filters-list.filters-left {
    text-align: left; }
  .food-menu-filters-list li {
    list-style-type: none;
    display: inline-block;
    margin: 0 10px;
    padding-bottom: 15px;
    height: 60px;
    position: relative; }
    .food-menu-filters-list li:after {
      content: "";
      position: absolute;
      bottom: 1px;
      left: 0;
      width: 100%;
      height: 1px;
      opacity: 0;
      transition: opacity .4s, transform .4s; }
    .food-menu-filters-list li:hover:after {
      opacity: 1; }
    .food-menu-filters-list li.active-filter:after {
      opacity: 1;
      transform: scale3d(1, 2, 1); }
    .food-menu-filters-list li a {
      font-size: 14px;
      display: block;
      line-height: 60px; }
  .food-menu-filters-list:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    z-index: -1; }

.food-menu-icon {
  position: absolute;
  top: 10px;
  right: 100%;
  margin-right: 10px;
  height: 6px;
  width: 6px;
  background: transparent;
  border: 1px solid #111;
  opacity: 0.5;
  border-radius: 50%;
  transition: background-color 0.4s; }

.food-menu-image-active .food-menu-icon {
  background: #111; }

/**
 *
 * Colors
 *
 */
.food-menu-filters-list li:after {
  background: #111; }

.food-menu-filters-list:after {
  background: #ddd; }

.food-menu-item-header:after {
  background: #ddd; }

.food-menu-item-header.food-menu-border-price .food-menu-price:after {
  background: #ddd; }

.food-menu-item-header.food-menu-border-title .food-menu-title:after {
  background: #ddd; }

.food-menu-item-header.food-menu-featured:after {
  background: #f10a4a; }

.food-menu-item-header.food-menu-featured-price .food-menu-price:after {
  background: #f10a4a; }

.food-menu-item-header.food-menu-featured-title .food-menu-title:after {
  background: #f10a4a; }

.food-menu-desc {
  color: #8a8a8a; }

/**
 *
 * 7. Gallery templates styles
 *
 */
/**
 *
 * Gallery
 *
 */
@media screen and (max-width: 39.9375em) {
  .gallery .gallery-filters-list {
    margin-bottom: 30px; }
  .gallery .marco-gallery-item {
    width: 100%; } }

@media screen and (min-width: 40em) and (max-width: 64em) {
  .gallery .gallery-filters-list {
    margin-bottom: 30px; }
  .gallery .marco-gallery-item {
    width: 50%; } }

@media screen and (min-width: 64.0625em) {
  .gallery .gallery-filters-list {
    height: 60px;
    line-height: 60px; }
    .gallery .gallery-filters-list li {
      padding-bottom: 0; }
  .gallery .gallery-4-col .marco-gallery-item {
    width: -moz-calc(100% / 4);
    width: -webkit-calc(100% / 4);
    width: calc(100% / 4); }
  .gallery .gallery-3-col .marco-gallery-item {
    width: -moz-calc(100% / 3);
    width: -webkit-calc(100% / 3);
    width: calc(100% / 3); }
  .gallery .gallery-2-col .marco-gallery-item {
    width: 50%; }
  .gallery .gallery-load-more {
    padding: 60px 60px 0 60px; } }

.gallery .gallery-load-more {
  clear: both;
  margin: 15px 0;
  padding-top: 45px; }

.gallery .footer {
  margin-top: 60px; }

.gallery .gallery-load-more-content {
  display: none; }

.gallery-grid {
  padding-bottom: 60px; }

.gallery-filters {
  margin-bottom: 60px; }

.gallery-filters-list {
  margin: 0;
  position: relative;
  padding: 0 15px; }
  .gallery-filters-list.filters-right {
    text-align: right; }
  .gallery-filters-list.filters-center {
    text-align: center; }
  .gallery-filters-list.filters-left {
    text-align: left; }
  .gallery-filters-list li {
    list-style-type: none;
    display: inline-block;
    margin: 0 10px;
    padding-bottom: 15px;
    height: 60px;
    position: relative; }
    .gallery-filters-list li:after {
      content: "";
      position: absolute;
      bottom: 1px;
      left: 0;
      width: 100%;
      height: 1px;
      background: #111;
      opacity: 0;
      transition: opacity .4s, transform .4s; }
    .gallery-filters-list li:hover:after {
      opacity: 1; }
    .gallery-filters-list li.active-filter:after {
      opacity: 1;
      transform: scale3d(1, 2, 1); }
    .gallery-filters-list li a {
      font-size: 14px;
      display: block;
      line-height: 60px; }
  .gallery-filters-list:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    z-index: -1; }

.gallery-container {
  overflow: hidden;
  padding: 0 15px; }

.marco-gallery-item {
  float: left;
  position: relative;
  display: block;
  margin: 0;
  padding: 0; }
  .marco-gallery-item:hover .marco-gallery-item-overlay {
    opacity: 1;
    transform: translateY(0); }
  .marco-gallery-item:hover .marco-gallery-item-title {
    opacity: 1; }
  .marco-gallery-item .marco-gallery-item-title {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 10px 15px;
    opacity: 0;
    transition: opacity .4s 0s;
    z-index: 2; }
    .marco-gallery-item .marco-gallery-item-title h6 {
      letter-spacing: 1px; }
    .marco-gallery-item .marco-gallery-item-title *:last-child {
      margin-bottom: 0; }
  .marco-gallery-item .marco-gallery-item-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: translateY(30px);
    opacity: 0;
    transition: opacity .4s, transform .4s;
    z-index: 1; }
  .marco-gallery-item .marco-gallery-item-img {
    position: relative;
    display: block;
    overflow: hidden; }

.marco-gallery-item-info {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2; }

.marco-gallery-item .gallery-icon {
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 2; }
  .marco-gallery-item .gallery-icon circle, .marco-gallery-item .gallery-icon rect {
    stroke: #fff; }
  .marco-gallery-item .gallery-icon path {
    fill: #fff; }
  .marco-gallery-item .gallery-icon .icon {
    margin-left: 5px; }

.gallery.hide-icon .gallery-icon {
  display: none; }

/**
 *
 * Single gallery
 *
 */
.single-gallery {
  padding-bottom: 60px; }
  .single-gallery .slide {
    text-align: center;
    padding: 0 30px; }
  .single-gallery .swiper-arrows {
    cursor: pointer; }
    .single-gallery .swiper-arrows line {
      stroke-width: 1px;
      vector-effect: non-scaling-stroke;
      fill: none; }
    .single-gallery .swiper-arrows .arrow-prev {
      position: absolute;
      left: 15px;
      top: 50%;
      margin-top: -25px;
      z-index: 4; }
    .single-gallery .swiper-arrows .arrow-next {
      position: absolute;
      right: 15px;
      top: 50%;
      margin-top: -25px;
      z-index: 4; }
    @media screen and (min-width: 64.0625em) {
      .single-gallery .swiper-arrows .arrow-prev {
        left: 15px; }
      .single-gallery .swiper-arrows .arrow-next {
        right: 15px; } }
    @media screen and (min-width: 75em) {
      .single-gallery .swiper-arrows .arrow-prev {
        left: 0px; }
      .single-gallery .swiper-arrows .arrow-next {
        right: 0px; } }
    @media screen and (min-width: 90em) {
      .single-gallery .swiper-arrows .arrow-prev {
        right: 100%;
        left: auto; }
      .single-gallery .swiper-arrows .arrow-next {
        left: 100%;
        right: auto; } }
  .single-gallery .page-header {
    padding: 60px 30px 0 30px; }
  .single-gallery .single-gallery-content {
    padding: 60px 30px 0 30px; }
  .single-gallery .footer {
    margin-top: 90px; }
  .single-gallery .gallery-video-wrapper {
    position: relative;
    display: inline-block; }
    .single-gallery .gallery-video-wrapper .gallery-video-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: #111;
      opacity: 0.5; }
    .single-gallery .gallery-video-wrapper .gallery-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -25px;
      margin-left: -25px;
      right: auto;
      opacity: 1; }
      .single-gallery .gallery-video-wrapper .gallery-icon circle, .single-gallery .gallery-video-wrapper .gallery-icon rect {
        stroke: #fff; }
      .single-gallery .gallery-video-wrapper .gallery-icon path {
        fill: #fff; }

/**
 *
 * Colors
 *
 */
.gallery .gallery-filters-list:after {
  background: #ddd; }

.gallery .marco-gallery-item-overlay {
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.3) 60%, rgba(0, 0, 0, 0.8) 80%, black 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#99000000', endColorstr='#99000000',GradientType=0); }

.gallery .marco-gallery-item-title {
  color: #fff; }

.gallery-load-more .link-hover:after {
  background: #333; }

.single-gallery .swiper-arrows line {
  stroke: #111; }

div.pp_default .pp_top .pp_left, div.pp_default .pp_top .pp_right, div.pp_default .pp_bottom .pp_left, div.pp_default .pp_bottom .pp_right {
  background-image: url(../img/pp_sprite.png) !important; }

div.pp_default .pp_top .pp_middle, div.pp_default .pp_bottom .pp_middle {
  background-image: url(../img/pp_sprite_x.png) !important; }

div.pp_default .pp_content_container .pp_left {
  background-image: url(../img/pp_sprite_y.png) !important; }
  div.pp_default .pp_content_container .pp_left .pp_right {
    background-image: url(../img/pp_sprite_y.png) !important; }
    div.pp_default .pp_content_container .pp_left .pp_right .pp_content {
      background-color: #333; }

div.pp_default .pp_expand {
  display: none !important; }

div.pp_default .pp_nav {
  margin: 0; }
  div.pp_default .pp_nav .pp_play {
    display: none !important; }
  div.pp_default .pp_nav .currentTextHolder {
    display: none !important; }

div.pp_default .pp_description, div.pp_default .pp_gallery {
  display: none !important; }

.media-post-link h4 {
  line-height: 110%;
  margin-bottom: 10px; }
  .media-post-link h4 small {
    color: #888;
    font-size: 60%; }

.media-post-link a {
  color: #bd1e2c !important;
  font-size: 80%; }
  .media-post-link a:after {
    display: none; }

/**
 *
 * 8. Restaurant reservation styles
 *
 */
@media screen and (max-width: 64em) {
  .reservation {
    padding-top: 90px; } }

@media screen and (min-width: 64.0625em) {
  .reservation .reservation-container {
    display: table;
    width: 100%; }
  .reservation .reservation-form {
    width: 66.666%;
    display: table-cell;
    vertical-align: middle; }
  .reservation .reservation-content {
    width: 33.3332%;
    display: table-cell;
    vertical-align: middle; } }

.reservation .footer {
  margin-top: 90px; }

.reservation-form .btn-reservation {
  margin: 0 auto;
  display: block;
  transition: color .4s; }
  @media screen and (max-width: 64em) {
    .reservation-form .btn-reservation {
      margin-bottom: 60px; } }
  .reservation-form .btn-reservation.button-success {
    color: #2ec556 !important; }
    .reservation-form .btn-reservation.button-success .button-border {
      background: #2ec556; }

@media screen and (max-width: 64em) {
  .reservation-form fieldset:after {
    width: 100%; } }

@media screen and (min-width: 64.0625em) {
  .reservation-content .reservation-content-wrapper {
    padding-right: 60px; } }

.rtb-booking-form {
  text-align: center;
  padding: 60px 0; }
  .rtb-booking-form fieldset {
    position: relative;
    width: 100%;
    text-align: center;
    margin: 0;
    padding: 0;
    margin-bottom: 60px !important;
    padding-bottom: 0 !important;
    border: none; }
    .rtb-booking-form fieldset:after {
      content: "";
      position: absolute;
      bottom: 0;
      background: #ddd;
      height: 1px;
      z-index: -1;
      right: 0;
      left: 0; }
  .rtb-booking-form legend {
    display: none !important; }
  .rtb-booking-form input, .rtb-booking-form select, .rtb-booking-form textarea {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    height: 60px;
    line-height: 60px;
    margin: 0;
    text-align: center;
    z-index: 2;
    max-width: 100% !important;
    min-height: 0 !important; }
    @media screen and (max-width: 39.9375em) {
      .rtb-booking-form input, .rtb-booking-form select, .rtb-booking-form textarea {
        padding: 0 10px; } }
    @media screen and (min-width: 40em) {
      .rtb-booking-form input, .rtb-booking-form select, .rtb-booking-form textarea {
        padding: 0 30px; } }
    .rtb-booking-form input:focus, .rtb-booking-form select:focus, .rtb-booking-form textarea:focus {
      outline: none; }
    .rtb-booking-form input:-webkit-autofill, .rtb-booking-form select:-webkit-autofill, .rtb-booking-form textarea:-webkit-autofill {
      -webkit-animation-name: autofill;
      -webkit-animation-fill-mode: both; }
  .rtb-booking-form select {
    text-align-last: center; }
  .rtb-booking-form .add-message {
    font-size: 12px;
    text-transform: uppercase;
    margin: 0; }
    .rtb-booking-form .add-message a {
      position: relative;
      display: inline-block; }
      .rtb-booking-form .add-message a:before {
        content: "";
        position: absolute;
        left: -20px;
        width: 10px;
        height: 1px;
        background: #ddd;
        top: 50%; }
      .rtb-booking-form .add-message a:after {
        content: "";
        position: absolute;
        left: -15px;
        width: 1px;
        height: 10px;
        background: #ddd;
        top: 50%;
        margin-top: -5px; }

.rtb-text:after, .rtb-textarea:not(.message):after, .rtb-select:after {
  content: "";
  position: absolute;
  bottom: 0px;
  width: 90px;
  left: 50%;
  margin-left: -45px;
  height: 1px;
  background: #111;
  z-index: 1;
  transition: transform .4s, background .4s; }

.rtb-text, .rtb-textarea, .rtb-select {
  float: left;
  position: relative !important; }
  .rtb-text label, .rtb-textarea label, .rtb-select label {
    position: absolute;
    text-transform: uppercase;
    line-height: 60px;
    display: block;
    width: 100%;
    text-align: center;
    z-index: 1;
    bottom: 0;
    transition: bottom .4s, opacity .4s, font-size .4s, color .4s; }
    .rtb-text label span, .rtb-textarea label span, .rtb-select label span {
      width: 10px;
      height: 10px;
      position: absolute;
      top: 50%;
      margin-left: 5px;
      margin-top: -5px;
      opacity: 0;
      transition: opacity .4s; }
      .rtb-text label span svg, .rtb-textarea label span svg, .rtb-select label span svg {
        position: absolute;
        top: 0;
        left: 0; }
    .rtb-text label .clear-input, .rtb-textarea label .clear-input, .rtb-select label .clear-input {
      opacity: 1;
      cursor: pointer; }
  .rtb-text.active-input label, .rtb-textarea.active-input label, .rtb-select.active-input label {
    bottom: -60px;
    opacity: .4;
    font-size: 12px; }
  .rtb-text.active-input:after, .rtb-text.active-input .border-label:after, .rtb-textarea.active-input:after, .rtb-textarea.active-input .border-label:after, .rtb-select.active-input:after, .rtb-select.active-input .border-label:after {
    transform: scale3d(1, 2, 1) !important; }
  .rtb-text.message-error:not(.message):after, .rtb-text.message-error .border-label:after, .rtb-textarea.message-error:not(.message):after, .rtb-textarea.message-error .border-label:after, .rtb-select.message-error:not(.message):after, .rtb-select.message-error .border-label:after {
    background: #f10a4a !important; }
  .rtb-text.message-error label, .rtb-textarea.message-error label, .rtb-select.message-error label {
    color: #f10a4a !important; }

.rtb-checkbox, .rtb-radio {
  float: left;
  position: relative; }
  .rtb-checkbox label:first-of-type, .rtb-radio label:first-of-type {
    position: absolute;
    text-transform: uppercase;
    line-height: 60px;
    display: block;
    width: 100%;
    text-align: center;
    z-index: 1;
    bottom: -60px;
    opacity: .4;
    font-size: 12px;
    transition: bottom .4s, opacity .4s, font-size .4s, color .4s; }
  .rtb-checkbox label:not(:first-of-type), .rtb-radio label:not(:first-of-type) {
    display: inline-block;
    margin-right: 10px; }
    .rtb-checkbox label:not(:first-of-type):last-of-type, .rtb-radio label:not(:first-of-type):last-of-type {
      margin-right: 0; }
  .rtb-checkbox:after, .rtb-radio:after {
    content: "";
    position: absolute;
    bottom: -1px;
    width: 90px;
    left: 50%;
    margin-left: -45px;
    height: 1px;
    background: #111;
    z-index: 1;
    transition: transform .4s, background .4s; }

.rtb-confirm {
  float: left;
  position: relative; }
  .rtb-confirm label {
    position: relative;
    text-transform: uppercase;
    line-height: 60px;
    display: block;
    width: 100%;
    text-align: center;
    z-index: 1; }
  .rtb-confirm:after {
    content: "";
    position: absolute;
    bottom: 0px;
    width: 90px;
    left: 50%;
    margin-left: -45px;
    height: 1px;
    background: #111;
    z-index: 1;
    transition: transform .4s, background .4s; }
  .rtb-confirm.active-input:after {
    transform: scale3d(1, 2, 1) !important; }

.rtb-select .clear-input {
  display: none !important; }

.rtb-select.active-input:after, .rtb-checkbox.active-input:after, .rtb-radio.active-input:after {
  transform: scale3d(1, 1, 1) !important; }

.rtb-select.active-border:after, .rtb-checkbox.active-border:after, .rtb-radio.active-border:after {
  transform: scale3d(1, 2, 1) !important; }

.rtb-textarea.message {
  width: 100%;
  top: auto !important;
  left: auto !important; }
  .rtb-textarea.message label, .rtb-textarea.message .border-label {
    width: -moz-calc(100% / 3);
    width: -webkit-calc(100% / 3);
    width: calc(100% / 3); }
  .rtb-textarea.message .border-label {
    position: relative; }
    .rtb-textarea.message .border-label:after {
      content: "";
      position: absolute;
      bottom: 0px;
      width: 90px;
      left: 50%;
      margin-left: -45px;
      height: 1px;
      background: #111;
      z-index: 1;
      transition: transform .4s, background .4s; }
  .rtb-textarea.message textarea {
    resize: none;
    text-align: left; }

.rtb-error {
  display: none !important; }

.picker--focused .picker__day--selected, .picker__day--selected, .picker__day--selected:hover {
  background: #3c3c3c !important; }

.picker--focused .picker__day--highlighted, .picker__day--highlighted:hover, .picker__day--infocus:hover, .picker__day--outfocus:hover {
  color: #fff !important;
  background: #616161 !important; }

.picker__day {
  transition: 0.3s background-color, 0.3s color; }

/* Frontend CSS Stylesheet for Restaurant Reservations */
.rtb-booking-form fieldset {
  padding-bottom: 1em;
  margin-bottom: 1em; }

.rtb-booking-form legend {
  padding: 0 0.5em; }

.rtb-booking-form fieldset > div {
  margin-top: 1em; }

.rtb-booking-form fieldset > div:first-child {
  margin-top: 0; }

.rtb-booking-form label {
  display: block; }

.rtb-booking-form input {
  width: 100%;
  max-width: 15em; }

.rtb-booking-form input[type="checkbox"],
.rtb-booking-form input[type="radio"] {
  width: auto;
  margin-right: 0.25em;
  vertical-align: middle; }

.rtb-booking-form textarea {
  width: 100%;
  max-width: 30em; }

.rtb-booking-form .add-message {
  margin-top: 1em; }

.rtb-booking-form .message {
  position: absolute;
  top: -9999px;
  left: -9999px; }

.rtb-booking-form .message-open {
  position: relative;
  top: auto;
  left: auto; }

.rtb-booking-form .message textarea {
  min-height: 6em; }

.rtb-booking-form .rtb-error {
  font-size: 0.85em;
  padding: 0.25em;
  background: #f50;
  color: #fff; }

.rtb-booking-form .rtb-error:before {
  content: ' ';
  border-top: 4px solid;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  width: 0;
  height: 0;
  display: inline-block;
  margin: 0.25em 0.5em; }

/* Compatibility styles for pickadate on common themes */
.picker {
  outline: 0; }

#rtb-date_root .picker__button--clear,
#rtb-date_root .picker__button--today {
  /* don't adopt the theme's button text color */
  color: #000; }

#rtb-date_root .picker__nav--next,
#rtb-date_root .picker__nav--prev {
  /* next/prev calendar arrows button areas sometimes don't cover the arrows */
  min-height: 2em; }

#rtb-time_root .picker__list,
#rtb-time_root .picker__list li {
  /* override some theme's list styles */
  list-style: none;
  margin: 0 0 0 1px; }

.picker {
  font-size: 16px;
  text-align: left;
  line-height: 1.2;
  color: #000;
  position: absolute;
  z-index: 10000;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.picker__input {
  cursor: default; }

.picker__input.picker__input--active {
  border-color: #0089ec; }

.picker__holder {
  width: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  position: fixed;
  transition: background .15s ease-out;
  transform: background 0s .15s;
  -webkit-backface-visibility: hidden; }

/*!
 * Default mobile-first, responsive styling for pickadate.js
 * Demo: http://amsul.github.io/pickadate.js
 */
.picker__frame, .picker__holder {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  -webkit-transform: translateY(100%);
  -ms-transform: translateY(100%);
  transform: translateY(100%); }

.picker__frame {
  position: absolute;
  margin: 0 auto;
  min-width: 256px;
  max-width: 666px;
  width: 100%;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  -moz-opacity: 0;
  opacity: 0;
  transition: all .15s ease-out; }

.picker__wrap {
  display: table;
  width: 100%;
  height: 100%; }

@media (min-height: 33.875em) {
  .picker__frame {
    overflow: visible;
    top: auto;
    bottom: -100%;
    max-height: 80%; }
  .picker__wrap {
    display: block; } }

.picker__box {
  background: #fff;
  display: table-cell;
  vertical-align: middle; }

@media (min-height: 26.5em) {
  .picker__box {
    font-size: 1.25em; } }

@media (min-height: 33.875em) {
  .picker__box {
    display: block;
    font-size: 1.33em;
    border: 1px solid #777;
    border-top-color: #898989;
    border-bottom-width: 0;
    border-radius: 5px 5px 0 0;
    box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); } }

@media (min-height: 40.125em) {
  .picker__frame {
    margin-bottom: 7.5%; }
  .picker__box {
    font-size: 1.5em;
    border-bottom-width: 1px;
    border-radius: 5px; } }

.picker--opened .picker__holder {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
  zoom: 1;
  background: rgba(0, 0, 0, 0.32);
  transition: background .15s ease-out; }

.picker--opened .picker__frame {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: alpha(opacity=100);
  -moz-opacity: 1;
  opacity: 1; }

@media (min-height: 33.875em) {
  .picker--opened .picker__frame {
    top: auto;
    bottom: 0; } }

.picker__footer, .picker__header, .picker__table {
  text-align: center; }

.picker__day--highlighted, .picker__select--month:focus, .picker__select--year:focus {
  border-color: #0089ec; }

.picker__box {
  padding: 0 1em; }

.picker__header {
  position: relative;
  margin-top: .75em; }

.picker__month, .picker__year {
  font-weight: 500;
  display: inline-block;
  margin-left: .25em;
  margin-right: .25em; }

.picker__year {
  color: #999;
  font-size: .8em;
  font-style: italic; }

.picker__select--month, .picker__select--year {
  border: 1px solid #b7b7b7;
  height: 2em;
  padding: .5em;
  margin-left: .25em;
  margin-right: .25em; }

.picker__select--month {
  width: 35%; }

.picker__select--year {
  width: 22.5%; }

.picker__nav--next, .picker__nav--prev {
  position: absolute;
  padding: .5em 1.25em;
  width: 1em;
  height: 1em;
  box-sizing: content-box;
  top: -.25em; }

.picker__nav--prev {
  left: -1em;
  padding-right: 1.25em; }

.picker__nav--next {
  right: -1em;
  padding-left: 1.25em; }

@media (min-width: 24.5em) {
  .picker__select--month, .picker__select--year {
    margin-top: -.5em; }
  .picker__nav--next, .picker__nav--prev {
    top: -.33em; }
  .picker__nav--prev {
    padding-right: 1.5em; }
  .picker__nav--next {
    padding-left: 1.5em; } }

.picker__nav--next:before, .picker__nav--prev:before {
  content: " ";
  border-top: .5em solid transparent;
  border-bottom: .5em solid transparent;
  border-right: .75em solid #000;
  width: 0;
  height: 0;
  display: block;
  margin: 0 auto; }

.picker__nav--next:before {
  border-right: 0;
  border-left: .75em solid #000; }

.picker__nav--next:hover, .picker__nav--prev:hover {
  cursor: pointer;
  color: #000;
  background: #b1dcfb; }

.picker__nav--disabled, .picker__nav--disabled:before, .picker__nav--disabled:before:hover, .picker__nav--disabled:hover {
  cursor: default;
  background: 0 0;
  border-right-color: #f5f5f5;
  border-left-color: #f5f5f5; }

.picker--focused .picker__day--highlighted, .picker__day--highlighted:hover, .picker__day--infocus:hover, .picker__day--outfocus:hover {
  color: #000;
  cursor: pointer;
  background: #b1dcfb; }

.picker__table {
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
  font-size: inherit;
  width: 100%;
  margin-top: .75em;
  margin-bottom: .5em; }

@media (min-height: 33.875em) {
  .picker__table {
    margin-bottom: .75em; } }

.picker__table td {
  margin: 0;
  padding: 0; }

.picker__weekday {
  width: 14.285714286%;
  font-size: .75em;
  padding-bottom: .25em;
  color: #999;
  font-weight: 500; }

@media (min-height: 33.875em) {
  .picker__weekday {
    padding-bottom: .5em; } }

.picker__day {
  padding: .3125em 0;
  font-weight: 200;
  border: 1px solid transparent; }

.picker__day--today {
  position: relative; }

.picker__day--today:before {
  content: " ";
  position: absolute;
  top: 2px;
  right: 2px;
  width: 0;
  height: 0;
  border-top: .5em solid #0059bc;
  border-left: .5em solid transparent; }

.picker__day--disabled:before {
  border-top-color: #aaa; }

.picker__day--outfocus {
  color: #ddd; }

.picker--focused .picker__day--selected, .picker__day--selected, .picker__day--selected:hover {
  background: #0089ec;
  color: #fff; }

.picker--focused .picker__day--disabled, .picker__day--disabled, .picker__day--disabled:hover {
  background: #f5f5f5;
  border-color: #f5f5f5;
  color: #ddd;
  cursor: default; }

.picker__day--highlighted.picker__day--disabled, .picker__day--highlighted.picker__day--disabled:hover {
  background: #bbb; }

.picker__button--clear, .picker__button--close, .picker__button--today {
  border: 1px solid #fff;
  background: #fff;
  font-size: .8em;
  padding: .66em 0;
  font-weight: 700;
  width: 33%;
  display: inline-block;
  vertical-align: bottom; }

.picker__button--clear:hover, .picker__button--close:hover, .picker__button--today:hover {
  cursor: pointer;
  color: #000;
  background: #b1dcfb;
  border-bottom-color: #b1dcfb; }

.picker__button--clear:focus, .picker__button--close:focus, .picker__button--today:focus {
  background: #b1dcfb;
  border-color: #0089ec;
  outline: 0; }

.picker__button--clear:before, .picker__button--close:before, .picker__button--today:before {
  position: relative;
  display: inline-block;
  height: 0; }

.picker__button--clear:before, .picker__button--today:before {
  content: " ";
  margin-right: .45em; }

.picker__button--today:before {
  top: -.05em;
  width: 0;
  border-top: .66em solid #0059bc;
  border-left: .66em solid transparent; }

.picker__button--clear:before {
  top: -.25em;
  width: .66em;
  border-top: 3px solid #e20; }

.picker__button--close:before {
  content: "\D7";
  top: -.1em;
  vertical-align: top;
  font-size: 1.1em;
  margin-right: .35em;
  color: #777; }

.picker__button--today[disabled], .picker__button--today[disabled]:hover {
  background: #f5f5f5;
  border-color: #f5f5f5;
  color: #ddd;
  cursor: default; }

.picker__button--today[disabled]:before {
  border-top-color: #aaa; }

.picker--focused .picker__list-item--highlighted, .picker__list-item--highlighted:hover, .picker__list-item:hover {
  background: #b1dcfb;
  cursor: pointer;
  color: #000; }

.picker__list {
  list-style: none;
  padding: .75em 0 4.2em;
  margin: 0; }

.picker__list-item {
  border-bottom: 1px solid #ddd;
  border-top: 1px solid #ddd;
  margin-bottom: -1px;
  position: relative;
  background: #fff;
  padding: .75em 1.25em; }

@media (min-height: 46.75em) {
  .picker__list-item {
    padding: .5em 1em; } }

.picker__list-item--highlighted, .picker__list-item:hover {
  border-color: #0089ec;
  z-index: 10; }

.picker--focused .picker__list-item--selected, .picker__list-item--selected, .picker__list-item--selected:hover {
  background: #0089ec;
  color: #fff;
  z-index: 10; }

.picker--focused .picker__list-item--disabled, .picker__list-item--disabled, .picker__list-item--disabled:hover {
  background: #f5f5f5;
  color: #ddd;
  cursor: default;
  border-color: #ddd;
  z-index: auto; }

.picker--time .picker__button--clear {
  display: block;
  width: 80%;
  margin: 1em auto 0;
  padding: 1em 1.25em;
  background: 0 0;
  border: 0;
  font-weight: 500;
  font-size: .67em;
  text-align: center;
  text-transform: uppercase;
  color: #666; }

.picker--time .picker__button--clear:focus, .picker--time .picker__button--clear:hover {
  background: #e20;
  border-color: #e20;
  cursor: pointer;
  color: #fff;
  outline: 0; }

.picker--time .picker__button--clear:before {
  top: -.25em;
  color: #666;
  font-size: 1.25em;
  font-weight: 700; }

.picker--time .picker__button--clear:focus:before, .picker--time .picker__button--clear:hover:before {
  color: #fff;
  border-color: #fff; }

.picker--time .picker__frame {
  min-width: 256px;
  max-width: 320px; }

.picker--time .picker__box {
  font-size: 1em;
  background: #f2f2f2;
  padding: 0; }

@media (min-height: 40.125em) {
  .picker--time .picker__box {
    margin-bottom: 5em; } }

/**
 *
 * 9. Contact form styles
 *
 */
@media screen and (max-width: 64em) {
  .contact #map {
    height: 400px;
    width: 100%; } }

@media screen and (min-width: 64.0625em) {
  .contact #map {
    height: 400px; } }

.contact .footer {
  margin-top: 90px; }

.contact-container {
  margin-bottom: 90px; }

.contact .link-hover:after {
  background: #333; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'], textarea {
  background: transparent !important;
  border: 1px solid #aaa;
  height: 40px;
  outline: none !important;
  box-shadow: none !important;
  padding: 0.2rem 0.8rem 0;
  margin-bottom: 0;
  text-align: left !important;
  color: #fff; }

select {
  background: transparent !important;
  border: 1px solid #aaa;
  height: 40px;
  outline: none !important;
  box-shadow: none !important;
  padding: 0.2rem 0.8rem 0;
  margin-bottom: 0;
  text-align: left !important;
  color: #fff; }

.wpcf7-form input[type="submit"] {
  padding: 0;
  text-align: center;
  margin: 0;
  height: 40px;
  width: 100px;
  border: 1px solid #bd1e2c;
  font-size: 14px;
  color: #fff !important;
  background-color: #bd1e2c !important;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease; }

/**
 *
 * 10. Team members element styles
 *
 */
.team-select {
  position: relative;
  margin-bottom: 60px; }
  .team-select .team-member {
    position: absolute;
    top: 0;
    left: 0;
    visibility: hidden;
    opacity: 0;
    transition: opacity .4s 0s, visibility 0s .4s; }
  .team-select .team-member-active {
    display: block;
    position: relative;
    visibility: visible;
    opacity: 1;
    transition: opacity .4s .4s, visibility 0s 0s; }
  .team-select .team-members {
    overflow: hidden; }
    .team-select .team-members .team-header {
      float: left;
      cursor: pointer;
      text-align: left;
      padding: 0 30px; }
    @media screen and (max-width: 39.9375em) {
      .team-select .team-members .team-header {
        width: 100% !important; } }
    @media screen and (min-width: 40em) and (max-width: 64em) {
      .team-select .team-members .team-header {
        width: 50% !important; } }

.team-img-right .team-image {
  padding-right: 60px; }

.team-img-right .team-header {
  margin-top: 60px !important; }
  .team-img-right .team-header:after {
    content: "";
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 1px;
    z-index: 1;
    transition: transform .4s, background .4s;
    left: 100%; }

.team-img-right .team-info, .team-img-right .team-image {
  width: 50%; }

.team-img-right .team-info {
  float: left; }

.team-img-right .team-image {
  float: right; }

.team-img-left .team-image {
  padding-left: 60px; }

.team-img-left .team-header {
  margin-top: 60px !important; }
  .team-img-left .team-header:after {
    content: "";
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 1px;
    z-index: 1;
    transition: transform .4s, background .4s;
    right: 100%; }

.team-img-left .team-info, .team-img-left .team-image {
  width: 50%; }

.team-img-left .team-info {
  float: left; }

.team-img-left .team-image {
  float: left; }

.team-img-top .img-wrapper {
  text-align: center; }

.team-member {
  overflow: hidden;
  margin-bottom: 60px;
  width: 100%;
  padding-bottom: 1px; }
  .team-member .member-desc {
    padding: 0 30px;
    margin-bottom: 30px; }
    .team-member .member-desc p a {
      position: relative; }
      .team-member .member-desc p a:after {
        content: "";
        width: 100%;
        height: 1px;
        position: absolute;
        bottom: 0;
        left: 0;
        opacity: .5;
        transition: opacity 0.4s cubic-bezier(0.16, 0.51, 0.78, 0.64);
        border-bottom-style: dotted;
        border-bottom-width: 1px;
        border-color: inherit;
        background: transparent !important; }
      .team-member .member-desc p a:hover:after {
        opacity: 1; }
  .team-member .team-image {
    position: relative;
    z-index: 2; }
    .team-member .team-image .team-member-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      transition: opacity .4s;
      z-index: 1; }
    .team-member .team-image a {
      position: relative;
      display: inline-block; }
      .team-member .team-image a:hover .team-member-overlay {
        opacity: 1; }
  .team-member .member-socials {
    text-align: center;
    margin: 0; }
    .team-member .member-socials li {
      list-style-type: none;
      display: inline-block; }
      .team-member .member-socials li:first-of-type {
        margin-right: 5px; }
      .team-member .member-socials li:after {
        content: "/";
        position: relative;
        margin: 0 3px;
        font-size: 14px; }
      .team-member .member-socials li:last-of-type:after, .team-member .member-socials li:first-of-type:after {
        display: none; }
      .team-member .member-socials li a {
        display: inline-block;
        padding-bottom: 3px; }

.team-name {
  display: inline-block;
  text-align: left;
  position: relative;
  padding-bottom: 15px;
  z-index: 2; }

.team-member .team-name:after {
  content: "";
  position: absolute;
  bottom: -1px;
  width: 100%;
  left: 0;
  height: 2px;
  z-index: 2;
  transition: transform .4s, background .4s; }

.team-members .team-name:after {
  background: transparent;
  content: "";
  position: absolute;
  bottom: 0px;
  width: 100%;
  left: 0;
  height: 1px;
  z-index: 2;
  transition: transform .4s, background .4s; }

.team-members .team-header.active .team-name:after {
  transform: scale3d(1, 2, 1); }

.team-header {
  text-align: center;
  position: relative;
  margin-bottom: 30px;
  margin-top: 30px; }
  .team-header:before {
    content: "";
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 1px;
    z-index: 1;
    transition: transform .4s, background .4s;
    left: 0; }

.member-name {
  margin-bottom: 0; }

.member-status {
  font-size: 14px; }

@media screen and (max-width: 64em) {
  .team-img-right .team-image {
    padding-right: 0;
    text-align: center; }
  .team-img-right .team-member .team-header {
    margin-top: 30px; }
  .team-img-right .team-info, .team-img-right .team-image {
    width: 100%;
    float: none; }
  .team-img-left .team-image {
    padding-left: 0;
    text-align: center; }
  .team-img-left .team-member .team-header {
    margin-top: 30px; }
  .team-img-left .team-info, .team-img-left .team-image {
    width: 100%;
    float: none; }
  .team-select .team-members .team-header {
    width: 50%; }
  .team-grid .team-member {
    width: 100%;
    float: none; }
  .team-grid .team-image {
    text-align: center; } }

/**
 *
 * 11. Mosaic element styles
 *
 */
.mosaic-item {
  position: relative;
  margin-bottom: 30px; }
  .mosaic-item:hover .mosaic-item-overlay {
    opacity: 1; }

.mosaic-img {
  background-size: cover;
  background-position: center center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.mosaic-info {
  position: absolute;
  bottom: 0;
  z-index: 2;
  padding: 10px 30px 30px 30px; }
  .mosaic-info .mosaic-text {
    font-style: italic;
    font-family: "Lora";
    font-size: 18px; }
    .mosaic-info .mosaic-text p:last-of-type {
      margin-bottom: 0 !important; }
  .mosaic-info .mosaic-link {
    text-transform: uppercase;
    position: relative;
    font-size: 14px;
    letter-spacing: 1px;
    display: inline-block;
    margin-top: 15px; }
    .mosaic-info .mosaic-link:after {
      content: "";
      position: absolute;
      bottom: -5px;
      left: 0;
      height: 1px;
      width: 100%; }

div.mosaic-link {
  display: inline; }

.mosaic-item-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: .7;
  transition: opacity .4s;
  z-index: 1; }

@media screen and (max-width: 64em) {
  .mosaic-item-overlay {
    opacity: 1; } }

@media screen and (min-width: 40em) {
  .mosaic-no-gutter .columns {
    padding-right: 0 !important;
    padding-left: 0 !important; }
    .mosaic-no-gutter .columns .mosaic-item {
      margin-bottom: 0; } }

/**
 *
 * 12. Widgets sidebar/footer styles
 *
 */
.widget {
  margin-bottom: 20px; }
  .widget select {
    background-color: transparent !important;
    border: none;
    border-bottom: 1px solid #333;
    height: 60px;
    vertical-align: middle;
    padding-left: 15px;
    color: #696969; }
    .widget select:focus, .widget select:active {
      outline: none; }

@media screen and (min-width: 64.0625em) {
  margin-left: 60px; }

.widget-title {
  border-bottom: 1px solid #ddd; }
  .widget-title span {
    border-bottom: 1px solid #333;
    margin-bottom: -1px;
    display: inline-block;
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 2px;
    padding-bottom: 10px; }

.widget_archive ul {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }
  .widget_archive ul li {
    border-top: 1px dotted #ddd;
    padding: 10px 15px;
    position: relative;
    list-style-type: none;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 3px; }
    .widget_archive ul li a {
      transition: opacity .4s;
      opacity: .7; }
      .widget_archive ul li a:hover {
        opacity: 1; }
    .widget_archive ul li:first-of-type {
      border-top: none; }

.widget_categories ul, .widget_pages ul, .widget_meta ul {
  margin: 0; }

.widget_categories > ul, .widget_pages > ul, .widget_meta > ul {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }
  .widget_categories > ul li, .widget_pages > ul li, .widget_meta > ul li {
    position: relative;
    list-style-type: none;
    font-size: 12px;
    text-transform: uppercase;
    line-height: 28px; }
    .widget_categories > ul li a, .widget_pages > ul li a, .widget_meta > ul li a {
      transition: opacity .4s;
      opacity: .7; }
      .widget_categories > ul li a:hover, .widget_pages > ul li a:hover, .widget_meta > ul li a:hover {
        opacity: 1; }
  .widget_categories > ul > li, .widget_pages > ul > li, .widget_meta > ul > li {
    border-bottom: 1px dotted #ddd; }
    .widget_categories > ul > li:last-of-type, .widget_pages > ul > li:last-of-type, .widget_meta > ul > li:last-of-type {
      border: none; }

.widget_categories ul li, .widget_pages ul li, .widget_meta ul li {
  padding: 8px 15px; }

.widget_categories .children li:last-of-type, .widget_pages .children li:last-of-type, .widget_meta .children li:last-of-type {
  padding-bottom: 0px !important; }

.widget_nav_menu ul {
  margin: 0; }

.widget_nav_menu .menu {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }
  .widget_nav_menu .menu li {
    position: relative;
    list-style-type: none;
    font-size: 12px;
    text-transform: uppercase;
    line-height: 28px;
    letter-spacing: 1px; }
    .widget_nav_menu .menu li a {
      transition: opacity .4s;
      opacity: .6; }
      .widget_nav_menu .menu li a:hover {
        opacity: 1; }
  .widget_nav_menu .menu > li {
    border-bottom: 1px dotted #ddd; }
    .widget_nav_menu .menu > li:last-of-type {
      border: none; }

.widget_nav_menu ul li {
  padding: 8px 0 8px 15px; }

.widget_nav_menu .sub-menu li:last-of-type {
  padding-bottom: 0px !important; }

.widget_nav_menu .sub-menu {
  display: block;
  position: relative;
  left: auto !important;
  top: auto !important; }
  .widget_nav_menu .sub-menu li {
    padding-right: 0 !important; }

.widget_calendar caption {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-weight: normal;
  margin-bottom: 5px; }

.widget_calendar thead {
  background: transparent;
  border: none;
  border-bottom: 2px solid #ddd; }
  .widget_calendar thead th {
    text-align: center;
    font-size: 12px; }

.widget_calendar tbody {
  background: transparent;
  border: none;
  text-align: center; }
  .widget_calendar tbody tr {
    background: transparent;
    border-bottom: 1px solid #f5f5f5;
    font-size: 14px; }
  .widget_calendar tbody td a {
    color: #f10a4a; }
  .widget_calendar tbody #today {
    font-weight: bold; }

.widget_calendar tfoot {
  background: transparent;
  border: none; }
  .widget_calendar tfoot td {
    text-transform: uppercase;
    font-weight: normal;
    font-size: 10px;
    letter-spacing: 3px; }

.widget_recent_comments ul {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }
  .widget_recent_comments ul li {
    border-top: 1px dotted #ddd;
    padding: 10px 0;
    position: relative;
    list-style-type: none;
    font-size: 14px;
    color: #696969; }
    .widget_recent_comments ul li:first-of-type {
      border-top: none; }
    .widget_recent_comments ul li > a {
      background-size: 100% 0;
      background-position: 0 100%;
      transition: background .5s !important;
      background-repeat: no-repeat;
      background-image: linear-gradient(to bottom, transparent 0%, transparent 95%, black 100%);
      color: #333;
      margin-left: 5px;
      font-size: 16px; }
      .widget_recent_comments ul li > a:hover {
        background-size: 100% 100%; }

.widget_recent_comments .comment-author-link a {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 10px;
  padding: 5px 0;
  transition: opacity .4s;
  opacity: .7;
  color: #333;
  margin-right: 5px; }
  .widget_recent_comments .comment-author-link a:hover {
    opacity: 1; }

.widget_recent_entries ul {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }

.widget_recent_entries li {
  list-style-type: none;
  border-top: 1px dotted #ddd;
  padding: 10px 0;
  position: relative; }
  .widget_recent_entries li:first-of-type {
    border-top: none; }

.widget_recent_entries a {
  background-size: 100% 0;
  background-position: 0 100%;
  transition: background .5s !important;
  background-repeat: no-repeat;
  background-image: linear-gradient(to bottom, transparent 0%, transparent 95%, black 100%);
  color: #333;
  font-size: 16px; }
  .widget_recent_entries a:hover {
    background-size: 100% 100%; }

.widget_recent_entries .post-date {
  display: block;
  margin-bottom: 0; }

.widget_rss ul {
  margin: 0;
  margin-bottom: 30px;
  overflow: hidden; }

.widget_rss li {
  list-style-type: none;
  border-top: 1px dotted #ddd;
  padding: 10px 0;
  position: relative; }
  .widget_rss li:first-of-type {
    border-top: none; }

.widget_rss .rss-date {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 10px;
  padding: 5px 0;
  transition: opacity .4s;
  opacity: .7;
  color: #333;
  margin-right: 5px;
  display: block;
  margin-bottom: 10px; }
  .widget_rss .rss-date:hover {
    opacity: 1; }

.widget_rss .rsswidget {
  background-size: 100% 0;
  background-position: 0 100%;
  transition: background .5s !important;
  background-repeat: no-repeat;
  background-image: linear-gradient(to bottom, transparent 0%, transparent 95%, black 100%);
  color: #333;
  font-size: 16px; }
  .widget_rss .rsswidget:hover {
    background-size: 100% 100%; }

.widget_rss .rssSummary {
  margin-bottom: 15px;
  font-size: 14px; }

.widget_tag_cloud .tagcloud a {
  font-size: 10px !important;
  padding: 0 3px 3px;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  letter-spacing: 1px;
  opacity: .7;
  transition: opacity .4s; }
  .widget_tag_cloud .tagcloud a:hover {
    opacity: 1; }
  .widget_tag_cloud .tagcloud a:after {
    content: "/";
    position: absolute;
    right: -3px;
    color: inherit; }
  .widget_tag_cloud .tagcloud a:last-of-type:after {
    display: none; }

.newsletter-details .mf-input {
  width: 100%; }
  .newsletter-details .mf-input input {
    position: relative;
    z-index: 1; }

.footer .widget-title {
  border: none;
  margin-bottom: 5px; }
  .footer .widget-title span {
    text-transform: none;
    border: none;
    margin-bottom: 0;
    letter-spacing: 0;
    padding-bottom: 0;
    font-size: 16px; }

.widget .mailster-form {
  margin-bottom: 0; }
  .widget .mailster-form.loading:before {
    background-image: url(../img/formajaxloader.gif); }
  .widget .mailster-form .mailster-form-info.success p {
    color: #000 !important;
    font-size: inherit; }
  .widget .mailster-form .mailster-form-fields .mailster-email-wrapper {
    width: calc(100% - 100px);
    float: left; }
    .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input {
      background: transparent;
      border: 1px solid #aaa;
      height: 40px;
      outline: none;
      box-shadow: none;
      padding: 0.7rem 0.8rem 0;
      margin-bottom: 0;
      text-align: left !important; }
      .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input + label {
        position: absolute;
        top: 0;
        left: 0;
        color: #aaa;
        font-weight: 300;
        font-size: 1rem;
        height: 40px;
        padding: 0.4rem 0.8rem 0;
        line-height: inherit;
        width: 100%;
        text-align: left !important;
        pointer-events: none;
        -webkit-transition: all 0.3s ease;
        -moz-transition: all 0.3s ease;
        -ms-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        transition: all 0.3s ease; }
        .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input + label .mailster-required {
          color: #bd1e2c !important; }
      .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input:focus + label, .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input.valid + label {
        font-size: .7rem;
        padding-top: 0;
        color: #777;
        font-weight: 800; }
      .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input:-webkit-autofill, .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input:-webkit-autofill:hover,
      .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input:-webkit-autofill:focus .widget .mailster-form .mailster-form-fields .mailster-email-wrapper input:-webkit-autofill {
        background: transparent;
        border: 1px solid #aaa;
        -webkit-text-fill-color: #aaa;
        -webkit-box-shadow: 0 0 0px 1000px transparent inset;
        transition: background-color 5000s ease-in-out 0s;
        color: #aaa !important; }
  .widget .mailster-form .mailster-form-fields .mailster-submit-wrapper {
    width: 95px;
    float: left;
    margin: 0 0 0 5px; }
    .widget .mailster-form .mailster-form-fields .mailster-submit-wrapper input {
      padding: 0.1rem 0 0;
      text-align: center;
      margin: 0;
      height: 40px;
      width: 100px;
      border: 1px solid #bd1e2c;
      font-size: 14px;
      color: #fff !important;
      background-color: #bd1e2c !important;
      -webkit-transition: all 0.3s ease;
      -moz-transition: all 0.3s ease;
      -ms-transition: all 0.3s ease;
      -o-transition: all 0.3s ease;
      transition: all 0.3s ease; }
      .widget .mailster-form .mailster-form-fields .mailster-submit-wrapper input:hover {
        background-position: 0 100%; }

.widget .mailster-widget-text {
  font-size: 80%;
  margin-top: 5px; }

/**
 *
 * 13. Footer styles
 *
 */
.newsletter-form fieldset {
  margin-bottom: 15px;
  text-align: left; }
  .newsletter-form fieldset label {
    text-align: left;
    line-height: 35px; }
  .newsletter-form fieldset input {
    padding: 0;
    height: 35px;
    line-height: 35px;
    text-align: left; }
  .newsletter-form fieldset:after {
    left: 0;
    right: 0; }
  .newsletter-form fieldset .mf-input:after {
    margin-left: 0 !important;
    left: 0 !important; }

.newsletter-form .btn-newsletter {
  margin: 0 auto;
  margin-right: 0;
  display: block;
  transition: color .4s; }
  .newsletter-form .btn-newsletter .button-border {
    background: #111; }
  .newsletter-form .btn-newsletter.button-success {
    color: #2ec556 !important; }
    .newsletter-form .btn-newsletter.button-success .button-border {
      background: #2ec556; }

.newsletter-form .active-input label {
  bottom: -30px; }

@media screen and (max-width: 39.9375em) {
  .footer-grid .newsletter-form {
    width: 70%;
    margin: 0 auto; } }

@media screen and (max-width: 64em) {
  .footer-grid {
    text-align: center; }
    .footer-grid .footer-content {
      margin-bottom: 30px; }
    .footer-grid .newsletter-form {
      width: 50%;
      margin: 0 auto; } }

.footer-content {
  margin-bottom: 20px; }
  .footer-content h6 {
    margin-bottom: 15px;
    font-size: 16px;
    font-weight: bold; }
  .footer-content small {
    font-size: 12px;
    line-height: 1.5em;
    display: inline-block; }
  .footer-content #scroll-up {
    display: block;
    transition: color .4s; }
    .footer-content #scroll-up .button-border {
      background: #111; }
    .footer-content #scroll-up.button-success {
      color: #2ec556 !important; }
      .footer-content #scroll-up.button-success .button-border {
        background: #2ec556; }

.footer {
  padding: 90px 0 60px;
  background: #f7f7f7;
  position: relative;
  margin-top: 0;
  z-index: 5; }
  .footer select, .footer input {
    background: transparent !important; }
    .footer select:focus, .footer input:focus {
      outline: none; }
  .footer .forms-style fieldset:after {
    z-index: 0; }
  .footer .link-hover:after {
    background: #111; }

.footer-legal {
  background: #000;
  position: relative;
  margin-top: 0;
  z-index: 5;
  border-top: 1px solid #222;
  color: #888; }
  .footer-legal .widget {
    margin-bottom: 0; }
    .footer-legal .widget p {
      margin: 10px 0;
      text-align: center;
      font-size: 12px; }
      .footer-legal .widget p a {
        color: #bd1e2c;
        text-decoration: none; }
        .footer-legal .widget p a:hover {
          text-decoration: underline; }

.widget .hidden {
  display: none; }

.social-tooltip-link {
  text-align: center;
  margin: 5px 0;
  font-size: 14px; }
  .social-tooltip-link a:hover {
    text-decoration: underline; }

/**
 *
 * 14. Animations
 *
 */
.img-wrapper {
  display: block;
  position: relative;
  z-index: 1;
  overflow: hidden; }
  .img-wrapper:after {
    content: '';
    margin: 0 -5px 0 0;
    position: absolute;
    top: 0;
    right: 100%;
    bottom: 100%;
    left: 0;
    background: #ddd;
    z-index: 3;
    transition: bottom 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) 0s, right 0.4s cubic-bezier(0.77, 0, 0.175, 1) 0.3s, margin 0.4s cubic-bezier(0.77, 0, 0.175, 1) 0.3s, left 0.4s cubic-bezier(0.77, 0, 0.175, 1) 0.6s; }
  .img-wrapper img:first-child {
    transition: opacity 0s 0.6s, transform 1s 0.6s;
    opacity: 0;
    transform: translateX(-20px) translateZ(0); }
  .img-wrapper .gallery-icon {
    transition: opacity 0s .6s;
    opacity: 0; }
  .img-wrapper.loaded-img:after {
    margin-right: 0;
    right: -3px;
    bottom: 0;
    left: 100%; }
  .img-wrapper.loaded-img img:first-child {
    transform: translateX(0);
    opacity: 1; }
  .img-wrapper.loaded-img .gallery-icon {
    opacity: 1; }

.mosaic-item {
  display: block;
  position: relative;
  z-index: 1;
  overflow: hidden; }
  .mosaic-item:after {
    content: '';
    margin: 0 -5px 0 0;
    position: absolute;
    top: 0;
    right: 100%;
    bottom: 100%;
    left: 0;
    background: #ddd;
    z-index: 3;
    transition: bottom 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) 0s, right 0.4s cubic-bezier(0.77, 0, 0.175, 1) 0.3s, margin 0.4s cubic-bezier(0.77, 0, 0.175, 1) 0.3s, left 0.4s cubic-bezier(0.77, 0, 0.175, 1) 0.6s; }
  .mosaic-item .mosaic-link {
    transition: opacity 0s 0.7s, transform 1s 0.6s;
    opacity: 0;
    transform: translateX(-20px) translateZ(0); }
  .mosaic-item.mosaic-loaded:after {
    margin-right: 0;
    right: -3px;
    bottom: 0;
    left: 100%; }
  .mosaic-item.mosaic-loaded .mosaic-link {
    transform: translateX(0);
    opacity: 1; }

.animate-text {
  transition: transform 0.7s 0s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.7s 0s;
  transform: translateY(-30px);
  opacity: 0; }
  .animate-text.loaded-text {
    transform: translateY(0);
    opacity: 1; }
  .animate-text.animate-second {
    transition-delay: 0.5s; }

/**
 *
 * 15. Vegas slider styles
 *
 */
.vegas-wrapper,
.vegas-overlay,
.vegas-timer,
.vegas-slide,
.vegas-slide-inner {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  overflow: hidden;
  border: none;
  padding: 0;
  margin: 0; }

.vegas-overlay {
  opacity: .5;
  background: transparent url("overlays/02.png") center center repeat; }

.vegas-timer {
  top: auto;
  bottom: 0;
  height: 2px; }

.vegas-timer-progress {
  width: 0%;
  height: 100%;
  background: white;
  transition: width ease-out; }

.vegas-timer-running .vegas-timer-progress {
  width: 100%; }

.vegas-slide,
.vegas-slide-inner {
  margin: 0;
  padding: 0;
  background: transparent center center no-repeat;
  transform: translateZ(0); }

body .vegas-container {
  overflow: hidden !important;
  height: auto !important;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }

body .parallax-image .vegas-container {
  top: -30px;
  left: -30px;
  right: -30px;
  bottom: -30px; }

.vegas-video {
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto; }

body.vegas-container {
  overflow: auto;
  position: static;
  z-index: -2; }

body.vegas-container > .vegas-timer,
body.vegas-container > .vegas-overlay,
body.vegas-container > .vegas-slide {
  position: fixed;
  z-index: -1; }

/*******************************************/
/* blur transition */
/*******************************************/
.vegas-transition-blur,
.vegas-transition-blur2 {
  opacity: 0;
  filter: blur(32px); }

.vegas-transition-blur-in,
.vegas-transition-blur2-in {
  opacity: 1;
  filter: blur(0px); }

.vegas-transition-blur2-out {
  opacity: 0; }

/*******************************************/
/* burn transition */
/*******************************************/
.vegas-transition-burn,
.vegas-transition-burn2 {
  opacity: 0;
  filter: contrast(1000%) saturate(1000%); }

.vegas-transition-burn-in,
.vegas-transition-burn2-in {
  opacity: 1;
  filter: contrast(100%) saturate(100%); }

.vegas-transition-burn2-out {
  opacity: 0;
  filter: contrast(1000%) saturate(1000%); }

/*******************************************/
/* fade transition */
/*******************************************/
.vegas-transition-fade,
.vegas-transition-fade2 {
  opacity: 0; }

.vegas-transition-fade-in,
.vegas-transition-fade2-in {
  opacity: 1; }

.vegas-transition-fade2-out {
  opacity: 0; }

/*******************************************/
/* flash transition */
/*******************************************/
.vegas-transition-flash,
.vegas-transition-flash2 {
  opacity: 0;
  filter: brightness(25); }

.vegas-transition-flash-in,
.vegas-transition-flash2-in {
  opacity: 1;
  filter: brightness(1); }

.vegas-transition-flash2-out {
  opacity: 0;
  filter: brightness(25); }

/*******************************************/
/* negative transition */
/*******************************************/
.vegas-transition-negative,
.vegas-transition-negative2 {
  opacity: 0;
  filter: invert(100%); }

.vegas-transition-negative-in,
.vegas-transition-negative2-in {
  opacity: 1;
  filter: invert(0); }

.vegas-transition-negative2-out {
  opacity: 0;
  filter: invert(100%); }

/*******************************************/
/* slideDown transition */
/*******************************************/
.vegas-transition-slideDown,
.vegas-transition-slideDown2 {
  transform: translateY(-100%); }

.vegas-transition-slideDown-in,
.vegas-transition-slideDown2-in {
  transform: translateY(0%); }

.vegas-transition-slideDown2-out {
  transform: translateY(100%); }

/*******************************************/
/* slideLeft transition */
/*******************************************/
.vegas-transition-slideLeft,
.vegas-transition-slideLeft2 {
  transform: translateX(100%); }

.vegas-transition-slideLeft-in,
.vegas-transition-slideLeft2-in {
  transform: translateX(0%); }

.vegas-transition-slideLeft2-out {
  transform: translateX(-100%); }

/*******************************************/
/* slideRight transition */
/*******************************************/
.vegas-transition-slideRight,
.vegas-transition-slideRight2 {
  transform: translateX(-100%); }

.vegas-transition-slideRight-in,
.vegas-transition-slideRight2-in {
  transform: translateX(0%); }

.vegas-transition-slideRight2-out {
  transform: translateX(100%); }

/*******************************************/
/* slideUp transition */
/*******************************************/
.vegas-transition-slideUp,
.vegas-transition-slideUp2 {
  transform: translateY(100%); }

.vegas-transition-slideUp-in,
.vegas-transition-slideUp2-in {
  transform: translateY(0%); }

.vegas-transition-slideUp2-out {
  transform: translateY(-100%); }

/*******************************************/
/* swirlLeft transition */
/*******************************************/
.vegas-transition-swirlLeft,
.vegas-transition-swirlLeft2 {
  transform: scale(2) rotate(35deg);
  opacity: 0; }

.vegas-transition-swirlLeft-in,
.vegas-transition-swirlLeft2-in {
  transform: scale(1) rotate(0deg);
  opacity: 1; }

.vegas-transition-swirlLeft2-out {
  transform: scale(2) rotate(-35deg);
  opacity: 0; }

/*******************************************/
/* swirlRight transition */
/*******************************************/
.vegas-transition-swirlRight,
.vegas-transition-swirlRight2 {
  transform: scale(2) rotate(-35deg);
  opacity: 0; }

.vegas-transition-swirlRight-in,
.vegas-transition-swirlRight2-in {
  transform: scale(1) rotate(0deg);
  opacity: 1; }

.vegas-transition-swirlRight2-out {
  transform: scale(2) rotate(35deg);
  opacity: 0; }

/*******************************************/
/* zoomIn transition */
/*******************************************/
.vegas-transition-zoomIn,
.vegas-transition-zoomIn2 {
  transform: scale(0);
  opacity: 0; }

.vegas-transition-zoomIn-in,
.vegas-transition-zoomIn2-in {
  transform: scale(1);
  opacity: 1; }

.vegas-transition-zoomIn2-out {
  transform: scale(1.3);
  opacity: 0; }

/*******************************************/
/* zoomOut transition */
/*******************************************/
.vegas-transition-zoomOut,
.vegas-transition-zoomOut2 {
  transform: scale(1.3);
  opacity: 0; }

.vegas-transition-zoomOut-in,
.vegas-transition-zoomOut2-in {
  transform: scale(1);
  opacity: 1; }

.vegas-transition-zoomOut2-out {
  transform: scale(0);
  opacity: 0; }

/*******************************************/
/* kenburns animation */
/*******************************************/
.vegas-animation-kenburns {
  animation: kenburns ease-out; }

@keyframes kenburns {
  0% {
    transform: scale(1.05); }
  100% {
    transform: scale(1); } }

/*******************************************/
/* kenburnsDownLeft animation */
/*******************************************/
.vegas-animation-kenburnsDownLeft {
  animation: kenburnsDownLeft ease-out; }

@keyframes kenburnsDownLeft {
  0% {
    transform: scale(1.05) translate(1%, -1%); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsDownRight animation */
/*******************************************/
.vegas-animation-kenburnsDownRight {
  animation: kenburnsDownRight ease-out; }

@keyframes kenburnsDownRight {
  0% {
    transform: scale(1.05) translate(-1%, -1%); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsDown animation */
/*******************************************/
.vegas-animation-kenburnsDown {
  animation: kenburnsDown ease-out; }

@keyframes kenburnsDown {
  0% {
    transform: scale(1.05) translate(0, -1%); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsLeft animation */
/*******************************************/
.vegas-animation-kenburnsLeft {
  animation: kenburnsLeft ease-out; }

@keyframes kenburnsLeft {
  0% {
    transform: scale(1.05) translate(1%, 0); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsRight animation */
/*******************************************/
.vegas-animation-kenburnsRight {
  animation: kenburnsRight ease-out; }

@keyframes kenburnsRight {
  0% {
    transform: scale(1.05) translate(-1%, 0); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsUpLeft animation */
/*******************************************/
.vegas-animation-kenburnsUpLeft {
  animation: kenburnsUpLeft ease-out; }

@keyframes kenburnsUpLeft {
  0% {
    transform: scale(1.05) translate(1%, 1%); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsUpRight animation */
/*******************************************/
.vegas-animation-kenburnsUpRight {
  animation: kenburnsUpRight ease-out; }

@keyframes kenburnsUpRight {
  0% {
    transform: scale(1.05) translate(-1%, 1%); }
  100% {
    transform: scale(1) translate(0, 0); } }

/*******************************************/
/* kenburnsUp animation */
/*******************************************/
.vegas-animation-kenburnsUp {
  animation: kenburnsUp ease-out; }

@keyframes kenburnsUp {
  0% {
    transform: scale(1.05) translate(0, 1%); }
  100% {
    transform: scale(1) translate(0, 0); } }

/**
 *
 * 16. Swiper slider styles
 *
 */
/**
 * Swiper 3.4.0
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * 
 * http://www.idangero.us/swiper/
 * 
 * Copyright 2016, Vladimir Kharlampidi
 * The iDangero.us
 * http://www.idangero.us/
 * 
 * Licensed under MIT
 * 
 * Released on: October 16, 2016
 */
.swiper-container {
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  /* Fix of Webkit flickering */
  z-index: 1; }

.swiper-container-no-flexbox .swiper-slide {
  float: left; }

.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column; }

.swiper-wrapper {
  float: left;
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box; }

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  -moz-transform: translate3d(0px, 0, 0);
  -o-transform: translate(0px, 0px);
  -ms-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0); }

.swiper-container-multirow > .swiper-wrapper {
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap; }

.swiper-container-free-mode > .swiper-wrapper {
  -webkit-transition-timing-function: ease-out;
  -moz-transition-timing-function: ease-out;
  -ms-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  margin: 0 auto; }

.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex: 0 0 auto;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative; }

/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto; }

.swiper-container-autoheight .swiper-wrapper {
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-transition-property: -webkit-transform, height;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform, height; }

/* a11y */
.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000; }

/* IE10 Windows Phone 8 Fixes */
.swiper-wp8-horizontal {
  -ms-touch-action: pan-y;
  touch-action: pan-y; }

.swiper-wp8-vertical {
  -ms-touch-action: pan-x;
  touch-action: pan-x; }

/* Arrows */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 27px;
  height: 44px;
  margin-top: -22px;
  z-index: 10;
  cursor: pointer;
  -moz-background-size: 27px 44px;
  -webkit-background-size: 27px 44px;
  background-size: 27px 44px;
  background-position: center;
  background-repeat: no-repeat; }

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none; }

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  left: 10px;
  right: auto; }

.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  right: 10px;
  left: auto; }

.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); }

.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); }

/* Pagination Styles */
.swiper-pagination {
  position: absolute;
  text-align: center;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10; }

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0; }

/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%; }

/* Bullets */
.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 100%;
  background: #000;
  opacity: 0.2; }

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -webkit-appearance: none;
  appearance: none; }

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer; }

.swiper-pagination-white .swiper-pagination-bullet {
  background: #fff; }

.swiper-pagination-bullet-active {
  opacity: 1;
  background: #007aff; }

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #fff; }

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000; }

.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
  -moz-transform: translate3d(0px, -50%, 0);
  -o-transform: translate(0px, -50%);
  -ms-transform: translate3d(0px, -50%, 0);
  transform: translate3d(0px, -50%, 0); }

.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 5px 0;
  display: block; }

.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 5px; }

/* Progress */
.swiper-pagination-progress {
  background: rgba(0, 0, 0, 0.25);
  position: absolute; }

.swiper-pagination-progress .swiper-pagination-progressbar {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: left top;
  -moz-transform-origin: left top;
  -ms-transform-origin: left top;
  -o-transform-origin: left top;
  transform-origin: left top; }

.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
  -webkit-transform-origin: right top;
  -moz-transform-origin: right top;
  -ms-transform-origin: right top;
  -o-transform-origin: right top;
  transform-origin: right top; }

.swiper-container-horizontal > .swiper-pagination-progress {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0; }

.swiper-container-vertical > .swiper-pagination-progress {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0; }

.swiper-pagination-progress.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.5); }

.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
  background: #fff; }

.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
  background: #000; }

/* 3D Container */
.swiper-container-3d {
  -webkit-perspective: 1200px;
  -moz-perspective: 1200px;
  -o-perspective: 1200px;
  perspective: 1200px; }

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transform-style: preserve-3d; }

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10; }

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */ }

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */ }

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */ }

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(transparent));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), transparent);
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), transparent);
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent);
  /* Firefox 16+, IE10, Opera 12.50+ */ }

/* Coverflow */
.swiper-container-coverflow .swiper-wrapper,
.swiper-container-flip .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px; }

/* Cube + Flip */
.swiper-container-cube,
.swiper-container-flip {
  overflow: visible; }

.swiper-container-cube .swiper-slide,
.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1; }

.swiper-container-cube .swiper-slide .swiper-slide,
.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none; }

.swiper-container-cube .swiper-slide-active,
.swiper-container-flip .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto; }

.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden; }

/* Cube */
.swiper-container-cube .swiper-slide {
  visibility: hidden;
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 100%;
  height: 100%; }

.swiper-container-cube.swiper-container-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0; }

.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible; }

.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  -webkit-filter: blur(50px);
  filter: blur(50px);
  z-index: 0; }

/* Fade */
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
  -moz-transition-timing-function: ease-out;
  -ms-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out; }

.swiper-container-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  -moz-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity; }

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none; }

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto; }

.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -moz-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -moz-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  text-align: center; }

.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain; }

/* Scrollbar */
.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1); }

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%; }

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%; }

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0; }

.swiper-scrollbar-cursor-drag {
  cursor: move; }

/* Preloader */
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
  -moz-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  animation: swiper-preloader-spin 1s steps(12, end) infinite; }

.swiper-lazy-preloader:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  -webkit-background-size: 100%;
  background-size: 100%;
  background-repeat: no-repeat; }

.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); }

@-webkit-keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg); } }

@keyframes swiper-preloader-spin {
  100% {
    transform: rotate(360deg); } }

/**
 *
 * 17. Swipebox slider styles
 *
 */
/*! Swipebox v1.3.0 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */
html.swipebox-html.swipebox-touch {
  overflow: hidden !important; }

#swipebox-overlay img {
  border: none !important; }

#swipebox-overlay {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999 !important;
  overflow: hidden;
  user-select: none; }

#swipebox-container {
  position: relative;
  width: 100%;
  height: 100%; }

#swipebox-slider {
  transition: transform 0.8s cubic-bezier(0.61, 0.21, 0.25, 1);
  height: 100%;
  left: 0;
  top: 0;
  width: 100%;
  white-space: nowrap;
  position: absolute;
  display: none;
  cursor: pointer; }
  #swipebox-slider .slide {
    height: 100%;
    width: 100%;
    line-height: 1px;
    text-align: center;
    display: inline-block;
    padding: 50px 65px 50px 50px; }
    @media screen and (max-width: 39.9375em) {
      #swipebox-slider .slide {
        padding: 0; } }
    #swipebox-slider .slide:before {
      content: "";
      display: inline-block;
      height: 50%;
      width: 1px;
      margin-right: -1px; }
    #swipebox-slider .slide img,
    #swipebox-slider .slide .swipebox-video-container,
    #swipebox-slider .slide .swipebox-inline-container {
      display: inline-block;
      max-height: 100%;
      max-width: 100%;
      margin: 0;
      padding: 0;
      width: auto;
      height: auto;
      vertical-align: middle; }
    #swipebox-slider .slide .swipebox-video-container {
      background: none;
      max-width: 1140px;
      max-height: 100%;
      width: 100%;
      padding: 5%;
      box-sizing: border-box; }
      #swipebox-slider .slide .swipebox-video-container .swipebox-video {
        width: 100%;
        height: 0;
        padding-bottom: 56.25%;
        overflow: hidden;
        position: relative; }
        #swipebox-slider .slide .swipebox-video-container .swipebox-video iframe {
          width: 100% !important;
          height: 100% !important;
          position: absolute;
          top: 0;
          left: 0; }

#swipebox-top-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 999;
  height: 50px;
  width: 100%; }

#swipebox-title {
  display: none;
  width: 100%;
  text-align: center; }

#swipebox-prev {
  top: 50%;
  margin-top: -50px;
  left: 10px;
  position: absolute;
  z-index: 9999;
  width: 30px;
  height: 100px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30px" height="100px" viewBox="0 0 30 30" preserveAspectRatio="xMidYMid meet" zoomAndPan="disable" ><line id="e4_line1" x1="25" y1="0" x2="10" y2="15" stroke="rgba(255,255,255,1)" style="stroke-width: 2px; vector-effect: non-scaling-stroke; fill: none;"/><line x1="10" y1="15" x2="25" y2="30" stroke="rgba(255,255,255,1)" style="stroke-width: 2px; vector-effect: non-scaling-stroke; fill: none;"/></svg>') !important;
  background-repeat: no-repeat !important; }

#swipebox-next {
  top: 50%;
  margin-top: -50px;
  right: 20px;
  position: absolute;
  z-index: 9999;
  width: 30px;
  height: 100px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30px" height="100px" viewBox="0 0 30 30" preserveAspectRatio="xMidYMid meet" zoomAndPan="disable" ><line id="e4_line2" x1="5" y1="0" x2="20" y2="15" stroke="rgba(255,255,255,1)" style="stroke-width: 2px; vector-effect: non-scaling-stroke; fill: none;"/><line x1="20" y1="15" x2="5" y2="30" stroke="rgba(255,255,255,1)" style="stroke-width: 2px; vector-effect: non-scaling-stroke; fill: none;"/></svg>') !important;
  background-repeat: no-repeat !important; }

#swipebox-close {
  top: 30px;
  right: 20px;
  position: absolute;
  z-index: 9999;
  width: 50px;
  height: 50px;
  background: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px" height="50px" viewBox="0 0 100 100" style=""\a 		 xml:space="preserve"><line id="e4_line3" x1="35" y1="35" x2="65" y2="65" stroke="rgba(255,255,255,1)" style="stroke-width: 2px; vector-effect: non-scaling-stroke; fill: none;"/><line x1="65" y1="35" x2="35" y2="65" stroke="rgba(255,255,255,1)" style="stroke-width: 2px; vector-effect: non-scaling-stroke; fill: none;"/>\a 		</svg>');
  background-repeat: no-repeat; }
  @media screen and (max-width: 39.9375em) {
    #swipebox-close {
      top: 10px;
      right: 10px; } }

.swipebox-no-close-button #swipebox-close {
  display: none; }

#swipebox-prev.disabled,
#swipebox-next.disabled {
  opacity: 0.3; }

.swipebox-no-touch #swipebox-overlay.rightSpring #swipebox-slider {
  animation: rightSpring 0.3s; }

.swipebox-no-touch #swipebox-overlay.leftSpring #swipebox-slider {
  animation: leftSpring 0.3s; }

.swipebox-touch #swipebox-container:before, .swipebox-touch #swipebox-container:after {
  backface-visibility: hidden;
  transition: all .3s ease;
  content: ' ';
  position: absolute;
  z-index: 999;
  top: 0;
  height: 100%;
  width: 20px;
  opacity: 0; }

.swipebox-touch #swipebox-container:before {
  left: 0;
  box-shadow: inset 10px 0px 10px -8px #656565; }

.swipebox-touch #swipebox-container:after {
  right: 0;
  box-shadow: inset -10px 0px 10px -8px #656565; }

.swipebox-touch #swipebox-overlay.leftSpringTouch #swipebox-container:before {
  opacity: 1; }

.swipebox-touch #swipebox-overlay.rightSpringTouch #swipebox-container:after {
  opacity: 1; }

@keyframes rightSpring {
  0% {
    left: 0; }
  50% {
    left: -30px; }
  100% {
    left: 0; } }

@keyframes leftSpring {
  0% {
    left: 0; }
  50% {
    left: 30px; }
  100% {
    left: 0; } }

@media screen and (min-width: 800px) {
  #swipebox-arrows {
    width: 92%;
    max-width: 800px; } }

/* Skin 
--------------------------*/
#swipebox-overlay {
  background: #0d0d0d; }

#swipebox-bottom-bar,
#swipebox-top-bar {
  text-shadow: 1px 1px 1px black;
  background: #000;
  opacity: 0.95; }

#swipebox-top-bar {
  color: white !important;
  font-size: 15px;
  line-height: 43px;
  font-family: Helvetica, Arial, sans-serif; }

/**
 *
 * 18. Wordpress specifc styles
 *
 */
.post-edit-link {
  margin-left: 10px; }

.page-header {
  padding: 0; }

.comment-awaiting-moderation {
  display: block; }

.post-comments .pingback, .post-comments .comment {
  margin-bottom: 30px;
  margin-top: 30px;
  overflow: hidden; }

.comment .comment-respond {
  margin-left: 75px;
  clear: both;
  padding-top: 30px; }

.comment-list .pingback a:not(.comment-edit-link) {
  font-weight: 700; }

.logged-in-as {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  line-height: 1.75em;
  margin: 0; }

.comment-reply-title {
  margin: 0 0 3px;
  line-height: 1.75em; }

#cancel-comment-reply-link {
  font-weight: normal;
  margin-left: 15px;
  opacity: 0.5; }

.comment-form fieldset {
  margin-top: 60px; }

.post-comments > .comment-list {
  margin-bottom: 30px; }

.cat-tags-links {
  margin: 60px 0 45px; }

.post-tags {
  margin: 0 0 15px; }

/* add '.post-date' to '.post-date a' */
.post-date {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  transition: color .4s;
  color: #8a8a8a; }

/* add  */
.single-post-nav {
  table-layout: fixed; }

.slider-text .slider-text-first:empty,
.slider-text .slider-text-second:empty {
  display: none !important; }

.blog-classic .post-item {
  clear: both;
  margin: 0 0 60px; }

.blog-classic .post-image {
  width: 100%; }

.blog-classic .post-content-wrapper {
  width: 100%;
  padding: 30px 0; }

.blog-classic .post-meta {
  margin-bottom: 30px; }

.blog-classic .no-thumbnail .post-content-wrapper {
  width: 100%; }

.wp-caption {
  max-width: 100%; }

.blog .post-header h4 {
  -ms-word-wrap: break-word;
  word-wrap: break-word; }

.forms-style input, .forms-style select, .forms-style textarea {
  line-height: inherit; }

@media screen and (min-width: 40em) {
  .forms-style input, .forms-style select, .forms-style textarea {
    padding: 18px 30px; } }

.bypostauthor {
  background: transparent; }

.home-contact-info p:last-child {
  margin-bottom: 0; }

.home-contact-info, body .home-contact-info p {
  font-size: 14px; }

.row.remove-gap {
  margin-left: 0;
  margin-right: 0; }

.remove-gap .columns {
  padding: 0; }

.remove-gap .mosaic-item {
  margin-bottom: 0; }

.row-wrapper .vc_row-o-full-height {
  min-height: 100vh; }

.row-wrapper .vc_row-flex {
  box-sizing: border-box;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  position: relative;
  z-index: 1; }

.row-wrapper .vc_row-flex > .vc_column_container {
  display: flex; }

.vc_ie-flexbox-fixer,
.row-wrapper .vc_row-flex > .vc_column_container > .vc_column-inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal; }

.row-wrapper .vc_row-flex > .vc_column_container > .vc_column-inner {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }

.row-wrapper .vc_row-o-columns-stretch {
  -webkit-align-content: stretch;
  -ms-flex-line-pack: stretch;
  align-content: stretch; }

.row-wrapper .vc_row-o-columns-top {
  -webkit-align-content: flex-start;
  -ms-flex-line-pack: start;
  align-content: flex-start; }

.row-wrapper .vc_row-o-columns-bottom {
  -webkit-align-content: flex-end;
  -ms-flex-line-pack: end;
  align-content: flex-end; }

.row-wrapper .vc_row-o-columns-middle {
  -webkit-align-content: center;
  -ms-flex-line-pack: center;
  align-content: center; }

.row-wrapper .vc_row-o-columns-bottom::after,
.row-wrapper .vc_row-o-columns-middle::after,
.row-wrapper .vc_row-o-columns-top::after {
  content: '';
  width: 100%;
  height: 0;
  overflow: hidden;
  visibility: hidden;
  display: block; }

.row-wrapper {
  width: 100%;
  position: relative; }

.row-parallax {
  position: absolute !important;
  left: 0;
  top: 0;
  bottom: 0;
  width: inherit; }

.classic .columns {
  position: relative; }

.row-image-overlay {
  position: absolute !important;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0; }

.classic .page-header-title {
  margin: 60px 0;
  text-align: center; }

.page-header-title h3 {
  margin: 0; }

.row-wrapper > div:not(.vc_clearfix) {
  position: relative;
  z-index: 1; }

div.wpb_button, div.wpb_content_element, ul.wpb_thumbnails-fluid > li {
  margin-bottom: 30px; }

.nav-solid .page-wrapper {
  color: #fff; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsImZvdW5kYXRpb24vdXRpbC9fdXRpbC5zY3NzIiwiZm91bmRhdGlvbi91dGlsL191bml0LnNjc3MiLCJmb3VuZGF0aW9uL3V0aWwvX3ZhbHVlLnNjc3MiLCJmb3VuZGF0aW9uL3V0aWwvX2NvbG9yLnNjc3MiLCJmb3VuZGF0aW9uL3V0aWwvX3NlbGVjdG9yLnNjc3MiLCJmb3VuZGF0aW9uL3V0aWwvX2ZsZXguc2NzcyIsImZvdW5kYXRpb24vdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiZm91bmRhdGlvbi91dGlsL19taXhpbnMuc2NzcyIsImZvdW5kYXRpb24vZm91bmRhdGlvbi5zY3NzIiwiZm91bmRhdGlvbi9fZ2xvYmFsLnNjc3MiLCJmb3VuZGF0aW9uL2dyaWQvX2dyaWQuc2NzcyIsImZvdW5kYXRpb24vZ3JpZC9fcm93LnNjc3MiLCJmb3VuZGF0aW9uL2dyaWQvX2NvbHVtbi5zY3NzIiwiZm91bmRhdGlvbi9ncmlkL19zaXplLnNjc3MiLCJmb3VuZGF0aW9uL2dyaWQvX3Bvc2l0aW9uLnNjc3MiLCJmb3VuZGF0aW9uL2dyaWQvX2d1dHRlci5zY3NzIiwiZm91bmRhdGlvbi9ncmlkL19jbGFzc2VzLnNjc3MiLCJmb3VuZGF0aW9uL2dyaWQvX2xheW91dC5zY3NzIiwiZm91bmRhdGlvbi9ncmlkL19mbGV4LWdyaWQuc2NzcyIsImZvdW5kYXRpb24vdHlwb2dyYXBoeS9fdHlwb2dyYXBoeS5zY3NzIiwiZm91bmRhdGlvbi90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCJmb3VuZGF0aW9uL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsImZvdW5kYXRpb24vdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCJmb3VuZGF0aW9uL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19mb3Jtcy5zY3NzIiwiZm91bmRhdGlvbi9mb3Jtcy9fdGV4dC5zY3NzIiwiZm91bmRhdGlvbi9mb3Jtcy9fY2hlY2tib3guc2NzcyIsImZvdW5kYXRpb24vZm9ybXMvX2xhYmVsLnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsImZvdW5kYXRpb24vZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiZm91bmRhdGlvbi9mb3Jtcy9fc2VsZWN0LnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19yYW5nZS5zY3NzIiwiZm91bmRhdGlvbi9mb3Jtcy9fcHJvZ3Jlc3Muc2NzcyIsImZvdW5kYXRpb24vZm9ybXMvX21ldGVyLnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19lcnJvci5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19idXR0b24tZ3JvdXAuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fZmxleC12aWRlby5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fbWVudS5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19tZW51LWljb24uc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19zd2l0Y2guc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFibGUuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFicy5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL190aXRsZS1iYXIuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsImZvdW5kYXRpb24vY29tcG9uZW50cy9fdG9vbHRpcC5zY3NzIiwidG9vbHRpcHN0ZXIuYnVuZGxlLm1pbi5zY3NzIiwiZm9udHMuc2NzcyIsInZhcmlhYmxlcy5zY3NzIiwiZWxlbWVudHMuc2NzcyIsIm5hdmJhci5zY3NzIiwiaG9tZS5zY3NzIiwiYmxvZy5zY3NzIiwibWVudS5zY3NzIiwiZ2FsbGVyeS5zY3NzIiwicmVzZXJ2YXRpb24uc2NzcyIsInJlc2VydmF0aW9uLXBsdWdpbi5zY3NzIiwiY29udGFjdC5zY3NzIiwidGVhbS5zY3NzIiwibW9zYWljLnNjc3MiLCJ3aWRnZXRzLnNjc3MiLCJmb290ZXIuc2NzcyIsImFuaW1hdGlvbnMuc2NzcyIsInZlZ2FzLnNhc3MiLCJtYWluL3ZlZ2FzLnNhc3MiLCJ0cmFuc2l0aW9ucy9ibHVyLnNhc3MiLCJ0cmFuc2l0aW9ucy9idXJuLnNhc3MiLCJ0cmFuc2l0aW9ucy9mYWRlLnNhc3MiLCJ0cmFuc2l0aW9ucy9mbGFzaC5zYXNzIiwidHJhbnNpdGlvbnMvbmVnYXRpdmUuc2FzcyIsInRyYW5zaXRpb25zL3NsaWRlLWRvd24uc2FzcyIsInRyYW5zaXRpb25zL3NsaWRlLWxlZnQuc2FzcyIsInRyYW5zaXRpb25zL3NsaWRlLXJpZ2h0LnNhc3MiLCJ0cmFuc2l0aW9ucy9zbGlkZS11cC5zYXNzIiwidHJhbnNpdGlvbnMvc3dpcmwtbGVmdC5zYXNzIiwidHJhbnNpdGlvbnMvc3dpcmwtcmlnaHQuc2FzcyIsInRyYW5zaXRpb25zL3pvb20taW4uc2FzcyIsInRyYW5zaXRpb25zL3pvb20tb3V0LnNhc3MiLCJhbmltYXRpb25zL2tlbmJ1cm5zLnNhc3MiLCJhbmltYXRpb25zL2tlbmJ1cm5zLWRvd24tbGVmdC5zYXNzIiwiYW5pbWF0aW9ucy9rZW5idXJucy1kb3duLXJpZ2h0LnNhc3MiLCJhbmltYXRpb25zL2tlbmJ1cm5zLWRvd24uc2FzcyIsImFuaW1hdGlvbnMva2VuYnVybnMtbGVmdC5zYXNzIiwiYW5pbWF0aW9ucy9rZW5idXJucy1yaWdodC5zYXNzIiwiYW5pbWF0aW9ucy9rZW5idXJucy11cC1sZWZ0LnNhc3MiLCJhbmltYXRpb25zL2tlbmJ1cm5zLXVwLXJpZ2h0LnNhc3MiLCJhbmltYXRpb25zL2tlbmJ1cm5zLXVwLnNhc3MiLCJzd2lwZXIuc2NzcyIsInN3aXBlYm94LnNjc3MiLCJ3cC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIE1hcmNvIFN0eWxlc2hlZXRcbiAqIGJ5IFB1cnVub1xuICogaHR0cHM6Ly90aGVtZWZvcmVzdC5uZXQvdXNlci9wdXJ1bm9cbiAqIFxuICogcGxlYXNlIGRvIG5vdCBlZGl0IGRpcmVjdGx5IGluIHRoZW1lLCBmb3IgYW55IGFkanVzdG1lbnRzIHdlIHJlY29tZW5kIHVzaW5nIGNoaWxkIHRoZW1lXG4gKiBodHRwczovL2NvZGV4LndvcmRwcmVzcy5vcmcvQ2hpbGRfVGhlbWVzXG4gKlxuICogICpcbiAqIDEuIFx0Rm91bmRhdGlvbiBiYXNlIHN0eWxlc1xuICogMi4gXHRHbG9iYWwgZWxlbWVudHNcbiAqIDMuIFx0TmF2YmFyIHN0eWxlc1xuICogNC4gXHRIb21lIHRlbXBsYXRlcyBzdHlsZXNcbiAqIDUuIFx0QmxvZyB0ZW1wbGF0ZSBzdHlsZXNcbiAqIDYuIFx0Rm9vZCBtZW51IHRlbXBsYXRlcyBzdHlsZXNcbiAqIDcuIFx0R2FsbGVyeSB0ZW1wbGF0ZXMgc3R5bGVzXG4gKiA4LiBcdFJlc3RhdXJhbnQgcmVzZXJ2YXRpb24gc3R5bGVzXG4gKiA5LiBcdENvbnRhY3QgZm9ybSBzdHlsZXNcbiAqIDEwLiBcdFRlYW0gbWVtYmVycyBlbGVtZW50IHN0eWxlc1xuICogMTEuXHRNb3NhaWMgZWxlbWVudCBzdHlsZXNcbiAqIDEyLlx0V2lkZ2V0cyBzaWRlYmFyL2Zvb3RlciBzdHlsZXNcbiAqIDEzLlx0Rm9vdGVyIHN0eWxlc1xuICogMTQuXHRBbmltYXRpb25zXG4gKiAxNS5cdFZlZ2FzIHNsaWRlciBzdHlsZXNcbiAqIDE2Llx0U3dpcGVyIHNsaWRlciBzdHlsZXNcbiAqIDE3Llx0U3dpcGVib3ggc2xpZGVyIHN0eWxlc1xuICovXG5cbi8qKlxuICpcbiAqIDEuIEZvdW5kYXRpb24gYmFzZSBzdHlsZXNcbiAqXG4gKi9cbkBjaGFyc2V0ICd1dGYtOCc7XG5cbkBpbXBvcnQgJ3NldHRpbmdzJztcbkBpbXBvcnQgJ2ZvdW5kYXRpb24vZm91bmRhdGlvbic7XG5cbkBpbXBvcnQgJ3Rvb2x0aXBzdGVyLmJ1bmRsZS5taW4uc2Nzcyc7XG5cbi8vIEZvdW5kYXRpb24gZ2xvYmFsIHN0eWxlc1xuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuXG4vLyBJbmRpdmlkdWFsIGZvdW5kYXRpb24gY29tcG9uZW50c1xuQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuXG4vKipcbiAqXG4gKiAxLjEgRm9udHNcbiAqXG4gKi9cbkBpbXBvcnQgXCJmb250cy5zY3NzXCI7XG4vKipcbiAqXG4gKiAxLjEgVmFyaWFibGVzXG4gKlxuICovXG5AaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblxuLyoqXG4gKlxuICogMi4gR2xvYmFsIGVsZW1lbnRzXG4gKlxuICovXG5AaW1wb3J0IFwiZWxlbWVudHMuc2Nzc1wiO1xuLyoqXG4gKlxuICogMy4gTmF2YmFyIHN0eWxlc1xuICpcbiAqL1xuQGltcG9ydCBcIm5hdmJhci5zY3NzXCI7XG4vKipcbiAqXG4gKiA0LiBIb21lIHRlbXBsYXRlIHN0eWxlc1xuICpcbiAqL1xuQGltcG9ydCBcImhvbWUuc2Nzc1wiO1xuLyoqXG4gKlxuICogNS4gQmxvZyB0ZW1wbGF0ZSBzdHlsZXNcbiAqXG4gKi9cbkBpbXBvcnQgXCJibG9nLnNjc3NcIjtcbi8qKlxuICpcbiAqIDYuIEZvb2QgbWVudSB0ZW1wbGF0ZXMgc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwibWVudS5zY3NzXCI7XG4vKipcbiAqXG4gKiA3LiBHYWxsZXJ5IHRlbXBsYXRlcyBzdHlsZXNcbiAqXG4gKi9cbkBpbXBvcnQgXCJnYWxsZXJ5LnNjc3NcIjtcbi8qKlxuICpcbiAqIDguIFJlc3RhdXJhbnQgcmVzZXJ2YXRpb24gc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwicmVzZXJ2YXRpb24uc2Nzc1wiO1xuQGltcG9ydCBcInJlc2VydmF0aW9uLXBsdWdpbi5zY3NzXCI7XG4vKipcbiAqXG4gKiA5LiBDb250YWN0IGZvcm0gc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwiY29udGFjdC5zY3NzXCI7XG4vKipcbiAqXG4gKiAxMC4gVGVhbSBtZW1iZXJzIGVsZW1lbnQgc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwidGVhbS5zY3NzXCI7XG4vKipcbiAqXG4gKiAxMS4gTW9zYWljIGVsZW1lbnQgc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwibW9zYWljLnNjc3NcIjtcbi8qKlxuICpcbiAqIDEyLiBXaWRnZXRzIHNpZGViYXIvZm9vdGVyIHN0eWxlc1xuICpcbiAqL1xuQGltcG9ydCBcIndpZGdldHMuc2Nzc1wiO1xuLyoqXG4gKlxuICogMTMuIEZvb3RlciBzdHlsZXNcbiAqXG4gKi9cbkBpbXBvcnQgXCJmb290ZXIuc2Nzc1wiO1xuLyoqXG4gKlxuICogMTQuIEFuaW1hdGlvbnNcbiAqXG4gKi9cbkBpbXBvcnQgXCJhbmltYXRpb25zLnNjc3NcIjtcbi8qKlxuICpcbiAqIDE1LiBWZWdhcyBzbGlkZXIgc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwidmVnYXMuc2Fzc1wiO1xuLyoqXG4gKlxuICogMTYuIFN3aXBlciBzbGlkZXIgc3R5bGVzXG4gKlxuICovXG5AaW1wb3J0IFwic3dpcGVyLnNjc3NcIjtcblxuLyoqXG4gKlxuICogMTcuIFN3aXBlYm94IHNsaWRlciBzdHlsZXNcbiAqXG4gKi9cbkBpbXBvcnQgXCJzd2lwZWJveC5zY3NzXCI7XG5cblxuLyoqXG4gKlxuICogMTguIFdvcmRwcmVzcyBzcGVjaWZjIHN0eWxlc1xuICpcbiAqL1xuXG5AaW1wb3J0IFwid3Auc2Nzc1wiO1xuXG5cblxuXG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3Ncbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vICBUYWJsZSBvZiBDb250ZW50czpcbi8vXG4vLyAgIDEuIEdsb2JhbFxuLy8gICAyLiBCcmVha3BvaW50c1xuLy8gICAzLiBUaGUgR3JpZFxuLy8gICA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAgIDYuIEFiaWRlXG4vLyAgIDcuIEFjY29yZGlvblxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxuLy8gICA5LiBCYWRnZVxuLy8gIDEwLiBCcmVhZGNydW1ic1xuLy8gIDExLiBCdXR0b25cbi8vICAxMi4gQnV0dG9uIEdyb3VwXG4vLyAgMTMuIENhbGxvdXRcbi8vICAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAgMTUuIERyaWxsZG93blxuLy8gIDE2LiBEcm9wZG93blxuLy8gIDE3LiBEcm9wZG93biBNZW51XG4vLyAgMTguIEZsZXggVmlkZW9cbi8vICAxOS4gRm9ybXNcbi8vICAyMC4gTGFiZWxcbi8vICAyMS4gTWVkaWEgT2JqZWN0XG4vLyAgMjIuIE1lbnVcbi8vICAyMy4gTWV0ZXJcbi8vICAyNC4gT2ZmLWNhbnZhc1xuLy8gIDI1LiBPcmJpdFxuLy8gIDI2LiBQYWdpbmF0aW9uXG4vLyAgMjcuIFByb2dyZXNzIEJhclxuLy8gIDI4LiBSZXZlYWxcbi8vICAyOS4gU2xpZGVyXG4vLyAgMzAuIFN3aXRjaFxuLy8gIDMxLiBUYWJsZVxuLy8gIDMyLiBUYWJzXG4vLyAgMzMuIFRodW1ibmFpbFxuLy8gIDM0LiBUaXRsZSBCYXJcbi8vICAzNS4gVG9vbHRpcFxuLy8gIDM2LiBUb3AgQmFyXG5cbkBpbXBvcnQgJ2ZvdW5kYXRpb24vdXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMjE5OWU4LFxuICBzZWNvbmRhcnk6ICM3NzcsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjZWM1ODQwLFxuKTtcbiRsaWdodC1ncmF5OiAjZjVmNWY1O1xuJG1lZGl1bS1ncmF5OiAjZGRkO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRkYXJrMi1ncmF5OiAjNjk2OTY5O1xuJGJsYWNrOiAjMTExO1xuJHdoaXRlOiAjZmZmO1xuJGJvZHktYmFja2dyb3VuZDogI2ZlZmVmZTtcbiRib2R5LWZvbnQtY29sb3I6ICMzMzM7XG4kYWNjZW50LWNvbG9yOiAjZjEwYTRhO1xuJGJvZHktZm9udC1mYW1pbHk6ICdMYXRvJywnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xuJGdsb2JhbC13ZWlnaHQtbm9ybWFsOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xuJGdsb2JhbC1yYWRpdXM6IDA7XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI1cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGJsb2NrLWdyaWQtbWF4OiA4O1xuXG4vLyA0LiBCYXNlIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAnTGF0byc7XG4kc3ViaGVhZGVyLWZvbnQtZmFtaWx5OiAnTG9yYSc7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlO1xuJGhlYWRlci1zaXplczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6IDI0LFxuICAgICdoMic6IDIwLFxuICAgICdoMyc6IDE5LFxuICAgICdoNCc6IDE4LFxuICAgICdoNSc6IDE3LFxuICAgICdoNic6IDE2LFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAzNixcbiAgICAnaDInOiAzMixcbiAgICAnaDMnOiAyOCxcbiAgICAnaDQnOiAyNCxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxNixcbiAgKSxcbiAgbGFyZ2U6IChcbiAgICAnaDEnOiA0OCxcbiAgICAnaDInOiA0MCxcbiAgICAnaDMnOiAzMSxcbiAgICAnaDQnOiAyNSxcbiAgICAnaDUnOiAyMCxcbiAgICAnaDYnOiAxOCxcbiAgKSxcbik7XG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjc1ZW07XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW07XG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheTtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCk7XG4kYmFkZ2UtcGFkZGluZzogMC4zZW07XG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtO1xuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDogJGJsYWNrO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRjYWxsb3V0LWxpbmstdGludDogMzAlO1xuXG4vLyAxNC4gQ2xvc2UgQnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAxcmVtO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtO1xuJGNsb3NlYnV0dG9uLXNpemU6IDJlbTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XG5cbi8vIDE1LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuXG4vLyAxNi4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE3LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyAxOC4gRmxleCBWaWRlb1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kZmxleHZpZGVvLXJhdGlvOiA0IGJ5IDM7XG4kZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW46IDE2IGJ5IDk7XG5cbi8vIDE5LiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogZGVmYXVsdDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiBmb3JlZ3JvdW5kKCRsYWJlbC1iYWNrZ3JvdW5kKTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMi4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KTtcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gMjMuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNC4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kb2ZmY2FudmFzLXppbmRleDogLTE7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KTtcblxuLy8gMjUuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IDAuMXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW07XG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwO1xuXG4vLyAyNi4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCk7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpO1xuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudDogJHByaW1hcnktY29sb3I7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWU7XG5cbi8vIDI3LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjguIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXg6IDEwMDU7XG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpO1xuXG4vLyAyOS4gU2xpZGVyXG4vLyAtLS0tLS0tLS0tXG5cbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4kc2xpZGVyLWhlaWdodDogMC41cmVtO1xuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzAuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW07XG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAzMS4gVGFibGVcbi8vIC0tLS0tLS0tLVxuXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JTtcbiR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiU7XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcblxuLy8gMzIuIFRhYnNcbi8vIC0tLS0tLS0tXG5cbiR0YWItbWFyZ2luOiAwO1xuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4kdGFiLWV4cGFuZC1tYXg6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gMzMuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpO1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSk7XG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDM0LiBUaXRsZSBCYXJcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjaztcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlO1xuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbTtcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xuXG4vLyAzNS4gVG9vbHRpcFxuLy8gLS0tLS0tLS0tLS1cblxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG4kdG9vbHRpcC1jb2xvcjogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzYuIFRvcCBCYXJcbi8vIC0tLS0tLS0tLS0tXG5cbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQ7XG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW07XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAndW5pdCc7XG5AaW1wb3J0ICd2YWx1ZSc7XG5AaW1wb3J0ICdjb2xvcic7XG5AaW1wb3J0ICdzZWxlY3Rvcic7XG5AaW1wb3J0ICdmbGV4JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnbWl4aW5zJztcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cbiAgXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIERldGVybWluZSBpZiBhIHZhbHVlIGlzIG5vdCBmYWxzZXksIGluIENTUyB0ZXJtcy4gRmFsc2V5IHZhbHVlcyBhcmUgYG51bGxgLCBgbm9uZWAsIGAwYCB3aXRoIGFueSB1bml0LCBvciBhbiBlbXB0eSBsaXN0LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJHZhbCAtIFZhbHVlIHRvIGNoZWNrLlxuLy8vXG4vLy8gQHJldHVybnMge0Jvb2xlYW59IGB0cnVlYCBpZiBgJHZhbGAgaXMgbm90IGZhbHNleS5cbkBmdW5jdGlvbiBoYXMtdmFsdWUoJHZhbCkge1xuICBAaWYgJHZhbCA9PSBudWxsIG9yICR2YWwgPT0gbm9uZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAaWYgdHlwZS1vZigkdmFsKSA9PSAnbnVtYmVyJyBhbmQgc3RyaXAtdW5pdCgkdmFsKSA9PSAwIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG4gIEBpZiB0eXBlLW9mKCR2YWwpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCR2YWwpID09IDAge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8gRGV0ZXJtaW5lIGEgdG9wL3JpZ2h0L2JvdHRvbS9yaWdodCB2YWx1ZSBvbiBhIHBhZGRpbmcsIG1hcmdpbiwgZXRjLiBwcm9wZXJ0eSwgbm8gbWF0dGVyIGhvdyBtYW55IHZhbHVlcyB3ZXJlIHBhc3NlZCBpbi4gVXNlIHRoaXMgZnVuY3Rpb24gaWYgeW91IG5lZWQgdG8ga25vdyB0aGUgc3BlY2lmaWMgc2lkZSBvZiBhIHZhbHVlLCBidXQgZG9uJ3Qga25vdyBpZiB0aGUgdmFsdWUgaXMgdXNpbmcgYSBzaG9ydGhhbmQgZm9ybWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fE51bWJlcn0gJHZhbCAtIFZhbHVlIHRvIGFuYWx5emUuIFNob3VsZCBiZSBhIHNob3J0aGFuZCBzaXppbmcgcHJvcGVydHksIGUuZy4gXCIxZW0gMmVtIDFlbVwiXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdG8gcmV0dXJuLiBTaG91bGQgYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIHNpbmdsZSB2YWx1ZSBiYXNlZCBvbiBgJHZhbGAgYW5kIGAkc2lkZWAuXG5AZnVuY3Rpb24gZ2V0LXNpZGUoJHZhbCwgJHNpZGUpIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCR2YWwpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDEge1xuICAgIEByZXR1cm4gJHZhbDtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAxKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDMge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gNCB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgcmlnaHQ6IG50aCgkdmFsLCAyKSxcbiAgICAgIGJvdHRvbTogbnRoKCR2YWwsIDMpLFxuICAgICAgbGVmdDogbnRoKCR2YWwsIDQpLFxuICAgICksICRzaWRlKTtcbiAgfVxufVxuXG4vLy8gR2l2ZW4gYm9yZGVyICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBib3JkZXIsIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgd2lkdGgsIHN0eWxlLCBhbmQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWwgLSBCb3JkZXIgdmFsdWUgdG8gZmluZCBhIHZhbHVlIGluLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gLSBCb3JkZXIgY29tcG9uZW50IHRvIGV4dHJhY3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IElmIHRoZSB2YWx1ZSBleGlzdHMsIHJldHVybnMgdGhlIHZhbHVlLiBJZiB0aGUgdmFsdWUgaXMgbm90IGluIHRoZSBib3JkZXIgZGVmaW5pdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgMHB4IHdpZHRoLCBzb2xpZCBzdHlsZSwgb3IgYmxhY2sgYm9yZGVyLlxuQGZ1bmN0aW9uIGdldC1ib3JkZXItdmFsdWUoJHZhbCwgJGVsZW0pIHtcbiAgLy8gRmluZCB0aGUgd2lkdGgsIHN0eWxlLCBvciBjb2xvciBhbmQgcmV0dXJuIGl0XG4gIEBlYWNoICR2IGluICR2YWwge1xuICAgICR0eXBlOiB0eXBlLW9mKCR2KTtcbiAgICBAaWYgJGVsZW0gPT0gd2lkdGggYW5kICR0eXBlID09ICdudW1iZXInIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICAgIEBpZiAkZWxlbSA9PSBzdHlsZSBhbmQgJHR5cGUgPT0gJ3N0cmluZycge1xuICAgICAgQHJldHVybiAkdjtcbiAgICB9XG4gICAgQGlmICRlbGVtID09IGNvbG9yIGFuZCAkdHlwZSA9PSAnY29sb3InIHtcbiAgICAgIEByZXR1cm4gJHY7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmYXVsdHNcbiAgJGRlZmF1bHRzOiAoXG4gICAgd2lkdGg6IDAsXG4gICAgc3R5bGU6IHNvbGlkLFxuICAgIGNvbG9yOiAjMDAwLFxuICApO1xuXG4gIEByZXR1cm4gbWFwLWdldCgkZGVmYXVsdHMsICRlbGVtKTtcbn1cblxuLy8vIEZpbmRzIGEgdmFsdWUgaW4gYSBuZXN0ZWQgbWFwLlxuLy8vIEBsaW5rIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9kZWVwLWdldHNldC1tYXBzLyBEZWVwIEdldC9TZXQgaW4gTWFwc1xuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gcHVsbCBhIHZhbHVlIGZyb20uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXlzLi4uIC0gS2V5cyB0byB1c2Ugd2hlbiBsb29raW5nIGZvciBhIHZhbHVlLlxuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvdW5kIGluIHRoZSBtYXAuXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gIH1cbiAgQHJldHVybiAkbWFwO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGxpZ2h0bmVzcyBvZiBgJGNvbG9yYCwgYW5kIGlmIGl0IHBhc3NlcyB0aGUgYCR0aHJlc2hvbGRgIG9mIGxpZ2h0bmVzcywgaXQgcmV0dXJucyB0aGUgYCR5ZXNgIGNvbG9yLiBPdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGAkbm9gIGNvbG9yLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkeW5hbWljYWxseSBvdXRwdXQgYSBmb3JlZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIGEgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsaWdodG5lc3Mgb2YuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHllcyBbJGJsYWNrXSAtIENvbG9yIHRvIHJldHVybiBpZiBgJGNvbG9yYCBpcyBsaWdodC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkbm8gWyR3aGl0ZV0gLSBDb2xvciB0byByZXR1cm4gaWYgYCRjb2xvcmAgaXMgZGFyay5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzYwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cbkBmdW5jdGlvbiBmb3JlZ3JvdW5kKCRjb2xvciwgJHllczogJGJsYWNrLCAkbm86ICR3aGl0ZSwgJHRocmVzaG9sZDogNjAlKSB7XG4gIEBpZiAkY29sb3IgPT0gdHJhbnNwYXJlbnQge1xuICAgICRjb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxuICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJHllcztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkbm87XG4gIH1cbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGxpZ2h0ZXIgaWYgaXQncyBsaWdodCwgb3IgZGFya2VyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWAgdmFyaWFibGUgaW50byB0aGUgbGVnYWN5IGNvbG9yIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gR2VuZXJhdGVzIGEgc2VsZWN0b3Igd2l0aCBldmVyeSB0ZXh0IGlucHV0IHR5cGUuIFlvdSBjYW4gYWxzbyBmaWx0ZXIgdGhlIGxpc3QgdG8gb25seSBvdXRwdXQgYSBzdWJzZXQgb2YgdGhvc2Ugc2VsZWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fEtleXdvcmR9ICR0eXBlcyBbKCldIC0gQSBsaXN0IG9mIHRleHQgaW5wdXQgdHlwZXMgdG8gdXNlLiBMZWF2ZSBibGFuayB0byB1c2UgYWxsIG9mIHRoZW0uXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoJHR5cGVzOiAoKSkge1xuICAkcmV0dXJuOiAoKTtcblxuICAkYWxsLXR5cGVzOlxuICAgIHRleHRcbiAgICBwYXNzd29yZFxuICAgIGRhdGVcbiAgICBkYXRldGltZVxuICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgbW9udGhcbiAgICB3ZWVrXG4gICAgZW1haWxcbiAgICBudW1iZXJcbiAgICBzZWFyY2hcbiAgICB0ZWxcbiAgICB0aW1lXG4gICAgdXJsXG4gICAgY29sb3I7XG5cbiAgQGlmIG5vdCBoYXMtdmFsdWUoJHR5cGVzKSB7XG4gICAgJHR5cGVzOiAkYWxsLXR5cGVzO1xuICB9XG5cbiAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnW3R5cGU9XFwnI3skdHlwZX1cXCddJyksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cbiIsIiQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICdsZWZ0JzogZmxleC1zdGFydCxcbiAgJ3JpZ2h0JzogZmxleC1lbmQsXG4gICdjZW50ZXInOiBjZW50ZXIsXG4gICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbik7XG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLidcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nXG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuXG4gIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgQGlmICRzdHIgPT0gJycge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgQGVsc2Uge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDb252ZXJzIHRoZSBicmVha3BvaW50cyBtYXAgdG8gYSBVUkwtZW5jb2RlZCBzdHJpbmcsIGxpa2UgdGhpczogYGtleTE9dmFsdWUxJmtleTI9dmFsdWUyYC4gVGhlIHZhbHVlIGlzIHRoZW4gZHJvcHBlZCBpbnRvIHRoZSBDU1MgZm9yIGEgc3BlY2lhbCBgPG1ldGE+YCB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdC4gVGhpcyBpcyBob3cgd2UgdHJhbnNmZXIgdmFsdWVzIGZyb20gU2FzcyB0byBKYXZhU2NyaXB0LCBzbyB0aGV5IGNhbiBiZSBkZWZpbmVkIGluIG9uZSBwbGFjZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7U3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBtYXAncyBjb250ZW50cy5cbkBmdW5jdGlvbiAtemYtYnAtc2VyaWFsaXplKCRtYXApIHtcbiAgJHN0cjogJyc7XG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAkc3RyOiAkc3RyICsgJGtleSArICc9JyArIC16Zi1icC10by1lbSgkdmFsdWUpICsgJyYnO1xuICB9XG4gICRzdHI6IHN0ci1zbGljZSgkc3RyLCAxLCAtMik7XG5cbiAgQHJldHVybiAkc3RyO1xufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQoJG1hcCwgJGtleSkge1xuXG4gIC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG4gICR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICRpOiAwO1xuXG4gIC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcbiAgQGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuICAgICRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcbiAgfVxuXG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAuIElmIHRoZSBjb25maWcgbWFwIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC4gSWYgdGhlIGNvbmZpZyBtYXAgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIElucHV0IGNvbmZpZyBtYXAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8gTGVnYWN5IGJyZWFrcG9pbnQgdmFyaWFibGVzXG4vLyBUaGVzZSB3aWxsIGJlIHJlbW92ZWQgaW4gNi4zXG4kc21hbGwtdXA6IG51bGw7XG4kc21hbGwtb25seTogbnVsbDtcbiRtZWRpdW0tdXA6IG51bGw7XG4kbWVkaXVtLW9ubHk6IG51bGw7XG4kbGFyZ2UtdXA6IG51bGw7XG4kbGFyZ2Utb25seTogbnVsbDtcbiR4bGFyZ2UtdXA6IG51bGw7XG4keGxhcmdlLW9ubHk6IG51bGw7XG4keHhsYXJnZS11cDogbnVsbDtcbiR4eGxhcmdlLW9ubHk6IG51bGw7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRtYXA6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRtYXA6IG1hcC1yZW1vdmUoJG1hcCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgQGVhY2ggJHNpemUgaW4gJG1hcCB7XG4gICAgJC16Zi1zaXplOiAkc2l6ZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi4yLjRcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgtdmlkZW8nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmV2ZWFsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGl0bGUtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2x0aXAnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKCRmbGV4OiBmYWxzZSkge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIENvbG9yVmFyaWFibGUsIFF1YWxpZnlpbmdFbGVtZW50LCBWZW5kb3JQcmVmaXhcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMyMTk5ZTgsXG4gIHNlY29uZGFyeTogIzc3NyxcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNlYzU4NDAsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG4kc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XG4kc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpO1xuJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcblxuLy8gUmVtb3ZlIHRoaXMgaW4gNi4zXG4kLXpmLW1lbnUtaWNvbi1pbXBvcnRlZDogZmFsc2U7XG4kLXpmLWZsZXgtY2xhc3Nlcy1pbXBvcnRlZDogZmFsc2U7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcblxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJZFNlbGVjdG9yXG4gICNtYXBfY2FudmFzLFxuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvKipcbiAgICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAgICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICAgKi9cblxuICBodG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICAgKi9cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gICAqIGFuZCBGaXJlZm94LlxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICAgKi9cblxuICBhcnRpY2xlLFxuICBhc2lkZSxcbiAgZGV0YWlscyxcbiAgZmlnY2FwdGlvbixcbiAgZmlndXJlLFxuICBmb290ZXIsXG4gIGhlYWRlcixcbiAgaGdyb3VwLFxuICBtYWluLFxuICBtZW51LFxuICBuYXYsXG4gIHNlY3Rpb24sXG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICovXG5cbiAgYXVkaW8sXG4gIGNhbnZhcyxcbiAgcHJvZ3Jlc3MsXG4gIHZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICAgKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICAgKi9cblxuICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAgICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICAgKi9cblxuICBbaGlkZGVuXSxcbiAgdGVtcGxhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBMaW5rc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICovXG5cbiAgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICAgKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gICAqL1xuXG4gIGE6YWN0aXZlLFxuICBhOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGIsXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBkZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gICAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAgICovXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICovXG5cbiAgc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICAgKi9cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgY29kZSxcbiAga2JkLFxuICBwcmUsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAgICovXG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKi9cblxuICBidXR0b25bZGlzYWJsZWRdLFxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAgICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICAqL1xuXG4gIGlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICAgKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG5cbiAgLyogZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH0gKi9cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICAgKi9cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICAgKi9cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gVGhlIG1heGltdW0gd2lkdGggb2YgYSByb3cuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBUaGUgZGVmYXVsdCBjb2x1bW4gY291bnQgb2YgYSBncmlkLiBDaGFuZ2luZyB0aGlzIHZhbHVlIGFmZmVjdHMgdGhlIGxvZ2ljIG9mIHRoZSBncmlkIG1peGlucywgYW5kIHRoZSBudW1iZXIgb2YgQ1NTIGNsYXNzZXMgb3V0cHV0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdyaWQtY29sdW1uLWNvdW50OiAxMiAhZGVmYXVsdDtcblxuLy8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiBjb2x1bW5zIGF0IGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuIFRvIHVzZSBqdXN0IG9uZSBzaXplLCBzZXQgdGhlIHZhcmlhYmxlIHRvIGEgbnVtYmVyIGluc3RlYWQgb2YgYSBtYXAuXG4vLy8gQHR5cGUgTWFwIHwgTGVuZ3RoXG4vLy8gQHNpbmNlIDYuMS4wXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXG4gIHNtYWxsOiAyMHB4LFxuICBtZWRpdW06IDMwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgd2lsbCBhbGlnbiB0byB0aGUgb3Bwb3NpdGUgZWRnZSBvZiB0aGUgcm93LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gVGhlIGhpZ2hlc3QgbnVtYmVyIG9mIGAueC11cGAgY2xhc3NlcyBhdmFpbGFibGUgd2hlbiB1c2luZyB0aGUgYmxvY2sgZ3JpZCBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmxvY2stZ3JpZC1tYXg6IDggIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsIHZhbHVlIHRvIHN0b3JlIHRoZSBlbmQgY29sdW1uIGZsb2F0IGRpcmVjdGlvblxuJC16Zi1lbmQtZmxvYXQ6IGlmKCRncmlkLWNvbHVtbi1hbGlnbi1lZGdlLCAkZ2xvYmFsLXJpZ2h0LCAkZ2xvYmFsLWxlZnQpO1xuXG4vLyBUaGUgbGFzdCBwaWVjZSB0byB0cmFuc2l0aW9uIHRoZSByZXNwb25zaXZlIGd1dHRlciBmZWF0dXJlXG4vLyBSZW1vdmUgdGhpcyBpbiA2LjNcbiRncmlkLWNvbHVtbi1yZXNwb25zaXZlLWd1dHRlcjogbnVsbCAhZGVmYXVsdDtcbkBpZiAkZ3JpZC1jb2x1bW4tcmVzcG9uc2l2ZS1ndXR0ZXIge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBEZWJ1Z1N0YXRlbWVudFxuICBAd2FybiAnUmVuYW1lICRncmlkLWNvbHVtbi1yZXNwb25zaXZlLWd1dHRlciB0byAkZ3JpZC1jb2x1bW4tZ3V0dGVyIHRvIHJlbW92ZSB0aGlzIHdhcm5pbmcuJztcbiAgJGdyaWQtY29sdW1uLWd1dHRlcjogJGdyaWQtY29sdW1uLXJlc3BvbnNpdmUtZ3V0dGVyO1xufVxuXG4vLyBJZiBhIHNpbmdsZSB2YWx1ZSBpcyBwYXNzZWQgYXMgYSBndXR0ZXIsIGNvbnZlcnQgaXQgdG8gYSBtYXAgc28gdGhlIGNvZGUga25vd3Mgd2hhdCB0byBkbyB3aXRoIGl0XG5AaWYgdHlwZS1vZigkZ3JpZC1jb2x1bW4tZ3V0dGVyKSA9PSAnbnVtYmVyJyB7XG4gICRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgICBzbWFsbDogJGdyaWQtY29sdW1uLWd1dHRlcixcbiAgKTtcbn1cblxuQGltcG9ydCAncm93JztcbkBpbXBvcnQgJ2NvbHVtbic7XG5AaW1wb3J0ICdzaXplJztcbkBpbXBvcnQgJ3Bvc2l0aW9uJztcbkBpbXBvcnQgJ2d1dHRlcic7XG5AaW1wb3J0ICdjbGFzc2VzJztcbkBpbXBvcnQgJ2xheW91dCc7XG5cbkBpbXBvcnQgJ2ZsZXgtZ3JpZCc7XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1yb3ctd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgcm93LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICR3aWR0aDogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcik7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIG1heC13aWR0aDogJHdpZHRoO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB8bnVsbH0gJGd1dHRlciBbbnVsbF0gLSBHdXR0ZXIgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIHRoZSBtYXJnaW5zLiBTZXQgdG8gYG51bGxgIHRvIHJlZmVyIHRvIHRoZSByZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncy5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicge1xuICAgICRndXR0ZXI6ICgkLXpmLXplcm8tYnJlYWtwb2ludDogJGd1dHRlcik7XG4gIH1cblxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKCR2YWx1ZSkgLyAyICogLTE7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgc3RyaW5nIG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gICR3aWR0aDogMCU7XG5cbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICB9XG5cbiAgLy8gTGFzdCBjb2x1bW4gYWxpZ25tZW50XG4gIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFdpZHRoIG9mIHRoZSBndXR0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBjb2x1bW4gcm93LlxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyOiAkZ3V0dGVyKTtcblxuICAmLFxuICAmOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBmdW5jdGlvbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxuKSB7XG4gIEByZXR1cm4gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AbWl4aW4gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXJvdygkZ3V0dGVyKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgd2lkdGggb2YgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR3aWR0aCBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIHRvIG1ha2UgdGhlIGNvbHVtbi4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLXNpemUoXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICB3aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tc2l6ZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tc2l6ZVxuQG1peGluIGdyaWQtY29sLXNpemUoXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLy8vIFVuLWNvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlLWFkZGluZyB0aGUgcGFkZGluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLlxuQG1peGluIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bmNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoJGd1dHRlcik7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBPdXRwdXRzIENTUyBjbGFzc2VzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiBmb3VuZGF0aW9uLWdyaWQoXG4gICRyb3c6ICdyb3cnLFxuICAkY29sdW1uOiAnY29sdW1uJyxcbiAgJGNvbHVtbi1yb3c6ICdjb2x1bW4tcm93JyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCdcbikge1xuICAvLyBSb3dcbiAgLiN7JHJvd30ge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgLy8gQ29sbGFwc2luZ1xuICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJiAuI3skcm93fSB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRncmlkLWNvbHVtbi1ndXR0ZXIpO1xuXG4gICAgICAmLiN7JGNvbGxhcHNlfSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgKGZ1bGwtd2lkdGgpIHJvd1xuICAgICYuI3skZXhwYW5kZWR9IHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuI3skY29sdW1ufSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2w7XG5cbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJi4jeyRlbmR9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC4jeyRyb3d9IC4jeyRjb2x1bW59LiN7JHJvd30uI3skcm93fSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gQ29sdW1uIHdpZHRoXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtc2l6ZSgkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgICAgQGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS0jeyRwdXNofS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtcG9zKCRpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVsbH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygtJGkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skb2Zmc2V0fS0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLW9mZigkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSwgXCIuI3skY29sdW1ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cblxuICAgICAgLiN7JHJvd30ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRleHBhbmRlZH0uI3skcm93fSAuI3skLXpmLXNpemV9LSN7JGNvbGxhcHNlfS4jeyRyb3d9IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jb2xsYXBzZX0ge1xuICAgICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGdyaWQtY29sdW1uLWd1dHRlciwgJC16Zi1zaXplKTtcblxuICAgICAgPiAuI3skY29sdW1ufSB7IEBpbmNsdWRlIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcik7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicge1xuICAgIC5jb2x1bW5zIHtcbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFBsYWNlaG9sZGVySW5FeHRlbmRcbiAgICAgIEBleHRlbmQgLmNvbHVtbjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZ3V0dGVyXG4vLy8gICBUaGUgZ3V0dGVyIHRvIGFwcGx5IHRvIGNoaWxkIGVsZW1lbnRzLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gJGdyaWQtY29sdW1uLWd1dHRlciB3aWxsIHVzZSB0aGUgdmFsdWVzIGluIHRoZSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIG1hcCwgaW5jbHVkaW5nIGJyZWFrcG9pbnQgc2l6ZXMuXG4vLy8gICAtIEEgZml4ZWQgbnVtZXJpYyB2YWx1ZSB3aWxsIGFwcGx5IHRoaXMgZ3V0dGVyIHRvIGFsbCBicmVha3BvaW50cy5cbkBtaXhpbiBncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nLFxuICAkZ3V0dGVyOiBudWxsXG4pIHtcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMS8kbik7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAgIC8vIElmIGEgJGd1dHRlciB2YWx1ZSBpcyBwYXNzZWRcbiAgICBAaWYoJGd1dHRlcikge1xuICAgICAgLy8gR3V0dGVyc1xuICAgICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcbiAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRvICRuIHtcbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1yb3ctd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgcm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgYmFzaWMgc3R5bGVzIGZyb20gYmVpbmcgb3V0cHV0LiBVc2VmdWwgaWYgeW91J3JlIGNhbGxpbmcgdGhpcyBtaXhpbiBvbiB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLCBhcyBpdCBwcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIG91dHB1dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkd2lkdGg6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiYXNlOiB0cnVlLFxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMsICRiYXNlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGBmbGV4YCBwcm9wZXJ0eSBmb3IgYSBmbGV4IGdyaWQgY29sdW1uLiBJdCBhY2NlcHRzIGFsbCBvZiB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJhc2ljIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiwgYWxvbmcgd2l0aCB0d28gZXh0cmFzOlxuLy8vICAgLSBgbnVsbGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IG51bGwpIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgJGZsZXg6IDEgMSAwcHg7XG5cbiAgQGlmICRjb2x1bW5zID09IHNocmluayB7XG4gICAgJGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIEBlbHNlIGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjZSBiZXR3ZWVuIGNvbHVtbnMsIGFkZGVkIGFzIGEgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogbnVsbCxcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBHdXR0ZXJzXG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCR2YWx1ZSkgLyAyO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdudW1iZXInIGFuZCBzdHJpcC11bml0KCRndXR0ZXIpID4gMCB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICB9XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gbnVsbCB7XG4gICAgbWluLXdpZHRoOiBpbml0aWFsO1xuICB9XG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggZ3JpZCBjb2x1bW4uIENvbHVtbnMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtZ3JpZC1vcmRlcigkb3JkZXI6IDApIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1vcmRlcigpLiBmbGV4LWdyaWQtb3JkZXIoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcbiAgQGluY2x1ZGUgZmxleC1vcmRlcigkb3JkZXIpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBjb2x1bW5zIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdy1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1hbGlnbigpLiBmbGV4LWdyaWQtcm93LWFsaWduKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi4zLic7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHgsICR5KTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigkeTogbnVsbCkge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmbGV4LWFsaWduLXNlbGYoKS4gZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuMy4nO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xuICAvLyBSb3dcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblxuICAgIC8vIE5lc3RpbmcgYmVoYXZpb3JcbiAgICAmIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdyhuZXN0LCAkYmFzZTogZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCAkLXpmLXNpemUpO1xuXG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXIpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6aW5nIChzaHJpbmspXG4gIC5zaHJpbmsge1xuICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgLy8gUmVtb3ZlIHRoZXNlIGluIDYuM1xuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuY29sdW1uLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFBsYWNlaG9sZGVySW5FeHRlbmRcbiAgICBAZXh0ZW5kIC5jb2x1bW47XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vLy9cblxuLy8gc2Nzcy1saW50OmRpc2FibGUgRGVjbGFyYXRpb25PcmRlclxuXG4vLyBCYXNlIHR5cG9ncmFwaHkgc3R5bGVzICh0YWdzIG9ubHkpXG5AaW1wb3J0ICdiYXNlJztcblxuLy8gVHlwb2dyYXBoeSBoZWxwZXIgY2xhc3NlcyAoY2xhc3NlcyBvbmx5KVxuQGltcG9ydCAnaGVscGVycyc7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzZXNcbkBpbXBvcnQgJ2FsaWdubWVudCc7XG5cbi8vIFByaW50IHN0eWxlc1xuQGltcG9ydCAncHJpbnQnO1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5IHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByaW50LXN0eWxlcztcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPuKAlDxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFNpemVzIG9mIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc2l6ZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXNpemVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogMjQsXG4gICAgJ2gyJzogMjAsXG4gICAgJ2gzJzogMTksXG4gICAgJ2g0JzogMTgsXG4gICAgJ2g1JzogMTcsXG4gICAgJ2g2JzogMTYsXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6IDQ4LFxuICAgICdoMic6IDQwLFxuICAgICdoMyc6IDMxLFxuICAgICdoNCc6IDI1LFxuICAgICdoNSc6IDIwLFxuICAgICdoNic6IDE2LFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlb2NyYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1tYXJnaW4tYm90dG9tO1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmVoZWlnaHQ7XG5cbiAgICBzbWFsbCB7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzaXplc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAgICN7JGhlYWRlcn0ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoJGZvbnQtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIge1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gIH1cblxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG5cblxuLmFsdC1oIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgfVxuICBoMyB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gIH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgLy8gVXNlIHRvIHJlbW92ZSB0aGUgYnVsbGV0cyBmcm9tIGFuIHVub3JkZXJlZCBsaXN0XG4gIC5uby1idWxsZXQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gR2xvYmFsIHNwYWNpbmcgZm9yIGZvcm0gZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgJ3RleHQnO1xuQGltcG9ydCAnY2hlY2tib3gnO1xuQGltcG9ydCAnbGFiZWwnO1xuQGltcG9ydCAnaGVscC10ZXh0JztcbkBpbXBvcnQgJ2lucHV0LWdyb3VwJztcbkBpbXBvcnQgJ2ZpZWxkc2V0JztcbkBpbXBvcnQgJ3NlbGVjdCc7XG5AaW1wb3J0ICdyYW5nZSc7XG5AaW1wb3J0ICdwcm9ncmVzcyc7XG5AaW1wb3J0ICdtZXRlcic7XG5AaW1wb3J0ICdlcnJvcic7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm1zIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLXRleHQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Q7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1lcnJvcjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZm9jdXNlZCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBmb2N1c2VkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG5cbiAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICB9XG5cbiAgLy8gRm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LXNoYWRvdy1mb2N1cztcblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXRleHQge1xuICAvLyBUZXh0IGlucHV0c1xuICAje3RleHQtaW5wdXRzKCl9LFxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyBUZXh0IGFyZWFzXG4gIHRleHRhcmVhIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmW3Jvd3NdIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEge1xuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC8vIERpc2FibGVkL3JlYWRvbmx5IHN0YXRlXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb24gYnV0dG9uLWxpa2UgaW5wdXRzXG4gIFt0eXBlPSdzdWJtaXQnXSxcbiAgW3R5cGU9J2J1dHRvbiddIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xuICBbdHlwZT0nbnVtYmVyJ10ge1xuICAgIEBpZiBub3QgJGlucHV0LW51bWJlci1zcGlubmVycyB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcbn1cblxuQG1peGluIGZvcm0tbGFiZWwtbWlkZGxlIHtcbiAgJGlucHV0LWJvcmRlci13aWR0aDogZ2V0LWJvcmRlci12YWx1ZSgkaW5wdXQtYm9yZGVyLCB3aWR0aCk7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDAsICRnbG9iYWwtcmFkaXVzIDAgMCAkZ2xvYmFsLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGdsb2JhbC1yYWRpdXMgMCAwICRnbG9iYWwtcmFkaXVzLCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICVpbnB1dC1ncm91cC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbnB1dC1wcmVmaXgtY29sb3I7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDElO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ1NlbGVjdG9yXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogKCRmb3JtLXNwYWNpbmcgKiAxLjUpO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNsaWRlcidzIHRyYWNrLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgYWN0aXZlIGZpbGwgY29sb3Igb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaGVpZ2h0IG9mIHRoZSBoYW5kbGUgb2YgdGhlIHNsaWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiB0aGUgaGFuZGxlIG9mIHRoZSBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgaGFuZGxlIGZvciB0aGUgc2xpZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSBhbW91bnQgb2YgYSBkaXNhYmxlZCBzbGlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2xpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1yYW5nZS1pbnB1dCB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgJG1hcmdpbjogKCRzbGlkZXItaGFuZGxlLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAvIDI7XG5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuICAgIGJvcmRlcjogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIEBpZiBoYXMtdmFsdWUoJHNsaWRlci1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gQ2hyb21lL1NhZmFyaVxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItaGFuZGxlIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpcmVmb3hcbiAgICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xuICAgICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tdG9wOiAtJG1hcmdpbjtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlclxuICAgICY6Oi1tcy10cmFjayB7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBib3JkZXItdG9wOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgICBib3JkZXItYm90dG9tOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJjo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgIGJvcmRlcjogMDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWZpbGwtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQGF0LXJvb3Qge1xuICAgICAgb3V0cHV0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcHJvZ3Jlc3MtYmFyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHByb2dyZXNzIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBwcm9ncmVzcyBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGEgcHJvZ3Jlc3MgYmFyJ3MgbWV0ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByb2dyZXNzLWVsZW1lbnQge1xuICBwcm9ncmVzcyB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG5cbiAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBGb3IgRmlyZWZveFxuICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMDtcblxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XG5cbiAgICAgIEBpZiBoYXN2YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciBzZXRzIHRoZSBmaWxsIHdpdGggY29sb3JcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBJRSBhbmQgRWRnZSAgXG4gICAgJjo6LW1zLWZpbGx7XG4gICAgICBAaWYgaGFzdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzOyAgXG4gICAgICB9XG5cbiAgICAgIGJvcmRlcjogMDsgICAgIFxuICAgIH0gXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1ldGVyXG4vLy8vXG5cbi8vLyBIZWlnaHQgb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRtZXRlci1oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIG9mIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIE1ldGVyIGZpbGwgZm9yIGFuIG9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhbiBhdmVyYWdlIHZhbHVlIGluIGEgYDxtZXRlcj5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBNZXRlciBmaWxsIGZvciBhIHN1Ym9wdGltYWwgdmFsdWUgaW4gYSBgPG1ldGVyPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBDb2xvclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1ldGVyLWVsZW1lbnQge1xuICBtZXRlciB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRtZXRlci1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAvLyBGb3IgRmlyZWZveFxuICAgIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMDtcblxuICAgIC8vIENocm9tZS9TYWZhcmkvRWRnZVxuICAgICY6Oi13ZWJraXQtbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVudCB7XG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjotd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtZ29vZDtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZhbHVlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcblxuICAgICAgQGlmIGhhcy12YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtZXRlci1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1iYWQ7XG5cbiAgICAgIEBpZiBoYXMtdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Oi1tb3otbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgICBAaWYgaGFzLXZhbHVlKCRtZXRlci1yYWRpdXMpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItb3B0aW11bTo6LW1vei1tZXRlci1iYXIge1xuICAgICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtZ29vZDtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcbiAgICB9XG5cbiAgICAmOi1tb3otbWV0ZXItc3ViLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1iYWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBhYmlkZVxuLy8vL1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGlucHV0cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtaW5wdXRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWJpZGUtbGFiZWxzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIGludmFsaWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3IgZm9ybSBlcnJvciB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGFsZXJ0LWNvbG9yXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtYWxwaGEgWzAuMV0gLSBUcmFuc3BhcmVuY3kgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWFscGhhOiAwLjFcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1hbHBoYSk7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMsIGlmIHRoZSBiYWNrZ3JvdW5kIGlzIGxpZ2h0LlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBmb3JlZ3JvdW5kKCRiYWNrZ3JvdW5kLCAkYnV0dG9uLWNvbG9yLWFsdCwgJGJ1dHRvbi1jb2xvcik7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJHByaW1hcnktY29sb3IsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCgkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgY29sb3I6ICRidXR0b24tY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLiN7JG5hbWV9LmRyb3Bkb3duOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG9sbG93IHN0eWxlXG4gICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgJi5ob2xsb3cge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgQm9yZGVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cChcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG4gIEBlbHNlIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAjeyRjaGlsZC1zZWxlY3Rvcn0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAmLCAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB+ICN7JHNlbGVjdG9yfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygje3BlcmNlbnRhZ2UoMSAvICRpKX0gLSAjeyRidXR0b25ncm91cC1zcGFjaW5nfSk7XG4gICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZyAqIC0kYnV0dG9uZ3JvdXAtZXhwYW5kLW1heDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIFN0YWNrcyB0aGUgYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxuQG1peGluIGJ1dHRvbi1ncm91cC1zdGFjayhcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3Jcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBNZXJnZWFibGVTZWxlY3RvclxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcbi8vLy9cblxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG4gIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkYWNjb3JkaW9ubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjY29yZGlvbiBncm91cC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFjY29yZGlvbi1wbHVzbWludXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGl0ZW1zIGluIGEgTWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kLCAkYm9keS1mb250LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gYWNjb3JkaW9uIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgc2FtZSBlbGVtZW50IHRoYXQgZ2V0cyBgZGF0YS1hY2NvcmRpb25gLlxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICRhY2NvcmRpb24tYmFja2dyb3VuZDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxuQG1peGluIGFjY29yZGlvbi1pdGVtIHtcbiAgJjpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB0aXRsZSBvZiBhbiBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGluayB3aXRoaW4gYW4gYWNjb3JkaW9uIGl0ZW0uXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRhY2NvcmRpb24taXRlbS1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gIGNvbG9yOiAkYWNjb3JkaW9uLWl0ZW0tY29sb3I7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+ICYge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICBAaWYgJGFjY29yZGlvbi1wbHVzbWludXMge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIH1cblxuICAgIC5pcy1hY3RpdmUgPiAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAkyc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYWNjb3JkaW9uIGNvbnRlbnQuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbnRlbnQgcGFuZSBiZWxvdyBhbiBhY2NvcmRpb24gaXRlbSdzIHRpdGxlLlxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ7XG4gIGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBiYWRnZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgYmFkZ2VzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmFkZ2UtY29sb3I6IGZvcmVncm91bmQoJGJhZGdlLWJhY2tncm91bmQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG5cbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGEgYmFkZ2UuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXG5AbWl4aW4gYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tYmFkZ2Uge1xuICAuYmFkZ2Uge1xuICAgIEBpbmNsdWRlIGJhZGdlO1xuXG4gICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVhZGNydW1ic1xuLy8vL1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBhIGJyZWFkY3J1bWJzIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBhY3RpdmUgYnJlYWRjcnVtYiBsaW5rLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnJlYWRjcnVtYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgbWFrZXMgYnJlYWRjcnVtYiBsaW5rcyB1cHBlcmNhc2UuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudDtcbiAgICBmb250LXNpemU6ICRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcbiAgICAgIC8vIE5lZWQgdG8gZXNjYXBlIHRoZSBiYWNrc2xhc2hcbiAgICAgICRzbGFzaDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAnbHRyJywgJy8nLCAnXFxcXCcpO1xuXG4gICAgICAmOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FsbG91dFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZhZGUgdmFsdWUgZm9yIGNhbGxvdXQgYmFja2dyb3VuZHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBpbm5lciBwYWRkaW5nIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cywgaWYgdGhlIGNhbGxvdXQgaGFzIGEgZGFyayBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXG4vLy8gQHR5cGUgTnVtYmVyIHwgQm9vbGVhblxuJGNhbGxvdXQtbGluay10aW50OiAzMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYSBjYWxsb3V0LCBpbmNsdWRpbmcgcGFkZGluZyBhbmQgbWFyZ2luLlxuQG1peGluIGNhbGxvdXQtYmFzZSgpIHtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICRjYWxsb3V0LWZvbnQtY29sb3I7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuQG1peGluIGNhbGxvdXQtc2l6ZSgkcGFkZGluZykge1xuICBwYWRkaW5nLXRvcDogJHBhZGRpbmc7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmc7XG4gIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG59XG5cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0KCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XG4gIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FsbG91dCB7XG4gIC5jYWxsb3V0IHtcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgzcmVtKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNsb3NlLWJ1dHRvblxuLy8vL1xuXG4vLy8gRGVmYXVsdCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGByaWdodGAgb3IgYGxlZnRgLCBhbmQgdGhlIHNlY29uZCB2YWx1ZSBzaG91bGQgYmUgYHRvcGAgb3IgYGJvdHRvbWAuXG4vLy8gQHR5cGUgTGlzdFxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCAob3IgbGVmdCkgb2Zmc2V0IGZvciBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGluZS1oZWlnaHQgb2YgdGhlIGNsb3NlIGJ1dHRvbi4gSXQgYWZmZWN0cyB0aGUgc3BhY2luZyBvZiB0aGUgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24gd2hlbiBiZWluZyBob3ZlcmVkIG9uLlxuLy8vIEB0eXBlIENvbG9yXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICAjeyR4fTogJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsO1xuICAjeyR5fTogJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDtcbiAgZm9udC1zaXplOiAkY2xvc2VidXR0b24tc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyaWxsZG93blxuLy8vL1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eSB0byB1c2UgZm9yIGFuaW1hdGluZyBtZW51cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kZHJpbGxkb3duLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG4gICAgLy8gaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIC0xMDAlLCAxMDAlKSk7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgMTAwJSwgLTEwMCUpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNnB4LCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIH1cblxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDVweCwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaS5vcGVucy1yaWdodCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICYub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTZWxlY3RvckRlcHRoXG4gICAgLy8mOm5vdCguanMtZHJvcGRvd24tbm9ob3ZlcikgPiAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQ6aG92ZXIgPiAmLCAvLyB3aHkgaXMgdGhpcyBsaW5lIG5lZWRlZD8gT3BlbmluZyBpcyBoYW5kbGVkIGJ5IEpTIGFuZCB0aGlzIGNhdXNlcyBzb21lIHVnbHkgZmxpY2tlcmluZyB3aGVuIHRoZSBzdWIgaXMgcmUtcG9zaXRpb25lZCBhdXRvbWF0aWNhbGx5Li4uXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkZHJvcGRvd24tcmFkaXVzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiAkZHJvcGRvd24td2lkdGg7XG4gIHotaW5kZXg6IDEwO1xuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksIGxlZnQpIHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDYge1xuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxleC12aWRlb1xuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgZmxleCB2aWRlbyBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmxleHZpZGVvLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSA0OjMgYXNwZWN0IHJhdGlvLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1yYXRpbzogNCBieSAzICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyB1c2VkIHRvIGNyZWF0ZSBhIDE2OjkgYXNwZWN0IHJhdGlvLlxuLy8vIEB0eXBlIE51bWJlclxuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHBlcmNlbnRhZ2UgaGVpZ2h0IHRoYXQgY2FuIGJlIHVzZWQgYXMgcGFkZGluZyBpbiBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgYHBhZGRpbmctYm90dG9tYCBwYXJhbWV0ZXIgb2YgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbkBmdW5jdGlvbiBmbGV4LXZpZGVvKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cblxuLy8vIENyZWF0ZXMgYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyBbJGZsZXh2aWRlby1yYXRpb10gLSBSYXRpbyB0byB1c2UgZm9yIHRoZSBjb250YWluZXIsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJGZsZXh2aWRlby1yYXRpbykge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IGZsZXgtdmlkZW8oJHJhdGlvKTtcbiAgbWFyZ2luLWJvdHRvbTogJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIGZsZXgtdmlkZW87XG5cbiAgICAmLndpZGVzY3JlZW4ge1xuICAgICAgcGFkZGluZy1ib3R0b206IGZsZXgtdmlkZW8oJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuKTtcbiAgICB9XG5cbiAgICAmLnZpbWVvIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbGFiZWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yOiBmb3JlZ3JvdW5kKCRsYWJlbC1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcbiAgZm9udC1zaXplOiAkbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XG4gIC5sYWJlbCB7XG4gICAgQGluY2x1ZGUgbGFiZWw7XG5cbiAgICBiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkbmFtZSAhPSBwcmltYXJ5IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCRjb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lZGlhLW9iamVjdFxuLy8vL1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIExlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb24gc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbWVkaWEgb2JqZWN0IGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3QtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3Igc2VjdGlvbnMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXNlY3Rpb24oJHBhZGRpbmc6ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmcpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJHBhZGRpbmc7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6bm90KDpudGgtY2hpbGQoMikpIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBzdGFjayBzZWN0aW9ucyBvZiBhIG1lZGlhIG9iamVjdC4gQXBwbHkgdGhpcyB0byB0aGUgc2VjdGlvbiBlbGVtZW50cywgbm90IHRoZSBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy1ib3R0b206ICRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0IHtcbiAgLm1lZGlhLW9iamVjdCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LWNvbnRhaW5lcjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXN0YWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbWVkaWEtb2JqZWN0LXNlY3Rpb247XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJi5ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVudVxuLy8vL1xuXG4vLy8gTWFyZ2luIG9mIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8vIExlZnQtaGFuZCBtYXJnaW4gb2YgYSBuZXN0ZWQgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LW1hcmdpbi1uZXN0ZWQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pdGVtLXBhZGRpbmc6IDAuN3JlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIG1hcmdpbjogJG1lbnUtbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtcyBhcmUgdGFibGUgY2VsbCB0byBhbGxvdyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gID4gbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IGxpbmUgaGVpZ2h0IHRvIG1ha2UgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmFsbCBpdGVtIGVhc2llciB0byBjYWxjdWxhdGVcbiAgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XG4gICAgPiBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgID4gbGkgID4gYSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgID4gbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG5AbWl4aW4gbWVudS1zaW1wbGUge1xuICBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRnbG9iYWwtcmlnaHQpO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRwYWRkaW5nIFthdXRvXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbn1cblxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbc2lkZV0gLSBQb3NpdGlvbmluZyBmb3IgaWNvbnMuIENhbiBiZSBgc2lkZWAgKGxlZnQsIG9yIHJpZ2h0IG9uIFJUTCkgb3IgYHRvcGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcbiAgQGlmICRiYXNlIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICsgc3BhbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcG9zaXRpb24gPT0gc2lkZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWVudS1pY29uLXNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICBAaW5jbHVkZSBtZW51LWljb25zO1xuXG4gICAgLy8gT3JpZW50YXRpb25cbiAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcblxuICAgICAgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgaWNvbnNcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnModG9wLCAkYmFzZTogZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmLm5lc3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGVcbiAgICAuYWN0aXZlID4gYSB7XG4gICAgICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51LXRleHQge1xuICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgfVxuXG4gIC8vIEFsaWduIGNlbnRlclxuICAubWVudS1jZW50ZXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiAubWVudSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtemluZGV4OiAtMSAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIG1lbnUuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIG1lbnUgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgYm9keS5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHRvIHBsYWNlIHVuZGVyIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhpcyBzaGFkb3cgb3ZlcmxhcHMgdGhlIG9mZi1jYW52YXMgbWVudXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG4gIC8vIEV4dHJhIHByb3BlcnRpZXMgbmVlZGVkIG9uIDxodG1sPiBhbmQgPGJvZHk+IHRvIG1ha2Ugb2ZmLWNhbnZhcyB3b3JrXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvO1xuICB9XG5cbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7IFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc7XG4gIH1cblxuICAvLyBDb250YWluZXIgZm9yIHBhZ2UgY29udGVudFxuICAub2ZmLWNhbnZhcy1jb250ZW50LFxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7IC8vIFByZXZlbnRzIG1hcmdpbiBjb2xsYXBzaW5nLCB3aGljaCB3b3VsZCByZXZlYWwgdGhlIGJveCBzaGFkb3cgb2YgdGhlIHdyYXBwZXJcblxuICAgIEBpZiBoYXMtdmFsdWUoJG1haW5jb250ZW50LXNoYWRvdykge1xuICAgICAgYm94LXNoYWRvdzogJG1haW5jb250ZW50LXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBDbGljay10by1leGl0IG92ZXJsYXkgKGdlbmVyYXRlZCBieSBKYXZhU2NyaXB0KVxuICAuanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBtZW51LlxuQG1peGluIG9mZi1jYW52YXMtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQ7XG4gIHotaW5kZXg6ICRvZmZjYW52YXMtemluZGV4O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbkBtaXhpbiBvZmYtY2FudmFzLXBvc2l0aW9uKFxuICAkcG9zaXRpb246IGxlZnQsXG4gICRzaXplOiAkb2ZmY2FudmFzLXNpemUsXG4gICRmaXhlZDogZmFsc2Vcbikge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICB9XG5cbiAgLy8gR2VuZXJhdGVzIGFuIG9wZW4gc3RhdGUgY2xhc3MgdGhhdCBtYXRjaGVzIHRoZSB3aWR0aCBvZiB0aGUgbWVudVxuICBAYXQtcm9vdCB7XG4gICAgLmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgbWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbbGVmdF0gLSBQb3NpdGlvbiBvZiB0aGUgb2ZmLWNhbnZhcyBtZW51IGJlaW5nIHJldmVhbGVkLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuICAkcG9zaXRpb246IGxlZnRcbikge1xuICAjeyRwb3NpdGlvbn06IDA7XG4gIHotaW5kZXg6IGF1dG87XG5cbiAgQGlmICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICAmIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuXG4gICAgJi5wb3NpdGlvbi1sZWZ0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGxlZnQpOyB9XG4gICAgJi5wb3NpdGlvbi1yaWdodCAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKHJpZ2h0KTsgfVxuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgbWVudSBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6IGZvcmVncm91bmQoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zIGluIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgYC5vcmJpdC1uZXh0YCBhbmQgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3NlcyBpbiB0aGUgZGVmYXVsdCBDU1MuXG5AbWl4aW4gb3JiaXQtY29udHJvbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xuICB6LWluZGV4OiAkb3JiaXQtY29udHJvbC16aW5kZXg7XG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzLlxuQG1peGluIG9yYml0LXByZXZpb3VzIHtcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxuQG1peGluIG9yYml0LW5leHQge1xuICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICN7JGdsb2JhbC1yaWdodH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtYnVsbGV0cyB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgaGVpZ2h0OiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIG1hcmdpbjogJG9yYml0LWJ1bGxldC1tYXJnaW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGVsbGlwc2lzIGluIGEgcGFnaW5hdGlvbiBtZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gSWYgYGZhbHNlYCwgZG9uJ3QgZGlzcGxheSBwYWdlIG51bWJlciBsaW5rcyBvbiBtb2JpbGUsIG9ubHkgbmV4dC9wcmV2aW91cyBsaW5rc1xuLy8vIGFuZCBvcHRpb25hbGx5IGN1cnJlbnQgcGFnZSBudW1iZXIuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgY3VycmVudCBwYWdlIG51bWJlciBvbiBtb2JpbGUuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtIHtcbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQge1xuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50O1xuICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIHtcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xuICBjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGVsbGlwc2lzIGZvciB1c2UgaW4gYSBwYWdpbmF0aW9uIGxpc3QuXG5AbWl4aW4gcGFnaW5hdGlvbi1lbGxpcHNpcyB7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1tYXJnaW4tYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXZlYWxcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgd2lkdGggb2YgYSBtb2RhbCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC13aWR0aDogNjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgYSBtb2RhbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gei1pbmRleCBmb3IgbW9kYWxzLiBUaGUgb3ZlcmxheSB1c2VzIHRoaXMgdmFsdWUsIHdoaWxlIHRoZSBtb2RhbCBpdHNlbGYgdXNlcyB0aGlzIHZhbHVlIHBsdXMgb25lLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIG92ZXJsYXlzLlxuLy8vIEB0eXBlIENvbG9yXG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgb3ZlcmxheS5cbkBtaXhpbiByZXZlYWwtb3ZlcmxheSgkYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgYSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXggKyAxO1xuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XG4gIGJvcmRlcjogJHJldmVhbC1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZXZlYWwtYmFja2dyb3VuZDtcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIER1cGxpY2F0ZVByb3BlcnR5XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBRdWFsaWZ5aW5nRWxlbWVudFxuICBib2R5LmlzLXJldmVhbC1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLy8gT3ZlcmxheVxuICAucmV2ZWFsLW92ZXJsYXkge1xuICAgIEBpbmNsdWRlIHJldmVhbC1vdmVybGF5O1xuICB9XG5cbiAgLy8gTW9kYWwgY29udGFpbmVyXG4gIC5yZXZlYWwge1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCgkcmV2ZWFsLXdpZHRoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFBsYWNlaG9sZGVyIHNlbGVjdG9yIGZvciBtZWRpdW0tYW5kLXVwIG1vZGFsc1xuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgJXJldmVhbC1jZW50ZXJlZCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xuICAgICYuY29sbGFwc2Uge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTaXppbmcgY2xhc3Nlc1xuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxuICAgICYuc21hbGwgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoNTAlKTsgfVxuICAgICYubGFyZ2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoOTAlKTsgfVxuXG4gICAgLy8gRnVsbC1zY3JlZW4gbW9kZVxuICAgICYuZnVsbCB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1mdWxsc2NyZWVuO1xuICAgIH1cblxuICAgICYud2l0aG91dC1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICB9XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG5AbWl4aW4gc2xpZGVyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG5cbiAgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXNsaWRlciB7XG4gIC8vIENvbnRhaW5lclxuICAuc2xpZGVyIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItY29udGFpbmVyO1xuICB9XG5cbiAgLy8gRmlsbCBhcmVhXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWZpbGw7XG4gIH1cblxuICAvLyBEcmFnZ2FibGUgaGFuZGxlXG4gIC5zbGlkZXItaGFuZGxlIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgLnNsaWRlci5kaXNhYmxlZCxcbiAgLnNsaWRlcltkaXNhYmxlZF0ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxuICAuc2xpZGVyLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItdmVydGljYWw7XG4gIH1cblxuICAvLyBSVEwgc3VwcG9ydFxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgIC5zbGlkZXI6bm90KC52ZXJ0aWNhbCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgY29sb3I6ICR3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDRyZW07XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcmFkaXVzO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgc3BlY2lmaWNpdHlcbiAgaW5wdXQgKyAmIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBUaGUgcGFkZGxlIGl0c2VsZlxuICAmOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwLjI1cmVtO1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXBhZGRsZS1yYWRpdXM7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAyLjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0OmZvY3VzIH4gJiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXG5AbWl4aW4gc3dpdGNoLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xuICAjeyRnbG9iYWwtbGVmdH06IDglO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMTUlO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzRyZW1dIC0gV2lkdGggb2YgdGhlIHN3aXRjaCBib2R5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtd2lkdGggWzEuNXJlbV0gLSBXaWR0aCBvZiB0aGUgc3dpdGNoIHBhZGRsZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRsZS1vZmZzZXQgWzAuMjVyZW1dIC0gU3BhY2luZyBiZXR3ZWVuIHRoZSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgc3dpdGNoIGJvZHkuXG5AbWl4aW4gc3dpdGNoLXNpemUoXG4gICRmb250LXNpemU6IDFyZW0sXG4gICR3aWR0aDogNHJlbSxcbiAgJGhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS13aWR0aDogMS41cmVtLFxuICAkcGFkZGxlLW9mZnNldDogMC4yNXJlbVxuKSB7XG4gICRwYWRkbGUtaGVpZ2h0OiAkaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtbGVmdC1hY3RpdmU6ICR3aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICB9XG5cbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWxlZnQtYWN0aXZlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN3aXRjaCB7XG4gIC8vIENvbnRhaW5lciBjbGFzc1xuICAuc3dpdGNoIHtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XG4gIH1cblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcbiAgLnN3aXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWlucHV0O1xuICB9XG5cbiAgLy8gPGxhYmVsPiBlbGVtZW50XG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtcGFkZGxlO1xuICB9XG5cbiAgLy8gQmFzZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAlc3dpdGNoLXRleHQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xuICB9XG5cbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XG4gIH1cblxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVzd2l0Y2gtdGV4dDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcbiAgfVxuXG4gIC8vIFN3aXRjaCBzaXplc1xuICAuc3dpdGNoLnRpbnkge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEwKSwgM3JlbSwgJHN3aXRjaC1oZWlnaHQtdGlueSwgMXJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2guc21hbGwge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgMy41cmVtLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgMS4yNXJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2gubGFyZ2Uge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDE2KSwgNXJlbSwgJHN3aXRjaC1oZWlnaHQtbGFyZ2UsIDJyZW0sICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBNZXJnZWFibGVTZWxlY3RvciwgUXVhbGlmeWluZ0VsZW1lbnRcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIHN0cmlwZSBvbiByb3dzIG9mIHRoZSB0YWJsZXMsIGV4Y2x1ZGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIuIElmIGV2ZW4sIHRoZSBldmVuIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgb2RkLCB0aGUgb2RkIHJvd3Mgd2lsbCBoYXZlIGEgYmFja2dyb3VuZCBjb2xvci4gSWYgZW1wdHksIG9yIGFueSBvdGhlciB2YWx1ZSwgdGhlIHRhYmxlIHJvd3Mgd2lsbCBoYXZlIG5vIHN0cmlwaW5nLlxuLy8vIEB0eXBlIEtleXdvcmRcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWFkZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBoZWFkZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtaGVhZC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBmb290ZXIgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtZm9vdC1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtZm9vdC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBoZWFkZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvb3Rlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHNob3dpbmcgdGhlIGhlYWRlciB3aGVuIHVzaW5nIHN0YWNrZWQgdGFibGVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgfVxuICBcbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0ciB7XG4gICAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgICAgQGlmICRzdHJpcGUgPT0gZXZlbiB7XG4gICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgICAgQGVsc2UgaWYgJHN0cmlwZSA9PSBvZGQge1xuICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cblxuICAgIC8vRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGlmKCR0YWJsZS1zdHJpcGUgPT0gZXZlbikge1xuICAgICAgJjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIGFjdGl2ZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICR0YWItbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSB7XG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XG5cbiAgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGZvcmVncm91bmQoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aXRsZS1iYXJcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBXZWlnaHRcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3ItaG92ZXI6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiB0aGUgbWVudSBpY29uIGFuZCB0ZXh0IGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRpdGxlLWJhciB7XG4gIC50aXRsZS1iYXIge1xuICAgIGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGl0bGViYXItY29sb3I7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICB9XG5cbiAgICAubWVudS1pY29uIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICB9XG4gIH1cblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9wLWJhclxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyLiBUaGlzIGNvbG9yIGFsc28gY2FzY2FkZXMgdG8gbWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBmb3IgdGhlIHRvcCBiYXIgdGl0bGUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XG4gIGlucHV0LmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcblxuICAgIH1cblxuICAgIC50b3AtYmFyLWxlZnQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGh1bWJuYWlsXG4vLy8vXG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gVHJhbnNpdGlvbiBwcm9wcnRpZXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGh1bWJuYWlsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRodW1ibmFpbCBzdHlsZXMgdG8gYW4gZWxlbWVudC5cbkBtaXhpbiB0aHVtYm5haWwge1xuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtcmFkaXVzO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGh1bWJuYWlsIHtcbiAgLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcbiAgbWF4LXdpZHRoOiAxMHJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi50b3A6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxuXG4gICYubGVmdDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJi5yaWdodDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi50b29sdGlwc3Rlci1mYWxsLC50b29sdGlwc3Rlci1ncm93LnRvb2x0aXBzdGVyLXNob3d7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTstbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEuMTUpOy1tcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxLjE1KTstby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxLjE1KX0udG9vbHRpcHN0ZXItYmFzZXtkaXNwbGF5OmZsZXg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZX0udG9vbHRpcHN0ZXItYm94e2ZsZXg6MSAxIGF1dG99LnRvb2x0aXBzdGVyLWNvbnRlbnR7Ym94LXNpemluZzpib3JkZXItYm94O21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzphdXRvfS50b29sdGlwc3Rlci1ydWxlcntib3R0b206MDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjA7dG9wOjA7dmlzaWJpbGl0eTpoaWRkZW59LnRvb2x0aXBzdGVyLWZhZGV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5Oy1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5Oy1vLXRyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTstbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eX0udG9vbHRpcHN0ZXItZmFkZS50b29sdGlwc3Rlci1zaG93e29wYWNpdHk6MX0udG9vbHRpcHN0ZXItZ3Jvd3std2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLDApOy1tb3otdHJhbnNmb3JtOnNjYWxlKDAsMCk7LW8tdHJhbnNmb3JtOnNjYWxlKDAsMCk7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLDApO3RyYW5zZm9ybTpzY2FsZSgwLDApOy13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTotd2Via2l0LXRyYW5zZm9ybTstbW96LXRyYW5zaXRpb24tcHJvcGVydHk6LW1vei10cmFuc2Zvcm07LW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTotby10cmFuc2Zvcm07LW1zLXRyYW5zaXRpb24tcHJvcGVydHk6LW1zLXRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS50b29sdGlwc3Rlci1ncm93LnRvb2x0aXBzdGVyLXNob3d7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSwxKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxLDEpOy1vLXRyYW5zZm9ybTpzY2FsZSgxLDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoMSwxKTt0cmFuc2Zvcm06c2NhbGUoMSwxKTstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEuMTUpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEuMTUpfS50b29sdGlwc3Rlci1zd2luZ3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWig0ZGVnKTstbW96LXRyYW5zZm9ybTpyb3RhdGVaKDRkZWcpOy1vLXRyYW5zZm9ybTpyb3RhdGVaKDRkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlWig0ZGVnKTt0cmFuc2Zvcm06cm90YXRlWig0ZGVnKTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6LXdlYmtpdC10cmFuc2Zvcm0sb3BhY2l0eTstbW96LXRyYW5zaXRpb24tcHJvcGVydHk6LW1vei10cmFuc2Zvcm07LW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTotby10cmFuc2Zvcm07LW1zLXRyYW5zaXRpb24tcHJvcGVydHk6LW1zLXRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybX0udG9vbHRpcHN0ZXItc3dpbmcudG9vbHRpcHN0ZXItc2hvd3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWigwKTstbW96LXRyYW5zZm9ybTpyb3RhdGVaKDApOy1vLXRyYW5zZm9ybTpyb3RhdGVaKDApOy1tcy10cmFuc2Zvcm06cm90YXRlWigwKTt0cmFuc2Zvcm06cm90YXRlWigwKTstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjMsLjYzNSwuNDk1LDEpOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMywuNjM1LC40OTUsMi40KTstbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjMsLjYzNSwuNDk1LDIuNCk7LW1zLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjMsLjYzNSwuNDk1LDIuNCk7LW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMywuNjM1LC40OTUsMi40KTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIzLC42MzUsLjQ5NSwyLjQpfS50b29sdGlwc3Rlci1mYWxsey13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTp0b3A7LW1vei10cmFuc2l0aW9uLXByb3BlcnR5OnRvcDstby10cmFuc2l0aW9uLXByb3BlcnR5OnRvcDstbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTp0b3A7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0b3A7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxLjE1KTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxLjE1KX0udG9vbHRpcHN0ZXItZmFsbC50b29sdGlwc3Rlci1pbml0aWFse3RvcDowIWltcG9ydGFudH0udG9vbHRpcHN0ZXItZmFsbC50b29sdGlwc3Rlci1keWluZ3std2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6YWxsOy1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7LW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7LW1zLXRyYW5zaXRpb24tcHJvcGVydHk6YWxsO3RyYW5zaXRpb24tcHJvcGVydHk6YWxsO3RvcDowIWltcG9ydGFudDtvcGFjaXR5OjB9LnRvb2x0aXBzdGVyLXNsaWRley13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTpsZWZ0Oy1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTpsZWZ0Oy1vLXRyYW5zaXRpb24tcHJvcGVydHk6bGVmdDstbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTpsZWZ0O3RyYW5zaXRpb24tcHJvcGVydHk6bGVmdDstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMS4xNSk7LW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxLjE1KTstbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMS4xNSk7LW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMS4xNSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMS4xNSl9LnRvb2x0aXBzdGVyLXNsaWRlLnRvb2x0aXBzdGVyLWluaXRpYWx7bGVmdDotNDBweCFpbXBvcnRhbnR9LnRvb2x0aXBzdGVyLXNsaWRlLnRvb2x0aXBzdGVyLWR5aW5ney13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7LW1vei10cmFuc2l0aW9uLXByb3BlcnR5OmFsbDstby10cmFuc2l0aW9uLXByb3BlcnR5OmFsbDstbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7bGVmdDowIWltcG9ydGFudDtvcGFjaXR5OjB9QGtleWZyYW1lcyB0b29sdGlwc3Rlci1mYWRpbmd7MCV7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX0udG9vbHRpcHN0ZXItdXBkYXRlLWZhZGV7YW5pbWF0aW9uOnRvb2x0aXBzdGVyLWZhZGluZyAuNHN9QGtleWZyYW1lcyB0b29sdGlwc3Rlci1yb3RhdGluZ3syNSV7dHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyl9NzUle3RyYW5zZm9ybTpyb3RhdGUoMmRlZyl9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDApfX0udG9vbHRpcHN0ZXItdXBkYXRlLXJvdGF0ZXthbmltYXRpb246dG9vbHRpcHN0ZXItcm90YXRpbmcgLjZzfUBrZXlmcmFtZXMgdG9vbHRpcHN0ZXItc2NhbGluZ3s1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMSl9MTAwJXt0cmFuc2Zvcm06c2NhbGUoMSl9fS50b29sdGlwc3Rlci11cGRhdGUtc2NhbGV7YW5pbWF0aW9uOnRvb2x0aXBzdGVyLXNjYWxpbmcgLjZzfS50b29sdGlwc3Rlci1zaWRldGlwIC50b29sdGlwc3Rlci1ib3h7YmFja2dyb3VuZDojNTY1NjU2O2JvcmRlcjoycHggc29saWQgIzAwMDtib3JkZXItcmFkaXVzOjRweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1ib3R0b20gLnRvb2x0aXBzdGVyLWJveHttYXJnaW4tdG9wOjhweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1sZWZ0IC50b29sdGlwc3Rlci1ib3h7bWFyZ2luLXJpZ2h0OjhweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1yaWdodCAudG9vbHRpcHN0ZXItYm94e21hcmdpbi1sZWZ0OjhweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci10b3AgLnRvb2x0aXBzdGVyLWJveHttYXJnaW4tYm90dG9tOjhweH0udG9vbHRpcHN0ZXItc2lkZXRpcCAudG9vbHRpcHN0ZXItY29udGVudHtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjE4cHg7cGFkZGluZzo2cHggMTRweH0udG9vbHRpcHN0ZXItc2lkZXRpcCAudG9vbHRpcHN0ZXItYXJyb3d7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlfS50b29sdGlwc3Rlci1zaWRldGlwLnRvb2x0aXBzdGVyLWJvdHRvbSAudG9vbHRpcHN0ZXItYXJyb3d7aGVpZ2h0OjEwcHg7bWFyZ2luLWxlZnQ6LTEwcHg7dG9wOjA7d2lkdGg6MjBweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1sZWZ0IC50b29sdGlwc3Rlci1hcnJvd3toZWlnaHQ6MjBweDttYXJnaW4tdG9wOi0xMHB4O3JpZ2h0OjA7dG9wOjA7d2lkdGg6MTBweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1yaWdodCAudG9vbHRpcHN0ZXItYXJyb3d7aGVpZ2h0OjIwcHg7bWFyZ2luLXRvcDotMTBweDtsZWZ0OjA7dG9wOjA7d2lkdGg6MTBweH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci10b3AgLnRvb2x0aXBzdGVyLWFycm93e2JvdHRvbTowO2hlaWdodDoxMHB4O21hcmdpbi1sZWZ0Oi0xMHB4O3dpZHRoOjIwcHh9LnRvb2x0aXBzdGVyLXNpZGV0aXAgLnRvb2x0aXBzdGVyLWFycm93LWJhY2tncm91bmQsLnRvb2x0aXBzdGVyLXNpZGV0aXAgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcntoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowfS50b29sdGlwc3Rlci1zaWRldGlwIC50b29sdGlwc3Rlci1hcnJvdy1iYWNrZ3JvdW5ke2JvcmRlcjoxMHB4IHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwc3Rlci1zaWRldGlwLnRvb2x0aXBzdGVyLWJvdHRvbSAudG9vbHRpcHN0ZXItYXJyb3ctYmFja2dyb3VuZHtib3JkZXItYm90dG9tLWNvbG9yOiM1NjU2NTY7bGVmdDowO3RvcDozcHh9LnRvb2x0aXBzdGVyLXNpZGV0aXAudG9vbHRpcHN0ZXItbGVmdCAudG9vbHRpcHN0ZXItYXJyb3ctYmFja2dyb3VuZHtib3JkZXItbGVmdC1jb2xvcjojNTY1NjU2O2xlZnQ6LTNweDt0b3A6MH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1yaWdodCAudG9vbHRpcHN0ZXItYXJyb3ctYmFja2dyb3VuZHtib3JkZXItcmlnaHQtY29sb3I6IzU2NTY1NjtsZWZ0OjNweDt0b3A6MH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci10b3AgLnRvb2x0aXBzdGVyLWFycm93LWJhY2tncm91bmR7Ym9yZGVyLXRvcC1jb2xvcjojNTY1NjU2O2xlZnQ6MDt0b3A6LTNweH0udG9vbHRpcHN0ZXItc2lkZXRpcCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVye2JvcmRlcjoxMHB4IHNvbGlkIHRyYW5zcGFyZW50O2xlZnQ6MDt0b3A6MH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1ib3R0b20gLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcntib3JkZXItYm90dG9tLWNvbG9yOiMwMDB9LnRvb2x0aXBzdGVyLXNpZGV0aXAudG9vbHRpcHN0ZXItbGVmdCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVye2JvcmRlci1sZWZ0LWNvbG9yOiMwMDB9LnRvb2x0aXBzdGVyLXNpZGV0aXAudG9vbHRpcHN0ZXItcmlnaHQgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcntib3JkZXItcmlnaHQtY29sb3I6IzAwMH0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci10b3AgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcntib3JkZXItdG9wLWNvbG9yOiMwMDB9LnRvb2x0aXBzdGVyLXNpZGV0aXAgLnRvb2x0aXBzdGVyLWFycm93LXVuY3JvcHBlZHtwb3NpdGlvbjpyZWxhdGl2ZX0udG9vbHRpcHN0ZXItc2lkZXRpcC50b29sdGlwc3Rlci1ib3R0b20gLnRvb2x0aXBzdGVyLWFycm93LXVuY3JvcHBlZHt0b3A6LTEwcHh9LnRvb2x0aXBzdGVyLXNpZGV0aXAudG9vbHRpcHN0ZXItcmlnaHQgLnRvb2x0aXBzdGVyLWFycm93LXVuY3JvcHBlZHtsZWZ0Oi0xMHB4fSIsIkBpbXBvcnQgXCIuLi9mb250cy9TZXJpYWxQdWJsaWNhdGlvbi9mb250LmNzc1wiO1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ1RoZSBEZWFkIFNhbG9vbic7XG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL3RoZWRlYWRzYWxvb24tcmVndWxhci13ZWJmb250LmVvdCcpO1xuICAgIHNyYzogdXJsKCcuLi9mb250cy90aGVkZWFkc2Fsb29uLXJlZ3VsYXItd2ViZm9udC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy90aGVkZWFkc2Fsb29uLXJlZ3VsYXItd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvdGhlZGVhZHNhbG9vbi1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy90aGVkZWFkc2Fsb29uLXJlZ3VsYXItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3RoZWRlYWRzYWxvb24tcmVndWxhci13ZWJmb250LnN2ZyN0aGVfZGVhZF9zYWxvb25yZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxufSIsIlxuJFRoZURlYWRTYWxvb246IFwiVGhlIERlYWQgU2Fsb29uXCIsSW1wYWN0LFwiQXJpYWwgQmxhY2tcIixBcmlhbCxzYW5zLXNlcmlmO1xuJFNlcmlhbFB1YmxpY2F0aW9uOiBcIlNlcmlhbCBQdWJsaWNhdGlvblwiLEltcGFjdCxcIkFyaWFsIEJsYWNrXCIsQXJpYWwsc2Fucy1zZXJpZjtcblxuXG5cbiRTUy1SZWQ6ICNiZDFlMmM7XG4kU1MtV2hpdGU6ICNmZmY7IiwiLyoqXG4gKlxuICogTWl4aW5zXG4gKlxuICovXG5cbkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJGV4cHJlc3Npb24pIHtcbiAgICAjeyRwcm9wZXJ0eX06IC1tb3otY2FsYygjeyRleHByZXNzaW9ufSk7XG4gICAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skZXhwcmVzc2lvbn0pO1xuICAgICN7JHByb3BlcnR5fTogY2FsYygjeyRleHByZXNzaW9ufSk7XG59XG5cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxuICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudFxuICAgIH1cbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxufVxuXG5ib2R5IHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgYSxcbiAgICBidXR0b24ge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY29udGVudCB7XG4gICAgICAgIGE6bm90KC5idG4pIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuNHM7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5uby1zY3JvbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJi5lcnJvcjQwNCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFjMWM7XG4gICAgfVxufVxuXG4uY29sdW1ucyB7XG4gICAgbWluLWhlaWdodDogMXB4O1xufVxuXG4uaGVhZGVyLXVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbi5hbHQtaCBoMSwgLmFsdC1oIGgyLCAuYWx0LWggaDMsIC5hbHQtaCBoNCwgLmFsdC1oIGg1LCAuYWx0LWggaDYge1xuXHRmb250LWZhbWlseTogJFNlcmlhbFB1YmxpY2F0aW9uICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiAjZmZmO1xuXHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGxldHRlci1zcGFjaW5nOiAwcHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMC4yZW0gIWltcG9ydGFudDtcbn1cbi5hbHQtaCB7XG4gICAgaS5mbGF0bGVhdmVzLWxlZnQge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ZsYXRsZWF2ZXNfbGVmdC5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICB9XG4gICAgaS5mbGF0bGVhdmVzLXJpZ2h0IHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltZy9mbGF0bGVhdmVzX3JpZ2h0LnN2Zykgbm8tcmVwZWF0IGNlbnRlciByaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIH1cbiAgICBoMiB7XG4gICAgICAgIGkuZmxhdGxlYXZlcy1sZWZ0LCBpLmZsYXRsZWF2ZXMtcmlnaHQge1xuICAgICAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5pdGFsaWMtaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogJHN1YmhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5wYWdlLXdyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5idG4tY29udGVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC5idXR0b24tYm9yZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgIH1cbn1cblxuLmNvbnRlbnQtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNvbnRlbnQtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNvbnRlbnQtY2VudGVyIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5lbGVtZW50LWN0YSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmN0YS1jb250ZW50LFxuICAgIC5pbWFnZS1jb250ZW50IHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gICAgLmN0YS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICAqOm5vdCguYnRuLXRleHQpIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuICAgICYuY3RhLWJnLWltZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC5jdGEtY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5pbWFnZS1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICAgIC5jdGEtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAuNjtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAmLmN0YS1sZWZ0LWltZyAuaW1hZ2UtY29udGVudCxcbiAgICAgICAgJi5jdGEtcmlnaHQtaW1nIC5pbWFnZS1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAmLmN0YS1sZWZ0LWltZyxcbiAgICAgICAgJi5jdGEtcmlnaHQtaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAgICAgICAgIC5jdGEtY29udGVudCxcbiAgICAgICAgICAgIC5pbWFnZS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY3RhLXJpZ2h0LWltZyB7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRlZmF1bHQtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLmxvYWRpbmctd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHotaW5kZXg6IDk5OTtcbn1cblxuLmxvYWRpbmctcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuN3MgZWFzZS1pbjtcbn1cblxuLnBhZ2UtaW50cm8ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC43cywgdHJhbnNmb3JtIC43cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XG4gICAgLnJvdyxcbiAgICAuY29sdW1ucyxcbiAgICAuaW50cm8tY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSB0cmFuc2xhdGVaKDApO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC43cywgdHJhbnNmb3JtIC43cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgICAmLmludHJvLWxvYWRlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmludHJvLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMS41cyAwcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLCBvcGFjaXR5IDEuNXMgMHMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4uaW50cm8tbG9hZGVkIHtcbiAgICAuaW50cm8tY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLmxpbmstaG92ZXIsXG4ud3BiX3RleHRfY29sdW1uIHAgYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGN1YmljLWJlemllcigwLjE2LCAwLjUxLCAwLjc4LCAwLjY0KSwgdHJhbnNmb3JtIC40cyBjdWJpYy1iZXppZXIoMC4xNiwgMC41MSwgMC43OCwgMC42NCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAyLCAxKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxpbmstaG92ZXItdGV4dDpob3Zlcixcbi53cGJfdGV4dF9jb2x1bW4gcCBhIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIH1cbn1cblxuLmxpbmstaG92ZXItdGV4dDphZnRlcixcbi53cGJfdGV4dF9jb2x1bW4gcCBhOmFmdGVyIHtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4ucGFnZS1wYWRkaW5nLXRvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc3RhbmRhcmQtcGFnZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDkwcHg7XG59XG5cbi5zaW5nbGUtcG9zdC1uYXYge1xuICAgIC5hcnJvdy1wcmV2LFxuICAgIC5hcnJvdy1uZXh0IHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIC5hcnJvdy1wcmV2IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgIC5hcnJvdy1uZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi5sZWFkIHtcbiAgICBmb250LXNpemU6IDI0cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5lbGVtZW50LWdhbGxlcnktZ3JpZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgJi50d28tY29sdW1ucyB7XG4gICAgICAgICAgICAuaW1hZ2UtY29udGVudCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnRocmVlLWNvbHVtbnMge1xuICAgICAgICAgICAgLmltYWdlLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMy4zMzMyJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZvdXItY29sdW1ucyB7XG4gICAgICAgICAgICAuaW1hZ2UtY29udGVudCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuaW1hZ2UtY29udGVudCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVsZW1lbnQtbGlzdC10YWJsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBsaSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQ7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxufVxuXG51bC5lbGVtZW50LWxpc3QtdGFibGUgbGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5vbC5lbGVtZW50LWxpc3QtdGFibGUge1xuICAgIGNvdW50ZXItcmVzZXQ6IGNvdW50ZXJfbGV2ZWwxO1xuICAgIGxpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoY291bnRlcl9sZXZlbDEpICcuJztcbiAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGNvdW50ZXJfbGV2ZWwxO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuYmxvY2txdW90ZSB7XG4gICAgLy8gZm9udC1mYW1pbHk6ICRzdWJoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIHBhZGRpbmc6IDEwcHggMzBweCAxMHB4IDUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXCInO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkU2VyaWFsUHVibGljYXRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogMTMwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMzBweDtcbiAgICAgICAgY29sb3I6ICRTUy1SZWQ7XG4gICAgfVxuXG4gICAgY2l0ZSB7XG4gICAgICAgIGNvbG9yOiAkU1MtUmVkO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLmRyb3BjYXAge1xuICAgIGZvbnQtZmFtaWx5OiAkc3ViaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmVsLWludHJvLXBhZ2Uge1xuICAgID4gLnJvdyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5kZWZhdWx0LXBhZ2Uge1xuICAgID4gLnJvdyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxufVxuXG4uaW1nLWNvbnRlbnQge1xuICAgICYuZmxvYXQtbGVmdCB7XG4gICAgICAgIG1hcmdpbjogOHB4IDMwcHggMTVweCAwO1xuICAgIH1cbiAgICAmLmZsb2F0LXJpZ2h0IHtcbiAgICAgICAgbWFyZ2luOiA4cHggMHB4IDE1cHggMzBweDtcbiAgICB9XG59XG5cbmZpZ2NhcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBmb250LWZhbWlseTogJHN1YmhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG59XG5cbi5pbWctY29udGVudC1saWdodGJveCxcbi5nYWxsZXJ5LWNvbnRlbnQtbGlnaHRib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMsIHRyYW5zZm9ybSAuNHM7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCByZ2JhKDAsIDAsIDAsIDAuMykgMzAlLCByZ2JhKDAsIDAsIDAsIDAuNikgNTAlLCByZ2JhKDAsIDAsIDAsIDAuOCkgODAlLCBibGFjayAxMDAlKTtcbiAgICB9XG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG4uZ3JpZC10YWJsZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgLmNvbHVtbnM6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2UxZTFlMTtcbiAgICB9XG4gICAgLmNvbHVtbnMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgfVxufVxuXG4uZmx1aWQtcm93IHtcbiAgICBiYWNrZ3JvdW5kOiAjZTFlMWUxO1xufVxuXG4uZ3JpZC1wYWdlIHtcbiAgICA+IC5yb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbiAgICAuZ3JpZC1wYWRkaW5nLXRvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgfVxufVxuXG4uc2VwYXJhdG9yIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4gICAgbWFyZ2luOiA2MHB4IDA7XG59XG5cbi5lbC1ibG9jay1wYWdlIC5zZXBhcmF0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxucHJlIHtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ud3AtY2FwdGlvbiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTG9yYVwiO1xuICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjOGE4YThhO1xuICAgIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xufVxuXG5pbWcuYWxpZ25sZWZ0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cblxuaW1nLmFsaWducmlnaHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xufVxuXG4uYWxpZ25sZWZ0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cblxuLmFsaWducmlnaHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xufVxuXG4uYWxpZ25jZW50ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xufVxuXG4uYWxpZ25ub25lIHtcbiAgICBtYXJnaW46IDMwcHggMDtcbn1cblxuXG4vKipcbiAqXG4gKiBQYWdpbmF0aW9uIFxuICpcbiAqL1xuXG4ubmF2LWxpbmtzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYSxcbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgICAuYXJyb3ctcHJldixcbiAgICAuYXJyb3ctbmV4dCB7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgIH1cbiAgICAucGFnZS1udW1iZXJzLFxuICAgIC5wYWdlLW51bWJlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc3ViaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICY6bm90KC5wcmV2LCAubmV4dCwgLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHM7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYWdlLWxpbmtzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYSxcbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LWZhbWlseTogJHN1YmhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyoqXG4gKlxuICogQnV0dG9uc1xuICpcbiAqL1xuXG4uYnRuIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICYuYnRuLWZ1bGwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uYnRuLXhzIHtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYnRuLXNtIHtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG59XG5cbi5idG4tbWQge1xuICAgIHBhZGRpbmc6IDE1cHggMzBweDtcbn1cblxuLmJ0bi1sZyB7XG4gICAgcGFkZGluZzogMjVweCA3NXB4O1xufVxuXG4uYnRuLWxvYWQtbW9yZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgJi5idG4tZGFyayB7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICAuYnRuLXRleHQge1xuICAgICAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmstaG92ZXI6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuYnRuLWxpZ2h0IHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgLmJ0bi10ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmstaG92ZXI6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5idG4tdGV4dCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIH1cbn1cblxuLmJ0bi1yb3VuZGVkIHtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xufVxuXG4uYnRuLXNvbGlkIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cztcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjg1O1xuICAgIH1cbn1cblxuLmJ0bi1jdXN0b20uYnRuLXNvbGlkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMzMzO1xufVxuXG4uYnRuLWN1c3RvbS5idG4tYm9yZGVyLWFuaW1hdGUge1xuICAgIC5idG4tdGV4dCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgICAuYnV0dG9uLWJvcmRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgfVxufVxuXG4uYnRuLWljb24ge1xuICAgIC5pY29uLXJvdW5kZWQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmJ0bi1sZyB7XG4gICAgICAgIC5idG4tdGV4dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xuICAgICAgICB9XG4gICAgICAgIHNwYW46bm90KC5idG4tdGV4dCkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB3aWR0aDogNjRweDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0zcHg7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtM3B4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5idG4tbWQge1xuICAgICAgICAuYnRuLXRleHQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNDRweDtcbiAgICAgICAgfVxuICAgICAgICBzcGFuOm5vdCguYnRuLXRleHQpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgICAgYm90dG9tOiA1cHg7XG4gICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAtM3B4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTNweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICYuYnRuLXNtIHtcbiAgICAgICAgLmJ0bi10ZXh0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDM0cHg7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbjpub3QoLmJ0bi10ZXh0KSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogLTNweDtcbiAgICAgICAgICAgICAgICBib3R0b206IC0zcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0zcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmJ0bi14cyB7XG4gICAgICAgIC5idG4tdGV4dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4O1xuICAgICAgICB9XG4gICAgICAgIHNwYW46bm90KC5idG4tdGV4dCkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0zcHg7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtM3B4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5idG4tbGlnaHQge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAuYnRuLXRleHQge1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICB9XG4gICAgJi5idG4taWNvbiBzcGFuOm5vdCguYnRuLXRleHQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICAgIHN0cm9rZTogJHdoaXRlO1xuICAgICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYnRuLWRhcmsge1xuICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIC5idG4tdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgICYuYnRuLWljb24gc3Bhbjpub3QoLmJ0bi10ZXh0KSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgc3ZnICoge1xuICAgICAgICAgICAgc3Ryb2tlOiAkYmxhY2s7XG4gICAgICAgICAgICBmaWxsOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5idG4tYm9yZGVyLWFuaW1hdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgLmJ1dHRvbi1ib3JkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIC50b3Age1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAuNHMsIGJhY2tncm91bmQgLjRzO1xuICAgIH1cbiAgICAubGVmdCB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIC4zcyAuMXMsIGJhY2tncm91bmQgLjRzO1xuICAgIH1cbiAgICAubGVmdC1ib3R0b20ge1xuICAgICAgICB0b3A6IDMwcHg7XG4gICAgfVxuICAgIC5sZWZ0LXRvcCB7XG4gICAgICAgIHRvcDogLTEwMCU7XG4gICAgfVxuICAgIC5ib3R0b20ge1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgdHJhbnNpdGlvbjogcmlnaHQgLjRzIC4ycywgYmFja2dyb3VuZCAuNHM7XG4gICAgfVxuICAgIC5ib3R0b20tcmlnaHQge1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG4gICAgLmJvdHRvbS1sZWZ0IHtcbiAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIC5yaWdodCB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIC40cyAuMXMsIGJhY2tncm91bmQgLjRzO1xuICAgIH1cbiAgICAmLmJ0bi1kYXJrIHtcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIC5idG4tdGV4dCB7XG4gICAgICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uLWJvcmRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5idG4tbGlnaHQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAuYnRuLXRleHQge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAuYnV0dG9uLWJvcmRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5idG4teHMge1xuICAgICAgICAudG9wIHtcbiAgICAgICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmxlZnQtYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmJ0bi1zbSB7XG4gICAgICAgIC50b3Age1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgICAgICAubGVmdC1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICAudG9wIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmxlZnQtYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgICAuYm90dG9tLXJpZ2h0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAzMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5yaWdodCB7XG4gICAgICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICB9XG4gICAgICAgICYuYnRuLXhzIHtcbiAgICAgICAgICAgIC5ib3R0b20tcmlnaHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICB0b3A6IC0xNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuYnRuLXNtIHtcbiAgICAgICAgICAgIC5ib3R0b20tcmlnaHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICB0b3A6IC0yMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jc2Nyb2xsLXVwIHtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbn1cblxuXG4vKipcbiAqXG4gKiBGb3Jtc1xuICpcbiAqL1xuXG4uZm9ybXMtc3R5bGUge1xuICAgIGZpZWxkc2V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5tZi1pbnB1dCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBjYWxjKHdpZHRoLCAnMTAwJSAvIDMnKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmLm1lc3NhZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIC5ib3JkZXItbGFiZWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNhbGMod2lkdGgsICcxMDAlIC8gMycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmJvcmRlci1sYWJlbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgbGVmdDogMzMlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bm90KC5tZXNzYWdlKTphZnRlcixcbiAgICAgICAgLmJvcmRlci1sYWJlbDphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgICAgICB3aWR0aDogOTBweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNDVweDtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMsIGJhY2tncm91bmQgLjRzO1xuICAgICAgICB9XG4gICAgICAgICYubWVzc2FnZS1lcnJvciB7XG4gICAgICAgICAgICAmOm5vdCgubWVzc2FnZSk6YWZ0ZXIsXG4gICAgICAgICAgICAuYm9yZGVyLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjEwYTRhICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmMTBhNGEgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJvdHRvbSAuNHMsIG9wYWNpdHkgLjRzLCBmb250LXNpemUgLjRzLCBjb2xvciAuNHM7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNsZWFyLWlucHV0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyBhdXRvZmlsbCB7XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0LFxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYXV0b2ZpbGw7XG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFjdGl2ZS1pbnB1dCB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGJvdHRvbTogLTYwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAuNDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyLFxuICAgICAgICAuYm9yZGVyLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAyLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9ybS13aXRoLWltYWdlLmltZ19yaWdodCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAuZm9ybS1pbWFnZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpZWxkc2V0OmFmdGVyIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IC01MCUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAuZm9ybS1pbWFnZSAuZm9ybS1pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb3JtLWltYWdlIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICAgIG1heC13aWR0aDogNTAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIC5mb3JtLWltYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9ybS1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAuZm9ybS1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5tYXJjby1mb3JtIHtcbiAgICAgICAgd2lkdGg6IDY2LjY2NiU7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICAgIC5mb3JtLWltYWdlIHtcbiAgICAgICAgd2lkdGg6IDMzLjMzMzIlO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuLmZvcm0tY29udGFpbmVyOm5vdCguZm9ybS13aXRoLWltYWdlKSB7XG4gICAgLm1hcmNvLWZvcm0gZmllbGRzZXQ6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi5tYXJjby1mb3JtIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmllbGRzZXQge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IC01MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJ0bi1jb250YWN0IHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuNHM7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmJ1dHRvbi1ib3JkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICB9XG4gICAgICAgICYuYnV0dG9uLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgY29sb3I6ICMyZWM1NTYgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC5idXR0b24tYm9yZGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmVjNTU2O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucG9zdC1wYXNzd29yZC1mb3JtIHtcbiAgICBmaWVsZHNldCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4vLyBXUCBHQUxMRVJZXG4uZ2FsbGVyeS1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIG1hcmdpbjogMCAwIDEuNWVtO1xuICAgIHBhZGRpbmc6IDAgMWVtIDAgMDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGEsXG4gICAgYTpob3ZlcixcbiAgICBhOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIGEgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjJzIGVhc2UtaW47XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gICAgYTpob3ZlciBpbWcsXG4gICAgYTpmb2N1cyBpbWcge1xuICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoNjAlKTtcbiAgICB9XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1heC13aWR0aDogMzMuMzMzMiU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1heC13aWR0aDogMjAlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY3JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1heC13aWR0aDogMTQuMjglO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1heC13aWR0aDogMTEuMTElO1xufVxuXG4uZ2FsbGVyeS1jYXB0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuXG4vKipcbiAqXG4gKiBQYWdlIEludHJvXG4gKlxuICovXG5cbi5wYWdlLWludHJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIC5pbnRyby1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuICAgIH1cbiAgICAuaW50cm8tY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xuICAgICAgICBwYWRkaW5nOiA5MHB4IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5pbnRyby1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgICYuaW50cm8tY29udGVudC1sZWZ0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5pbnRyby1jb250ZW50LXJpZ2h0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICYuaW50cm8tY29udGVudC1jZW50ZXIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pbnRyby1oZWFkZXI6bGFzdC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMzBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMzBweCAzMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Ugb25seSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDYwcHggNjBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDEyMHB4IDkwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmludHJvLWhlYWRlciAucG9zdC1tZXRhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTYwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgfVxuICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4ucGFnZS1oZWFkZXItaW50cm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNsYXNzaWMge1xuICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYWdlLWhlYWRlciB7XG4gICAgcGFkZGluZzogNjBweCAzMHB4IDMwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgfVxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRlbnQgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgLy8gKiB7ICB9XG4gICAgfVxuICAgIC5oZWFkZXIgaDMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5wb3N0LW1ldGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIH1cbn1cblxuXG4vKipcbiAqXG4gKiBFbGVtZW50cyB0eXBvXG4gKlxuICovXG5cbi5lbC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmVsLXRhYmxlLWNlbGwge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgIH1cbn1cblxuLnNlY3Rpb24tZGFyayB7XG4gICAgYmFja2dyb3VuZDogJGJvZHktZm9udC1jb2xvcjtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4uZWwtaW50cm8gLmVsLXRhYmxlIC5lbC10YWJsZS1jZWxsIHtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG59XG5cblxuLyoqXG4gKlxuICogNDA0IGVycm9yXG4gKlxuICovXG5cbi5lcnJvci00MDQge1xuICAgIG1hcmdpbjogNjBweCAwIDEyMHB4IDA7XG4gICAgaDEge1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgZm9udC1zaXplOiAyNjBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiTG9yYVwiO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgLnBhZ2UtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgfVxuICAgIGZpZWxkc2V0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNlYXJjaC1pbnB1dCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTUwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtaW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzExMTtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cblxuLyoqXG4gKlxuICogU1ZHIGljb25zXG4gKlxuICovXG5cbi5hcnJvdy1wcmV2IHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBzdmcge1xuICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpLCB0cmFuc2Zvcm0gLjRzIGN1YmljLWJlemllcigwLjE2LCAwLjUxLCAwLjc4LCAwLjY0KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNXB4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFycm93LW5leHQge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpLCB0cmFuc2Zvcm0gLjRzIGN1YmljLWJlemllcigwLjE2LCAwLjUxLCAwLjc4LCAwLjY0KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNXB4KTtcbiAgICB9XG59XG5cbi5hcnJvdy1wcmV2IGxpbmUsXG4uYXJyb3ctbmV4dCBsaW5lIHtcbiAgICBzdHJva2U6ICRibGFjaztcbn1cblxuc3ZnI2ljb24tYmlnLWFycm93LXByZXYsXG5zdmcjaWNvbi1iaWctYXJyb3ctbmV4dCB7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGxpbmUge1xuICAgICAgICBzdHJva2Utd2lkdGg6IDFweDtcbiAgICAgICAgdmVjdG9yLWVmZmVjdDogbm9uLXNjYWxpbmctc3Ryb2tlO1xuICAgICAgICBmaWxsOiBub25lO1xuICAgIH1cbn1cblxuXG4vKipcbiAqXG4gKiBDb2xvcnNcbiAqXG4gKi9cblxuLnBhZ2UtaGVhZGVyLWludHJvIGxpIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbn1cblxuLnBhZ2UtaGVhZGVyLWludHJvIC5saW5rLWhvdmVyOmFmdGVyLFxuLnBhZ2UtaGVhZGVyIC5saW5rLWhvdmVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1mb250LWNvbG9yO1xufVxuXG4ucGFnZS1pbnRybyAuaW50cm8tb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrO1xufVxuXG4ucGFnZS1pbnRybyAuaW50cm8tY29udGVudCxcbi5wYWdlLWludHJvIC5wYWdlLWhlYWRlci1pbnRybyBsaSB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbn1cblxuLnBhZ2UtaW50cm8gLmxpbmstaG92ZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbn1cblxuLmVsZW1lbnQtbGlzdC10YWJsZSBsaSB7XG4gICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4gICAgfVxufVxuXG4uZWxlbWVudC1jdGEuY3RhLWNvbnRlbnQtbGlnaHQge1xuICAgIGNvbG9yOiAkd2hpdGU7XG59XG5cbi5jb250ZW50IGEge1xuICAgIGJvcmRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xufVxuXG4udmNfcm93LWZsZXgge1xuICAgID4gLmNvbHVtbnMge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgPiAudmNfY29sdW1uLWlubmVyIHtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgICAgICAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi52Y19yb3ctZmxleCB7XG4gICAgJi52Y19yb3ctby1jb250ZW50LXRvcCB7XG4gICAgICAgID4gLnZjX3ZjX2NvbHVtbixcbiAgICAgICAgPiAudmNfdmNfY29sdW1uX2lubmVyIHtcbiAgICAgICAgICAgID4gLnZjX2NvbHVtbl9jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLnZjX2NvbHVtbi1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLnZjX3Jvdy1vLWVxdWFsLWhlaWdodCkge1xuICAgICAgICAgICAgPiAudmNfdmNfY29sdW1uLFxuICAgICAgICAgICAgPiAudmNfdmNfY29sdW1uX2lubmVyIHtcbiAgICAgICAgICAgICAgICA+IC52Y19jb2x1bW5fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnZjX3Jvdy1vLWNvbnRlbnQtYm90dG9tIHtcbiAgICAgICAgPiAuY29sdW1ucyB7XG4gICAgICAgICAgICA+IC52Y19jb2x1bW4taW5uZXIge1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLnZjX3Jvdy1vLWVxdWFsLWhlaWdodCkge1xuICAgICAgICAgICAgPiAudmNfdmNfY29sdW1uLFxuICAgICAgICAgICAgPiAudmNfdmNfY29sdW1uX2lubmVyIHtcbiAgICAgICAgICAgICAgICA+IC52Y19jb2x1bW5fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi52Y19yb3ctby1jb250ZW50LW1pZGRsZSB7XG4gICAgICAgID4gLmNvbHVtbnMge1xuICAgICAgICAgICAgPiAudmNfY29sdW1uLWlubmVyIHtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLnZjX3Jvdy1vLWVxdWFsLWhlaWdodCkge1xuICAgICAgICAgICAgPiAudmNfdmNfY29sdW1uLFxuICAgICAgICAgICAgPiAudmNfdmNfY29sdW1uX2lubmVyIHtcbiAgICAgICAgICAgICAgICA+IC52Y19jb2x1bW5fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICpcbiAqIE1haW4gbmF2aWdhdGlvbiBcbiAqXG4gKi9cblxuYm9keS5hZG1pbi1iYXIubmF2LXRvcCB7XG4gICAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgICAgIHRvcDogMzJweDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzgycHgpIHtcbiAgICAgICAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB0b3A6IDQ2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAkbW9iaWxlLW5hdi1oZWlnaHQ6IDEwMHB4O1xuICAgIC5uYXYtc29saWQgLnBhZ2Utd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbW9iaWxlLW5hdi1oZWlnaHQ7XG4gICAgICAgIC5ob21lLWJnLXNsaWRlciB7XG4gICAgICAgICAgICB0b3A6ICRtb2JpbGUtbmF2LWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS1pbnRybyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkbW9iaWxlLW5hdi1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgICAgIGhlaWdodDogJG1vYmlsZS1uYXYtaGVpZ2h0O1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIC5uYXYtd3JhcHBlciB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtb2JpbGUtbmF2LWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubmF2LXRyYW5zcGFyZW50IC5pbnRyby1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogJG1vYmlsZS1uYXYtaGVpZ2h0ICsgNjBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubW9iaWxlLW5hdmJhci1vdmVybGF5IC5tZW51LW1vYmlsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEzMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5uYXYtc29saWQubmF2LWhvbWUgPiAucGFnZS13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgLnBhZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAkbmF2aWdhdGlvbi1oZWlnaHQ6IDE1MHB4O1xuICAgIC5tYWluLW5hdmlnYXRpb24gLm5hdi13cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAkbmF2aWdhdGlvbi1oZWlnaHQ7XG4gICAgfVxuICAgIC5uYXYtc29saWQubmF2LXRvcCAucGFnZS13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRuYXZpZ2F0aW9uLWhlaWdodDtcbiAgICAgICAgLmhvbWUtYmctc2xpZGVyIHtcbiAgICAgICAgICAgIHRvcDogJG5hdmlnYXRpb24taGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIC5wYWdlLWludHJvIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRuYXZpZ2F0aW9uLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubmF2LXRyYW5zcGFyZW50Lm5hdi10b3AgLnBhZ2Utd3JhcHBlciB7XG4gICAgICAgIC5pbnRyby1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRuYXZpZ2F0aW9uLWhlaWdodCArIDkwcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuaG9tZS1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkbmF2aWdhdGlvbi1oZWlnaHQgKyA2MHB4O1xuICAgICAgICAgICAgLmhvbWUtdG9wIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRuYXZpZ2F0aW9uLWhlaWdodCArIDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5hdi1zb2xpZC5uYXYtYm90dG9tIC5wYWdlLXdyYXBwZXIgLmhvbWUtYmctc2xpZGVyIHtcbiAgICAgICAgYm90dG9tOiAkbmF2aWdhdGlvbi1oZWlnaHQ7XG4gICAgfVxuICAgIC5uYXYtdHJhbnNwYXJlbnQubmF2LWJvdHRvbSAucGFnZS13cmFwcGVyIC5ob21lLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG5hdmlnYXRpb24taGVpZ2h0ICsgNjBweDtcbiAgICAgICAgLmhvbWUtYm90dG9tIHtcbiAgICAgICAgICAgIGJvdHRvbTogJG5hdmlnYXRpb24taGVpZ2h0ICsgNjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgIC5wYWdlLXBhZGRpbmctdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgfVxuICAgIC5uYXYtc29saWQgLnBhZ2Utd3JhcHBlciAucGFnZS1pbnRybyAucGFnZS1oZWFkZXItaW50cm8ge1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuICAgIC5ob21lLWJnLXNsaWRlciB7XG4gICAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubmF2LWJvdHRvbSAubWFpbi1uYXZpZ2F0aW9uLFxuICAgIC5uYXYtY2VudGVyLXZlciAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuICAgICNyZW9yZGVyLW1vYmlsZSB7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTE3cHg7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgIH1cbiAgICAubmF2LXRyYW5zcGFyZW50IC5wYWdlLXdyYXBwZXIge1xuICAgICAgICAuaG9tZS1iZy1zbGlkZXIsXG4gICAgICAgIC5wYWdlLXBhZGRpbmctdG9wIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS1pbnRybyB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICAubmF2LWxvZ28ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDM1cHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTVweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAubmF2LXNvbGlkLm5hdi10b3AgLnBhZ2Utd3JhcHBlciB7XG4gICAgICAgIC5ob21lLWJnLXNsaWRlciB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgLnBhZ2UtaW50cm8gLnBhZ2UtaGVhZGVyLWludHJvIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucGFnZS1wYWRkaW5nLXRvcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgIH1cbiAgICAubmF2LXRyYW5zcGFyZW50IC5wYWdlLXdyYXBwZXIge1xuICAgICAgICAuaG9tZS1iZy1zbGlkZXIsXG4gICAgICAgIC5wYWdlLXBhZGRpbmctdG9wIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS1pbnRybyB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5hdi10cmFuc3BhcmVudC5uYXYtdG9wIC5wYWdlLXdyYXBwZXIge1xuICAgICAgICAucGFnZS1pbnRybyArIC5wYWdlLXBhZGRpbmctdG9wLFxuICAgICAgICAucGFnZS1oZWFkZXItaW50cm8gKyAucGFnZS1wYWRkaW5nLXRvcCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNjBweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5uYXYtc29saWQubmF2LWJvdHRvbSAucGFnZS13cmFwcGVyIHtcbiAgICAgICAgLmhvbWUtYmctc2xpZGVyIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS1wYWRkaW5nLXRvcCB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5hdi1zb2xpZC5uYXYtY2VudGVyLXZlciAucGFnZS13cmFwcGVyIHtcbiAgICAgICAgLmhvbWUtYmctc2xpZGVyLFxuICAgICAgICAucGFnZS1wYWRkaW5nLXRvcCB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhvbWUtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgICAgICAuaG9tZS10b3Age1xuICAgICAgICAgICAgdG9wOiA2MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmF2LWNsYXNzZXMge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICB6LWluZGV4OiA0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5uYXYtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLm5hdi1pdGVtcyB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTI1cHg7XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDIwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAmW2hyZWY9XCIjXCJdIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5hdi1sb2dvIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cztcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDAgNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHggMDtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZS1sb2dvIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5tZW51LWl0ZW0ge1xuICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2hvdy1wbHVzIHtcbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5maXJzdC1sZXZlbCA+IGE6OmJlZm9yZSB7XG4gICAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4ubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpub3QoLmZpcnN0LWxldmVsKSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogJysnO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuc3ViLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMTk7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiA3cHggMDtcbiAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAuZHJvcGRvd24tbGVmdCB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBcbiAgICAgICAgfVxuICAgICAgICBsaSB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDE1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kcm9wZG93biA+IGxpID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGN1YmljLWJlemllcigwLjE2LCAwLjUxLCAwLjc4LCAwLjY0KSwgdHJhbnNmb3JtIC40cyBjdWJpYy1iZXppZXIoMC4xNiwgMC41MSwgMC43OCwgMC42NCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICAgICAgYmFja2dyb3VuZDogJGJvZHktZm9udC1jb2xvcjtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmF2LXRvcCxcbi5uYXYtY2VudGVyLXZlciB7XG4gICAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgdG9wOiAtN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmF2LWJvdHRvbSB7XG4gICAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IHtcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiAtN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmF2LXRvcCAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG59XG5cbi5uYXYtY2VudGVyLXZlciAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxufVxuXG4ubmF2LWJvdHRvbSAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi5uYXYtbGVmdC1hbGwge1xuICAgIC5uYXYtbG9nbyxcbiAgICAubmF2LWl0ZW1zIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICAgIC5uYXYtaXRlbXMge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi1sZWZ0IHtcbiAgICAubmF2LWxvZ28ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gICAgLm5hdi1pdGVtcyB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5uYXYtcmlnaHQtYWxsIHtcbiAgICAubmF2LWxvZ28sXG4gICAgLm5hdi1pdGVtcyB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgLm5hdi1pdGVtcyB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubmF2LXJpZ2h0IHtcbiAgICAubmF2LWxvZ28ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIC5uYXYtaXRlbXMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5uYXYtY2VudGVyIC5tYWluLW5hdmlnYXRpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAubmF2LWl0ZW1zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5uYXYtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgfVxuICAgIH1cbiAgICAubWFpbi1uYXYtbGVmdCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICA+IHVsIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1haW4tbmF2LXJpZ2h0IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5uYXYtaWNvbnMge1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAzO1xuICAgIGEge1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxufVxuXG4ubmF2LXJpZ2h0LFxuLm5hdi1yaWdodC1hbGwge1xuICAgIC5uYXYtaWNvbnMge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG59XG5cblxuLyoqXG4gKlxuICogRml4ZWQgbmF2aWdhdGlvblxuICpcbiAqL1xuXG4uZml4ZWQtbmF2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogNjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLm1lbnUtbWFpbi1tZW51IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5uYXYtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAzMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMjVweCAwO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICA+IHVsID4gbGkge1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGEge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAmW2hyZWY9XCIjXCJdIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZHJvcGRvd24gLmRyb3Bkb3duIGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgICAmLnNob3ctZml4ZWQtbmF2IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5maXJzdC1sZXZlbCA+IGE6OmJlZm9yZSxcbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEgc3Bhbi50aXRsZTo6YWZ0ZXIge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC05cHg7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHM7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IGEge1xuICAgICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cztcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi10b3AgLmZpeGVkLW5hdiB7XG4gICAgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLmRyb3Bkb3duIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAgICAgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgIHRvcDogLTdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKipcbiAqXG4gKiBNb2JpbGUgbmF2aWdhdGlvblxuICpcbiAqL1xuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgLmhvbWUtbW9iaWxlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDogNjtcbiAgICAgICAgYm90dG9tOiAzMHB4O1xuICAgICAgICAuaG9tZXBhZ2UtaWNvbiB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi52aWRlby1tb2JpbGUtY29udHJvbCBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5pbmZvLW1vYmlsZS1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpIC4ycywgb3BhY2l0eSAuNXMgLjJzO1xuICAgICAgICB6LWluZGV4OiA2O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC43KTtcbiAgICAgICAgJi5vcGVuLW92ZXJsYXkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpLCBvcGFjaXR5IC41cztcbiAgICAgICAgfVxuICAgICAgICAuY2xvc2UtbmF2IHtcbiAgICAgICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAgICAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgY2lyY2xlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuaG9tZS1tb2JpbGUtY29ybmVycyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAuaG9tZS1zb2NpYWwtbWVkaWEge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgNjBweDtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycHggMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ob21lLWNvbnRhY3QtaW5mbyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5tb2JpbGUtbmF2YmFyLWhlbHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllcigwLjE2LCAwLjUxLCAwLjc4LCAwLjY0KSAuMnMsIG9wYWNpdHkgLjVzIC4ycztcbiAgICAgICAgei1pbmRleDogNztcbiAgICAgICAgJi5vcGVuLW92ZXJsYXkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpLCBvcGFjaXR5IC41cztcbiAgICAgICAgfVxuICAgIH1cbiAgICAubW9iaWxlLW5hdmJhci1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIDBzLCB0cmFuc2Zvcm0gLjRzIDBzLCB2aXNpYmlsaXR5IC40cyAuNHM7XG4gICAgICAgIHBhZGRpbmc6IDAgNjBweCA2MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgJi5zaG93LW1vYmlsZS1uYXYge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyAuNHMsIHRyYW5zZm9ybSAuNHMgLjRzLCB2aXNpYmlsaXR5IC40cyAwcztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgfVxuICAgICAgICAubWVudS1tb2JpbGUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID4gLnN1Yi1tZW51ID4gbGkge1xuICAgICAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiAuc3ViLW1lbnUgPiBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5jbG9zZS1uYXYge1xuICAgICAgICAgICAgei1pbmRleDogMzA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBjaXJjbGUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC4yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5tZW51LW1vYmlsZSB7XG4gICAgICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIC5zdWItbWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGN1YmljLWJlemllcigwLjE2LCAwLjUxLCAwLjc4LCAwLjY0KSwgdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXI6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMiwgMSk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaG9tZS1jb250ZW50IC5jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuI2ZpeGVkLW5hdiAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiAuc3ViLW1lbnUge1xuICAgIGJvdHRvbTogaW5pdGlhbDtcbiAgICB0b3A6IDEwMCU7XG59XG5cblxuLyoqXG4gKlxuICogTmF2aWdhdGlvbiBDb2xvcnMgXG4gKlxuICovXG5cbi5uYXYtbGlnaHQtdGV4dCB7XG4gICAgLm1haW4tbmF2aWdhdGlvbixcbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiAuc3ViLW1lbnUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG4gICAgfVxuICAgIC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIC5zdWItbWVudSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5uYXYtaXRlbXMgYSxcbiAgICAubmF2LWljb25zIGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgICNyZW9yZGVyLW1vYmlsZSBsaW5lIHtcbiAgICAgICAgc3Ryb2tlOiAkd2hpdGU7XG4gICAgfVxufVxuXG4ubmF2LWRhcmstdGV4dCB7XG4gICAgLmRlc2t0b3AtbWVudSAubWFpbi1uYXZpZ2F0aW9uLFxuICAgIC5kZXNrdG9wLW1lbnUgLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gLnN1Yi1tZW51IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIH1cbiAgICAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiAuc3ViLW1lbnUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm5hdi1pdGVtcyBhLFxuICAgIC5uYXYtaWNvbnMgYSB7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRTUy1SZWQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkU1MtUmVkICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI3Jlb3JkZXItbW9iaWxlIGxpbmUge1xuICAgICAgICBzdHJva2U6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgfVxufVxuXG4uZml4ZWQtbmF2IHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgPiB1bCA+IGxpID4gYTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm1vYmlsZS1uYXZiYXItaGVscGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XG59XG5cbi5tb2JpbGUtbmF2YmFyLW92ZXJsYXkgLm1lbnUtbW9iaWxlIGEge1xuICAgIGNvbG9yOiAkd2hpdGU7XG59XG5cbi5tb2JpbGUtbmF2YmFyLW92ZXJsYXkgLm1lbnUtbW9iaWxlIGxpID4gYTphZnRlciB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xufVxuXG4uaG9tZXBhZ2UtaWNvbiB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xufVxuIiwiLmhvbWVwYWdlIHtcblx0LmhvbWUtdG9wIHsgYm90dG9tOiBhdXRvOyB9XG5cdC5ob21lLWJvdHRvbSB7IGJvdHRvbTogNjBweDsgdG9wOiBhdXRvOyB9XG5cdC5ob21lLWxlZnQgeyBsZWZ0OiAzMHB4OyByaWdodDogYXV0bzsgfVxuXHQuaG9tZS1yaWdodCB7IHJpZ2h0OiAzMHB4OyBsZWZ0OiBhdXRvOyB9XG5cdC5ob21lLWJnLXNsaWRlciB7IHBvc2l0aW9uOiBmaXhlZDsgd2lkdGg6IDEwMCU7IGxlZnQ6IDA7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDEwMHZoO1xuXHRcdH1cblx0fVxuXHQuaG9tZS1vdmVybGF5IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHotaW5kZXg6IDI7IHRyYW5zaXRpb246IG9wYWNpdHkgMS41czsgb3BhY2l0eTogMDsgfVxuXHQuaG9tZS1jb250ZW50IHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAzOyBoZWlnaHQ6IDEwMCU7IHBhZGRpbmctYm90dG9tOiA5MHB4OyBcblx0XHQuY29udGVudCB7IG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgMHMsIHZpc2liaWxpdHkgMHMgLjRzO1xuXHRcdFx0Ji5zaG93LWNvbnRlbnQgeyBvcGFjaXR5OiAxOyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyAwcywgdmlzaWJpbGl0eSAwcyAwczsgfVxuXHRcdH1cblx0fVxuXHQuY29udGVudCwgLmNvbHVtbnMgeyBoZWlnaHQ6IDEwMCU7IH1cblx0LmhvbWUtc2xpZGVyLXBhZ2luYXRpb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDQ7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0LnNsaWRlLW51bWJlciB7IG9wYWNpdHk6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgbGluZS1oZWlnaHQ6IDUwcHg7IGZvbnQtc2l6ZTogMThweDsgZm9udC1mYW1pbHk6ICRzdWJoZWFkZXItZm9udC1mYW1pbHk7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xuXHRcdFx0c3BhbiB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1zaXplOiAxOHB4OyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IHBhZGRpbmc6IDAgMTBweDsgfVxuXHRcdFx0Ji5zbGlkZS1hY3RpdmUgeyBvcGFjaXR5OiAuODsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuXHRcdH1cblx0XHQucHJvZ3Jlc3Mtc2xpZGUgeyB0cmFuc2l0aW9uOiBsZWZ0IC40czsgd2lkdGg6IDEwMCU7IFxuXHRcdFx0LnZlZ2FzLXRpbWVyIHsgaGVpZ2h0OiAxcHg7IH1cblx0XHR9XG5cdFx0JjpiZWZvcmUsIC5wcm9ncmVzcy1zbGlkZSB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAwcHg7IGhlaWdodDogMXB4OyB9XG5cdFx0JjpiZWZvcmUgeyBvcGFjaXR5OiAuMzsgd2lkdGg6IDEwMCU7IH1cblx0fVxuXHQuaG9tZS1jb250YWN0LWluZm8geyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDQ7IHRleHQtYWxpZ246IGNlbnRlcjsgXG5cdFx0c3BhbiwgYSB7IGZvbnQtc2l6ZTogMTRweDsgfVxuXHRcdD4gc3BhbiB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IFxuXHRcdFx0c3ZnIHsgaGVpZ2h0OiAyMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRyYW5zZm9ybTogcm90YXRlKDI1ZGVnKTsgfVxuXHRcdFx0JjphZnRlciB7IGNvbnRlbnQ6IFwiL1wiOyBjb2xvcjogaW5oZXJpdDsgcGFkZGluZzogMCAycHg7IH1cblx0XHRcdCY6bGFzdC1vZi10eXBlOmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdH1cblx0XHRhIHsgY29sb3I6IGluaGVyaXQ7IHBvc2l0aW9uOiByZWxhdGl2ZTtcdH1cblx0XHRhOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMCU7IGxlZnQ6IDA7IGhlaWdodDogMXB4OyB3aWR0aDogMTAwJTsgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuNHM7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBcblx0XHRcdCY6aG92ZXIgeyBib3JkZXItY29sb3I6IGluaGVyaXQ7IH1cblx0XHR9XG5cdH1cblx0LmhvbWUtc2xpZGVyLWxhbmd1YWdlcyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogNDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW46IDA7IG92ZXJmbG93OiBoaWRkZW47IFxuXHRcdGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiA0MHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IFxuXHRcdFx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDIwcHg7IGhlaWdodDogMXB4OyB0b3A6IDUwJTsgcmlnaHQ6IC0zMHB4OyBvcGFjaXR5OiAuNTsgfVxuXHRcdFx0JjpsYXN0LW9mLXR5cGUgeyBtYXJnaW46IG5vbmU7IFxuXHRcdFx0XHQmOmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdFx0fVxuXHRcdH1cblx0XHRhIHsgb3BhY2l0eTogLjU7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzOyBcblx0XHRcdCY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdFx0XHQmLmFjdGl2ZSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgb3BhY2l0eTogMTsgfVxuXHRcdH1cblx0fVxuXHQuaG9tZS12aWRlby1jb250cm9scyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogNDsgbWFyZ2luOiAwO1xuXHRcdGEge1xuXHRcdFx0JjphZnRlciB7IGJvdHRvbTogLTVweDsgfVxuXHRcdH1cblx0fVxuXHQuaG9tZS1zbGlkZXItdGV4dCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogODAlOyBoZWlnaHQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC01MCUsMCk7IHBlcnNwZWN0aXZlOiA4MDBweDsgbGVmdDogMTAlOyB6LWluZGV4OiAzO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHVybCgvd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvU2NvdGNoQW5kU21va2UtV2hpdGVUZXh0LTQwMHg1MDAucG5nKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHR9XG5cdH1cblx0LnNsaWRlci10ZXh0IHsgcG9zaXRpb246IGFic29sdXRlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IDsgdG9wOiA1MCU7IHdpZHRoOiAxMDAlOyB6LWluZGV4OiAzOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0LmJ0bi1yb3VuZGVkIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cdFx0LnNsaWRlci10ZXh0LWZpcnN0IHsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuN3MgMHMsIHRyYW5zZm9ybSAuN3MgMHM7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXHRcdC5zbGlkZXItdGV4dC1zZWNvbmQgeyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC43cyAwcywgdHJhbnNmb3JtIC43cyAwczsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cdFx0LnNsaWRlci10ZXh0LXRoaXJkIHsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuN3MgMHMsIHRyYW5zZm9ybSAuN3MgMHM7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXHRcdCYuc2xpZGUtYWN0aXZlIHsgei1pbmRleDogNDtcblx0XHRcdC5zbGlkZXItdGV4dC1maXJzdCwgLnNsaWRlci10ZXh0LXNlY29uZCwgLnNsaWRlci10ZXh0LXRoaXJkIHsgb3BhY2l0eTogMSAhaW1wb3J0YW50OyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cdFx0XHQuc2xpZGVyLXRleHQtZmlyc3QgeyB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIDAuNHMsIHRyYW5zZm9ybSAxcyAwLjRzOyB9XG5cdFx0XHQuc2xpZGVyLXRleHQtc2Vjb25kIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyAwLjZzLCB0cmFuc2Zvcm0gMXMgMC42czsgfVxuXHRcdFx0LnNsaWRlci10ZXh0LXRoaXJkIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyAwLjhzLCB0cmFuc2Zvcm0gMXMgMC44czsgfVxuXHRcdH1cblx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LWZhbWlseTogJHN1YmhlYWRlci1mb250LWZhbWlseTsgbWFyZ2luOiAzMHB4IDA7IH0gXG5cdH1cdFxuXHQuaG9tZS1zbGlkZXItYXJyb3dzIHsgY3Vyc29yOiBwb2ludGVyOyBcblx0XHRsaW5lIHsgc3Ryb2tlLXdpZHRoOiAxcHg7IHZlY3Rvci1lZmZlY3Q6IG5vbi1zY2FsaW5nLXN0cm9rZTsgZmlsbDogbm9uZTt9XG5cdFx0LmFycm93LXByZXYgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDMwcHg7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtMjVweDsgei1pbmRleDogNDsgfVxuXHRcdC5hcnJvdy1uZXh0IHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogMzBweDsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC0yNXB4OyB6LWluZGV4OiA0O1x0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkgeyBcblx0XHRcdC5hcnJvdy1wcmV2IHsgbGVmdDogMTAwcHg7IH1cblx0XHRcdC5hcnJvdy1uZXh0IHsgcmlnaHQ6IDEwMHB4OyB9XG5cdFx0fVxuXHR9XG5cdC5ob21lLXNvY2lhbC1tZWRpYSB7IG1hcmdpbjogMDsgcG9zaXRpb246IGFic29sdXRlOyBcblx0XHRsaSB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXHRcdGEgeyBwYWRkaW5nOiAycHggMDsgZGlzcGxheTogYmxvY2s7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXHR9XG5cdC5idG4tc2xpZGVyLTEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgMHMsIHZpc2liaWxpdHkgMHMgLjRzOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZzogMCA1cHg7XG5cdFx0Ji5idG4tc2xpZGVyLWFjdGl2ZSB7IG9wYWNpdHk6IDAuNzsgdmlzaWJpbGl0eTogdmlzaWJsZTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgMHMsIHZpc2liaWxpdHkgMHMgMHM7XG5cdFx0XHQmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuXHRcdH1cblx0XHRhIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG5cblx0fVxuXHQuYnRuLXJvdW5kZWQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbn1cblxuXG4uY29udGVudC1sb2FkZWQge1xuXHQuaG9tZS1vdmVybGF5IHtcblx0XHQmLmFjdGl2ZS1vdmVybGF5IHsgb3BhY2l0eTogMTsgfVxuXHR9XG5cbn1cblxuLyoqXG4gKlxuICogSG9tZSBTbGlkZXIgQ2VudGVyZWRcbiAqXG4gKi9cblxuLmhvbWVwYWdlLXNsaWRlcjIge1xuXHQuaG9tZS1vdmVybGF5LmFjdGl2ZS1vdmVybGF5IHsgb3BhY2l0eTogMTsgIH1cdFxuXHQuc3dpcGVyLXdyYXBwZXIgeyBkaXNwbGF5OiBmbGV4OyBoZWlnaHQ6IDEwMCU7fVxuXHQuc3dpcGVyLXNsaWRlIHsgaGVpZ2h0OiAxMDAlOyAtd2Via2l0LWZsZXgtc2hyaW5rOiAwOyAtbXMtZmxleDogMCAwIGF1dG87IGZsZXgtc2hyaW5rOiAwO2hlaWdodDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTAwdncgIWltcG9ydGFudDsgbWF4LXdpZHRoOiA2MHZ3ICFpbXBvcnRhbnQ7XG5cdFx0LnNsaWRlIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgXG5cdFx0fVxuXHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogIzAwMDsgb3BhY2l0eTogLjU7IHotaW5kZXg6IDI7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzOyB9XG5cdFx0Ji5hY3RpdmUgeyBcblx0XHRcdCY6YWZ0ZXIgeyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40czsgfVxuXHRcdH1cblx0fVxuXHQuaG9tZS1zb2NpYWwtbWVkaWEsIC5idG4tc2xpZGVyLTEgeyB6LWluZGV4OiAzOyB9XG59XG5cbi8qKlxuICpcbiAqIEhvbWUgVmlkZW9cbiAqXG4gKi9cblxuLmhvbWVwYWdlLXZpZGVvIHtcblx0LnZpZGVvLXdyYXBwZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgfVxuXHQudmlkZW8tbW9iaWxlLXdyYXBwZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxufVxuXG5cbi8qKlxuICpcbiAqIEhvbWUgTW9iaWxlXG4gKlxuICovXG4uaG9tZXBhZ2Uge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0LmhvbWUtc2xpZGVyLWFycm93cyB7XG5cdFx0XHQuYXJyb3ctcHJldiwgLmFycm93LW5leHQgeyB0b3A6IGF1dG87IGJvdHRvbTogOTBweDsgfVxuXHRcdH1cblx0XHQuaG9tZS1jb250ZW50IC5jb250ZW50IHsgcGFkZGluZy1ib3R0b206IDUwcHg7IH1cblx0fVxufVxuLmhvbWVwYWdlLXNsaWRlcjIge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0LmhvbWUtbGVmdCB7IGxlZnQ6IDMwcHg7IH1cblx0XHQuaG9tZS1yaWdodCB7IHJpZ2h0OiAzMHB4IH1cblx0XHQuaG9tZS1jb250ZW50IC5jb250ZW50IHsgcG9zaXRpb246IHN0YXRpYzsgfVxuXHR9XG59XG5cblxuLyoqXG4gKlxuICogSG9tZSBDb2xvcnMgXG4gKlxuICovXG5cbi5ob21lcGFnZSB7XG5cdC5ob21lLWNvbnRlbnQgeyBjb2xvcjogJHdoaXRlOyB9XG5cdC5ob21lLXNsaWRlci1wYWdpbmF0aW9uIHtcblx0XHQuc2xpZGUtbnVtYmVyIHsgY29sb3I6ICR3aGl0ZTsgfVxuXHRcdCY6YmVmb3JlIHsgYmFja2dyb3VuZDogJHdoaXRlOyB9XG5cdH1cblx0LmhvbWUtc2xpZGVyLWFycm93cyBsaW5lIHsgc3Ryb2tlOiAkd2hpdGU7IH1cblx0LmhvbWUtc2xpZGVyLWxhbmd1YWdlcyBsaTphZnRlciB7IGJhY2tncm91bmQ6ICR3aGl0ZTsgfVxuXHQuaG9tZS1zbGlkZXItbGFuZ3VhZ2VzIGEgeyBjb2xvcjogJHdoaXRlOyB9XG5cdC5ob21lLXNvY2lhbC1tZWRpYSBhIHsgY29sb3I6ICR3aGl0ZTsgXG5cdFx0JjphZnRlciB7IGJhY2tncm91bmQ6ICR3aGl0ZTsgfVxuXHR9XG5cdC5ob21lLWNvbnRhY3QtaW5mbyBhIHsgY29sb3I6ICR3aGl0ZTsgXG5cdFx0JjphZnRlciB7IGJvcmRlci1jb2xvcjogJHdoaXRlOyB9XG5cdH1cblx0LmJ0bi1zbGlkZXItMSBhIHsgY29sb3I6ICR3aGl0ZTsgfVxuXHQuaG9tZS12aWRlby1jb250cm9scyB7XG5cdFx0YSB7IGNvbG9yOiAkd2hpdGU7IFxuXHRcdFx0JjphZnRlciB7IGJhY2tncm91bmQ6ICR3aGl0ZTsgfVxuXHRcdH1cblx0fVxufVxuXG4uaG9tZXBhZ2Utc2xpZGVyMSB7IFxuXHQuaG9tZS1vdmVybGF5IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwLjcpIDAlLHJnYmEoMCwwLDAsMC4zKSA1MCUscmdiYSgwLDAsMCwwLjcpIDEwMCUpOyBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzk5MDAwMDAwJywgZW5kQ29sb3JzdHI9JyM5OTAwMDAwMCcsR3JhZGllbnRUeXBlPTAgKTsgXG5cdH1cbn1cblxuLmhvbWVwYWdlLXNsaWRlcjIgeyBcblx0LmhvbWUtb3ZlcmxheSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwwLDAsMC43KSAwJSxyZ2JhKDAsMCwwLDAuNSkgMjAlLCByZ2JhKDAsMCwwLDAuMykgNTAlLHJnYmEoMCwwLDAsMC41KSA4MCUsIHJnYmEoMCwwLDAsMC43KSAxMDAlKTsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyM5OTAwMDAwMCcsIGVuZENvbG9yc3RyPScjOTkwMDAwMDAnLEdyYWRpZW50VHlwZT0wICk7IFxuXHR9XG5cdC5ob21lLXNsaWRlci1wYWdpbmF0aW9uIC5wcm9ncmVzcy1zbGlkZSB7IGJhY2tncm91bmQ6ICR3aGl0ZTsgfVxufVxuXG4uaG9tZXBhZ2UtdmlkZW8geyBcblx0LmhvbWUtb3ZlcmxheSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwwLDAsMC43KSAwJSxyZ2JhKDAsMCwwLDAuNSkgMjAlLCByZ2JhKDAsMCwwLDAuMykgNTAlLHJnYmEoMCwwLDAsMC41KSA4MCUsIHJnYmEoMCwwLDAsMC43KSAxMDAlKTsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyM5OTAwMDAwMCcsIGVuZENvbG9yc3RyPScjOTkwMDAwMDAnLEdyYWRpZW50VHlwZT0wICk7IFxuXHR9XG59XG5cbi5wYWdlLXdyYXBwZXIge1xuXHQucGFnZS13cmFwcGVyIHsgbWFyZ2luLXRvcDogMTAwdmg7IHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IHotaW5kZXg6IDU7IFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHsgbWFyZ2luLXRvcDogMDsgfVxuXHR9XG59XG4ubmF2LXRyYW5zcGFyZW50IC5wYWdlLXdyYXBwZXIgLnBhZ2Utd3JhcHBlciB7IFxuXHR0b3A6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6ICMxODE4MTggIWltcG9ydGFudDtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5uYXYtaG9tZSB7XG5cdCYubmF2LXRvcCwgJi5uYXYtY2VudGVyLXZlciB7XG5cdFx0Lm1haW4tbmF2aWdhdGlvbiB7IHBvc2l0aW9uOiBmaXhlZDsgfVxuXHR9XG59IFxuXG5hI3Njcm9sbGRvd24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xufVxuXG5hI3Njcm9sbGRvd246YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbmEjc2Nyb2xsZG93biAuZmEge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iLCIvKipcbiAqXG4gKiBCbG9nXG4gKlxuICovXG5cbi5wb3N0LWNvbnRlbnQge1xuXHRwOmxhc3Qtb2YtdHlwZSB7IG1hcmdpbi1ib3R0b206IDA7IH1cblx0cCBhIHsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7IFxuXHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAwOyBvcGFjaXR5OiAuNTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpOyBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB6LWluZGV4OiAtMTsgfVxuXHRcdCY6aG92ZXIgeyBcblx0XHRcdCY6YWZ0ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdFx0fVxuXHR9XG59XG4ucG9zdC1tZXRhIHsgXG5cdHVsIHsgbWFyZ2luOiAwOyB9XG5cdGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTRweDtcblx0XHQmOmFmdGVyIHsgY29udGVudDogXCIvXCI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWxlZnQ6IDNweDsgZm9udC1zaXplOiAxMnB4OyB9XG5cdFx0JjpsYXN0LW9mLXR5cGU6YWZ0ZXIsICY6Zmlyc3Qtb2YtdHlwZTphZnRlciB7IGRpc3BsYXk6IG5vbmU7IH1cblx0XHRhIHsgZm9udC1zaXplOiAxNHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctYm90dG9tOiAzcHg7IH1cblx0fVxufVxuLnBvc3QtZGF0ZSB7IG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdGEgeyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRyYW5zaXRpb246IGNvbG9yIC40czsgfVxufVxuXG4uYmxvZyB7XG5cdGEgeyBjb2xvcjogaW5oZXJpdDsgfVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHQuYmxvZy1maWx0ZXItcG9zdHMgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0LnBvc3QtaW1hZ2UsIC5wb3N0LWhlYWRlciB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblx0XHQucG9zdC1oZWFkZXIgaDQgeyBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblx0XHQuYmxvZy1sb2FkLW1vcmUgeyBwYWRkaW5nLXRvcDogMzBweDsgfVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIG9ubHkpIHtcblx0XHQuYmxvZy1maWx0ZXItcG9zdHMgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0LnBvc3QtaW1hZ2UgeyB3aWR0aDogNTAlOyBmbG9hdDogbGVmdDsgcGFkZGluZy1yaWdodDogMTVweDsgfVxuXHRcdC5wb3N0LWhlYWRlciB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblx0XHQuYmxvZy1sb2FkLW1vcmUgeyBwYWRkaW5nLXRvcDogMzBweDsgfVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHQuYmxvZy1sb2FkLW1vcmUgeyBwYWRkaW5nOiA2MHB4IDYwcHggMCA2MHB4OyB9XG5cdFx0LnBvc3QtaGVhZGVyIGg0IHsgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXHRcdC5ibG9nLWZpbHRlci1wb3N0cyB7IGhlaWdodDogNjBweDsgbGluZS1oZWlnaHQ6IDYwcHg7XG5cdFx0XHQuYmxvZy1pbnB1dC13cmFwcGVyIHsgaGVpZ2h0OiA2MHB4O1x0fVxuXHRcdFx0LmJsb2ctc2VhcmNoIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiBhdXRvOyBtYXJnaW46IDA7IHBhZGRpbmctbGVmdDogMzBweDsgfVxuXHRcdFx0LmJsb2ctZmlsdGVycy12aWV3cyB7IGZsb2F0OiByaWdodDsgfVxuXHRcdFx0LmJsb2ctZmlsdGVycyBsaSB7IHBhZGRpbmctYm90dG9tOiAwOyB9XG5cdFx0fVxuXHR9XG5cblx0LnBvc3QtaGVhZGVyIGg0IGEgeyBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC41cyAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdCY6aG92ZXIgeyBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTsgfVxuXHR9XG5cdC5mb290ZXIgeyBtYXJnaW4tdG9wOiAwOyB9XG5cdC5ibG9nLWxvYWQtbW9yZS1jb250ZW50IHsgZGlzcGxheTogbm9uZTsgfVxufVxuLyoqXG4gKlxuICogQmxvZyBjbGFzc2ljXG4gKlxuICovXG5cbi5ibG9nLWNsYXNzaWMgeyBcblx0LnBvc3QtaW1hZ2UgeyBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cdC5wb3N0LWNvbnRlbnQgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdC5wb3N0LWl0ZW0uc3RpY2t5IHsgcG9zaXRpb246IHJlbGF0aXZlOyBcblx0XHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgY29udGVudDogXCJcIjsgdG9wOiAwOyBoZWlnaHQ6IDEwMCU7IGxlZnQ6IC0zMHB4OyByaWdodDogLTMwcHg7IHotaW5kZXg6IC0xOyB9XG5cdH1cbn1cblxuLyoqXG4gKlxuICogQmxvZyBncmlkXG4gKlxuICovXG5cbi5ibG9nLWdyaWQgeyBcblx0LmJsb2ctY29udGVudC1yb3dzIHsgZGlzcGxheTogbm9uZTsgfVxuXHQuYmxvZy1sb2FkLW1vcmUgeyBjbGVhcjogYm90aDsgcGFkZGluZy10b3A6IDA7IH1cblx0LmJsb2ctY29udGVudCA+ZGl2IHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZzogNjBweCAwOyB9XG5cdC5wb3N0LWRhdGUsIC5wb3N0LW1ldGEsIC5wb3N0LWhlYWRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWxlZnQ6IDE1cHg7IG1hcmdpbi1yaWdodDogMTVweDsgfVxuXHQucG9zdC1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiAwOyBcblx0XHRoNCB7IG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHQucG9zdC1pdGVtIHsgd2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDYwcHg7IH1cblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBvbmx5KSB7XG5cdFx0LnBvc3QtaXRlbSB7IEBpbmNsdWRlIGNhbGMod2lkdGgsICcxMDAlIC8gMicpOyBwYWRkaW5nOiAwcHggMzBweCA2MHB4OyBmbG9hdDogbGVmdDtcblx0XHRcdCY6bnRoLWNoaWxkKDJuICsgMSkgeyBjbGVhcjogYm90aDsgfVxuXHRcdH1cblx0XHQucG9zdC1pbWFnZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1ib3R0b206IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDEwMCU7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IG1hcmdpbi1ib3R0b206IDMwcHg7IFxuXHRcdFx0YSB7IGN1cnNvcjogcG9pbnRlcjsgbGVmdDogNTAlOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKTsgXG5cdFx0XHRcdCYuaW1nLWhpZ2ggeyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IFxuXHRcdFx0XHRcdGltZyB7IGhlaWdodDogMTAwJTsgd2lkdGg6IGF1dG87IH1cblx0XHRcdFx0fVxuXHRcdFx0XHQmLmltZy13aWRlLCAmLmltZy13aWRlIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cblx0XHRcdFx0c3BhbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgaGVpZ2h0OiAxMDAlOyB9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHQucG9zdC1pdGVtIHsgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLyAzJyk7IHBhZGRpbmc6IDBweCAzMHB4IDEyMHB4OyBmbG9hdDogbGVmdDtcblx0XHRcdCY6bnRoLWNoaWxkKDNuICsgMSkgeyBjbGVhcjogYm90aDsgfVxuXHRcdH1cblx0XHQucG9zdC1pbWFnZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1ib3R0b206IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDEwMCU7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IG1hcmdpbi1ib3R0b206IDMwcHg7IFxuXHRcdFx0YSB7IGN1cnNvcjogcG9pbnRlcjsgbGVmdDogNTAlOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsLTUwJSwwKTsgb3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0Ji5pbWctaGlnaCB7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgXG5cdFx0XHRcdFx0aW1nIHsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogYXV0bzsgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdCYuaW1nLXdpZGUsICYuaW1nLXdpZGUgaW1nIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuXHRcdFx0XHRzcGFuIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgXG5cdFx0XHRcdFx0JjpiZWZvcmUgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cywgdHJhbnNmb3JtIC40czsgei1pbmRleDogMTsgfVxuXHRcdFx0XHR9XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdHNwYW46YmVmb3JlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKlxuICogQmxvZyByb3dzXG4gKlxuICovXG5cbi5ibG9nLXJvd3MgeyBwYWRkaW5nLWJvdHRvbTogNjBweDsgXG5cdC5ibG9nLWNvbnRlbnQtZ3JpZCB7IGRpc3BsYXk6IG5vbmU7IH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0LnBvc3QtaXRlbSB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblx0XHQucG9zdC1jb250ZW50IHsgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXHRcdC5wb3N0LWJ0bi1tb3JlIHsgbWFyZ2luLWJvdHRvbTogMXB4OyB9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdC5wb3N0LWl0ZW0geyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nLWJvdHRvbTogMzBweDsgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXHRcdC5wb3N0LWhlYWRlciwgLnBvc3QtY29udGVudCwgLnBvc3QtYnRuLW1vcmUgeyBtYXJnaW4tbGVmdDogNTAlOyB3aWR0aDogNTAlOyBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblx0XHQucG9zdC1jb250ZW50IHsgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHQucG9zdC1pdGVtIHsgZGlzcGxheTogdGFibGU7IHdpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG5cdFx0LnBvc3QtaW1hZ2UgeyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgcGFkZGluZzogNjBweCAwcHggNjBweCAzMHB4OyB9XG5cdFx0LnBvc3QtaGVhZGVyLCAucG9zdC1jb250ZW50LCAucG9zdC1idG4tbW9yZSB7IGRpc3BsYXk6IHRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHBhZGRpbmc6IDYwcHggMzBweDsgfVxuXHR9XG5cdC5wb3N0LWl0ZW0geyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyB9XG5cdFxuXHQucG9zdC1idG4tbW9yZSB7IHdpZHRoOiAyMDBweCAhaW1wb3J0YW50OyBcblx0XHRhIHsgcGFkZGluZy1ib3R0b206IDVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweDsgZm9udC1zaXplOiAxNHB4OyB9XG5cdH1cblx0LnBvc3QtaW1hZ2Uge1xuXHRcdHNwYW4geyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IFxuXHRcdFx0JjpiZWZvcmUgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cywgdHJhbnNmb3JtIC40czsgei1pbmRleDogMTsgfVxuXHRcdH1cblx0XHRhOmhvdmVyIHtcblx0XHRcdHNwYW46YmVmb3JlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICpcbiAqIEJsb2cgZmlsdGVyc1xuICpcbiAqL1xuXHRcbi5ibG9nLWZpbHRlci1wb3N0cyB7IHdpZHRoOiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IFxuXHQuYmxvZy1pbnB1dC13cmFwcGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9IFxuXHQuYmxvZy1zZWFyY2gsIC5ibG9nLWZpbHRlcnMtdmlld3MgeyBmbG9hdDogbm9uZTsgfVxuXHQuYmxvZy1zZWFyY2ggeyBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cdC5ibG9nLWZpbHRlcnMtdmlld3MgeyBcblx0XHQuYmxvZy1maWx0ZXJzLCAucG9zdC12aWV3cyB7IG1hcmdpbjogMDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBoZWlnaHQ6IDEwMCU7IH1cblx0XHRsaSB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDAgMTBweDsgcGFkZGluZy1ib3R0b206IDE1cHg7IGhlaWdodDogNjBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBcblx0XHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMXB4OyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzLCB0cmFuc2Zvcm0gLjRzOyBiYWNrZ3JvdW5kOiAjMTExOyB9XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0JjphZnRlciB7IG9wYWNpdHk6IDE7IH1cblx0XHRcdH1cblx0XHRcdCYuYWN0aXZlLWZpbHRlciB7XG5cdFx0XHRcdCY6YWZ0ZXIgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlM2QoMSwyLDEpOyB9XG5cdFx0XHR9XG5cdFx0XHRhIHsgZm9udC1zaXplOiAxNHB4OyBkaXNwbGF5OiBibG9jazsgbGluZS1oZWlnaHQ6IDYwcHg7IH1cblx0XHR9XG5cdH1cblx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAxNXB4OyByaWdodDogMTVweDsgaGVpZ2h0OiAxcHg7IHotaW5kZXg6IC0xOyB9XG5cdC5zZWFyY2gtaWNvbiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDMwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgaGVpZ2h0OiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1yaWdodDogMTVweDsgXG5cdFx0LnNlYXJjaC1pY29uLWNsb3NlIHsgb3BhY2l0eTogMDsgdmlzaWJpbGl0eTogaGlkZGVuOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyAwcywgdmlzaWJpbGl0eSAwcyAuNHM7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9XG5cdFx0PiBpIHsgb3BhY2l0eTogMTsgdmlzaWJpbGl0eTogdmlzaWJsZTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgMHMsIHZpc2liaWxpdHkgMHMgMHM7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXHR9XG5cdC5zZWFyY2gtaW5wdXQgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGhlaWdodDogNjBweDsgd2lkdGg6IDA7IHRyYW5zaXRpb246IHdpZHRoIC40cyAwcywgdmlzaWJpbGl0eSAwcyAuNHM7IHBhZGRpbmc6IDA7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IHZpc2liaWxpdHk6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGlucHV0IHsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3gtc2hhZG93OiBub25lOyBtYXJnaW4tYm90dG9tOiAwOyBoZWlnaHQ6IDYwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDogMzBweDsgfVxuXHRcdGJ1dHRvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDA7IGhlaWdodDogNjBweDsgd2lkdGg6IDMwcHg7IGJvdHRvbTogMDsgdGV4dC1hbGlnbjogY2VudGVyOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40czsgY3Vyc29yOiBwb2ludGVyOyB9XG5cdH1cblx0XG5cdC5ibG9nLXNlYXJjaCB7IHdpZHRoOiAxMDAlOyBcblx0XHQmLmFjdGl2ZS1zZWFyY2ggeyBcblx0XHRcdC5zZWFyY2gtaWNvbiA+IHN2ZyB7IG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgMHMsIHZpc2liaWxpdHkgMHMgLjRzOyB9XG5cdFx0XHQuc2VhcmNoLWljb24gLnNlYXJjaC1pY29uLWNsb3NlIHsgb3BhY2l0eTogLjU7IHZpc2liaWxpdHk6IHZpc2libGU7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIDBzLCB2aXNpYmlsaXR5IDBzIDBzOyBcblx0XHRcdFx0Jjpob3ZlciB7IG9wYWNpdHk6IDE7IH1cblx0XHRcdH1cblx0XHRcdC5zZWFyY2gtaW5wdXQgeyB3aWR0aDogMjAwcHg7IHZpc2liaWxpdHk6IHZpc2libGU7IHRyYW5zaXRpb246IHdpZHRoIC40cyAwcywgdmlzaWJpbGl0eSAwcyAwczsgXG5cdFx0XHRcdGJ1dHRvbiB7IG9wYWNpdHk6IC41OyBcblx0XHRcdFx0XHQmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICpcbiAqIFNpbmdsZSBQb3N0XG4gKlxuICovXG5cbi5zaW5nbGUtcG9zdCB7XG5cdC5wb3N0LWNvbnRlbnQgcCB7IG1hcmdpbi1ib3R0b206IDMwcHg7IGZvbnQtc2l6ZTogMTdweDsgfVxuXHRhIHsgY29sb3I6IGluaGVyaXQ7IH1cblx0LmZvb3RlciB7IG1hcmdpbi10b3A6IDkwcHg7IH1cbn1cbi5zaW5nbGUtcG9zdC1uYXYgeyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyBkaXNwbGF5OiB0YWJsZTsgbWFyZ2luLWJvdHRvbTogNjBweDsgXG5cdGEgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblx0LmFycm93LXByZXYsIC5hcnJvdy1uZXh0LCAuaWNvbi1jbG9zZSB7IGRpc3BsYXk6IHRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGN1cnNvcjogZGVmYXVsdDsgfVxuXHQuaWNvbi1jbG9zZSBhIHsgcGFkZGluZzogMTVweDsgfVxufVxuLnNpbmdsZS1wb3N0LWhlYWRlciB7IFxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7IG1hcmdpbi1ib3R0b206IDMwcHg7IFxuXHRcdC5wb3N0LW1ldGEgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0LnBvc3QtZGF0ZSB7IG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblx0XHRoMyB7IG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IGRpc3BsYXk6IHRhYmxlOyB3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBmaXhlZDsgbWFyZ2luLWJvdHRvbTogNjBweDsgXG5cdFx0LnBvc3QtaGVhZGVyIHsgcGFkZGluZy1yaWdodDogMTIwcHg7IH1cblx0XHQucG9zdC1oZWFkZXIsIC5wb3N0LWltYWdlIHsgZGlzcGxheTogdGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgdGV4dC1hbGlnbjogbGVmdDsgfVxuXHRcdC5wb3N0LWRhdGUgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0aDMgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdH1cbn1cblxuLnBvc3QtdGFncyB7IG1hcmdpbjogMzBweCAwIDYwcHg7IFxuXHRsaSB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7XG5cdFx0JjphZnRlciB7IGNvbnRlbnQ6IFwiL1wiOyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1sZWZ0OiAzcHg7IGZvbnQtc2l6ZTogMTBweDsgfVxuXHRcdCY6bGFzdC1vZi10eXBlOmFmdGVyLCAmOmZpcnN0LW9mLXR5cGU6YWZ0ZXIgeyBkaXNwbGF5OiBub25lOyB9XG5cdFx0YSB7IGZvbnQtc2l6ZTogMTBweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLWJvdHRvbTogM3B4OyB9XG5cdH1cbn1cblxuLyoqXG4gKlxuICogQ29tbWVudHNcbiAqXG4gKi9cblxuLnBvc3QtY29tbWVudHMgeyBtYXJnaW4tdG9wOiAtMXB4OyBwYWRkaW5nLXRvcDogNjBweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTsgb3ZlcmZsb3c6IGhpZGRlbjtcblx0PiBoNiB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblx0PiAuY29tbWVudC1saXN0IHsgbWFyZ2luOiAwOyBcblx0XHRsaSB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdC5jb21tZW50LWxpc3QgeyBtYXJnaW4tbGVmdDogMDsgfVxuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHQuY29tbWVudC1saXN0IHsgbWFyZ2luLWxlZnQ6IDgwcHg7IH1cblx0XHR9XG5cblx0fVxuXHQuY29tbWVudC1saXN0IC5jb21tZW50LWJvZHkge1xuXHRcdHVsIGxpIHsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cdFx0b2wgbGkgeyBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7IH1cblx0fVxuXG5cdC5jb21tZW50LWxpc3QgeyBvdmVyZmxvdzogaGlkZGVuOyBjbGVhcjogYm90aDsgXG5cdFx0PiBsaTpsYXN0LW9mLXR5cGUgeyBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblx0fVxuXHQucmVjZW50Y29tbWVudHMgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyBtYXJnaW4tdG9wOiAzMHB4OyBvdmVyZmxvdzogaGlkZGVuIH1cblx0LmNvbW1lbnQtYXV0aG9yLWF2YXRhciB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogNTBweDsgfVxuXHQuY29tbWVudC1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiAxNXB4OyBcblx0XHQuY29tbWVudC1hdXRob3ItbGluayB7IGZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tYm90dG9tOiAzcHg7IH1cblx0XHQuY29tbWVudC1kYXRlIHsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cdH1cblx0LmNvbW1lbnQtaGVhZGVyLCAuY29tbWVudC1ib2R5IHsgbWFyZ2luLWxlZnQ6IDgwcHg7IH1cblx0LmNvbW1lbnQtcmVwbHktbGluayB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZsb2F0OiByaWdodDsgZm9udC1zaXplOiAxMnB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG59XG4jcmVjZW50Y29tbWVudHMgeyBtYXJnaW4tYm90dG9tOiA5MHB4OyB9XG5cbi5jb21tZW50LWZvcm0ge1xuXHRmaWVsZHNldDphZnRlciB7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB9XG59XG4uYnRuLWNvbW1lbnQgeyBtYXJnaW46IDAgYXV0bzsgZGlzcGxheTogYmxvY2s7IHRyYW5zaXRpb246IGNvbG9yIC40czsgXG5cdC5idXR0b24tYm9yZGVyIHsgYmFja2dyb3VuZDogJGJsYWNrOyB9XG5cdCYuYnV0dG9uLXN1Y2Nlc3MgeyBjb2xvcjogIzJlYzU1NiAhaW1wb3J0YW50OyBcblx0XHQuYnV0dG9uLWJvcmRlciB7IGJhY2tncm91bmQ6ICMyZWM1NTY7IH1cblx0fVxufVxuXG5cbi8qKlxuICpcbiAqIEJsb2cgQ29sb3JzXG4gKlxuICovXG4gXG4uYmxvZyAucG9zdC1pdGVtIHsgYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7IH1cbi5ibG9nLWdyaWQgLnBvc3QtaW1hZ2UgYSBzcGFuOmJlZm9yZSwgLmJsb2ctcm93cyAucG9zdC1pbWFnZSBhIHNwYW46YmVmb3JlIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDAuMykgMzAlLCByZ2JhKDAsMCwwLDAuNikgNTAlLHJnYmEoMCwwLDAsMC44KSA4MCUsIHJnYmEoMCwwLDAsMSkgMTAwJSk7IH1cbi5wb3N0LWhlYWRlciBoNCBhIHsgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDApIDk1JSwgcmdiYSgwLDAsMCwxKSAxMDAlKTsgfVxuLmJsb2cgLmJsb2ctZmlsdGVyLXBvc3RzOmFmdGVyIHsgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5OyB9XG4uYmxvZyAuYmxvZy1maWx0ZXItcG9zdHMgLmJsb2ctZmlsdGVyLXZpZXdzIGxpOmFmdGVyIHsgYmFja2dyb3VuZDogJGJsYWNrfVxuLmJsb2cgLnBvc3QtbWV0YSwgLnNpbmdsZS1wb3N0IC5wb3N0LW1ldGEgeyBjb2xvcjogJGRhcmstZ3JheTsgfVxuLmJsb2cgLnBvc3QtY29udGVudCB7IGNvbG9yOiAkZGFyazItZ3JheTsgfVxuLnNpbmdsZS1wb3N0IC5wb3N0LWNvbnRlbnQgeyBjb2xvcjogJGRhcmsyLWdyYXk7IH0gXG4uYmxvZyAubGluay1ob3ZlcjphZnRlciB7IGJhY2tncm91bmQ6ICRib2R5LWZvbnQtY29sb3I7IH1cbi5ibG9nIC5ibG9nLWZpbHRlci1wb3N0cyAuc2VhcmNoLWlucHV0IHsgYm9yZGVyLWNvbG9yOiAkYmxhY2s7IH1cbi5ibG9nIC5wb3N0LWRhdGUgYSwgLnNpbmdsZS1wb3N0IC5wb3N0LWRhdGUgYSB7IGNvbG9yOiAkZGFyay1ncmF5OyB9XG4ucG9zdC1kYXRlIGE6aG92ZXIgeyBjb2xvcjogJGJvZHktZm9udC1jb2xvcjsgfVxuXG4uc2luZ2xlLXBvc3QgLmxpbmstaG92ZXI6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAkYm9keS1mb250LWNvbG9yOyB9IiwiLyoqXG4gKlxuICogRm9vZCBtZW51XG4gKlxuICovXG5cbi5mb29kLW1lbnUge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHQuZm9vZC1tZW51LWZpbHRlcnMtbGlzdCB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblx0XHQuZ3JpZC1zaXplciB7IHdpZHRoOiAxMDAlOyB9XG5cdFx0LmZvb2QtbWVudS1mZWF0dXJlZC1pbWcgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0LmZvb2QtbWVudS1jYXQtaW1nIHsgcGFkZGluZzogMCAzMHB4OyB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDt9XG5cdFx0LmZvb2QtbWVudS1pdGVtcyB7IHBhZGRpbmc6IDAgMzBweDsgfVxuXHRcdC5mb29kLW1lbnUtY2F0ZWdvcnkgeyBtYXJnaW4tYm90dG9tOiA2MHB4OyB9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdC5mb29kLW1lbnUtZmlsdGVycy1saXN0IHsgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXHRcdC5mb29kLW1lbnUtZmVhdHVyZWQtaW1nIHsgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXHRcdC5ncmlkLXNpemVyIHsgd2lkdGg6IDEwMCU7IH1cblx0XHQuZm9vZC1tZW51LWNhdC1pbWcgeyBwYWRkaW5nOiAwIDMwcHg7IHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OyB9XG5cdFx0LmZvb2QtbWVudS1pdGVtcyB7IHBhZGRpbmc6IDAgMzBweDsgfVxuXHRcdC5mb29kLW1lbnUtY2F0ZWdvcnkgeyBtYXJnaW4tYm90dG9tOiA2MHB4OyB9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdC5ncmlkLXNpemVyIHsgd2lkdGg6IDUwJTsgfVxuXHRcdC5mb29kLW1lbnUtZmlsdGVycy1saXN0IHsgaGVpZ2h0OiA2MHB4OyBsaW5lLWhlaWdodDogNjBweDtcblx0XHRcdGxpIHsgcGFkZGluZy1ib3R0b206IDA7IH1cblx0XHR9XG5cdFx0Ji5mb29kLW1lbnUtaW1nIHtcblx0XHRcdC5mb29kLW1lbnUtY2F0LWltZyB7IHdpZHRoOiAzMy4zMzIlOyBwYWRkaW5nOiAwIDMwcHg7IH1cblx0XHRcdC5mb29kLW1lbnUtaXRlbXMgeyB3aWR0aDogNjYuNjY2JTsgcGFkZGluZzogMCAzMHB4OyB9XG5cblx0XHRcdCYuYWxsLWltZy1yaWdodCB7XG5cdFx0XHRcdC5mb29kLW1lbnUtY2F0LWltZyB7IGZsb2F0OiByaWdodDsgcGFkZGluZy1sZWZ0OiA2MHB4OyB9XG5cdFx0XHRcdC5mb29kLW1lbnUtaXRlbXMgeyBmbG9hdDogbGVmdDsgcGFkZGluZy1yaWdodDogNjBweDsgfVxuXHRcdFx0fVxuXHRcdFx0Ji5hbGwtaW1nLWxlZnQge1xuXHRcdFx0XHQuZm9vZC1tZW51LWNhdC1pbWcgeyBmbG9hdDogbGVmdDsgcGFkZGluZy1yaWdodDogNjBweDsgfVxuXHRcdFx0XHQuZm9vZC1tZW51LWl0ZW1zIHsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblx0XHRcdH1cblx0XHRcdCYub2RkLWltZy1sZWZ0IC5mb29kLW1lbnUtY2F0ZWdvcnkge1xuXHRcdFx0XHQuZm9vZC1tZW51LWNhdC1pbWcgeyBmbG9hdDogbGVmdDsgcGFkZGluZy1yaWdodDogNjBweDsgfVxuXHRcdFx0XHQuZm9vZC1tZW51LWl0ZW1zIHsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblx0XHRcdFx0JjpudGgtY2hpbGQoMm4tMSkge1xuXHRcdFx0XHRcdC5mb29kLW1lbnUtY2F0LWltZyB7IGZsb2F0OiByaWdodDsgcGFkZGluZy1sZWZ0OiA2MHB4OyBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XG5cdFx0XHRcdFx0LmZvb2QtbWVudS1pdGVtcyB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nLXJpZ2h0OiA2MHB4OyBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ji5vZGQtaW1nLXJpZ2h0IC5mb29kLW1lbnUtY2F0ZWdvcnkge1xuXHRcdFx0XHQuZm9vZC1tZW51LWNhdC1pbWcgeyBmbG9hdDogcmlnaHQ7IHBhZGRpbmctbGVmdDogNjBweDsgfVxuXHRcdFx0XHQuZm9vZC1tZW51LWl0ZW1zIHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmctcmlnaHQ6IDYwcHg7IH1cblx0XHRcdFx0JjpudGgtY2hpbGQoMm4tMSkge1xuXHRcdFx0XHRcdC5mb29kLW1lbnUtY2F0LWltZyB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nLXJpZ2h0OiA2MHB4OyBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cblx0XHRcdFx0XHQuZm9vZC1tZW51LWl0ZW1zIHsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLWxlZnQ6IDYwcHg7IHBhZGRpbmctcmlnaHQ6IDMwcHg7IH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLmNhdC1hYm92ZS1pbWcgeyBcblx0XHRcdFx0LmZvb2QtbWVudS1pdGVtcyB7IG1hcmdpbi10b3A6IDQ1cHg7IH1cblx0XHRcdH1cblx0XHRcdCYuY2F0LXRpdGxlLWFib3ZlLWltZyB7IFxuXHRcdFx0XHQuZm9vZC1tZW51LWNhdC1oZWFkZXIgaDQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblx0XHRcdFx0LmZvb2QtbWVudS1pdGVtcyB7IG1hcmdpbi10b3A6IDYwcHg7IH1cblx0XHRcdH1cblx0XHRcdC5mb29kLW1lbnUtY2F0ZWdvcnkgeyBtYXJnaW4tYm90dG9tOiA5MHB4OyB9XG5cdFx0fVx0XG5cdH1cblx0Ji5mb29kLW1lbnUtaW1nIHtcblx0XHQmLmNhdC1hYm92ZS1pdGVtcyB7XG5cdFx0XHQuZm9vZC1tZW51LWNhdC1pbWcgLmZvb2QtbWVudS1jYXQtaGVhZGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdH1cblx0XHQmLmNhdC1hYm92ZS1pbWcgLmZvb2QtbWVudS1pdGVtcyAuZm9vZC1tZW51LWNhdC1oZWFkZXIgeyBkaXNwbGF5OiBub25lOyB9XG5cdFx0Ji5jYXQtdGl0bGUtYWJvdmUtaW1nIC5mb29kLW1lbnUtY2F0LWltZyAuZm9vZC1tZW51LXN1YnRpdGxlIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdCYuY2F0LXRpdGxlLWFib3ZlLWltZyAuZm9vZC1tZW51LWl0ZW1zIC5mb29kLW1lbnUtY2F0LWhlYWRlciBoNCB7IGRpc3BsYXk6IG5vbmU7IH1cblx0fVx0XHRcblx0XG5cdCYuZm9vZC1tZW51LXN0YW5kYXJkIHsgb3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQuZm9vZC1tZW51LWNhdC1pbWcgeyBkaXNwbGF5OiBub25lOyB9XG5cdFx0LmZvb2QtbWVudS1jYXQtaGVhZGVyIGg0IHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuXHRcdC5mb29kLW1lbnUtY2F0ZWdvcnkgeyBwYWRkaW5nOiAwIDMwcHg7IG1hcmdpbi1ib3R0b206IDYwcHg7XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7IHdpZHRoOiAxMDAlOyB9XG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IHdpZHRoOiA1MCU7IH1cblx0XHR9XG5cdFx0LmZvb2QtbWVudS1pY29uIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cdH1cblx0LmZvb3RlciB7IG1hcmdpbi10b3A6IDYwcHg7IH1cbn1cblxuLmZvb2QtbWVudS1jYXRlZ29yeSB7IEBpbmNsdWRlIGNsZWFyZml4OyBjdXJzb3I6IGRlZmF1bHQ7XG5cdCY6bGFzdC1vZi10eXBlIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxufVxuXG4uZm9vZC1tZW51LWl0ZW1zIHsgXG5cdC5mb29kLW1lbnUtY2F0LWhlYWRlciB7IG1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDQ1cHg7IFxuXHRcdGg0IHsgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXHR9XG59XG4uZm9vZC1tZW51LWNhdC1pbWcgeyBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCYuc3R1Y2sgeyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgfVxuXHQuZm9vZC1tZW51LWNhdC1oZWFkZXIgeyBtYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBcblx0XHRoNCB7IG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblx0fVxufVxuXG4uZm9vZC1tZW51LWZlYXR1cmVkLWltZyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgXG5cdGltZyB7IG9wYWNpdHk6IDE7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzOyB9XG5cdGltZzpmaXJzdC1vZi10eXBlIHsgb3BhY2l0eTogMTsgfVxuXHRpbWc6bm90KDpmaXJzdC1vZi10eXBlKSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyBtYXgtaGVpZ2h0OiAxMDAlOyBvcGFjaXR5OiAwOyBtYXgtd2lkdGg6IDEwMCU7IH1cblx0LnNob3ctaW1nOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi5mb29kLW1lbnUtaXRlbSB7IG1hcmdpbi1ib3R0b206IDMwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY3Vyc29yOiBkZWZhdWx0OyBcblx0LmdhbGxlcnktaWNvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAycHg7IGxlZnQ6IC0yNXB4OyB3aWR0aDogMjBweDsgb3BhY2l0eTogLjI7IFxuXHRcdHN2ZyB7IHdpZHRoOiAxNnB4OyB9XG5cdH1cbn1cbi5mb29kLW1lbnUtdGl0bGUgeyBmb250LXNpemU6IDE4cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nLWJvdHRvbTogNXB4OyBcblx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMXB4OyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IHotaW5kZXg6IDE7IH1cbn1cbi5mb29kLW1lbnUtaXRlbS1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiA1cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyBcblx0Jjpub3QoLmZvb2QtbWVudS1uby1zZXBhcmF0b3IpIHtcblx0XHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDFweDsgfVxuXHR9XG59XG4uZm9vZC1tZW51LXByaWNlIHsgbWFyZ2luLWxlZnQ6IDMwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZmxvYXQ6IHJpZ2h0OyBsaW5lLWhlaWdodDogMS44ZW07IHBhZGRpbmctYm90dG9tOiA1cHg7XG5cdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMXB4OyB6LWluZGV4OiAxOyB9XG59XG4uZm9vZC1tZW51LWRlc2MgeyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiAkc3ViaGVhZGVyLWZvbnQtZmFtaWx5OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtc2l6ZTogMTRweDsgfVxuXG5cbi5mb29kLW1lbnUtZmlsdGVycyB7IG1hcmdpbi1ib3R0b206IDYwcHg7IH1cbi5mb29kLW1lbnUtZmlsdGVycy1saXN0IHsgbWFyZ2luOiAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDAgMTVweDtcblx0Ji5maWx0ZXJzLXJpZ2h0IHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblx0Ji5maWx0ZXJzLWNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXHQmLmZpbHRlcnMtbGVmdCB7IHRleHQtYWxpZ246IGxlZnQ7IH1cblx0bGkgeyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOiAwIDEwcHg7IHBhZGRpbmctYm90dG9tOiAxNXB4OyBoZWlnaHQ6IDYwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgXG5cdFx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAxcHg7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDFweDsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMsIHRyYW5zZm9ybSAuNHM7IH1cblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6YWZ0ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdFx0fVxuXHRcdCYuYWN0aXZlLWZpbHRlciB7IFxuXHRcdFx0JjphZnRlciB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUzZCgxLDIsMSk7IH1cblx0XHR9XG5cdFx0YSB7IGZvbnQtc2l6ZTogMTRweDsgZGlzcGxheTogYmxvY2s7IGxpbmUtaGVpZ2h0OiA2MHB4OyB9XG5cdH1cblx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IHotaW5kZXg6IC0xOyB9XG59XHRcbi5mb29kLW1lbnUtaWNvbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMHB4OyByaWdodDogMTAwJTsgbWFyZ2luLXJpZ2h0OiAxMHB4OyBoZWlnaHQ6IDZweDsgd2lkdGg6IDZweDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkICRibGFjazsgb3BhY2l0eTogMC41OyBib3JkZXItcmFkaXVzOiA1MCU7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC40czsgfVxuLmZvb2QtbWVudS1pbWFnZS1hY3RpdmUgLmZvb2QtbWVudS1pY29uIHsgYmFja2dyb3VuZDogJGJsYWNrOyB9XG5cbi8qKlxuICpcbiAqIENvbG9yc1xuICpcbiAqL1xuLmZvb2QtbWVudS1maWx0ZXJzLWxpc3QgbGk6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAkYmxhY2s7IH1cbi5mb29kLW1lbnUtZmlsdGVycy1saXN0OmFmdGVyIHsgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5OyB9XG4uZm9vZC1tZW51LWl0ZW0taGVhZGVyOmFmdGVyIHsgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5OyB9XG4uZm9vZC1tZW51LWl0ZW0taGVhZGVyLmZvb2QtbWVudS1ib3JkZXItcHJpY2UgLmZvb2QtbWVudS1wcmljZTphZnRlciB7IGJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTsgfVxuLmZvb2QtbWVudS1pdGVtLWhlYWRlci5mb29kLW1lbnUtYm9yZGVyLXRpdGxlIC5mb29kLW1lbnUtdGl0bGU6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7IH1cbi5mb29kLW1lbnUtaXRlbS1oZWFkZXIuZm9vZC1tZW51LWZlYXR1cmVkOmFmdGVyIHsgYmFja2dyb3VuZDogJGFjY2VudC1jb2xvcjsgfVxuLmZvb2QtbWVudS1pdGVtLWhlYWRlci5mb29kLW1lbnUtZmVhdHVyZWQtcHJpY2UgLmZvb2QtbWVudS1wcmljZTphZnRlciB7IGJhY2tncm91bmQ6ICRhY2NlbnQtY29sb3I7IH1cbi5mb29kLW1lbnUtaXRlbS1oZWFkZXIuZm9vZC1tZW51LWZlYXR1cmVkLXRpdGxlIC5mb29kLW1lbnUtdGl0bGU6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAkYWNjZW50LWNvbG9yOyB9XG4uZm9vZC1tZW51LWRlc2MgeyBjb2xvcjogJGRhcmstZ3JheTsgfSIsIi8qKlxuICpcbiAqIEdhbGxlcnlcbiAqXG4gKi9cblxuLmdhbGxlcnkge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHQuZ2FsbGVyeS1maWx0ZXJzLWxpc3QgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0Lm1hcmNvLWdhbGxlcnktaXRlbSB7IHdpZHRoOiAxMDAlOyB9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkge1xuXHRcdC5nYWxsZXJ5LWZpbHRlcnMtbGlzdCB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblx0XHQubWFyY28tZ2FsbGVyeS1pdGVtIHsgd2lkdGg6IDUwJTsgfVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHQuZ2FsbGVyeS1maWx0ZXJzLWxpc3QgeyBoZWlnaHQ6IDYwcHg7IGxpbmUtaGVpZ2h0OiA2MHB4O1xuXHRcdFx0bGkgeyBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXHRcdH1cblx0XHQuZ2FsbGVyeS00LWNvbCAubWFyY28tZ2FsbGVyeS1pdGVtIHsgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLyA0Jyk7IH1cblx0XHQuZ2FsbGVyeS0zLWNvbCAubWFyY28tZ2FsbGVyeS1pdGVtIHsgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLyAzJyk7IH1cblx0XHQuZ2FsbGVyeS0yLWNvbCAubWFyY28tZ2FsbGVyeS1pdGVtIHsgd2lkdGg6IDUwJTsgfVxuXHRcdC5nYWxsZXJ5LWxvYWQtbW9yZSB7IHBhZGRpbmc6IDYwcHggNjBweCAwIDYwcHg7IH1cblx0fVxuXHQuZ2FsbGVyeS1sb2FkLW1vcmUgeyBjbGVhcjogYm90aDsgbWFyZ2luOiAxNXB4IDA7IHBhZGRpbmctdG9wOiA0NXB4OyB9XG5cdC5mb290ZXIgeyBtYXJnaW4tdG9wOiA2MHB4OyB9XG5cdC5nYWxsZXJ5LWxvYWQtbW9yZS1jb250ZW50IHsgZGlzcGxheTogbm9uZTsgfVxufVxuLmdhbGxlcnktZ3JpZCB7IHBhZGRpbmctYm90dG9tOiA2MHB4OyB9XG4uZ2FsbGVyeS1maWx0ZXJzIHsgbWFyZ2luLWJvdHRvbTogNjBweDsgfVxuLmdhbGxlcnktZmlsdGVycy1saXN0IHsgbWFyZ2luOiAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDAgMTVweDtcblx0Ji5maWx0ZXJzLXJpZ2h0IHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblx0Ji5maWx0ZXJzLWNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXHQmLmZpbHRlcnMtbGVmdCB7IHRleHQtYWxpZ246IGxlZnQ7IH1cblx0bGkgeyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOiAwIDEwcHg7IHBhZGRpbmctYm90dG9tOiAxNXB4OyBoZWlnaHQ6IDYwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgXG5cdFx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAxcHg7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogJGJsYWNrOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cywgdHJhbnNmb3JtIC40czsgfVxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JjphZnRlciB7IG9wYWNpdHk6IDE7IH1cblx0XHR9XG5cdFx0Ji5hY3RpdmUtZmlsdGVyIHsgXG5cdFx0XHQmOmFmdGVyIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZTNkKDEsMiwxKTsgfVxuXHRcdH1cblx0XHRhIHsgZm9udC1zaXplOiAxNHB4OyBkaXNwbGF5OiBibG9jazsgbGluZS1oZWlnaHQ6IDYwcHg7IH1cblx0fVxuXHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDFweDsgei1pbmRleDogLTE7IH1cbn1cdFxuLmdhbGxlcnktY29udGFpbmVyIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZzogMCAxNXB4OyB9XG4ubWFyY28tZ2FsbGVyeS1pdGVtIHsgZmxvYXQ6IGxlZnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgXG5cdCY6aG92ZXIgeyBcblx0XHQubWFyY28tZ2FsbGVyeS1pdGVtLW92ZXJsYXkgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblx0XHQubWFyY28tZ2FsbGVyeS1pdGVtLXRpdGxlIHsgb3BhY2l0eTogMTsgfVxuXHR9XG5cdC5tYXJjby1nYWxsZXJ5LWl0ZW0tdGl0bGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsgcGFkZGluZzogMTBweCAxNXB4OyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyAwczsgei1pbmRleDogMjsgXG5cdFx0aDYgeyBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG5cdFx0KjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXHR9XG5cdC5tYXJjby1nYWxsZXJ5LWl0ZW0tb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzLCB0cmFuc2Zvcm0gLjRzOyB6LWluZGV4OiAxOyB9XG5cdC5tYXJjby1nYWxsZXJ5LWl0ZW0taW1nIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBibG9jazsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxufVxuXG4ubWFyY28tZ2FsbGVyeS1pdGVtLWluZm8geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgei1pbmRleDogMjsgfVxuLm1hcmNvLWdhbGxlcnktaXRlbSAuZ2FsbGVyeS1pY29uIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE1cHg7IHJpZ2h0OiAxNXB4OyB6LWluZGV4OiAyO1xuXHRjaXJjbGUsIHJlY3QgeyBzdHJva2U6ICR3aGl0ZTsgfVxuXHRwYXRoIHsgZmlsbDogJHdoaXRlOyB9XG5cdC5pY29uIHsgbWFyZ2luLWxlZnQ6IDVweDsgfVxufVxuXG4uZ2FsbGVyeS5oaWRlLWljb24gLmdhbGxlcnktaWNvbiB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXG4gKlxuICogU2luZ2xlIGdhbGxlcnlcbiAqXG4gKi9cblxuLnNpbmdsZS1nYWxsZXJ5IHsgcGFkZGluZy1ib3R0b206IDYwcHg7IFxuXHQuc2xpZGUgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDAgMzBweDsgfVxuXHQuc3dpcGVyLWFycm93cyB7IGN1cnNvcjogcG9pbnRlcjsgXG5cdFx0bGluZSB7IHN0cm9rZS13aWR0aDogMXB4OyB2ZWN0b3ItZWZmZWN0OiBub24tc2NhbGluZy1zdHJva2U7IGZpbGw6IG5vbmU7fVxuXHRcdC5hcnJvdy1wcmV2IHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxNXB4OyB0b3A6IDUwJTsgbWFyZ2luLXRvcDogLTI1cHg7IHotaW5kZXg6IDQ7IH1cblx0XHQuYXJyb3ctbmV4dCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDE1cHg7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtMjVweDsgei1pbmRleDogNDtcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IFxuXHRcdFx0LmFycm93LXByZXYgeyBsZWZ0OiAxNXB4OyB9XG5cdFx0XHQuYXJyb3ctbmV4dCB7IHJpZ2h0OiAxNXB4OyB9XG5cdFx0fVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7IFxuXHRcdFx0LmFycm93LXByZXYgeyBsZWZ0OiAwcHg7IH1cblx0XHRcdC5hcnJvdy1uZXh0IHsgcmlnaHQ6IDBweDsgfVxuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UpIHsgXG5cdFx0XHQuYXJyb3ctcHJldiB7IHJpZ2h0OiAxMDAlOyBsZWZ0OiBhdXRvOyB9XG5cdFx0XHQuYXJyb3ctbmV4dCB7IGxlZnQ6IDEwMCU7IHJpZ2h0OiBhdXRvOyB9XG5cdFx0fVxuXHR9XG5cdC5wYWdlLWhlYWRlciB7IHBhZGRpbmc6IDYwcHggMzBweCAwIDMwcHg7IH1cblx0LnNpbmdsZS1nYWxsZXJ5LWNvbnRlbnQgeyBwYWRkaW5nOiA2MHB4IDMwcHggMCAzMHB4OyB9XG5cdC5mb290ZXIgeyBtYXJnaW4tdG9wOiA5MHB4OyB9XG5cdC5nYWxsZXJ5LXZpZGVvLXdyYXBwZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgXG5cdFx0LmdhbGxlcnktdmlkZW8tb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiAkYmxhY2s7IG9wYWNpdHk6IDAuNTsgXG5cdFx0fVxuXHRcdC5nYWxsZXJ5LWljb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBsZWZ0OiA1MCU7IG1hcmdpbi10b3A6IC0yNXB4OyBtYXJnaW4tbGVmdDogLTI1cHg7IHJpZ2h0OiBhdXRvOyBvcGFjaXR5OiAxO1xuXHRcdFx0Y2lyY2xlLCByZWN0IHsgc3Ryb2tlOiAkd2hpdGU7IH1cblx0XHRcdHBhdGggeyBmaWxsOiAkd2hpdGU7IH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKlxuICogQ29sb3JzXG4gKlxuICovXG5cbi5nYWxsZXJ5IC5nYWxsZXJ5LWZpbHRlcnMtbGlzdDphZnRlciB7IGJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTsgfVxuLmdhbGxlcnkgLm1hcmNvLWdhbGxlcnktaXRlbS1vdmVybGF5IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwKSAwJSxyZ2JhKDAsMCwwLDAuMykgNjAlLHJnYmEoMCwwLDAsMC44KSA4MCUsIHJnYmEoMCwwLDAsMSkgMTAwJSk7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjOTkwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzk5MDAwMDAwJyxHcmFkaWVudFR5cGU9MCk7IH1cbi5nYWxsZXJ5IC5tYXJjby1nYWxsZXJ5LWl0ZW0tdGl0bGUgeyBjb2xvcjogJHdoaXRlOyB9XG4uZ2FsbGVyeS1sb2FkLW1vcmUgLmxpbmstaG92ZXI6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAkYm9keS1mb250LWNvbG9yOyB9XG4uc2luZ2xlLWdhbGxlcnkgLnN3aXBlci1hcnJvd3MgbGluZSB7IHN0cm9rZTogJGJsYWNrOyB9XG5cblxuXG5kaXYucHBfZGVmYXVsdCB7XG5cdC5wcF90b3AsIC5wcF9ib3R0b20ge1xuXHRcdC5wcF9sZWZ0LCAucHBfcmlnaHQge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9wcF9zcHJpdGUucG5nKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHQucHBfbWlkZGxlIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvcHBfc3ByaXRlX3gucG5nKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXHQucHBfY29udGVudF9jb250YWluZXIge1xuXHRcdC5wcF9sZWZ0IHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvcHBfc3ByaXRlX3kucG5nKSAhaW1wb3J0YW50O1xuXHRcdFx0LnBwX3JpZ2h0IHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9wcF9zcHJpdGVfeS5wbmcpICFpbXBvcnRhbnQ7XG5cblx0XHRcdFx0LnBwX2NvbnRlbnQge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LnBwX2V4cGFuZCB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0LnBwX25hdiB7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0LnBwX3BsYXkge1xuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdC5jdXJyZW50VGV4dEhvbGRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0LnBwX2Rlc2NyaXB0aW9uLCAucHBfZ2FsbGVyeSB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cblxuLm1lZGlhLXBvc3QtbGluayB7XG5cdGg0IHtcblx0XHRsaW5lLWhlaWdodDogMTEwJTtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG5cdFx0c21hbGwge1xuXHRcdFx0Y29sb3I6ICM4ODg7XG5cdFx0XHRmb250LXNpemU6IDYwJTtcblx0XHR9XG5cdH1cblx0YSB7XG5cdFx0Y29sb3I6ICRTUy1SZWQgIWltcG9ydGFudDtcblx0XHRmb250LXNpemU6IDgwJTtcblx0XHQmOmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59IiwiLnJlc2VydmF0aW9uIHsgXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHsgcGFkZGluZy10b3A6IDkwcHg7IH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdC5yZXNlcnZhdGlvbi1jb250YWluZXIgeyBkaXNwbGF5OiB0YWJsZTsgd2lkdGg6IDEwMCU7IH1cblx0XHQucmVzZXJ2YXRpb24tZm9ybSB7IHdpZHRoOiA2Ni42NjYlOyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cdFx0LnJlc2VydmF0aW9uLWNvbnRlbnQgeyB3aWR0aDogMzMuMzMzMiU7IGRpc3BsYXk6IHRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblx0fVxuXHQuZm9vdGVyIHsgbWFyZ2luLXRvcDogOTBweDsgfVxufVxuXG4ucmVzZXJ2YXRpb24tZm9ybSAge1xuXHQuYnRuLXJlc2VydmF0aW9uIHsgbWFyZ2luOiAwIGF1dG87IGRpc3BsYXk6IGJsb2NrOyB0cmFuc2l0aW9uOiBjb2xvciAuNHM7IFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHsgbWFyZ2luLWJvdHRvbTogNjBweDsgfVxuXHRcdCYuYnV0dG9uLXN1Y2Nlc3MgeyBjb2xvcjogIzJlYzU1NiAhaW1wb3J0YW50OyBcblx0XHRcdC5idXR0b24tYm9yZGVyIHsgYmFja2dyb3VuZDogIzJlYzU1NjsgfVxuXHRcdH1cblx0fVxuXHRmaWVsZHNldCB7XG5cdFx0JjphZnRlciB7IFxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikgeyB3aWR0aDogMTAwJTsgfVxuXHRcdH1cblx0fVxufVxuLnJlc2VydmF0aW9uLWNvbnRlbnQge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7IFxuXHRcdC5yZXNlcnZhdGlvbi1jb250ZW50LXdyYXBwZXIgeyBwYWRkaW5nLXJpZ2h0OiA2MHB4OyB9XG5cdH1cbn1cblxuLnJ0Yi1ib29raW5nLWZvcm0geyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDYwcHggMDtcblx0ZmllbGRzZXQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgbWFyZ2luLWJvdHRvbTogNjBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyBib3JkZXI6IG5vbmU7IFxuXHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5OyBoZWlnaHQ6IDFweDsgei1pbmRleDogLTE7IHJpZ2h0OiAwOyBsZWZ0OiAwOyB9XG5cdH1cblx0bGVnZW5kIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cdGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHsgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgaGVpZ2h0OiA2MHB4OyBsaW5lLWhlaWdodDogNjBweDsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHotaW5kZXg6IDI7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7IHBhZGRpbmc6IDAgMTBweDsgfVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IHBhZGRpbmc6IDAgMzBweDsgfVxuXHRcdCY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG5cdFx0Jjotd2Via2l0LWF1dG9maWxsIHsgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGF1dG9maWxsOyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblx0fVxuXHRzZWxlY3QgeyB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjsgfVxuXHQuYWRkLW1lc3NhZ2UgeyBmb250LXNpemU6IDEycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbjogMDsgXG5cdFx0YSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBcblx0XHRcdCY6YmVmb3JlIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMjBweDsgd2lkdGg6IDEwcHg7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7IHRvcDogNTAlOyB9XG5cdFx0XHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMTVweDsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7IHRvcDogNTAlOyBtYXJnaW4tdG9wOiAtNXB4OyB9XG5cdFx0fVxuXHR9XG59XG5cblxuLnJ0Yi10ZXh0LCAucnRiLXRleHRhcmVhOm5vdCgubWVzc2FnZSksIC5ydGItc2VsZWN0IHtcblx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwcHg7IHdpZHRoOiA5MHB4OyBsZWZ0OiA1MCU7IG1hcmdpbi1sZWZ0OiAtNDVweDsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQ6ICRibGFjazsgei1pbmRleDogMTsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC40cywgYmFja2dyb3VuZCAuNHM7IH1cbn1cbi5ydGItdGV4dCwgLnJ0Yi10ZXh0YXJlYSwgLnJ0Yi1zZWxlY3QgeyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IFxuXHRsYWJlbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGluZS1oZWlnaHQ6IDYwcHg7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyB6LWluZGV4OiAxOyBib3R0b206IDA7IHRyYW5zaXRpb246IGJvdHRvbSAuNHMsIG9wYWNpdHkgLjRzLCBmb250LXNpemUgLjRzLCBjb2xvciAuNHM7XG5cdFx0c3BhbiB7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IG1hcmdpbi1sZWZ0OiA1cHg7IG1hcmdpbi10b3A6IC01cHg7IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzOyBcblx0XHRcdHN2ZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB9XG5cdFx0fVxuXHRcdC5jbGVhci1pbnB1dHsgb3BhY2l0eTogMTsgY3Vyc29yOiBwb2ludGVyOyB9XG5cdH1cblx0Ji5hY3RpdmUtaW5wdXQge1xuXHRcdGxhYmVsIHsgYm90dG9tOiAtNjBweDsgb3BhY2l0eTogLjQ7IGZvbnQtc2l6ZTogMTJweDsgfVxuXHRcdCY6YWZ0ZXIsIC5ib3JkZXItbGFiZWw6YWZ0ZXIgeyB0cmFuc2Zvcm06IHNjYWxlM2QoMSwyLDEpICFpbXBvcnRhbnQ7IH1cblx0fVxuXHQmLm1lc3NhZ2UtZXJyb3IgeyBcblx0XHQmOm5vdCgubWVzc2FnZSk6YWZ0ZXIsIC5ib3JkZXItbGFiZWw6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAjZjEwYTRhICFpbXBvcnRhbnQ7IH1cblx0XHRsYWJlbCB7IGNvbG9yOiAjZjEwYTRhICFpbXBvcnRhbnQ7IH1cblx0fVxufVxuLnJ0Yi1jaGVja2JveCwgLnJ0Yi1yYWRpbyB7IGZsb2F0OiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IFxuXHRsYWJlbDpmaXJzdC1vZi10eXBlKCkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxpbmUtaGVpZ2h0OiA2MHB4OyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgei1pbmRleDogMTsgYm90dG9tOiAtNjBweDsgb3BhY2l0eTogLjQ7IGZvbnQtc2l6ZTogMTJweDsgdHJhbnNpdGlvbjogYm90dG9tIC40cywgb3BhY2l0eSAuNHMsIGZvbnQtc2l6ZSAuNHMsIGNvbG9yIC40czsgfVxuXHRsYWJlbDpub3QoOmZpcnN0LW9mLXR5cGUoKSkgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMTBweDsgXG5cdFx0JjpsYXN0LW9mLXR5cGUoKSB7IG1hcmdpbi1yaWdodDogMDsgfVxuXHR9XG5cblx0JjphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMXB4OyB3aWR0aDogOTBweDsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLTQ1cHg7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiAkYmxhY2s7IHotaW5kZXg6IDE7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMsIGJhY2tncm91bmQgLjRzOyB9XG59XG4ucnRiLWNvbmZpcm0geyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyBcblx0bGFiZWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxpbmUtaGVpZ2h0OiA2MHB4OyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgei1pbmRleDogMTsgfVxuXHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsgd2lkdGg6IDkwcHg7IGxlZnQ6IDUwJTsgbWFyZ2luLWxlZnQ6IC00NXB4OyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogJGJsYWNrOyB6LWluZGV4OiAxOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzLCBiYWNrZ3JvdW5kIC40czsgfVxuXHQmLmFjdGl2ZS1pbnB1dCB7XG5cdFx0JjphZnRlciB7IHRyYW5zZm9ybTogc2NhbGUzZCgxLDIsMSkgIWltcG9ydGFudDsgfVxuXHR9XG59XG4ucnRiLXNlbGVjdCB7IFxuXHQuY2xlYXItaW5wdXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbn1cbi5ydGItc2VsZWN0LCAucnRiLWNoZWNrYm94LCAucnRiLXJhZGlvIHsgXG5cdCYuYWN0aXZlLWlucHV0OmFmdGVyIHsgdHJhbnNmb3JtOiBzY2FsZTNkKDEsMSwxKSAhaW1wb3J0YW50OyB9XG5cdCYuYWN0aXZlLWJvcmRlcjphZnRlciB7IHRyYW5zZm9ybTogc2NhbGUzZCgxLDIsMSkgIWltcG9ydGFudDsgfVxufVxuLnJ0Yi10ZXh0YXJlYS5tZXNzYWdlIHsgd2lkdGg6IDEwMCU7IHRvcDogYXV0byAhaW1wb3J0YW50OyBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IFxuXHRsYWJlbCwgLmJvcmRlci1sYWJlbCB7IEBpbmNsdWRlIGNhbGMod2lkdGgsICcxMDAlIC8gMycpOyB9XG5cdC5ib3JkZXItbGFiZWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IFxuXHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMHB4OyB3aWR0aDogOTBweDsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLTQ1cHg7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiAkYmxhY2s7IHotaW5kZXg6IDE7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMsIGJhY2tncm91bmQgLjRzOyB9XG5cdH1cblx0dGV4dGFyZWEgeyByZXNpemU6IG5vbmU7IHRleHQtYWxpZ246IGxlZnQ7IH1cbn1cbi5ydGItZXJyb3IgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnBpY2tlci0tZm9jdXNlZCAucGlja2VyX19kYXktLXNlbGVjdGVkLCAucGlja2VyX19kYXktLXNlbGVjdGVkLCAucGlja2VyX19kYXktLXNlbGVjdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogIzNjM2MzYyAhaW1wb3J0YW50OyB9XG4ucGlja2VyLS1mb2N1c2VkIC5waWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQsIC5waWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQ6aG92ZXIsIC5waWNrZXJfX2RheS0taW5mb2N1czpob3ZlciwgLnBpY2tlcl9fZGF5LS1vdXRmb2N1czpob3ZlciB7IGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6ICM2MTYxNjEgIWltcG9ydGFudDt9XG4ucGlja2VyX19kYXkgeyB0cmFuc2l0aW9uOiAwLjNzIGJhY2tncm91bmQtY29sb3IsIDAuM3MgY29sb3I7IH0iLCIvKiBGcm9udGVuZCBDU1MgU3R5bGVzaGVldCBmb3IgUmVzdGF1cmFudCBSZXNlcnZhdGlvbnMgKi9cblxuLnJ0Yi1ib29raW5nLWZvcm0gZmllbGRzZXQge1xuXHRwYWRkaW5nLWJvdHRvbTogMWVtO1xuXHRtYXJnaW4tYm90dG9tOiAxZW07XG59XG4ucnRiLWJvb2tpbmctZm9ybSBsZWdlbmQge1xuXHRwYWRkaW5nOiAwIDAuNWVtO1xufVxuLnJ0Yi1ib29raW5nLWZvcm0gZmllbGRzZXQ+ZGl2IHtcblx0bWFyZ2luLXRvcDogMWVtO1xufVxuLnJ0Yi1ib29raW5nLWZvcm0gZmllbGRzZXQ+ZGl2OmZpcnN0LWNoaWxkIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cbi5ydGItYm9va2luZy1mb3JtIGxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4ucnRiLWJvb2tpbmctZm9ybSBpbnB1dCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDE1ZW07XG59XG4ucnRiLWJvb2tpbmctZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4ucnRiLWJvb2tpbmctZm9ybSBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHR3aWR0aDogYXV0bztcblx0bWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ucnRiLWJvb2tpbmctZm9ybSB0ZXh0YXJlYSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDMwZW07XG59XG4ucnRiLWJvb2tpbmctZm9ybSAuYWRkLW1lc3NhZ2Uge1xuXHRtYXJnaW4tdG9wOiAxZW07XG59XG4ucnRiLWJvb2tpbmctZm9ybSAubWVzc2FnZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAtOTk5OXB4O1xuXHRsZWZ0OiAtOTk5OXB4O1xufVxuLnJ0Yi1ib29raW5nLWZvcm0gLm1lc3NhZ2Utb3BlbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiBhdXRvO1xuXHRsZWZ0OiBhdXRvO1xufVxuLnJ0Yi1ib29raW5nLWZvcm0gLm1lc3NhZ2UgdGV4dGFyZWEge1xuXHRtaW4taGVpZ2h0OiA2ZW07XG59XG4ucnRiLWJvb2tpbmctZm9ybSAucnRiLWVycm9yIHtcblx0Zm9udC1zaXplOiAwLjg1ZW07XG5cdHBhZGRpbmc6IDAuMjVlbTtcblx0YmFja2dyb3VuZDogI2Y1MDtcblx0Y29sb3I6ICNmZmY7XG59XG4ucnRiLWJvb2tpbmctZm9ybSAucnRiLWVycm9yOmJlZm9yZSB7XG5cdGNvbnRlbnQ6ICcgJztcblx0Ym9yZGVyLXRvcDogNHB4IHNvbGlkO1xuXHRib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0d2lkdGg6IDA7XG5cdGhlaWdodDogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDAuMjVlbSAwLjVlbTtcbn1cblxuLyogQ29tcGF0aWJpbGl0eSBzdHlsZXMgZm9yIHBpY2thZGF0ZSBvbiBjb21tb24gdGhlbWVzICovXG4ucGlja2VyIHtcblx0b3V0bGluZTogMDtcbn1cbiNydGItZGF0ZV9yb290IC5waWNrZXJfX2J1dHRvbi0tY2xlYXIsXG4jcnRiLWRhdGVfcm9vdCAucGlja2VyX19idXR0b24tLXRvZGF5IHtcblx0LyogZG9uJ3QgYWRvcHQgdGhlIHRoZW1lJ3MgYnV0dG9uIHRleHQgY29sb3IgKi9cblx0Y29sb3I6ICMwMDA7XG59XG4jcnRiLWRhdGVfcm9vdCAucGlja2VyX19uYXYtLW5leHQsXG4jcnRiLWRhdGVfcm9vdCAucGlja2VyX19uYXYtLXByZXYge1xuXHQvKiBuZXh0L3ByZXYgY2FsZW5kYXIgYXJyb3dzIGJ1dHRvbiBhcmVhcyBzb21ldGltZXMgZG9uJ3QgY292ZXIgdGhlIGFycm93cyAqL1xuXHRtaW4taGVpZ2h0OiAyZW07XG59XG4jcnRiLXRpbWVfcm9vdCAucGlja2VyX19saXN0LFxuI3J0Yi10aW1lX3Jvb3QgLnBpY2tlcl9fbGlzdCBsaSB7XG5cdC8qIG92ZXJyaWRlIHNvbWUgdGhlbWUncyBsaXN0IHN0eWxlcyAqL1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRtYXJnaW46IDAgMCAwIDFweDtcbn1cblxuLnBpY2tlcntmb250LXNpemU6MTZweDt0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MS4yO2NvbG9yOiMwMDA7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnBpY2tlcl9faW5wdXR7Y3Vyc29yOmRlZmF1bHR9LnBpY2tlcl9faW5wdXQucGlja2VyX19pbnB1dC0tYWN0aXZle2JvcmRlci1jb2xvcjojMDA4OWVjfS5waWNrZXJfX2hvbGRlcnt3aWR0aDoxMDAlO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtwb3NpdGlvbjpmaXhlZDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLW91dDt0cmFuc2Zvcm06YmFja2dyb3VuZCAwcyAuMTVzOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59LyohXG4gKiBEZWZhdWx0IG1vYmlsZS1maXJzdCwgcmVzcG9uc2l2ZSBzdHlsaW5nIGZvciBwaWNrYWRhdGUuanNcbiAqIERlbW86IGh0dHA6Ly9hbXN1bC5naXRodWIuaW8vcGlja2FkYXRlLmpzXG4gKi8ucGlja2VyX19mcmFtZSwucGlja2VyX19ob2xkZXJ7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9LnBpY2tlcl9fZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luOjAgYXV0bzttaW4td2lkdGg6MjU2cHg7bWF4LXdpZHRoOjY2NnB4O3dpZHRoOjEwMCU7LW1zLWZpbHRlcjpcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7LW1vei1vcGFjaXR5OjA7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4xNXMgZWFzZS1vdXR9LnBpY2tlcl9fd3JhcHtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9QG1lZGlhIChtaW4taGVpZ2h0OjMzLjg3NWVtKXsucGlja2VyX19mcmFtZXtvdmVyZmxvdzp2aXNpYmxlO3RvcDphdXRvO2JvdHRvbTotMTAwJTttYXgtaGVpZ2h0OjgwJX0ucGlja2VyX193cmFwe2Rpc3BsYXk6YmxvY2t9fS5waWNrZXJfX2JveHtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTp0YWJsZS1jZWxsO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1AbWVkaWEgKG1pbi1oZWlnaHQ6MjYuNWVtKXsucGlja2VyX19ib3h7Zm9udC1zaXplOjEuMjVlbX19QG1lZGlhIChtaW4taGVpZ2h0OjMzLjg3NWVtKXsucGlja2VyX19ib3h7ZGlzcGxheTpibG9jaztmb250LXNpemU6MS4zM2VtO2JvcmRlcjoxcHggc29saWQgIzc3Nztib3JkZXItdG9wLWNvbG9yOiM4OTg5ODk7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2JvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7Ym94LXNoYWRvdzowIDEycHggMzZweCAxNnB4IHJnYmEoMCwwLDAsLjI0KX19QG1lZGlhIChtaW4taGVpZ2h0OjQwLjEyNWVtKXsucGlja2VyX19mcmFtZXttYXJnaW4tYm90dG9tOjcuNSV9LnBpY2tlcl9fYm94e2ZvbnQtc2l6ZToxLjVlbTtib3JkZXItYm90dG9tLXdpZHRoOjFweDtib3JkZXItcmFkaXVzOjVweH19LnBpY2tlci0tb3BlbmVkIC5waWNrZXJfX2hvbGRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt6b29tOjE7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zMik7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZS1vdXR9LnBpY2tlci0tb3BlbmVkIC5waWNrZXJfX2ZyYW1ley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApXCI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTstbW96LW9wYWNpdHk6MTtvcGFjaXR5OjF9QG1lZGlhIChtaW4taGVpZ2h0OjMzLjg3NWVtKXsucGlja2VyLS1vcGVuZWQgLnBpY2tlcl9fZnJhbWV7dG9wOmF1dG87Ym90dG9tOjB9fVxuXG4ucGlja2VyX19mb290ZXIsLnBpY2tlcl9faGVhZGVyLC5waWNrZXJfX3RhYmxle3RleHQtYWxpZ246Y2VudGVyfS5waWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQsLnBpY2tlcl9fc2VsZWN0LS1tb250aDpmb2N1cywucGlja2VyX19zZWxlY3QtLXllYXI6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMwMDg5ZWN9LnBpY2tlcl9fYm94e3BhZGRpbmc6MCAxZW19LnBpY2tlcl9faGVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6Ljc1ZW19LnBpY2tlcl9fbW9udGgsLnBpY2tlcl9feWVhcntmb250LXdlaWdodDo1MDA7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjI1ZW07bWFyZ2luLXJpZ2h0Oi4yNWVtfS5waWNrZXJfX3llYXJ7Y29sb3I6Izk5OTtmb250LXNpemU6LjhlbTtmb250LXN0eWxlOml0YWxpY30ucGlja2VyX19zZWxlY3QtLW1vbnRoLC5waWNrZXJfX3NlbGVjdC0teWVhcntib3JkZXI6MXB4IHNvbGlkICNiN2I3Yjc7aGVpZ2h0OjJlbTtwYWRkaW5nOi41ZW07bWFyZ2luLWxlZnQ6LjI1ZW07bWFyZ2luLXJpZ2h0Oi4yNWVtfS5waWNrZXJfX3NlbGVjdC0tbW9udGh7d2lkdGg6MzUlfS5waWNrZXJfX3NlbGVjdC0teWVhcnt3aWR0aDoyMi41JX0ucGlja2VyX19uYXYtLW5leHQsLnBpY2tlcl9fbmF2LS1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6LjVlbSAxLjI1ZW07d2lkdGg6MWVtO2hlaWdodDoxZW07Ym94LXNpemluZzpjb250ZW50LWJveDt0b3A6LS4yNWVtfS5waWNrZXJfX25hdi0tcHJldntsZWZ0Oi0xZW07cGFkZGluZy1yaWdodDoxLjI1ZW19LnBpY2tlcl9fbmF2LS1uZXh0e3JpZ2h0Oi0xZW07cGFkZGluZy1sZWZ0OjEuMjVlbX1AbWVkaWEgKG1pbi13aWR0aDoyNC41ZW0pey5waWNrZXJfX3NlbGVjdC0tbW9udGgsLnBpY2tlcl9fc2VsZWN0LS15ZWFye21hcmdpbi10b3A6LS41ZW19LnBpY2tlcl9fbmF2LS1uZXh0LC5waWNrZXJfX25hdi0tcHJldnt0b3A6LS4zM2VtfS5waWNrZXJfX25hdi0tcHJldntwYWRkaW5nLXJpZ2h0OjEuNWVtfS5waWNrZXJfX25hdi0tbmV4dHtwYWRkaW5nLWxlZnQ6MS41ZW19fS5waWNrZXJfX25hdi0tbmV4dDpiZWZvcmUsLnBpY2tlcl9fbmF2LS1wcmV2OmJlZm9yZXtjb250ZW50OlwiIFwiO2JvcmRlci10b3A6LjVlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi41ZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0Oi43NWVtIHNvbGlkICMwMDA7d2lkdGg6MDtoZWlnaHQ6MDtkaXNwbGF5OmJsb2NrO21hcmdpbjowIGF1dG99LnBpY2tlcl9fbmF2LS1uZXh0OmJlZm9yZXtib3JkZXItcmlnaHQ6MDtib3JkZXItbGVmdDouNzVlbSBzb2xpZCAjMDAwfS5waWNrZXJfX25hdi0tbmV4dDpob3ZlciwucGlja2VyX19uYXYtLXByZXY6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNiMWRjZmJ9LnBpY2tlcl9fbmF2LS1kaXNhYmxlZCwucGlja2VyX19uYXYtLWRpc2FibGVkOmJlZm9yZSwucGlja2VyX19uYXYtLWRpc2FibGVkOmJlZm9yZTpob3ZlciwucGlja2VyX19uYXYtLWRpc2FibGVkOmhvdmVye2N1cnNvcjpkZWZhdWx0O2JhY2tncm91bmQ6MCAwO2JvcmRlci1yaWdodC1jb2xvcjojZjVmNWY1O2JvcmRlci1sZWZ0LWNvbG9yOiNmNWY1ZjV9LnBpY2tlci0tZm9jdXNlZCAucGlja2VyX19kYXktLWhpZ2hsaWdodGVkLC5waWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQ6aG92ZXIsLnBpY2tlcl9fZGF5LS1pbmZvY3VzOmhvdmVyLC5waWNrZXJfX2RheS0tb3V0Zm9jdXM6aG92ZXJ7Y29sb3I6IzAwMDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOiNiMWRjZmJ9LnBpY2tlcl9fdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjA7dGFibGUtbGF5b3V0OmZpeGVkO2ZvbnQtc2l6ZTppbmhlcml0O3dpZHRoOjEwMCU7bWFyZ2luLXRvcDouNzVlbTttYXJnaW4tYm90dG9tOi41ZW19QG1lZGlhIChtaW4taGVpZ2h0OjMzLjg3NWVtKXsucGlja2VyX190YWJsZXttYXJnaW4tYm90dG9tOi43NWVtfX0ucGlja2VyX190YWJsZSB0ZHttYXJnaW46MDtwYWRkaW5nOjB9LnBpY2tlcl9fd2Vla2RheXt3aWR0aDoxNC4yODU3MTQyODYlO2ZvbnQtc2l6ZTouNzVlbTtwYWRkaW5nLWJvdHRvbTouMjVlbTtjb2xvcjojOTk5O2ZvbnQtd2VpZ2h0OjUwMH1AbWVkaWEgKG1pbi1oZWlnaHQ6MzMuODc1ZW0pey5waWNrZXJfX3dlZWtkYXl7cGFkZGluZy1ib3R0b206LjVlbX19LnBpY2tlcl9fZGF5e3BhZGRpbmc6LjMxMjVlbSAwO2ZvbnQtd2VpZ2h0OjIwMDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5waWNrZXJfX2RheS0tdG9kYXl7cG9zaXRpb246cmVsYXRpdmV9LnBpY2tlcl9fZGF5LS10b2RheTpiZWZvcmV7Y29udGVudDpcIiBcIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O3JpZ2h0OjJweDt3aWR0aDowO2hlaWdodDowO2JvcmRlci10b3A6LjVlbSBzb2xpZCAjMDA1OWJjO2JvcmRlci1sZWZ0Oi41ZW0gc29saWQgdHJhbnNwYXJlbnR9LnBpY2tlcl9fZGF5LS1kaXNhYmxlZDpiZWZvcmV7Ym9yZGVyLXRvcC1jb2xvcjojYWFhfS5waWNrZXJfX2RheS0tb3V0Zm9jdXN7Y29sb3I6I2RkZH0ucGlja2VyLS1mb2N1c2VkIC5waWNrZXJfX2RheS0tc2VsZWN0ZWQsLnBpY2tlcl9fZGF5LS1zZWxlY3RlZCwucGlja2VyX19kYXktLXNlbGVjdGVkOmhvdmVye2JhY2tncm91bmQ6IzAwODllYztjb2xvcjojZmZmfS5waWNrZXItLWZvY3VzZWQgLnBpY2tlcl9fZGF5LS1kaXNhYmxlZCwucGlja2VyX19kYXktLWRpc2FibGVkLC5waWNrZXJfX2RheS0tZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlci1jb2xvcjojZjVmNWY1O2NvbG9yOiNkZGQ7Y3Vyc29yOmRlZmF1bHR9LnBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZC5waWNrZXJfX2RheS0tZGlzYWJsZWQsLnBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZC5waWNrZXJfX2RheS0tZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDojYmJifS5waWNrZXJfX2J1dHRvbi0tY2xlYXIsLnBpY2tlcl9fYnV0dG9uLS1jbG9zZSwucGlja2VyX19idXR0b24tLXRvZGF5e2JvcmRlcjoxcHggc29saWQgI2ZmZjtiYWNrZ3JvdW5kOiNmZmY7Zm9udC1zaXplOi44ZW07cGFkZGluZzouNjZlbSAwO2ZvbnQtd2VpZ2h0OjcwMDt3aWR0aDozMyU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246Ym90dG9tfS5waWNrZXJfX2J1dHRvbi0tY2xlYXI6aG92ZXIsLnBpY2tlcl9fYnV0dG9uLS1jbG9zZTpob3ZlciwucGlja2VyX19idXR0b24tLXRvZGF5OmhvdmVye2N1cnNvcjpwb2ludGVyO2NvbG9yOiMwMDA7YmFja2dyb3VuZDojYjFkY2ZiO2JvcmRlci1ib3R0b20tY29sb3I6I2IxZGNmYn0ucGlja2VyX19idXR0b24tLWNsZWFyOmZvY3VzLC5waWNrZXJfX2J1dHRvbi0tY2xvc2U6Zm9jdXMsLnBpY2tlcl9fYnV0dG9uLS10b2RheTpmb2N1c3tiYWNrZ3JvdW5kOiNiMWRjZmI7Ym9yZGVyLWNvbG9yOiMwMDg5ZWM7b3V0bGluZTowfS5waWNrZXJfX2J1dHRvbi0tY2xlYXI6YmVmb3JlLC5waWNrZXJfX2J1dHRvbi0tY2xvc2U6YmVmb3JlLC5waWNrZXJfX2J1dHRvbi0tdG9kYXk6YmVmb3Jle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDowfS5waWNrZXJfX2J1dHRvbi0tY2xlYXI6YmVmb3JlLC5waWNrZXJfX2J1dHRvbi0tdG9kYXk6YmVmb3Jle2NvbnRlbnQ6XCIgXCI7bWFyZ2luLXJpZ2h0Oi40NWVtfS5waWNrZXJfX2J1dHRvbi0tdG9kYXk6YmVmb3Jle3RvcDotLjA1ZW07d2lkdGg6MDtib3JkZXItdG9wOi42NmVtIHNvbGlkICMwMDU5YmM7Ym9yZGVyLWxlZnQ6LjY2ZW0gc29saWQgdHJhbnNwYXJlbnR9LnBpY2tlcl9fYnV0dG9uLS1jbGVhcjpiZWZvcmV7dG9wOi0uMjVlbTt3aWR0aDouNjZlbTtib3JkZXItdG9wOjNweCBzb2xpZCAjZTIwfS5waWNrZXJfX2J1dHRvbi0tY2xvc2U6YmVmb3Jle2NvbnRlbnQ6XCJcXEQ3XCI7dG9wOi0uMWVtO3ZlcnRpY2FsLWFsaWduOnRvcDtmb250LXNpemU6MS4xZW07bWFyZ2luLXJpZ2h0Oi4zNWVtO2NvbG9yOiM3Nzd9LnBpY2tlcl9fYnV0dG9uLS10b2RheVtkaXNhYmxlZF0sLnBpY2tlcl9fYnV0dG9uLS10b2RheVtkaXNhYmxlZF06aG92ZXJ7YmFja2dyb3VuZDojZjVmNWY1O2JvcmRlci1jb2xvcjojZjVmNWY1O2NvbG9yOiNkZGQ7Y3Vyc29yOmRlZmF1bHR9LnBpY2tlcl9fYnV0dG9uLS10b2RheVtkaXNhYmxlZF06YmVmb3Jle2JvcmRlci10b3AtY29sb3I6I2FhYX1cblxuLnBpY2tlci0tZm9jdXNlZCAucGlja2VyX19saXN0LWl0ZW0tLWhpZ2hsaWdodGVkLC5waWNrZXJfX2xpc3QtaXRlbS0taGlnaGxpZ2h0ZWQ6aG92ZXIsLnBpY2tlcl9fbGlzdC1pdGVtOmhvdmVye2JhY2tncm91bmQ6I2IxZGNmYjtjdXJzb3I6cG9pbnRlcjtjb2xvcjojMDAwfS5waWNrZXJfX2xpc3R7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6Ljc1ZW0gMCA0LjJlbTttYXJnaW46MH0ucGlja2VyX19saXN0LWl0ZW17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkO21hcmdpbi1ib3R0b206LTFweDtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzouNzVlbSAxLjI1ZW19QG1lZGlhIChtaW4taGVpZ2h0OjQ2Ljc1ZW0pey5waWNrZXJfX2xpc3QtaXRlbXtwYWRkaW5nOi41ZW0gMWVtfX0ucGlja2VyX19saXN0LWl0ZW0tLWhpZ2hsaWdodGVkLC5waWNrZXJfX2xpc3QtaXRlbTpob3Zlcntib3JkZXItY29sb3I6IzAwODllYzt6LWluZGV4OjEwfS5waWNrZXItLWZvY3VzZWQgLnBpY2tlcl9fbGlzdC1pdGVtLS1zZWxlY3RlZCwucGlja2VyX19saXN0LWl0ZW0tLXNlbGVjdGVkLC5waWNrZXJfX2xpc3QtaXRlbS0tc2VsZWN0ZWQ6aG92ZXJ7YmFja2dyb3VuZDojMDA4OWVjO2NvbG9yOiNmZmY7ei1pbmRleDoxMH0ucGlja2VyLS1mb2N1c2VkIC5waWNrZXJfX2xpc3QtaXRlbS0tZGlzYWJsZWQsLnBpY2tlcl9fbGlzdC1pdGVtLS1kaXNhYmxlZCwucGlja2VyX19saXN0LWl0ZW0tLWRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6I2Y1ZjVmNTtjb2xvcjojZGRkO2N1cnNvcjpkZWZhdWx0O2JvcmRlci1jb2xvcjojZGRkO3otaW5kZXg6YXV0b30ucGlja2VyLS10aW1lIC5waWNrZXJfX2J1dHRvbi0tY2xlYXJ7ZGlzcGxheTpibG9jazt3aWR0aDo4MCU7bWFyZ2luOjFlbSBhdXRvIDA7cGFkZGluZzoxZW0gMS4yNWVtO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6LjY3ZW07dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOiM2NjZ9LnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmZvY3VzLC5waWNrZXItLXRpbWUgLnBpY2tlcl9fYnV0dG9uLS1jbGVhcjpob3ZlcntiYWNrZ3JvdW5kOiNlMjA7Ym9yZGVyLWNvbG9yOiNlMjA7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6I2ZmZjtvdXRsaW5lOjB9LnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmJlZm9yZXt0b3A6LS4yNWVtO2NvbG9yOiM2NjY7Zm9udC1zaXplOjEuMjVlbTtmb250LXdlaWdodDo3MDB9LnBpY2tlci0tdGltZSAucGlja2VyX19idXR0b24tLWNsZWFyOmZvY3VzOmJlZm9yZSwucGlja2VyLS10aW1lIC5waWNrZXJfX2J1dHRvbi0tY2xlYXI6aG92ZXI6YmVmb3Jle2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmZ9LnBpY2tlci0tdGltZSAucGlja2VyX19mcmFtZXttaW4td2lkdGg6MjU2cHg7bWF4LXdpZHRoOjMyMHB4fS5waWNrZXItLXRpbWUgLnBpY2tlcl9fYm94e2ZvbnQtc2l6ZToxZW07YmFja2dyb3VuZDojZjJmMmYyO3BhZGRpbmc6MH1AbWVkaWEgKG1pbi1oZWlnaHQ6NDAuMTI1ZW0pey5waWNrZXItLXRpbWUgLnBpY2tlcl9fYm94e21hcmdpbi1ib3R0b206NWVtfX0iLCIuY29udGFjdCB7XHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikgeyBcblx0XHQjbWFwIHsgaGVpZ2h0OiA0MDBweDsgd2lkdGg6IDEwMCU7IH1cblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0I21hcCB7IGhlaWdodDogNDAwcHg7IH1cblx0fVxuXHQuZm9vdGVyIHsgbWFyZ2luLXRvcDogOTBweDsgfVxufVxuLmNvbnRhY3QtY29udGFpbmVyIHsgbWFyZ2luLWJvdHRvbTogOTBweDsgfVxuXG4uY29udGFjdCAubGluay1ob3ZlcjphZnRlciB7IGJhY2tncm91bmQ6ICRib2R5LWZvbnQtY29sb3I7IH1cblxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sIHRleHRhcmVhIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC4ycmVtIDAuOHJlbSAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG5zZWxlY3Qge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC4ycmVtIDAuOHJlbSAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4ud3BjZjctZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0cGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JkMWUyYztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmQxZTJjICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59IiwiLnRlYW0tc2VsZWN0IHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiA2MHB4O1xuXHQudGVhbS1tZW1iZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgdmlzaWJpbGl0eTogaGlkZGVuOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cyAwcywgdmlzaWJpbGl0eSAwcyAuNHM7IH1cblx0LnRlYW0tbWVtYmVyLWFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHZpc2liaWxpdHk6IHZpc2libGU7IG9wYWNpdHk6IDE7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIC40cywgdmlzaWJpbGl0eSAwcyAwczsgIH1cblx0LnRlYW0tbWVtYmVycyB7IG92ZXJmbG93OiBoaWRkZW47IFxuXHRcdC50ZWFtLWhlYWRlciB7IGZsb2F0OiBsZWZ0OyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDAgMzBweDsgfVxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkgeyBcblx0XHRcdC50ZWFtLWhlYWRlciB7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gb25seSkgeyBcblx0XHRcdC50ZWFtLWhlYWRlciB7IHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuXHRcdH1cblx0fVxufVxuLnRlYW0taW1nLXJpZ2h0IHsgXG5cdC50ZWFtLWltYWdlIHsgcGFkZGluZy1yaWdodDogNjBweDsgfVxuXHQudGVhbS1oZWFkZXIgeyBtYXJnaW4tdG9wOiA2MHB4ICFpbXBvcnRhbnQ7IFxuXHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMHB4OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IHotaW5kZXg6IDE7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMsIGJhY2tncm91bmQgLjRzOyBsZWZ0OiAxMDAlOyB9XG5cdH1cblx0LnRlYW0taW5mbywgLnRlYW0taW1hZ2UgeyB3aWR0aDogNTAlOyB9XG5cdC50ZWFtLWluZm8geyBmbG9hdDogbGVmdDsgfVxuXHQudGVhbS1pbWFnZSB7IGZsb2F0OiByaWdodDsgfVxufVxuLnRlYW0taW1nLWxlZnQgeyBcblx0LnRlYW0taW1hZ2UgeyBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblx0LnRlYW0taGVhZGVyIHsgbWFyZ2luLXRvcDogNjBweCAhaW1wb3J0YW50OyBcblx0XHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMXB4OyB6LWluZGV4OiAxOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzLCBiYWNrZ3JvdW5kIC40czsgcmlnaHQ6IDEwMCU7IH1cblx0fVxuXHQudGVhbS1pbmZvLCAudGVhbS1pbWFnZSB7IHdpZHRoOiA1MCU7IH1cblx0LnRlYW0taW5mbyB7IGZsb2F0OiBsZWZ0OyB9XG5cdC50ZWFtLWltYWdlIHsgZmxvYXQ6IGxlZnQ7IH1cbn1cbi50ZWFtLWltZy10b3AgeyBcblx0LmltZy13cmFwcGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG59XG4udGVhbS1tZW1iZXIgeyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tYm90dG9tOiA2MHB4OyB3aWR0aDogMTAwJTsgcGFkZGluZy1ib3R0b206IDFweDsgXG5cdC5tZW1iZXItZGVzYyB7IHBhZGRpbmc6IDAgMzBweDsgbWFyZ2luLWJvdHRvbTogMzBweDsgXG5cdFx0cCBhIHsgcG9zaXRpb246IHJlbGF0aXZlOyBcblx0XHRcdCY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyBsZWZ0OiAwOyBvcGFjaXR5OiAuNTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuNTEsIDAuNzgsIDAuNjQpOyBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG5cdFx0XHQmOmhvdmVyOmFmdGVyIHsgb3BhY2l0eTogMTsgfVxuXHRcdH1cblx0fVxuXHQudGVhbS1pbWFnZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjsgXG5cdFx0LnRlYW0tbWVtYmVyLW92ZXJsYXkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHM7IHotaW5kZXg6IDE7IH1cblx0XHRhIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0LnRlYW0tbWVtYmVyLW92ZXJsYXkgeyBvcGFjaXR5OiAxOyB9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5tZW1iZXItc29jaWFscyB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOiAwO1xuXHRcdGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUoKSB7IG1hcmdpbi1yaWdodDogNXB4OyB9XG5cdFx0XHQmOmFmdGVyIHsgY29udGVudDogXCIvXCI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luOiAwIDNweDsgZm9udC1zaXplOiAxNHB4OyB9XG5cdFx0XHQmOmxhc3Qtb2YtdHlwZTphZnRlciwgJjpmaXJzdC1vZi10eXBlOmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdFx0YSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1ib3R0b206IDNweDsgfVxuXHRcdH1cblx0fVxufVxuXG4udGVhbS1uYW1lIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB0ZXh0LWFsaWduOiBsZWZ0OyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOiAxNXB4OyB6LWluZGV4OiAyOyB9XG4udGVhbS1tZW1iZXIgLnRlYW0tbmFtZTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAtMXB4OyB3aWR0aDogMTAwJTsgbGVmdDogMDsgaGVpZ2h0OiAycHg7IHotaW5kZXg6IDI7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMsIGJhY2tncm91bmQgLjRzOyB9XG4udGVhbS1tZW1iZXJzIC50ZWFtLW5hbWU6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsgd2lkdGg6IDEwMCU7IGxlZnQ6IDA7IGhlaWdodDogMXB4OyB6LWluZGV4OiAyOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzLCBiYWNrZ3JvdW5kIC40czsgfVxuLnRlYW0tbWVtYmVycyAudGVhbS1oZWFkZXIuYWN0aXZlIC50ZWFtLW5hbWU6YWZ0ZXIgeyB0cmFuc2Zvcm06IHNjYWxlM2QoMSwyLDEpOyB9XG4udGVhbS1oZWFkZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogMzBweDsgbWFyZ2luLXRvcDogMzBweDsgXG5cdCY6YmVmb3JlIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMXB4OyB6LWluZGV4OiAxOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzLCBiYWNrZ3JvdW5kIC40czsgbGVmdDogMDsgfVxufVxuLm1lbWJlci1uYW1lIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLm1lbWJlci1zdGF0dXMgeyBmb250LXNpemU6IDE0cHg7IH1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0LnRlYW0taW1nLXJpZ2h0IHsgXG5cdFx0LnRlYW0taW1hZ2UgeyBwYWRkaW5nLXJpZ2h0OiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblx0XHQudGVhbS1tZW1iZXIgLnRlYW0taGVhZGVyIHsgbWFyZ2luLXRvcDogMzBweDsgfVxuXHRcdC50ZWFtLWluZm8sIC50ZWFtLWltYWdlIHsgd2lkdGg6IDEwMCU7IGZsb2F0OiBub25lOyB9XG5cdH1cblx0LnRlYW0taW1nLWxlZnQgeyBcblx0XHQudGVhbS1pbWFnZSB7IHBhZGRpbmctbGVmdDogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cdFx0LnRlYW0tbWVtYmVyIC50ZWFtLWhlYWRlciB7IG1hcmdpbi10b3A6IDMwcHg7IH1cblx0XHQudGVhbS1pbmZvLCAudGVhbS1pbWFnZSB7IHdpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTsgfVxuXHR9XG5cdC50ZWFtLXNlbGVjdCB7IFxuXHRcdC50ZWFtLW1lbWJlcnMgLnRlYW0taGVhZGVyIHsgd2lkdGg6IDUwJTsgfVxuXHR9XG5cdC50ZWFtLWdyaWQge1xuXHRcdC50ZWFtLW1lbWJlciB7IHdpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTsgfVxuXHRcdC50ZWFtLWltYWdlIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cdH1cbn0iLCIubW9zYWljLWl0ZW0geyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDMwcHg7IFxuXHQmOmhvdmVyIC5tb3NhaWMtaXRlbS1vdmVybGF5IHsgb3BhY2l0eTogMTsgfVxufVxuLm1vc2FpYy1pbWcgeyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfVxuLm1vc2FpYy1pbmZvIHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHotaW5kZXg6IDI7IHBhZGRpbmc6IDEwcHggMzBweCAzMHB4IDMwcHg7IFxuXHQubW9zYWljLXRleHQgeyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiAkc3ViaGVhZGVyLWZvbnQtZmFtaWx5OyBmb250LXNpemU6IDE4cHg7ICBcblx0XHRwOmxhc3Qtb2YtdHlwZSgpIHsgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cdH1cblx0Lm1vc2FpYy1saW5rIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgcG9zaXRpb246IHJlbGF0aXZlOyBmb250LXNpemU6IDE0cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXRvcDogMTVweDtcblx0XHQmOmFmdGVyIHsgY29udGVudDogXCJcIjsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC01cHg7IGxlZnQ6IDA7IGhlaWdodDogMXB4OyB3aWR0aDogMTAwJTsgIH1cblx0fVxufVxuZGl2Lm1vc2FpYy1saW5rIHsgZGlzcGxheTogaW5saW5lOyB9XG4ubW9zYWljLWl0ZW0tb3ZlcmxheSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvcGFjaXR5OiAuNzsgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHM7IHotaW5kZXg6IDE7IH1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0Lm1vc2FpYy1pdGVtLW92ZXJsYXkgeyBvcGFjaXR5OiAxOyB9XG59XG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHQmLm1vc2FpYy1uby1ndXR0ZXIgLmNvbHVtbnMgeyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBcblx0XHQubW9zYWljLWl0ZW0geyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cdH1cbn1cbiIsIi53aWRnZXQgeyAgbWFyZ2luLWJvdHRvbTogMjBweDtcblx0c2VsZWN0IHsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgYm9yZGVyOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvZHktZm9udC1jb2xvcjsgaGVpZ2h0OiA2MHB4OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBwYWRkaW5nLWxlZnQ6IDE1cHg7IGNvbG9yOiAkZGFyazItZ3JheTsgXG5cdFx0Jjpmb2N1cywgJjphY3RpdmUgeyBvdXRsaW5lOiBub25lOyB9XG5cdH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHsgIG1hcmdpbi1sZWZ0OiA2MHB4OyB9XG4ud2lkZ2V0LXRpdGxlIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcblx0c3BhbiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9keS1mb250LWNvbG9yOyBtYXJnaW4tYm90dG9tOiAtMXB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtc2l6ZTogMTRweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbn1cbi53aWRnZXRfYXJjaGl2ZSB7IFxuXHR1bCB7IG1hcmdpbjogMDsgbWFyZ2luLWJvdHRvbTogMzBweDsgb3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRsaSB7IGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJG1lZGl1bS1ncmF5OyAgcGFkZGluZzogMTBweCAxNXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgZm9udC1zaXplOiAxMHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogM3B4O1xuXHRcdFx0YSB7ICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40czsgb3BhY2l0eTogLjc7XG5cdFx0XHRcdCY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdFx0XHR9XG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUoKSB7IGJvcmRlci10b3A6IG5vbmU7IH1cblx0XHR9XG5cdH1cbn1cbi53aWRnZXRfY2F0ZWdvcmllcywgLndpZGdldF9wYWdlcywgLndpZGdldF9tZXRhIHtcblx0dWwgeyBtYXJnaW46IDA7IH1cblx0PiB1bCB7IG1hcmdpbjogMDsgbWFyZ2luLWJvdHRvbTogMzBweDsgb3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRsaSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBmb250LXNpemU6IDEycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxpbmUtaGVpZ2h0OiAyOHB4OyBcblx0XHRcdGEgeyAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHM7IG9wYWNpdHk6IC43O1xuXHRcdFx0XHQmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuXHRcdFx0fVxuXHRcdH1cblx0XHQ+IGxpIHsgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkbWVkaXVtLWdyYXk7IFxuXHRcdFx0JjpsYXN0LW9mLXR5cGUoKSB7IGJvcmRlcjogbm9uZTsgfVxuXHRcdH1cblx0fVxuXHR1bCBsaSB7IHBhZGRpbmc6IDhweCAxNXB4OyB9XG5cdC5jaGlsZHJlbiBsaTpsYXN0LW9mLXR5cGUoKSB7IHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDsgfVxufVxuLndpZGdldF9uYXZfbWVudSB7XG5cdHVsIHsgbWFyZ2luOiAwOyB9XG5cdC5tZW51IHsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGxpIHsgcG9zaXRpb246IHJlbGF0aXZlOyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IGZvbnQtc2l6ZTogMTJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGluZS1oZWlnaHQ6IDI4cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IFxuXHRcdFx0YSB7ICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40czsgb3BhY2l0eTogLjY7XG5cdFx0XHRcdCY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdD4gbGkgeyBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRtZWRpdW0tZ3JheTsgXG5cdFx0XHQmOmxhc3Qtb2YtdHlwZSgpIHsgYm9yZGVyOiBub25lOyB9XG5cdFx0fVxuXHR9XG5cdHVsIGxpIHsgcGFkZGluZzogOHB4IDAgOHB4IDE1cHg7IH1cblx0LnN1Yi1tZW51IGxpOmxhc3Qtb2YtdHlwZSgpIHsgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50OyB9XG5cdC5zdWItbWVudSB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IGF1dG8gIWltcG9ydGFudDsgdG9wOiBhdXRvICFpbXBvcnRhbnQ7IFxuXHRcdGxpIHsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cdH1cbn1cbi53aWRnZXRfY2FsZW5kYXIgeyBcblx0Y2FwdGlvbiB7IGZvbnQtc2l6ZTogMTBweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDNweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luLWJvdHRvbTogNXB4OyAgfVxuXHR0aGVhZCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cdFx0dGggeyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTJweDsgfVxuXHR9XG5cdHRib2R5IHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsgdGV4dC1hbGlnbjogY2VudGVyOyBcblx0XHR0ciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7IGZvbnQtc2l6ZTogMTRweDsgfVxuXHRcdHRkIGEgeyBjb2xvcjogJGFjY2VudC1jb2xvcjsgfVxuXHRcdCN0b2RheSB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cdH1cblx0dGZvb3QgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBcblx0XHR0ZCB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDNweDsgfVxuXHR9XG59XG4ud2lkZ2V0X3JlY2VudF9jb21tZW50cyB7XG5cdHVsIHsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGxpIHsgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkbWVkaXVtLWdyYXk7IHBhZGRpbmc6IDEwcHggMDsgcG9zaXRpb246IHJlbGF0aXZlOyBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6ICRkYXJrMi1ncmF5OyBcblx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSgpIHsgYm9yZGVyLXRvcDogbm9uZTsgfVxuXHRcdFx0PiBhIHsgYmFja2dyb3VuZC1zaXplOiAxMDAlIDA7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMTAwJTsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuNXMgIWltcG9ydGFudDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDk1JSwgYmxhY2sgMTAwJSk7IGNvbG9yOiAkYm9keS1mb250LWNvbG9yOyBtYXJnaW4tbGVmdDogNXB4OyBmb250LXNpemU6IDE2cHg7IFxuXHRcdFx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7IH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmNvbW1lbnQtYXV0aG9yLWxpbmsgYSB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAycHg7IGZvbnQtc2l6ZTogMTBweDsgcGFkZGluZzogNXB4IDA7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzOyBvcGFjaXR5OiAuNzsgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7IG1hcmdpbi1yaWdodDogNXB4OyBcblx0XHQmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuXHR9XG59XG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzIHsgXG5cdHVsIHsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9XG5cdGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBib3JkZXItdG9wOiAxcHggZG90dGVkICRtZWRpdW0tZ3JheTsgcGFkZGluZzogMTBweCAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IFxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSgpIHsgYm9yZGVyLXRvcDogbm9uZTsgfVxuXHR9XG5cdGEgeyBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC41cyAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgOTUlLCBibGFjayAxMDAlKTsgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7IGZvbnQtc2l6ZTogMTZweDsgXG5cdFx0Jjpob3ZlciB7IGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOyB9XG5cdH1cblx0LnBvc3QtZGF0ZSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAwOyB9XG59XG4ud2lkZ2V0X3JzcyB7XG5cdHVsIHsgbWFyZ2luOiAwOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9XG5cdGxpIHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyBib3JkZXItdG9wOiAxcHggZG90dGVkICRtZWRpdW0tZ3JheTsgcGFkZGluZzogMTBweCAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IFxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSgpIHsgYm9yZGVyLXRvcDogbm9uZTsgfVxuXHR9XG5cdC5yc3MtZGF0ZSB7ICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMnB4OyBmb250LXNpemU6IDEwcHg7IHBhZGRpbmc6IDVweCAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC40czsgb3BhY2l0eTogLjc7IGNvbG9yOiAkYm9keS1mb250LWNvbG9yOyBtYXJnaW4tcmlnaHQ6IDVweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDEwcHg7IFxuXHRcdCY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdH1cblx0LnJzc3dpZGdldCB7IGJhY2tncm91bmQtc2l6ZTogMTAwJSAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDEwMCU7IHRyYW5zaXRpb246IGJhY2tncm91bmQgLjVzICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCA5NSUsIGJsYWNrIDEwMCUpOyBjb2xvcjogJGJvZHktZm9udC1jb2xvcjsgZm9udC1zaXplOiAxNnB4OyBcblx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7IH1cblx0fVxuXHQucnNzU3VtbWFyeSB7IG1hcmdpbi1ib3R0b206IDE1cHg7IGZvbnQtc2l6ZTogMTRweDsgfVxufVxuLndpZGdldF90YWdfY2xvdWQgeyBcblx0LnRhZ2Nsb3VkIGEgeyBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsgcGFkZGluZzogMCAzcHggM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGV0dGVyLXNwYWNpbmc6IDFweDsgb3BhY2l0eTogLjc7IHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xuXHRcdCY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cdFx0JjphZnRlciB7IGNvbnRlbnQ6IFwiL1wiOyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAtM3B4OyBjb2xvcjogaW5oZXJpdDsgfSBcblx0XHQmOmxhc3Qtb2YtdHlwZSgpIHsgXG5cdFx0XHQmOmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdH1cblx0XHRcblx0fVxufVxuLm5ld3NsZXR0ZXItZGV0YWlscyAubWYtaW5wdXQgeyB3aWR0aDogMTAwJTsgXG5cdGlucHV0IHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxOyB9XG59XG4uZm9vdGVyIC53aWRnZXQtdGl0bGUgeyBib3JkZXI6IG5vbmU7IG1hcmdpbi1ib3R0b206IDVweDtcblx0c3BhbiB7IHRleHQtdHJhbnNmb3JtOiBub25lOyBib3JkZXI6IG5vbmU7IG1hcmdpbi1ib3R0b206IDA7IGxldHRlci1zcGFjaW5nOiAwOyBwYWRkaW5nLWJvdHRvbTogMDsgZm9udC1zaXplOiAxNnB4OyB9XG59XG5cblxuLndpZGdldCB7XG5cdC5tYWlsc3Rlci1mb3JtIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0Ji5sb2FkaW5nOmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2Zvcm1hamF4bG9hZGVyLmdpZik7XG5cdFx0fVxuXG5cdFx0Lm1haWxzdGVyLWZvcm0taW5mbyB7XG5cdFx0XHQmLnN1Y2Nlc3Mge1xuXHRcdFx0XHRwIHtcblx0XHRcdFx0XHRjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5tYWlsc3Rlci1mb3JtLWZpZWxkcyB7XG5cdFx0XHQubWFpbHN0ZXItZW1haWwtd3JhcHBlciB7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAxMDBweCk7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0XHRcdGlucHV0IHtcblx0XHRcdFx0ICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHQgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcblx0XHRcdFx0ICAgIGhlaWdodDogNDBweDtcblx0XHRcdFx0ICAgIG91dGxpbmU6IG5vbmU7XG5cdFx0XHRcdCAgICBib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHQgICAgcGFkZGluZzogMC43cmVtIDAuOHJlbSAwO1xuXHRcdFx0XHQgICAgbWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0ICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcblxuXHRcdFx0XHQgICAgJiArIGxhYmVsIHtcblx0XHRcdFx0XHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdCAgICB0b3A6IDA7XG5cdFx0XHRcdFx0ICAgIGxlZnQ6IDA7XG5cdFx0XHRcdFx0ICAgIGNvbG9yOiAjYWFhO1xuXHRcdFx0XHRcdCAgICBmb250LXdlaWdodDogMzAwO1xuXHRcdFx0XHRcdCAgICBmb250LXNpemU6IDFyZW07XG5cdFx0XHRcdFx0ICAgIGhlaWdodDogNDBweDtcblx0XHRcdFx0XHQgICAgcGFkZGluZzogMC40cmVtIDAuOHJlbSAwO1xuXHRcdFx0XHRcdCAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0XHRcdFx0XHQgICAgd2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0ICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcblx0XHRcdFx0XHQgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRcdFx0ICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdFx0XHQgICAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXHRcdFx0XHRcdCAgICAgICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cdFx0XHRcdFx0ICAgICAgICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdFx0XHQgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXG5cdFx0XHRcdFx0ICAgIC5tYWlsc3Rlci1yZXF1aXJlZCB7XG5cdFx0XHRcdFx0ICAgIFx0Y29sb3I6ICRTUy1SZWQgIWltcG9ydGFudDtcblx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQmOmZvY3VzICsgbGFiZWwsICYudmFsaWQgKyBsYWJlbCB7XG5cdFx0XHRcdCAgICBcdGZvbnQtc2l6ZTogLjdyZW07XG5cdFx0XHRcdCAgICBcdHBhZGRpbmctdG9wOiAwO1xuXHRcdFx0XHQgICAgXHRjb2xvcjogIzc3Nztcblx0XHRcdFx0ICAgIFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdFx0ICAgIH1cblxuXHRcdFx0XHQgICAgJjotd2Via2l0LWF1dG9maWxsLFxuXHRcdFx0XHRcdCY6LXdlYmtpdC1hdXRvZmlsbDpob3Zlcixcblx0XHRcdFx0XHQmOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXNcblx0XHRcdFx0XHQmOi13ZWJraXQtYXV0b2ZpbGwge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdCAgICBcdGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG5cdFx0XHRcdFx0XHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogI2FhYTtcblx0XHRcdFx0XHRcdC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggdHJhbnNwYXJlbnQgaW5zZXQ7XG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDUwMDBzIGVhc2UtaW4tb3V0IDBzO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNhYWEgIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5tYWlsc3Rlci1zdWJtaXQtd3JhcHBlciB7XG5cdFx0XHRcdHdpZHRoOiA5NXB4O1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMCA1cHg7XG5cblx0XHRcdFx0aW5wdXQge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAuMXJlbSAwIDA7XG5cdFx0XHRcdCAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdCAgICBtYXJnaW46IDA7XG5cdFx0XHRcdCAgICBoZWlnaHQ6IDQwcHg7XG5cdFx0XHRcdCAgICB3aWR0aDogMTAwcHg7XG5cdFx0XHRcdCAgICBib3JkZXI6IDFweCBzb2xpZCAkU1MtUmVkO1xuXHRcdFx0XHQgICAgZm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHQgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0XHRcdFx0ICAgIGJhY2tncm91bmQtY29sb3I6ICRTUy1SZWQgIWltcG9ydGFudDtcblx0XHRcdFx0ICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdFx0ICAgICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdFx0ICAgICAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdFx0ICAgICAgICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0XHRcdFx0ICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblxuXHRcdFx0XHQgICAgJjpob3ZlciB7XG5cdFx0XHRcdCAgICBcdC8vIGJhY2tncm91bmQtY29sb3I6ICRTUy1SZWQgIWltcG9ydGFudDtcblx0XHRcdFx0ICAgIFx0Ly8gY29sb3I6ICRTUy1SZWQgIWltcG9ydGFudDtcblx0XHRcdFx0ICAgIFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5tYWlsc3Rlci13aWRnZXQtdGV4dCB7XG5cdFx0Zm9udC1zaXplOiA4MCU7XG5cdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdC8vIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcblx0fVxufSIsIi5uZXdzbGV0dGVyLWZvcm0geyBcblx0ZmllbGRzZXQgeyBtYXJnaW4tYm90dG9tOiAxNXB4OyB0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGxhYmVsIHsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDM1cHg7IH1cblx0XHRpbnB1dCB7IHBhZGRpbmc6IDA7IGhlaWdodDogMzVweDsgbGluZS1oZWlnaHQ6IDM1cHg7IHRleHQtYWxpZ246IGxlZnQ7IH1cblx0XHQmOmFmdGVyIHsgbGVmdDogMDsgcmlnaHQ6IDA7IH1cblx0XHQubWYtaW5wdXQ6YWZ0ZXIgeyBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyBsZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblx0fVxuXHQuYnRuLW5ld3NsZXR0ZXIgeyBtYXJnaW46IDAgYXV0bzsgbWFyZ2luLXJpZ2h0OiAwOyBkaXNwbGF5OiBibG9jazsgdHJhbnNpdGlvbjogY29sb3IgLjRzOyBcblx0XHQuYnV0dG9uLWJvcmRlciB7IGJhY2tncm91bmQ6ICRibGFjazsgfVxuXHRcdCYuYnV0dG9uLXN1Y2Nlc3MgeyBjb2xvcjogIzJlYzU1NiAhaW1wb3J0YW50OyBcblx0XHRcdC5idXR0b24tYm9yZGVyIHsgYmFja2dyb3VuZDogIzJlYzU1NjsgfVxuXHRcdH1cblx0fVxuXHQuYWN0aXZlLWlucHV0IHtcblx0XHRsYWJlbCB7IGJvdHRvbTogLTMwcHg7IH1cblx0fVxufVxuLmZvb3Rlci1ncmlkIHsgXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuXHRcdC5uZXdzbGV0dGVyLWZvcm0geyB3aWR0aDogNzAlOyBtYXJnaW46IDAgYXV0bzsgfVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHsgdGV4dC1hbGlnbjogY2VudGVyOyBcblx0XHQuZm9vdGVyLWNvbnRlbnQgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cdFx0Lm5ld3NsZXR0ZXItZm9ybSB7IHdpZHRoOiA1MCU7IG1hcmdpbjogMCBhdXRvOyB9XG5cdH1cbn1cbi5mb290ZXItY29udGVudCB7IG1hcmdpbi1ib3R0b206IDIwcHg7IFxuXHRoNiB7IG1hcmdpbi1ib3R0b206IDE1cHg7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblx0c21hbGwgeyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxLjVlbTsgZGlzcGxheTogaW5saW5lLWJsb2NrIH1cblx0I3Njcm9sbC11cCB7IGRpc3BsYXk6IGJsb2NrOyB0cmFuc2l0aW9uOiBjb2xvciAuNHM7IFxuXHRcdC5idXR0b24tYm9yZGVyIHsgYmFja2dyb3VuZDogJGJsYWNrOyB9XG5cdFx0Ji5idXR0b24tc3VjY2VzcyB7IGNvbG9yOiAjMmVjNTU2ICFpbXBvcnRhbnQ7IFxuXHRcdFx0LmJ1dHRvbi1ib3JkZXIgeyBiYWNrZ3JvdW5kOiAjMmVjNTU2OyB9XG5cdFx0fVxuXHR9XG59XG5cbi5mb290ZXIgeyBwYWRkaW5nOiA5MHB4IDAgNjBweDsgYmFja2dyb3VuZDogI2Y3ZjdmNzsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAwOyB6LWluZGV4OiA1O1xuXHRzZWxlY3QsIGlucHV0IHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHQmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuXHR9XG5cdC5mb3Jtcy1zdHlsZSBmaWVsZHNldDphZnRlciB7IHotaW5kZXg6IDA7IH1cblx0LmxpbmstaG92ZXI6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiAkYmxhY2s7IH1cbn1cbi5mb290ZXItbGVnYWwge1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbi10b3A6IDA7XG5cdHotaW5kZXg6IDU7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjMjIyO1xuXHRjb2xvcjogIzg4ODtcblxuXHQud2lkZ2V0IHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDEwcHggMDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblxuXHRcdFx0YSB7XG5cdFx0XHRcdGNvbG9yOiAkU1MtUmVkO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi53aWRnZXQgLmhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4uc29jaWFsLXRvb2x0aXAtbGluayB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiA1cHggMDtcblx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdGEge1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG59IiwiLmltZy13cmFwcGVyIHsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTtcblx0IG92ZXJmbG93OmhpZGRlbjsgXG5cdFx0XHQmOmFmdGVyIHsgY29udGVudDogJyc7IG1hcmdpbjogMCAtNXB4IDAgMDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAxMDAlOyBib3R0b206IDEwMCU7IGxlZnQ6IDA7IGJhY2tncm91bmQ6ICNkZGQ7IHotaW5kZXg6IDM7IHRyYW5zaXRpb246IGJvdHRvbSAwLjRzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgMHMsIHJpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKSAwLjNzLCBtYXJnaW4gMC40cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpIDAuM3MsIGxlZnQgMC40cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpIDAuNnM7XG5cdFx0XHR9XG5cdFx0aW1nOmZpcnN0LWNoaWxkLHsgdHJhbnNpdGlvbjogb3BhY2l0eSAwcyAwLjZzLCB0cmFuc2Zvcm0gMXMgMC42czsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KSB0cmFuc2xhdGVaKDApOyB9XG5cdFx0LmdhbGxlcnktaWNvbiB7IHRyYW5zaXRpb246IG9wYWNpdHkgMHMgLjZzOyBvcGFjaXR5OiAwOyB9XG5cdCYubG9hZGVkLWltZyB7IFxuXHRcdCY6YWZ0ZXIgeyBtYXJnaW4tcmlnaHQ6IDA7IHJpZ2h0OiAtM3B4OyBib3R0b206IDA7IGxlZnQ6IDEwMCU7IH1cblx0XHRpbWc6Zmlyc3QtY2hpbGQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IG9wYWNpdHk6IDE7IH1cblx0XHQuZ2FsbGVyeS1pY29uIHsgb3BhY2l0eTogMTsgfVxuXHR9XG59XG5cblxuLm1vc2FpYy1pdGVtIHsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTtcblx0IG92ZXJmbG93OmhpZGRlbjsgXG5cdFx0XHQmOmFmdGVyIHsgY29udGVudDogJyc7IG1hcmdpbjogMCAtNXB4IDAgMDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAxMDAlOyBib3R0b206IDEwMCU7IGxlZnQ6IDA7IGJhY2tncm91bmQ6ICNkZGQ7IHotaW5kZXg6IDM7IHRyYW5zaXRpb246IGJvdHRvbSAwLjRzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgMHMsIHJpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKSAwLjNzLCBtYXJnaW4gMC40cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpIDAuM3MsIGxlZnQgMC40cyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpIDAuNnM7XG5cdFx0XHR9XG5cdFx0Lm1vc2FpYy1saW5rIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAwcyAwLjdzLCB0cmFuc2Zvcm0gMXMgMC42czsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KSB0cmFuc2xhdGVaKDApOyB9XG5cdFx0XG5cdCYubW9zYWljLWxvYWRlZCB7IFxuXHRcdCY6YWZ0ZXIgeyBtYXJnaW4tcmlnaHQ6IDA7IHJpZ2h0OiAtM3B4OyBib3R0b206IDA7IGxlZnQ6IDEwMCU7IH1cblx0XHQubW9zYWljLWxpbmsgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IG9wYWNpdHk6IDE7IH1cblx0fVxufVxuXG5cbi5hbmltYXRlLXRleHQgeyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjdzIDBzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSksIG9wYWNpdHkgLjdzIDBzOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpOyBvcGFjaXR5OiAwO1xuXHQmLmxvYWRlZC10ZXh0IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OiAxOyB9XG5cdCYuYW5pbWF0ZS1zZWNvbmQgeyB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzOyB9XG59IiwiLy8gVmVnYXMgcGFyYW1zXG4kdmVnYXMtdGltZXItY29sb3I6ICAgICAgICAgd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIEFuaW1hdGlvbiBwYXJhbXNcbiR2ZWdhcy1rZW5idXJucy1zY2FsZTogICAgICAxLjA1ICAgIWRlZmF1bHQ7XG4kdmVnYXMta2VuYnVybnMtdHJhbnNsYXRlOiAgMSUgICAhZGVmYXVsdDtcblxuLy8gVHJhbnNpdGlvbiBwYXJhbXNcbiR2ZWdhcy1ibHVyLXZhbHVlOiAgICAgICAgICAzMnB4ICAhZGVmYXVsdDtcbiR2ZWdhcy1zd2lybC1kZWdyZWU6ICAgICAgICAzNWRlZyAhZGVmYXVsdDtcbiR2ZWdhcy1zd2lybC1zY2FsZTogICAgICAgICAyICAgICAhZGVmYXVsdDtcbiR2ZWdhcy16b29tLXNjYWxlOiAgICAgICAgICAxLjMgICAhZGVmYXVsdDtcblxuLy8gTWFpblxuQGltcG9ydCAnbWFpbi92ZWdhcyc7XG5cbi8vIFRyYW5zaXRpb25zXG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9ibHVyJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL2J1cm4nO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvZmFkZSc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9mbGFzaCc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9uZWdhdGl2ZSc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9zbGlkZS1kb3duJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL3NsaWRlLWxlZnQnO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc2xpZGUtcmlnaHQnO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc2xpZGUtdXAnO1xuQGltcG9ydCAndHJhbnNpdGlvbnMvc3dpcmwtbGVmdCc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy9zd2lybC1yaWdodCc7XG5AaW1wb3J0ICd0cmFuc2l0aW9ucy96b29tLWluJztcbkBpbXBvcnQgJ3RyYW5zaXRpb25zL3pvb20tb3V0JztcblxuLy8gQW5pbWF0aW9uc1xuQGltcG9ydCAnYW5pbWF0aW9ucy9rZW5idXJucyc7XG5AaW1wb3J0ICdhbmltYXRpb25zL2tlbmJ1cm5zLWRvd24tbGVmdCc7XG5AaW1wb3J0ICdhbmltYXRpb25zL2tlbmJ1cm5zLWRvd24tcmlnaHQnO1xuQGltcG9ydCAnYW5pbWF0aW9ucy9rZW5idXJucy1kb3duJztcbkBpbXBvcnQgJ2FuaW1hdGlvbnMva2VuYnVybnMtbGVmdCc7XG5AaW1wb3J0ICdhbmltYXRpb25zL2tlbmJ1cm5zLXJpZ2h0JztcbkBpbXBvcnQgJ2FuaW1hdGlvbnMva2VuYnVybnMtdXAtbGVmdCc7XG5AaW1wb3J0ICdhbmltYXRpb25zL2tlbmJ1cm5zLXVwLXJpZ2h0JztcbkBpbXBvcnQgJ2FuaW1hdGlvbnMva2VuYnVybnMtdXAnO1xuIiwiLnZlZ2FzLXdyYXBwZXIsXG4udmVnYXMtb3ZlcmxheSxcbi52ZWdhcy10aW1lcixcbi52ZWdhcy1zbGlkZSxcbi52ZWdhcy1zbGlkZS1pbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuXG4udmVnYXMtb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdvdmVybGF5cy8wMi5wbmcnKSBjZW50ZXIgY2VudGVyIHJlcGVhdDsgfVxuXG4udmVnYXMtdGltZXIge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAycHg7IH1cblxuLnZlZ2FzLXRpbWVyLXByb2dyZXNzIHtcbiAgICB3aWR0aDogMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICR2ZWdhcy10aW1lci1jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCBlYXNlLW91dDsgfVxuXG4udmVnYXMtdGltZXItcnVubmluZyAudmVnYXMtdGltZXItcHJvZ3Jlc3Mge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi52ZWdhcy1zbGlkZSxcbi52ZWdhcy1zbGlkZS1pbm5lciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9XG5cbmJvZHkgLnZlZ2FzLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7IH1cblxuYm9keSAucGFyYWxsYXgtaW1hZ2UgLnZlZ2FzLWNvbnRhaW5lciB7XG4gICAgdG9wOiAtMzBweDtcbiAgICBsZWZ0OiAtMzBweDtcbiAgICByaWdodDogLTMwcHg7XG4gICAgYm90dG9tOiAtMzBweDsgfVxuXG4udmVnYXMtdmlkZW8ge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5ib2R5LnZlZ2FzLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB6LWluZGV4OiAtMjsgfVxuXG5ib2R5LnZlZ2FzLWNvbnRhaW5lciA+IC52ZWdhcy10aW1lcixcbmJvZHkudmVnYXMtY29udGFpbmVyID4gLnZlZ2FzLW92ZXJsYXksXG5ib2R5LnZlZ2FzLWNvbnRhaW5lciA+IC52ZWdhcy1zbGlkZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IC0xOyB9XG5cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogYmx1ciB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tYmx1cixcbi52ZWdhcy10cmFuc2l0aW9uLWJsdXIyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGZpbHRlcjogYmx1cigkdmVnYXMtYmx1ci12YWx1ZSk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tYmx1ci1pbixcbi52ZWdhcy10cmFuc2l0aW9uLWJsdXIyLWluIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbHRlcjogYmx1cigwcHgpOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLWJsdXIyLW91dCB7XG4gICAgb3BhY2l0eTogMDsgfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBidXJuIHRyYW5zaXRpb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udmVnYXMtdHJhbnNpdGlvbi1idXJuLFxuLnZlZ2FzLXRyYW5zaXRpb24tYnVybjIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZmlsdGVyOiBjb250cmFzdCgxMDAwJSkgc2F0dXJhdGUoMTAwMCUpOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLWJ1cm4taW4sXG4udmVnYXMtdHJhbnNpdGlvbi1idXJuMi1pbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBmaWx0ZXI6IGNvbnRyYXN0KDEwMCUpIHNhdHVyYXRlKDEwMCUpOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLWJ1cm4yLW91dCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBmaWx0ZXI6IGNvbnRyYXN0KDEwMDAlKSBzYXR1cmF0ZSgxMDAwJSk7IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogZmFkZSB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tZmFkZSxcbi52ZWdhcy10cmFuc2l0aW9uLWZhZGUyIHtcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLWZhZGUtaW4sXG4udmVnYXMtdHJhbnNpdGlvbi1mYWRlMi1pbiB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4udmVnYXMtdHJhbnNpdGlvbi1mYWRlMi1vdXQge1xuICAgIG9wYWNpdHk6IDA7IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogZmxhc2ggdHJhbnNpdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy10cmFuc2l0aW9uLWZsYXNoLFxuLnZlZ2FzLXRyYW5zaXRpb24tZmxhc2gyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygyNSk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tZmxhc2gtaW4sXG4udmVnYXMtdHJhbnNpdGlvbi1mbGFzaDItaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEpOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLWZsYXNoMi1vdXQge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDI1KTsgfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBuZWdhdGl2ZSB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tbmVnYXRpdmUsXG4udmVnYXMtdHJhbnNpdGlvbi1uZWdhdGl2ZTIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tbmVnYXRpdmUtaW4sXG4udmVnYXMtdHJhbnNpdGlvbi1uZWdhdGl2ZTItaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBpbnZlcnQoMCk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tbmVnYXRpdmUyLW91dCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBmaWx0ZXI6IGludmVydCgxMDAlKTsgfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBzbGlkZURvd24gdHJhbnNpdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy10cmFuc2l0aW9uLXNsaWRlRG93bixcbi52ZWdhcy10cmFuc2l0aW9uLXNsaWRlRG93bjIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVEb3duLWluLFxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVEb3duMi1pbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTsgfVxuXG4udmVnYXMtdHJhbnNpdGlvbi1zbGlkZURvd24yLW91dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIHNsaWRlTGVmdCB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVMZWZ0LFxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVMZWZ0MiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLXNsaWRlTGVmdC1pbixcbi52ZWdhcy10cmFuc2l0aW9uLXNsaWRlTGVmdDItaW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVMZWZ0Mi1vdXQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogc2xpZGVSaWdodCB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVSaWdodCxcbi52ZWdhcy10cmFuc2l0aW9uLXNsaWRlUmlnaHQyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLXNsaWRlUmlnaHQtaW4sXG4udmVnYXMtdHJhbnNpdGlvbi1zbGlkZVJpZ2h0Mi1pbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfVxuXG4udmVnYXMtdHJhbnNpdGlvbi1zbGlkZVJpZ2h0Mi1vdXQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBzbGlkZVVwIHRyYW5zaXRpb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udmVnYXMtdHJhbnNpdGlvbi1zbGlkZVVwLFxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVVcDIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4udmVnYXMtdHJhbnNpdGlvbi1zbGlkZVVwLWluLFxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVVcDItaW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tc2xpZGVVcDItb3V0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIHN3aXJsTGVmdCB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tc3dpcmxMZWZ0LFxuLnZlZ2FzLXRyYW5zaXRpb24tc3dpcmxMZWZ0MiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkdmVnYXMtc3dpcmwtc2NhbGUpIHJvdGF0ZSgkdmVnYXMtc3dpcmwtZGVncmVlKTtcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLXN3aXJsTGVmdC1pbixcbi52ZWdhcy10cmFuc2l0aW9uLXN3aXJsTGVmdDItaW4ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tc3dpcmxMZWZ0Mi1vdXQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLXN3aXJsLXNjYWxlKSByb3RhdGUoLSR2ZWdhcy1zd2lybC1kZWdyZWUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogc3dpcmxSaWdodCB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tc3dpcmxSaWdodCxcbi52ZWdhcy10cmFuc2l0aW9uLXN3aXJsUmlnaHQyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCR2ZWdhcy1zd2lybC1zY2FsZSkgcm90YXRlKC0kdmVnYXMtc3dpcmwtZGVncmVlKTtcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLXN3aXJsUmlnaHQtaW4sXG4udmVnYXMtdHJhbnNpdGlvbi1zd2lybFJpZ2h0Mi1pbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4udmVnYXMtdHJhbnNpdGlvbi1zd2lybFJpZ2h0Mi1vdXQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLXN3aXJsLXNjYWxlKSByb3RhdGUoJHZlZ2FzLXN3aXJsLWRlZ3JlZSk7XG4gICAgb3BhY2l0eTogMDsgfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiB6b29tSW4gdHJhbnNpdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy10cmFuc2l0aW9uLXpvb21Jbixcbi52ZWdhcy10cmFuc2l0aW9uLXpvb21JbjIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4udmVnYXMtdHJhbnNpdGlvbi16b29tSW4taW4sXG4udmVnYXMtdHJhbnNpdGlvbi16b29tSW4yLWluIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLnZlZ2FzLXRyYW5zaXRpb24tem9vbUluMi1vdXQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLXpvb20tc2NhbGUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogem9vbU91dCB0cmFuc2l0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLXRyYW5zaXRpb24tem9vbU91dCxcbi52ZWdhcy10cmFuc2l0aW9uLXpvb21PdXQyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCR2ZWdhcy16b29tLXNjYWxlKTtcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLXpvb21PdXQtaW4sXG4udmVnYXMtdHJhbnNpdGlvbi16b29tT3V0Mi1pbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi52ZWdhcy10cmFuc2l0aW9uLXpvb21PdXQyLW91dCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIGtlbmJ1cm5zIGFuaW1hdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy1hbmltYXRpb24ta2VuYnVybnMge1xuICAgIGFuaW1hdGlvbjoga2VuYnVybnMgZWFzZS1vdXQ7IH1cblxuQGtleWZyYW1lcyBrZW5idXJucyB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCR2ZWdhcy1rZW5idXJucy1zY2FsZSk7IH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIGtlbmJ1cm5zRG93bkxlZnQgYW5pbWF0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLWFuaW1hdGlvbi1rZW5idXJuc0Rvd25MZWZ0IHtcbiAgICBhbmltYXRpb246IGtlbmJ1cm5zRG93bkxlZnQgZWFzZS1vdXQ7IH1cblxuQGtleWZyYW1lcyBrZW5idXJuc0Rvd25MZWZ0IHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLWtlbmJ1cm5zLXNjYWxlKSB0cmFuc2xhdGUoJHZlZ2FzLWtlbmJ1cm5zLXRyYW5zbGF0ZSwgLSR2ZWdhcy1rZW5idXJucy10cmFuc2xhdGUpOyB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDAsIDApOyB9IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoga2VuYnVybnNEb3duUmlnaHQgYW5pbWF0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLWFuaW1hdGlvbi1rZW5idXJuc0Rvd25SaWdodCB7XG4gICAgYW5pbWF0aW9uOiBrZW5idXJuc0Rvd25SaWdodCBlYXNlLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIGtlbmJ1cm5zRG93blJpZ2h0IHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLWtlbmJ1cm5zLXNjYWxlKSB0cmFuc2xhdGUoLSR2ZWdhcy1rZW5idXJucy10cmFuc2xhdGUsIC0kdmVnYXMta2VuYnVybnMtdHJhbnNsYXRlKTsgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZSgwLCAwKTsgfSB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIGtlbmJ1cm5zRG93biBhbmltYXRpb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4udmVnYXMtYW5pbWF0aW9uLWtlbmJ1cm5zRG93biB7XG4gICAgYW5pbWF0aW9uOiBrZW5idXJuc0Rvd24gZWFzZS1vdXQ7IH1cblxuQGtleWZyYW1lcyBrZW5idXJuc0Rvd24ge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgkdmVnYXMta2VuYnVybnMtc2NhbGUpIHRyYW5zbGF0ZSgwLCAtJHZlZ2FzLWtlbmJ1cm5zLXRyYW5zbGF0ZSk7IH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgMCk7IH0gfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBrZW5idXJuc0xlZnQgYW5pbWF0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLWFuaW1hdGlvbi1rZW5idXJuc0xlZnQge1xuICAgIGFuaW1hdGlvbjoga2VuYnVybnNMZWZ0IGVhc2Utb3V0OyB9XG5cbkBrZXlmcmFtZXMga2VuYnVybnNMZWZ0IHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLWtlbmJ1cm5zLXNjYWxlKSB0cmFuc2xhdGUoJHZlZ2FzLWtlbmJ1cm5zLXRyYW5zbGF0ZSwgMCk7IH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgMCk7IH0gfVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBrZW5idXJuc1JpZ2h0IGFuaW1hdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy1hbmltYXRpb24ta2VuYnVybnNSaWdodCB7XG4gICAgYW5pbWF0aW9uOiBrZW5idXJuc1JpZ2h0IGVhc2Utb3V0OyB9XG5cbkBrZXlmcmFtZXMga2VuYnVybnNSaWdodCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCR2ZWdhcy1rZW5idXJucy1zY2FsZSkgdHJhbnNsYXRlKC0kdmVnYXMta2VuYnVybnMtdHJhbnNsYXRlLCAwKTsgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZSgwLCAwKTsgfSB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIGtlbmJ1cm5zVXBMZWZ0IGFuaW1hdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy1hbmltYXRpb24ta2VuYnVybnNVcExlZnQge1xuICAgIGFuaW1hdGlvbjoga2VuYnVybnNVcExlZnQgZWFzZS1vdXQ7IH1cblxuQGtleWZyYW1lcyBrZW5idXJuc1VwTGVmdCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCR2ZWdhcy1rZW5idXJucy1zY2FsZSkgdHJhbnNsYXRlKCR2ZWdhcy1rZW5idXJucy10cmFuc2xhdGUsICR2ZWdhcy1rZW5idXJucy10cmFuc2xhdGUpOyB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDAsIDApOyB9IH1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoga2VuYnVybnNVcFJpZ2h0IGFuaW1hdGlvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi52ZWdhcy1hbmltYXRpb24ta2VuYnVybnNVcFJpZ2h0IHtcbiAgICBhbmltYXRpb246IGtlbmJ1cm5zVXBSaWdodCBlYXNlLW91dDsgfVxuXG5Aa2V5ZnJhbWVzIGtlbmJ1cm5zVXBSaWdodCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCR2ZWdhcy1rZW5idXJucy1zY2FsZSkgdHJhbnNsYXRlKC0kdmVnYXMta2VuYnVybnMtdHJhbnNsYXRlLCAkdmVnYXMta2VuYnVybnMtdHJhbnNsYXRlKTsgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZSgwLCAwKTsgfSB9XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIGtlbmJ1cm5zVXAgYW5pbWF0aW9uICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLnZlZ2FzLWFuaW1hdGlvbi1rZW5idXJuc1VwIHtcbiAgICBhbmltYXRpb246IGtlbmJ1cm5zVXAgZWFzZS1vdXQ7IH1cblxuQGtleWZyYW1lcyBrZW5idXJuc1VwIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoJHZlZ2FzLWtlbmJ1cm5zLXNjYWxlKSB0cmFuc2xhdGUoMCwgJHZlZ2FzLWtlbmJ1cm5zLXRyYW5zbGF0ZSk7IH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUoMCwgMCk7IH0gfVxuIiwiLyoqXG4gKiBTd2lwZXIgMy40LjBcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXG4gKiBcbiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvc3dpcGVyL1xuICogXG4gKiBDb3B5cmlnaHQgMjAxNiwgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqIFRoZSBpRGFuZ2Vyby51c1xuICogaHR0cDovL3d3dy5pZGFuZ2Vyby51cy9cbiAqIFxuICogTGljZW5zZWQgdW5kZXIgTUlUXG4gKiBcbiAqIFJlbGVhc2VkIG9uOiBPY3RvYmVyIDE2LCAyMDE2XG4gKi9cbi5zd2lwZXItY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogRml4IG9mIFdlYmtpdCBmbGlja2VyaW5nICovXG4gIHotaW5kZXg6IDE7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1uby1mbGV4Ym94IC5zd2lwZXItc2xpZGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLW1vei1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zd2lwZXItd3JhcHBlciB7XG4gIGZsb2F0OiBsZWZ0OyBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1vei10cmFuc2Zvcm07XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IC1vLXRyYW5zZm9ybTtcbiAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IC1tcy10cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xufVxuLnN3aXBlci1jb250YWluZXItbXVsdGlyb3cgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWJveC1saW5lczogbXVsdGlwbGU7XG4gIC1tb3otYm94LWxpbmVzOiBtdWx0aXBsZTtcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZSA+IC5zd2lwZXItd3JhcHBlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW1zLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLnN3aXBlci1zbGlkZSB7XG4gIC13ZWJraXQtZmxleC1zaHJpbms6IDA7XG4gIC1tcy1mbGV4OiAwIDAgYXV0bztcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qIEF1dG8gSGVpZ2h0ICovXG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0LFxuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCAuc3dpcGVyLXNsaWRlIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItYXV0b2hlaWdodCAuc3dpcGVyLXdyYXBwZXIge1xuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG4gIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0sIGhlaWdodDtcbiAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiAtbW96LXRyYW5zZm9ybTtcbiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW8tdHJhbnNmb3JtO1xuICAtbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1zLXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBoZWlnaHQ7XG59XG4vKiBhMTF5ICovXG4uc3dpcGVyLWNvbnRhaW5lciAuc3dpcGVyLW5vdGlmaWNhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogLTEwMDA7XG59XG4vKiBJRTEwIFdpbmRvd3MgUGhvbmUgOCBGaXhlcyAqL1xuLnN3aXBlci13cDgtaG9yaXpvbnRhbCB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuLnN3aXBlci13cDgtdmVydGljYWwge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbn1cbi8qIEFycm93cyAqL1xuLnN3aXBlci1idXR0b24tcHJldixcbi5zd2lwZXItYnV0dG9uLW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMjdweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgei1pbmRleDogMTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLW1vei1iYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcbiAgYmFja2dyb3VuZC1zaXplOiAyN3B4IDQ0cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCxcbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMzU7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLW5leHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDA3YWZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgbGVmdDogMTBweDtcbiAgcmlnaHQ6IGF1dG87XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tYmxhY2ssXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00wJTJDMjJMMjIlMkMwbDIuMSUyQzIuMUw0LjIlMkMyMmwxOS45JTJDMTkuOUwyMiUyQzQ0TDAlMkMyMkwwJTJDMjJMMCUyQzIyeiclMjBmaWxsJTNEJyUyMzAwMDAwMCclMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG4uc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24td2hpdGUsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00wJTJDMjJMMjIlMkMwbDIuMSUyQzIuMUw0LjIlMkMyMmwxOS45JTJDMTkuOUwyMiUyQzQ0TDAlMkMyMkwwJTJDMjJMMCUyQzIyeiclMjBmaWxsJTNEJyUyM2ZmZmZmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG4uc3dpcGVyLWJ1dHRvbi1uZXh0LFxuLnN3aXBlci1jb250YWluZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXYge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDA3YWZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgcmlnaHQ6IDEwcHg7XG4gIGxlZnQ6IGF1dG87XG59XG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2ssXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyMzAwMDAwMCclMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHZpZXdCb3glM0QnMCUyMDAlMjAyNyUyMDQ0JyUzRSUzQ3BhdGglMjBkJTNEJ00yNyUyQzIyTDI3JTJDMjJMNSUyQzQ0bC0yLjEtMi4xTDIyLjglMkMyMkwyLjklMkMyLjFMNSUyQzBMMjclMkMyMkwyNyUyQzIyeiclMjBmaWxsJTNEJyUyM2ZmZmZmZiclMkYlM0UlM0MlMkZzdmclM0VcIik7XG59XG4vKiBQYWdpbmF0aW9uIFN0eWxlcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMzAwbXM7XG4gIC1tb3otdHJhbnNpdGlvbjogMzAwbXM7XG4gIC1vLXRyYW5zaXRpb246IDMwMG1zO1xuICB0cmFuc2l0aW9uOiAzMDBtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgei1pbmRleDogMTA7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24uc3dpcGVyLXBhZ2luYXRpb24taGlkZGVuIHtcbiAgb3BhY2l0eTogMDtcbn1cbi8qIENvbW1vbiBTdHlsZXMgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1mcmFjdGlvbixcbi5zd2lwZXItcGFnaW5hdGlvbi1jdXN0b20sXG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMge1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogQnVsbGV0cyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG9wYWNpdHk6IDAuMjtcbn1cbmJ1dHRvbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWNsaWNrYWJsZSAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiAjMDA3YWZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIHtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtNTAlLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgLTUwJSwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtNTAlLCAwKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuLyogUHJvZ3Jlc3MgKi9cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcyAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIge1xuICBiYWNrZ3JvdW5kOiAjMDA3YWZmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLW8tdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtby10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgLW8tdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcyB7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzLnN3aXBlci1wYWdpbmF0aW9uLXdoaXRlIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Muc3dpcGVyLXBhZ2luYXRpb24tYmxhY2sgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cbi8qIDNEIENvbnRhaW5lciAqL1xuLnN3aXBlci1jb250YWluZXItM2Qge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMjAwcHg7XG4gIC1tb3otcGVyc3BlY3RpdmU6IDEyMDBweDtcbiAgLW8tcGVyc3BlY3RpdmU6IDEyMDBweDtcbiAgcGVyc3BlY3RpdmU6IDEyMDBweDtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItd3JhcHBlcixcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLWN1YmUtc2hhZG93IHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAtbW96LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIC1tcy10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxMDtcbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIC8qIFNhZmFyaSA0KywgQ2hyb21lICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBDaHJvbWUgMTArLCBTYWZhcmkgNS4xKywgaU9TIDUrICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIE9wZXJhIDExLjEwLTEyLjAwICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDE2KywgSUUxMCwgT3BlcmEgMTIuNTArICovXG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCByaWdodCB0b3AsIGxlZnQgdG9wLCBmcm9tKHJnYmEoMCwgMCwgMCwgMC41KSksIHRvKHJnYmEoMCwgMCwgMCwgMCkpKTtcbiAgLyogU2FmYXJpIDQrLCBDaHJvbWUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogQ2hyb21lIDEwKywgU2FmYXJpIDUuMSssIGlPUyA1KyAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogT3BlcmEgMTEuMTAtMTIuMDAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDE2KywgSUUxMCwgT3BlcmEgMTIuNTArICovXG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3Age1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYmEoMCwgMCwgMCwgMC41KSksIHRvKHJnYmEoMCwgMCwgMCwgMCkpKTtcbiAgLyogU2FmYXJpIDQrLCBDaHJvbWUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBDaHJvbWUgMTArLCBTYWZhcmkgNS4xKywgaU9TIDUrICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAzLjYtMTUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogT3BlcmEgMTEuMTAtMTIuMDAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAxNissIElFMTAsIE9wZXJhIDEyLjUwKyAqL1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDAuNSkpLCB0byhyZ2JhKDAsIDAsIDAsIDApKSk7XG4gIC8qIFNhZmFyaSA0KywgQ2hyb21lICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogQ2hyb21lIDEwKywgU2FmYXJpIDUuMSssIGlPUyA1KyAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMy42LTE1ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIE9wZXJhIDExLjEwLTEyLjAwICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMTYrLCBJRTEwLCBPcGVyYSAxMi41MCsgKi9cbn1cbi8qIENvdmVyZmxvdyAqL1xuLnN3aXBlci1jb250YWluZXItY292ZXJmbG93IC5zd2lwZXItd3JhcHBlcixcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci13cmFwcGVyIHtcbiAgLyogV2luZG93cyA4IElFIDEwIGZpeCAqL1xuICAtbXMtcGVyc3BlY3RpdmU6IDEyMDBweDtcbn1cbi8qIEN1YmUgKyBGbGlwICovXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG4gIHotaW5kZXg6IDA7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogQ3ViZSAqL1xuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUuc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1zbGlkZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0LFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXByZXYsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCArIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1jdWJlLXNoYWRvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIG9wYWNpdHk6IDAuNjtcbiAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoNTBweCk7XG4gIGZpbHRlcjogYmx1cig1MHB4KTtcbiAgei1pbmRleDogMDtcbn1cbi8qIEZhZGUgKi9cbi5zd2lwZXItY29udGFpbmVyLWZhZGUuc3dpcGVyLWNvbnRhaW5lci1mcmVlLW1vZGUgLnN3aXBlci1zbGlkZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW1zLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zd2lwZXItem9vbS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgLW1vei1ib3gtcGFjazogY2VudGVyO1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAtbW96LWJveC1hbGlnbjogY2VudGVyO1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBpbWcsXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gc3ZnLFxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IGNhbnZhcyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8qIFNjcm9sbGJhciAqL1xuLnN3aXBlci1zY3JvbGxiYXIge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXNjcm9sbGJhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMSU7XG4gIGJvdHRvbTogM3B4O1xuICB6LWluZGV4OiA1MDtcbiAgaGVpZ2h0OiA1cHg7XG4gIHdpZHRoOiA5OCU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogM3B4O1xuICB0b3A6IDElO1xuICB6LWluZGV4OiA1MDtcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiA5OCU7XG59XG4uc3dpcGVyLXNjcm9sbGJhci1kcmFnIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi5zd2lwZXItc2Nyb2xsYmFyLWN1cnNvci1kcmFnIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLyogUHJlbG9hZGVyICovXG4uc3dpcGVyLWxhenktcHJlbG9hZGVyIHtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIxcHg7XG4gIG1hcmdpbi10b3A6IC0yMXB4O1xuICB6LWluZGV4OiAxMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XG4gIC1tb3otYW5pbWF0aW9uOiBzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIHN0ZXBzKDEyLCBlbmQpIGluZmluaXRlO1xufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlcjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjM2YzZjNmMnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXItd2hpdGU6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMTIwJTIwMTIwJyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB4bWxucyUzQXhsaW5rJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJyUzRSUzQ2RlZnMlM0UlM0NsaW5lJTIwaWQlM0QnbCclMjB4MSUzRCc2MCclMjB4MiUzRCc2MCclMjB5MSUzRCc3JyUyMHkyJTNEJzI3JyUyMHN0cm9rZSUzRCclMjNmZmYnJTIwc3Ryb2tlLXdpZHRoJTNEJzExJyUyMHN0cm9rZS1saW5lY2FwJTNEJ3JvdW5kJyUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoNjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDkwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxMjAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDE1MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjM3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTgwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNDYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyMTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy41NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDI0MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjY2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjcwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNzUnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgzMDAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy44NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMzMCUyMDYwJTJDNjApJyUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIik7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbiB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn0iLCIvKiEgU3dpcGVib3ggdjEuMy4wIHwgQ29uc3RhbnRpbiBTYWd1aW4gY3NhZy5jbyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9icnV0YWxkZXNpZ24vc3dpcGVib3ggKi9cblxuLy8gR3JhZGllbnQgbWl4aW5cbkBtaXhpbiBjc3MtZ3JhZGllbnQoJGZyb206ICNkZmRmZGYsICR0bzogI2Y4ZjhmOCkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZnJvbTtcblx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgkZnJvbSksIHRvKCR0bykpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICRmcm9tLCAkdG8pO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICRmcm9tLCAkdG8pO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAkZnJvbSwgJHRvKTtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGZyb20sICR0byk7XG59XG5cbi8vIEJhciBtaXhpblxuQG1peGluIGJhcigkY29sb3IpIHtcblx0YmFja2dyb3VuZC1jb2xvcjokY29sb3I7XG5cdEBpbmNsdWRlIGNzcy1ncmFkaWVudCggJGNvbG9yLCBkYXJrZW4oJGNvbG9yLCAyMCUpICk7IFxufVxuXG5odG1sLnN3aXBlYm94LWh0bWwuc3dpcGVib3gtdG91Y2gge1xuXHRvdmVyZmxvdzogaGlkZGVuIWltcG9ydGFudDtcbn1cblxuI3N3aXBlYm94LW92ZXJsYXkgaW1nIHtcblx0Ym9yZGVyOiBub25lIWltcG9ydGFudDtcbn1cblxuI3N3aXBlYm94LW92ZXJsYXkge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogOTk5OTkhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuI3N3aXBlYm94LWNvbnRhaW5lcntcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4jc3dpcGVib3gtc2xpZGVyIHtcblx0dHJhbnNpdGlvbiA6IHRyYW5zZm9ybSAwLjhzIGN1YmljLWJlemllcigwLjYxLCAwLjIxLCAwLjI1LCAxKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0XG5cdC5zbGlkZSB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiA1MHB4IDY1cHggNTBweCA1MHB4O1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkgeyBwYWRkaW5nOiAwOyB9XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGhlaWdodDogNTAlO1xuXHRcdFx0d2lkdGg6IDFweDtcblx0XHRcdG1hcmdpbi1yaWdodDogLTFweDtcblx0XHR9XG5cblx0XHRpbWcsXG4gICAgICAgIC5zd2lwZWJveC12aWRlby1jb250YWluZXIsXG4gICAgICAgIC5zd2lwZWJveC1pbmxpbmUtY29udGFpbmVyIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1heC1oZWlnaHQ6IDEwMCU7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cblxuXHRcdC5zd2lwZWJveC12aWRlby1jb250YWluZXIge1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0bWF4LXdpZHRoOiAxMTQwcHg7XG5cdFx0XHRtYXgtaGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOjUlO1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC5zd2lwZWJveC12aWRlb3tcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDU2LjI1JTtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlOyBcblx0XHRcdFx0aWZyYW1le1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlIWltcG9ydGFudDsgXG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlIWltcG9ydGFudDtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAwOyBsZWZ0OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vICNzd2lwZWJveC1ib3R0b20tYmFyLFxuI3N3aXBlYm94LXRvcC1iYXJ7XG5cdC8vIHRyYW5zaXRpb24gOiAwLjVzO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogMDsgXG5cdGxlZnQ6IDA7XG5cdHotaW5kZXg6IDk5OTtcblx0aGVpZ2h0OiA1MHB4O1xuXHR3aWR0aDogMTAwJTtcbn1cblxuI3N3aXBlYm94LXRpdGxle1xuXHRkaXNwbGF5Om5vbmU7XG5cdHdpZHRoOiAxMDAlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNzd2lwZWJveC1wcmV2e1xuXHR0b3A6IDUwJTtcblx0bWFyZ2luLXRvcDogLTUwcHg7XG5cdGxlZnQ6IDEwcHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogOTk5OTtcblx0d2lkdGg6IDMwcHg7XG5cdGhlaWdodDogMTAwcHg7XG5cdGJhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgd2lkdGg9XCIzMHB4XCIgaGVpZ2h0PVwiMTAwcHhcIiB2aWV3Qm94PVwiMCAwIDMwIDMwXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiB6b29tQW5kUGFuPVwiZGlzYWJsZVwiID48bGluZSBpZD1cImU0X2xpbmUxXCIgeDE9XCIyNVwiIHkxPVwiMFwiIHgyPVwiMTBcIiB5Mj1cIjE1XCIgc3Ryb2tlPVwicmdiYSgyNTUsMjU1LDI1NSwxKVwiIHN0eWxlPVwic3Ryb2tlLXdpZHRoOiAycHg7IHZlY3Rvci1lZmZlY3Q6IG5vbi1zY2FsaW5nLXN0cm9rZTsgZmlsbDogbm9uZTtcIi8+PGxpbmUgeDE9XCIxMFwiIHkxPVwiMTVcIiB4Mj1cIjI1XCIgeTI9XCIzMFwiIHN0cm9rZT1cInJnYmEoMjU1LDI1NSwyNTUsMSlcIiBzdHlsZT1cInN0cm9rZS13aWR0aDogMnB4OyB2ZWN0b3ItZWZmZWN0OiBub24tc2NhbGluZy1zdHJva2U7IGZpbGw6IG5vbmU7XCIvPjwvc3ZnPicpICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcblxufVxuI3N3aXBlYm94LW5leHR7XG5cdHRvcDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtNTBweDtcblx0cmlnaHQ6IDIwcHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogOTk5OTtcblx0d2lkdGg6IDMwcHg7XG5cdGhlaWdodDogMTAwcHg7XG5cdGJhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgd2lkdGg9XCIzMHB4XCIgaGVpZ2h0PVwiMTAwcHhcIiB2aWV3Qm94PVwiMCAwIDMwIDMwXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiB6b29tQW5kUGFuPVwiZGlzYWJsZVwiID48bGluZSBpZD1cImU0X2xpbmUyXCIgeDE9XCI1XCIgeTE9XCIwXCIgeDI9XCIyMFwiIHkyPVwiMTVcIiBzdHJva2U9XCJyZ2JhKDI1NSwyNTUsMjU1LDEpXCIgc3R5bGU9XCJzdHJva2Utd2lkdGg6IDJweDsgdmVjdG9yLWVmZmVjdDogbm9uLXNjYWxpbmctc3Ryb2tlOyBmaWxsOiBub25lO1wiLz48bGluZSB4MT1cIjIwXCIgeTE9XCIxNVwiIHgyPVwiNVwiIHkyPVwiMzBcIiBzdHJva2U9XCJyZ2JhKDI1NSwyNTUsMjU1LDEpXCIgc3R5bGU9XCJzdHJva2Utd2lkdGg6IDJweDsgdmVjdG9yLWVmZmVjdDogbm9uLXNjYWxpbmctc3Ryb2tlOyBmaWxsOiBub25lO1wiLz48L3N2Zz4nKSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7IFxuXG59XG5cbiNzd2lwZWJveC1jbG9zZXtcblx0dG9wOiAzMHB4O1xuXHRyaWdodDogMjBweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk5O1xuXHR3aWR0aDogNTBweDtcblx0aGVpZ2h0OiA1MHB4O1xuXHRiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHdpZHRoPVwiNTBweFwiIGhlaWdodD1cIjUwcHhcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiBzdHlsZT1cIlwiXG5cdFx0IHhtbDpzcGFjZT1cInByZXNlcnZlXCI+PGxpbmUgaWQ9XCJlNF9saW5lM1wiIHgxPVwiMzVcIiB5MT1cIjM1XCIgeDI9XCI2NVwiIHkyPVwiNjVcIiBzdHJva2U9XCJyZ2JhKDI1NSwyNTUsMjU1LDEpXCIgc3R5bGU9XCJzdHJva2Utd2lkdGg6IDJweDsgdmVjdG9yLWVmZmVjdDogbm9uLXNjYWxpbmctc3Ryb2tlOyBmaWxsOiBub25lO1wiLz48bGluZSB4MT1cIjY1XCIgeTE9XCIzNVwiIHgyPVwiMzVcIiB5Mj1cIjY1XCIgc3Ryb2tlPVwicmdiYSgyNTUsMjU1LDI1NSwxKVwiIHN0eWxlPVwic3Ryb2tlLXdpZHRoOiAycHg7IHZlY3Rvci1lZmZlY3Q6IG5vbi1zY2FsaW5nLXN0cm9rZTsgZmlsbDogbm9uZTtcIi8+XG5cdFx0PC9zdmc+Jyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkgeyB0b3A6IDEwcHg7IHJpZ2h0OiAxMHB4OyB9XG5cdFx0XG5cbn1cblxuLnN3aXBlYm94LW5vLWNsb3NlLWJ1dHRvbiAjc3dpcGVib3gtY2xvc2V7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzd2lwZWJveC1wcmV2LFxuI3N3aXBlYm94LW5leHR7XG5cdCYuZGlzYWJsZWR7XG5cdFx0b3BhY2l0eTogMC4zO1xuXHR9XG59XG5cbi5zd2lwZWJveC1uby10b3VjaHtcblx0I3N3aXBlYm94LW92ZXJsYXkucmlnaHRTcHJpbmcgI3N3aXBlYm94LXNsaWRlciB7XG5cdFx0YW5pbWF0aW9uIDogcmlnaHRTcHJpbmcgMC4zcztcblx0fVxuXG5cdCNzd2lwZWJveC1vdmVybGF5LmxlZnRTcHJpbmcgICNzd2lwZWJveC1zbGlkZXJ7XG5cdFx0YW5pbWF0aW9uIDogbGVmdFNwcmluZyAwLjNzO1xuXHR9XG59XG5cbi5zd2lwZWJveC10b3VjaHtcblx0I3N3aXBlYm94LWNvbnRhaW5lciB7XG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlcntcblx0XHRcdGJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO1xuXHRcdFx0dHJhbnNpdGlvbiA6IGFsbCAuM3MgZWFzZTtcblx0XHRcdGNvbnRlbnQgOiAnICc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiA5OTk7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMjBweDtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmV7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMTBweCAwcHggMTBweCAtOHB4ICM2NTY1NjU7XG5cdFx0fVxuXG5cdFx0JjphZnRlcntcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgLTEwcHggMHB4IDEwcHggLThweCAjNjU2NTY1O1xuXHRcdH1cblx0fVxuXG5cdCNzd2lwZWJveC1vdmVybGF5LmxlZnRTcHJpbmdUb3VjaCAjc3dpcGVib3gtY29udGFpbmVye1xuXHRcdCY6YmVmb3Jle1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHRcdFxuXHQjc3dpcGVib3gtb3ZlcmxheS5yaWdodFNwcmluZ1RvdWNoICNzd2lwZWJveC1jb250YWluZXJ7XG5cdFx0JjphZnRlcntcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgcmlnaHRTcHJpbmcge1xuXHQwJSB7XG5cdFx0bGVmdDowO1xuXHR9XG5cblx0NTAlIHtcblx0XHRsZWZ0Oi0zMHB4O1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0bGVmdDowO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgbGVmdFNwcmluZyB7XG5cdDAlIHtcblx0XHRsZWZ0OjA7XG5cdH1cblxuXHQ1MCUge1xuXHRcdGxlZnQ6MzBweDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGxlZnQ6MDtcblx0fVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCkge1xuXG5cdCNzd2lwZWJveC1hcnJvd3N7XG5cdFx0d2lkdGg6IDkyJTtcblx0XHRtYXgtd2lkdGg6IDgwMHB4O1xuXHR9XG59XG5cbi8qIFNraW4gXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jc3dpcGVib3gtb3ZlcmxheSB7XG5cdGJhY2tncm91bmQ6ICMwZDBkMGQ7XG59XG5cbiNzd2lwZWJveC1ib3R0b20tYmFyLFxuI3N3aXBlYm94LXRvcC1iYXIge1xuXHR0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggYmxhY2s7XG5cdGJhY2tncm91bmQ6ICMwMDA7XG5cdC8vQGluY2x1ZGUgYmFyKCMwZDBkMGQpO1xuXHRvcGFjaXR5OiAwLjk1O1xufVxuXG4jc3dpcGVib3gtYm90dG9tLWJhciB7XG5cdC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuI3N3aXBlYm94LXRvcC1iYXIge1xuXHQvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG5cdGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMTVweDtcblx0bGluZS1oZWlnaHQ6IDQzcHg7XG5cdGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuIiwiXG4ucG9zdC1lZGl0LWxpbmsgeyBtYXJnaW4tbGVmdDogMTBweDsgfVxuLnBhZ2UtaGVhZGVyIHsgcGFkZGluZzogMDsgfVxuLmNvbW1lbnQtYXdhaXRpbmctbW9kZXJhdGlvbiB7IGRpc3BsYXk6IGJsb2NrOyB9XG4ucG9zdC1jb21tZW50cyAucGluZ2JhY2ssIC5wb3N0LWNvbW1lbnRzIC5jb21tZW50IHsgbWFyZ2luLWJvdHRvbTogMzBweDsgbWFyZ2luLXRvcDogMzBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uY29tbWVudCAuY29tbWVudC1yZXNwb25kIHsgbWFyZ2luLWxlZnQ6IDc1cHg7IGNsZWFyOiBib3RoOyBwYWRkaW5nLXRvcDogMzBweDsgfVxuLmNvbW1lbnQtbGlzdCAucGluZ2JhY2sgYTpub3QoLmNvbW1lbnQtZWRpdC1saW5rKSB7IGZvbnQtd2VpZ2h0OiA3MDA7fVxuLmxvZ2dlZC1pbi1hcyB7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDNweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGluZS1oZWlnaHQ6IDEuNzVlbTsgbWFyZ2luOiAwOyAgfVxuLmNvbW1lbnQtcmVwbHktdGl0bGUgeyBtYXJnaW46IDAgMCAzcHg7IGxpbmUtaGVpZ2h0OiAxLjc1ZW07IH1cbiNjYW5jZWwtY29tbWVudC1yZXBseS1saW5rIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luLWxlZnQ6IDE1cHg7IG9wYWNpdHk6IDAuNTsgfVxuLmNvbW1lbnQtZm9ybSBmaWVsZHNldCB7IG1hcmdpbi10b3A6IDYwcHg7IH1cbi5wb3N0LWNvbW1lbnRzID4gLmNvbW1lbnQtbGlzdCB7IG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuLmNhdC10YWdzLWxpbmtzIHsgbWFyZ2luOiA2MHB4IDAgNDVweDsgfVxuLnBvc3QtdGFncyB7IG1hcmdpbjogMCAwIDE1cHg7IH1cbi8qIGFkZCAnLnBvc3QtZGF0ZScgdG8gJy5wb3N0LWRhdGUgYScgKi9cbi5wb3N0LWRhdGUgeyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRyYW5zaXRpb246IGNvbG9yIC40czsgY29sb3I6ICM4YThhOGE7IH1cbi8qIGFkZCAgKi9cbi5zaW5nbGUtcG9zdC1uYXYgeyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4uc2xpZGVyLXRleHQgLnNsaWRlci10ZXh0LWZpcnN0OmVtcHR5LFxuLnNsaWRlci10ZXh0IC5zbGlkZXItdGV4dC1zZWNvbmQ6ZW1wdHkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmJsb2ctY2xhc3NpYyAucG9zdC1pdGVtIHsgY2xlYXI6IGJvdGg7IG1hcmdpbjogMCAwIDYwcHg7IH1cbi5ibG9nLWNsYXNzaWMgLnBvc3QtaW1hZ2UgeyB3aWR0aDogMTAwJTsgfVxuLmJsb2ctY2xhc3NpYyAucG9zdC1jb250ZW50LXdyYXBwZXIgeyB3aWR0aDogMTAwJTsgcGFkZGluZzogMzBweCAwOyAgfVxuLmJsb2ctY2xhc3NpYyAucG9zdC1tZXRhIHsgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuLmJsb2ctY2xhc3NpYyAubm8tdGh1bWJuYWlsIC5wb3N0LWNvbnRlbnQtd3JhcHBlciB7IHdpZHRoOiAxMDAlOyB9XG5cbi53cC1jYXB0aW9uIHsgbWF4LXdpZHRoOiAxMDAlOyB9XG4uYmxvZyAucG9zdC1oZWFkZXIgaDQgeyAtbXMtd29yZC13cmFwOiBicmVhay13b3JkOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLmZvcm1zLXN0eWxlIGlucHV0LCAuZm9ybXMtc3R5bGUgc2VsZWN0LCAuZm9ybXMtc3R5bGUgdGV4dGFyZWEgeyBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuXHQuZm9ybXMtc3R5bGUgaW5wdXQsIC5mb3Jtcy1zdHlsZSBzZWxlY3QsIC5mb3Jtcy1zdHlsZSB0ZXh0YXJlYSB7XG5cdFx0cGFkZGluZzogMThweCAzMHB4O1xuXHR9XG59XG4uYnlwb3N0YXV0aG9yIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5ob21lLWNvbnRhY3QtaW5mbyBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4uaG9tZS1jb250YWN0LWluZm8sIGJvZHkgLmhvbWUtY29udGFjdC1pbmZvIHAgeyBmb250LXNpemU6IDE0cHg7IH1cblxuLnJvdy5yZW1vdmUtZ2FwIHsgbWFyZ2luLWxlZnQ6IDA7IG1hcmdpbi1yaWdodDogMDsgIH1cbi5yZW1vdmUtZ2FwIC5jb2x1bW5zIHsgcGFkZGluZzogMDsgfVxuLnJlbW92ZS1nYXAgLm1vc2FpYy1pdGVtIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLnJvdy13cmFwcGVyIC52Y19yb3ctby1mdWxsLWhlaWdodCB7XG4gICAgbWluLWhlaWdodDogMTAwdmhcbn1cbi5yb3ctd3JhcHBlciAudmNfcm93LWZsZXgge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTsgXG59XG4ucm93LXdyYXBwZXIgLnZjX3Jvdy1mbGV4Pi52Y19jb2x1bW5fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4XG59XG4udmNfaWUtZmxleGJveC1maXhlcixcbi5yb3ctd3JhcHBlciAudmNfcm93LWZsZXg+LnZjX2NvbHVtbl9jb250YWluZXI+LnZjX2NvbHVtbi1pbm5lciB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWxcbn1cbi5yb3ctd3JhcHBlciAudmNfcm93LWZsZXg+LnZjX2NvbHVtbl9jb250YWluZXI+LnZjX2NvbHVtbi1pbm5lciB7XG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxufVxuXG4ucm93LXdyYXBwZXIgLnZjX3Jvdy1vLWNvbHVtbnMtc3RyZXRjaCB7XG4gICAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaDtcbiAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoXG59XG4ucm93LXdyYXBwZXIgLnZjX3Jvdy1vLWNvbHVtbnMtdG9wIHtcbiAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0XG59XG4ucm93LXdyYXBwZXIgLnZjX3Jvdy1vLWNvbHVtbnMtYm90dG9tIHtcbiAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kXG59XG4ucm93LXdyYXBwZXIgLnZjX3Jvdy1vLWNvbHVtbnMtbWlkZGxlIHtcbiAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXJcbn1cbi5yb3ctd3JhcHBlciAudmNfcm93LW8tY29sdW1ucy1ib3R0b206OmFmdGVyLFxuLnJvdy13cmFwcGVyIC52Y19yb3ctby1jb2x1bW5zLW1pZGRsZTo6YWZ0ZXIsXG4ucm93LXdyYXBwZXIgLnZjX3Jvdy1vLWNvbHVtbnMtdG9wOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrXG59XG5cbi5yb3ctd3JhcHBlciB7IHdpZHRoOiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi5yb3ctcGFyYWxsYXggeyBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgbGVmdDogMDsgdG9wOiAwOyBib3R0b206IDA7IHdpZHRoOiBpbmhlcml0OyB9XG4uY2xhc3NpYyAuY29sdW1ucyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLnJvdy1pbWFnZS1vdmVybGF5IHsgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IGxlZnQ6IDA7IHRvcDogMDsgYm90dG9tOiAwOyByaWdodDogMDsgfVxuXG4uY2xhc3NpYyAucGFnZS1oZWFkZXItdGl0bGUgeyBtYXJnaW46IDYwcHggMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4ucGFnZS1oZWFkZXItdGl0bGUgaDMgeyBtYXJnaW46IDA7IH1cbi5yb3ctd3JhcHBlciA+IGRpdjpub3QoLnZjX2NsZWFyZml4KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbmRpdi53cGJfYnV0dG9uLCBkaXYud3BiX2NvbnRlbnRfZWxlbWVudCwgdWwud3BiX3RodW1ibmFpbHMtZmx1aWQ+bGkgeyBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cblxuLm5hdi1zb2xpZCAucGFnZS13cmFwcGVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7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 */
