/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
	Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  /* create separate layer, to avoid paint on window.onscroll in webkit/blink */
  -webkit-backface-visibility: hidden;
  outline: none; }
  .pswp * {
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
  .pswp img {
    max-width: none; }

/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--open {
  display: block; }

.pswp--zoom-allowed .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in; }

.pswp--zoomed-in .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab; }

.pswp--dragging .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing; }

/*
	Background is added as a separate element.
	As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change: opacity; }

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0; }

/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none; }

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  /* for open/close transition */
  -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp__bg {
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
          transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  -webkit-transition: none;
  transition: none; }

.pswp__container,
.pswp__zoom-wrap {
  -webkit-backface-visibility: hidden; }

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden; }

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0; }

/*
	stretched thumbnail or div placeholder element (see below)
	style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
  -webkit-backface-visibility: hidden; }

/*
	div element that matches size of large image
	large image loads on top of it
*/
.pswp__img--placeholder--blank {
  background: #222; }

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0; }

/*
	Error message appears when image is not loaded
	(JS option errorMsg controls markup)
*/
.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #CCC; }

.pswp__error-msg a {
  color: #CCC;
  text-decoration: underline; }

@charset "UTF-8";
/**
 * ----------------------
 * Un.titled
 * Main - Global
 * ----------------------
 */
/**
 * Dependencies
 */
/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

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

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

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

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

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

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

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0;
}

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

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

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

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

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

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

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

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0;
}

:root {
  --reflex-columns: 12;
  --reflex-grid-spacing: 15px;
  --reflex-xs: 576px;
  --reflex-sm: 768px;
  --reflex-md: 992px;
  --reflex-lg: 1200px;
  --reflex-xlg: 1600px;
  --reflex-xxs-max: 575px;
  --reflex-xs-max: 767px;
  --reflex-sm-max: 991px;
  --reflex-md-max: 1199px;
  --reflex-lg-max: 1599px;
}

.container,
.container-full {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 30px;
  padding-left: 30px;
}
.container .grid,
.container-full .grid {
  margin-right: -15px;
  margin-left: -15px;
}

@media (min-width: 576px) {
  .container {
    max-width: 576px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 992px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1200px;
  }
}
@media (min-width: 1600px) {
  .container {
    max-width: 1600px;
  }
}

.grid {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: block;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  padding: 0;
  margin: 0 auto;
  position: relative;
  letter-spacing: -0.31em;
  *letter-spacing: normal;
  word-spacing: -0.43em;
  list-style-type: none;
}
.grid::before, .grid::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
}

[class*=col-] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
  position: relative;
  width: 100%;
  vertical-align: top;
  padding: 15px;
  display: inline-block;
  *display: inline;
  zoom: 1;
}
[class*=col-]::before, [class*=col-]::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  letter-spacing: normal;
  word-spacing: normal;
  white-space: normal;
}
[class*=col-] .grid {
  -ms-flex: 1 1 auto;
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  margin: -15px;
}

.col-12 {
  width: 100%;
  *width: 99.9%;
}

.col-11 {
  width: 91.6666666667%;
  *width: 91.5666666667%;
}

.col-10 {
  width: 83.3333333333%;
  *width: 83.2333333333%;
}

.col-9 {
  width: 75%;
  *width: 74.9%;
}

.col-8 {
  width: 66.6666666667%;
  *width: 66.5666666667%;
}

.col-7 {
  width: 58.3333333333%;
  *width: 58.2333333333%;
}

.col-6 {
  width: 50%;
  *width: 49.9%;
}

.col-5 {
  width: 41.6666666667%;
  *width: 41.5666666667%;
}

.col-4 {
  width: 33.3333333333%;
  *width: 33.2333333333%;
}

.col-3 {
  width: 25%;
  *width: 24.9%;
}

.col-2 {
  width: 16.6666666667%;
  *width: 16.5666666667%;
}

.col-1 {
  width: 8.3333333333%;
  *width: 8.2333333333%;
}

@media (min-width: 576px) {
  .col-xs-12 {
    width: 100%;
    *width: 99.9%;
  }

  .col-xs-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }

  .col-xs-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }

  .col-xs-9 {
    width: 75%;
    *width: 74.9%;
  }

  .col-xs-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }

  .col-xs-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }

  .col-xs-6 {
    width: 50%;
    *width: 49.9%;
  }

  .col-xs-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }

  .col-xs-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }

  .col-xs-3 {
    width: 25%;
    *width: 24.9%;
  }

  .col-xs-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }

  .col-xs-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 768px) {
  .col-sm-12 {
    width: 100%;
    *width: 99.9%;
  }

  .col-sm-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }

  .col-sm-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }

  .col-sm-9 {
    width: 75%;
    *width: 74.9%;
  }

  .col-sm-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }

  .col-sm-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }

  .col-sm-6 {
    width: 50%;
    *width: 49.9%;
  }

  .col-sm-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }

  .col-sm-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }

  .col-sm-3 {
    width: 25%;
    *width: 24.9%;
  }

  .col-sm-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }

  .col-sm-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 992px) {
  .col-md-12 {
    width: 100%;
    *width: 99.9%;
  }

  .col-md-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }

  .col-md-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }

  .col-md-9 {
    width: 75%;
    *width: 74.9%;
  }

  .col-md-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }

  .col-md-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }

  .col-md-6 {
    width: 50%;
    *width: 49.9%;
  }

  .col-md-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }

  .col-md-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }

  .col-md-3 {
    width: 25%;
    *width: 24.9%;
  }

  .col-md-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }

  .col-md-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 1200px) {
  .col-lg-12 {
    width: 100%;
    *width: 99.9%;
  }

  .col-lg-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }

  .col-lg-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }

  .col-lg-9 {
    width: 75%;
    *width: 74.9%;
  }

  .col-lg-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }

  .col-lg-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }

  .col-lg-6 {
    width: 50%;
    *width: 49.9%;
  }

  .col-lg-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }

  .col-lg-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }

  .col-lg-3 {
    width: 25%;
    *width: 24.9%;
  }

  .col-lg-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }

  .col-lg-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
@media (min-width: 1600px) {
  .col-xlg-12 {
    width: 100%;
    *width: 99.9%;
  }

  .col-xlg-11 {
    width: 91.6666666667%;
    *width: 91.5666666667%;
  }

  .col-xlg-10 {
    width: 83.3333333333%;
    *width: 83.2333333333%;
  }

  .col-xlg-9 {
    width: 75%;
    *width: 74.9%;
  }

  .col-xlg-8 {
    width: 66.6666666667%;
    *width: 66.5666666667%;
  }

  .col-xlg-7 {
    width: 58.3333333333%;
    *width: 58.2333333333%;
  }

  .col-xlg-6 {
    width: 50%;
    *width: 49.9%;
  }

  .col-xlg-5 {
    width: 41.6666666667%;
    *width: 41.5666666667%;
  }

  .col-xlg-4 {
    width: 33.3333333333%;
    *width: 33.2333333333%;
  }

  .col-xlg-3 {
    width: 25%;
    *width: 24.9%;
  }

  .col-xlg-2 {
    width: 16.6666666667%;
    *width: 16.5666666667%;
  }

  .col-xlg-1 {
    width: 8.3333333333%;
    *width: 8.2333333333%;
  }
}
.col-auto {
  -ms-flex: 1 0 0px;
  -webkit-flex: 1 0 0px;
  flex: 1 0 0px;
  width: auto;
}

@media (min-width: 576px) {
  .col-xs-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 768px) {
  .col-sm-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 992px) {
  .col-md-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 1200px) {
  .col-lg-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
@media (min-width: 1600px) {
  .col-xlg-auto {
    -ms-flex: 1 0 0px;
    -webkit-flex: 1 0 0px;
    flex: 1 0 0px;
    width: auto;
  }
}
.order-12 {
  -ms-flex-order: 12;
  -webkit-order: 12;
  order: 12;
}

.order-11 {
  -ms-flex-order: 11;
  -webkit-order: 11;
  order: 11;
}

.order-10 {
  -ms-flex-order: 10;
  -webkit-order: 10;
  order: 10;
}

.order-9 {
  -ms-flex-order: 9;
  -webkit-order: 9;
  order: 9;
}

.order-8 {
  -ms-flex-order: 8;
  -webkit-order: 8;
  order: 8;
}

.order-7 {
  -ms-flex-order: 7;
  -webkit-order: 7;
  order: 7;
}

.order-6 {
  -ms-flex-order: 6;
  -webkit-order: 6;
  order: 6;
}

.order-5 {
  -ms-flex-order: 5;
  -webkit-order: 5;
  order: 5;
}

.order-4 {
  -ms-flex-order: 4;
  -webkit-order: 4;
  order: 4;
}

.order-3 {
  -ms-flex-order: 3;
  -webkit-order: 3;
  order: 3;
}

.order-2 {
  -ms-flex-order: 2;
  -webkit-order: 2;
  order: 2;
}

.order-1 {
  -ms-flex-order: 1;
  -webkit-order: 1;
  order: 1;
}

.order-0 {
  -ms-flex-order: 0;
  -webkit-order: 0;
  order: 0;
}

@media only screen and (min-width: 576px) {
  .order-xs-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }

  .order-xs-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }

  .order-xs-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }

  .order-xs-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }

  .order-xs-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }

  .order-xs-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }

  .order-xs-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }

  .order-xs-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }

  .order-xs-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }

  .order-xs-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }

  .order-xs-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }

  .order-xs-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }

  .order-xs-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media only screen and (min-width: 768px) {
  .order-sm-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }

  .order-sm-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }

  .order-sm-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }

  .order-sm-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }

  .order-sm-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }

  .order-sm-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }

  .order-sm-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }

  .order-sm-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }

  .order-sm-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }

  .order-sm-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }

  .order-sm-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }

  .order-sm-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }

  .order-sm-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media only screen and (min-width: 992px) {
  .order-md-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }

  .order-md-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }

  .order-md-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }

  .order-md-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }

  .order-md-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }

  .order-md-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }

  .order-md-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }

  .order-md-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }

  .order-md-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }

  .order-md-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }

  .order-md-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }

  .order-md-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }

  .order-md-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media only screen and (min-width: 1200px) {
  .order-lg-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }

  .order-lg-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }

  .order-lg-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }

  .order-lg-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }

  .order-lg-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }

  .order-lg-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }

  .order-lg-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }

  .order-lg-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }

  .order-lg-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }

  .order-lg-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }

  .order-lg-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }

  .order-lg-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }

  .order-lg-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
@media only screen and (min-width: 1600px) {
  .order-xlg-12 {
    -ms-flex-order: 12;
    -webkit-order: 12;
    order: 12;
  }

  .order-xlg-11 {
    -ms-flex-order: 11;
    -webkit-order: 11;
    order: 11;
  }

  .order-xlg-10 {
    -ms-flex-order: 10;
    -webkit-order: 10;
    order: 10;
  }

  .order-xlg-9 {
    -ms-flex-order: 9;
    -webkit-order: 9;
    order: 9;
  }

  .order-xlg-8 {
    -ms-flex-order: 8;
    -webkit-order: 8;
    order: 8;
  }

  .order-xlg-7 {
    -ms-flex-order: 7;
    -webkit-order: 7;
    order: 7;
  }

  .order-xlg-6 {
    -ms-flex-order: 6;
    -webkit-order: 6;
    order: 6;
  }

  .order-xlg-5 {
    -ms-flex-order: 5;
    -webkit-order: 5;
    order: 5;
  }

  .order-xlg-4 {
    -ms-flex-order: 4;
    -webkit-order: 4;
    order: 4;
  }

  .order-xlg-3 {
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }

  .order-xlg-2 {
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }

  .order-xlg-1 {
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }

  .order-xlg-0 {
    -ms-flex-order: 0;
    -webkit-order: 0;
    order: 0;
  }
}
.offset-11 {
  margin-left: 91.6666666667%;
  *margin-left: 91.5666666667%;
}

.offset-10 {
  margin-left: 83.3333333333%;
  *margin-left: 83.2333333333%;
}

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

.offset-8 {
  margin-left: 66.6666666667%;
  *margin-left: 66.5666666667%;
}

.offset-7 {
  margin-left: 58.3333333333%;
  *margin-left: 58.2333333333%;
}

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

.offset-5 {
  margin-left: 41.6666666667%;
  *margin-left: 41.5666666667%;
}

.offset-4 {
  margin-left: 33.3333333333%;
  *margin-left: 33.2333333333%;
}

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

.offset-2 {
  margin-left: 16.6666666667%;
  *margin-left: 16.5666666667%;
}

.offset-1 {
  margin-left: 8.3333333333%;
  *margin-left: 8.2333333333%;
}

@media only screen and (min-width: 576px) {
  .offset-xs-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }

  .offset-xs-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }

  .offset-xs-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }

  .offset-xs-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }

  .offset-xs-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }

  .offset-xs-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }

  .offset-xs-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }

  .offset-xs-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }

  .offset-xs-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }

  .offset-xs-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }

  .offset-xs-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }

  .offset-xs-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media only screen and (min-width: 768px) {
  .offset-sm-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }

  .offset-sm-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }

  .offset-sm-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }

  .offset-sm-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }

  .offset-sm-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }

  .offset-sm-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }

  .offset-sm-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }

  .offset-sm-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }

  .offset-sm-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }

  .offset-sm-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }

  .offset-sm-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }

  .offset-sm-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media only screen and (min-width: 992px) {
  .offset-md-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }

  .offset-md-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }

  .offset-md-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }

  .offset-md-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }

  .offset-md-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }

  .offset-md-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }

  .offset-md-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }

  .offset-md-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }

  .offset-md-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }

  .offset-md-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }

  .offset-md-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }

  .offset-md-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media only screen and (min-width: 1200px) {
  .offset-lg-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }

  .offset-lg-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }

  .offset-lg-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }

  .offset-lg-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }

  .offset-lg-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }

  .offset-lg-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }

  .offset-lg-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }

  .offset-lg-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }

  .offset-lg-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }

  .offset-lg-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }

  .offset-lg-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }

  .offset-lg-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
@media only screen and (min-width: 1600px) {
  .offset-xlg-11 {
    margin-left: 91.6666666667%;
    *margin-left: 91.5666666667%;
  }

  .offset-xlg-10 {
    margin-left: 83.3333333333%;
    *margin-left: 83.2333333333%;
  }

  .offset-xlg-9 {
    margin-left: 75%;
    *margin-left: 74.9%;
  }

  .offset-xlg-8 {
    margin-left: 66.6666666667%;
    *margin-left: 66.5666666667%;
  }

  .offset-xlg-7 {
    margin-left: 58.3333333333%;
    *margin-left: 58.2333333333%;
  }

  .offset-xlg-6 {
    margin-left: 50%;
    *margin-left: 49.9%;
  }

  .offset-xlg-5 {
    margin-left: 41.6666666667%;
    *margin-left: 41.5666666667%;
  }

  .offset-xlg-4 {
    margin-left: 33.3333333333%;
    *margin-left: 33.2333333333%;
  }

  .offset-xlg-3 {
    margin-left: 25%;
    *margin-left: 24.9%;
  }

  .offset-xlg-2 {
    margin-left: 16.6666666667%;
    *margin-left: 16.5666666667%;
  }

  .offset-xlg-1 {
    margin-left: 8.3333333333%;
    *margin-left: 8.2333333333%;
  }

  .offset-xlg-0 {
    margin-left: 0;
    *margin-left: -0.1%;
  }
}
.wrap {
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.no-wrap {
  -ms-flex-wrap: nowrap;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
}
.no-wrap [class*=col-] {
  -ms-flex-negative: 1;
  -webkit-flex-shrink: 1;
  flex-shrink: 1;
}

.wrap-reverse {
  -ms-flex-wrap: wrap-reverse;
  -webkit-flex-wrap: wrap-reverse;
  flex-wrap: wrap-reverse;
}

.direction-row {
  -ms-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.direction-row-reverse {
  -ms-flex-direction: row-reverse;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.direction-column {
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.direction-column-reverse {
  -ms-flex-direction: column-reverse;
  -webkit-flex-direction: column-reverse;
  flex-direction: column-reverse;
}

.align-start {
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.align-end {
  -ms-flex-align: end;
  -webkit-align-items: flex-end;
  align-items: flex-end;
}
.align-end [class*=col-] {
  vertical-align: bottom;
}

.align-center {
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}
.align-center [class*=col-] {
  vertical-align: middle;
}

.align-baseline {
  -ms-flex-align: baseline;
  -webkit-align-items: baseline;
  align-items: baseline;
}

.align-content-start {
  -ms-flex-line-pack: start;
  -webkit-align-content: flex-start;
  align-content: flex-start;
}

.align-content-end {
  -ms-flex-line-pack: end;
  -webkit-align-content: flex-end;
  align-content: flex-end;
}
.align-content-end [class*=col-] {
  vertical-align: bottom;
}

.align-content-center {
  -ms-flex-line-pack: center;
  -webkit-align-content: center;
  align-content: center;
}

.align-content-space-between {
  -ms-flex-line-pack: justify;
  -webkit-align-content: space-between;
  align-content: space-between;
}

.align-content-space-around {
  -ms-flex-line-pack: distribute;
  -webkit-align-content: space-around;
  align-content: space-around;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
  -webkit-align-self: stretch;
  align-self: stretch;
}

.align-self-start {
  -ms-flex-item-align: start;
  -webkit-align-self: flex-start;
  align-self: flex-start;
}

.align-self-end {
  -ms-flex-item-align: end;
  -webkit-align-self: flex-end;
  align-self: flex-end;
  vertical-align: bottom;
}

.align-self-center {
  -ms-flex-item-align: center;
  -webkit-align-self: center;
  align-self: center;
  vertical-align: middle;
}

.align-self-baseline {
  -ms-flex-item-align: baseline;
  -webkit-align-self: baseline;
  align-self: baseline;
  vertical-align: baseline;
}

.justify-start {
  -ms-flex-pack: start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}
.justify-start.grid {
  text-align: left;
}

.justify-end {
  -ms-flex-pack: end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}
.justify-end.grid {
  text-align: right;
  -moz-text-align-last: right;
  text-align-last: right;
}
.justify-end.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-center {
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
}
.justify-center.grid {
  text-align: center;
  -moz-text-align-last: center;
  text-align-last: center;
}
.justify-center.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-space-between {
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}
.justify-space-between.grid {
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
}
.justify-space-between.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.justify-space-around {
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  justify-content: space-around;
}
.justify-space-around.grid {
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
}
.justify-space-around.grid [class*=col-] {
  text-align: left;
  text-align: start;
  -moz-text-align-last: left;
  -moz-text-align-last: start;
  text-align-last: left;
  text-align-last: start;
}

.grid-bleed [class*=col-] {
  padding: 0;
}

.col-grid {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.col-grid.direction-row {
  -ms-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.col-bleed {
  padding: 0;
}

.col-bleed-x {
  padding: 15px 0;
}

.col-bleed-y {
  padding: 0 15px;
}

.flex-img {
  display: block;
  -ms-flex: 0 0 auto;
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 100%;
  height: auto;
  width: 100%;
  *width: auto;
}

.flex-footer {
  width: 100%;
  margin-top: auto;
  margin-bottom: 0;
}
.flex-footer > :last-child {
  margin-bottom: 0;
}

@media (min-width: 0px) and (max-width: 575px) {
  .hidden-xxs {
    display: none;
  }
}

@media (min-width: 576px) {
  .hidden-xs-up {
    display: none;
  }
}

@media (max-width: 767px) {
  .hidden-xs-down {
    display: none;
  }
}

@media (min-width: 576px) and (max-width: 767px) {
  .hidden-xs {
    display: none;
  }
}

@media (min-width: 768px) {
  .hidden-sm-up {
    display: none;
  }
}

@media (max-width: 991px) {
  .hidden-sm-down {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none;
  }
}

@media (min-width: 992px) {
  .hidden-md-up {
    display: none;
  }
}

@media (max-width: 1199px) {
  .hidden-md-down {
    display: none;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none;
  }
}

@media (min-width: 1200px) {
  .hidden-lg-up {
    display: none;
  }
}

@media (max-width: 1599px) {
  .hidden-lg-down {
    display: none;
  }
}

@media (min-width: 1200px) and (max-width: 1599px) {
  .hidden-lg {
    display: none;
  }
}

@media (min-width: 1600px) {
  .hidden-xlg {
    display: none;
  }
}

/**
 * Helpers
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Focus Visible
 * ----------------------
 */
/**
 * Focus Visible
 * https://github.com/WICG/focus-visible
 * Override base focus styles for mouse and touch interactions
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Font Smoothing
 * ----------------------
 */
/** 
 * Font Smoothing
 * Enables font smoothing for capable browsers.
 * Optionally force font-smoothing on non-retina devices.
 * @param {boolean} $force [false]
 * @return {string}
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Global mixins
 * ----------------------
 */
/**
 * ----------------------
 * Un.titled
 * Helpers - Table
 * ----------------------
 */
/**
 * Responsive Table
 * Creates a responsive table
 * Accepts a list of headers to replace main 
 * table headers on mobile.
 * @param {map} $headers
 * @return {string}
 */
/**
 * Config
 */
/**
 * ----------------------
 * Un.titled
 * Config - Fonts
 * ----------------------
 */
@font-face {
  font-family: "Avenir Next World W05 Regular";
  src: url("../font/6080836/09ab0626-bb45-4650-acc8-0182d693df02.woff2") format("woff2"), url("../font/6080836/1397e812-9307-4267-8a99-8a22ea7c69c7.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next World W05 Italic";
  src: url("../font/6080994/b9c5b839-db56-4419-8fcb-6ab661babb1d.woff2") format("woff2"), url("../font/6080994/950b5788-cfdd-48d9-9d8a-523560042c5b.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next World W05 Bold";
  src: url("../font/6080870/074dfc70-6436-4f4b-9314-d1e69287aea1.woff2") format("woff2"), url("../font/6080870/0c4cefca-3b78-44b9-8b2b-667bbabffe38.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "AvenirNextLTW01-Regular";
  src: url("../font/2cd55546-ec00-4af9-aeca-4a3cd186da53.woff2") format("woff2"), url("../font/1e9892c0-6927-4412-9874-1b82801ba47a.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "AvenirNextLTW01-Italic";
  src: url("../font/7377dbe6-f11a-4a05-b33c-bc8ce1f60f84.woff2") format("woff2"), url("../font/92b66dbd-4201-4ac2-a605-4d4ffc8705cc.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next LT W01 Bold";
  src: url("../font/14c73713-e4df-4dba-933b-057feeac8dd1.woff2") format("woff2"), url("../font/b8e906a1-f5e8-4bf1-8e80-82c646ca4d5f.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "GT America";
  src: url("../font/GT-America-Compressed-Bold.woff2") format("woff2"), url("../font/GT-America-Compressed-Bold.woff") format("woff");
  font-display: swap;
}
/**
 * ----------------------
 * Un.titled
 * Config - Vars
 * ----------------------
 */
:root {
  --c-primary: #0e3034;
  --c-secondary: var(--c-pink);
  --c-white: #ffffff;
  --c-greyLight: #f3f2f1;
  --c-grey: #d0ccc7;
  --c-teal: #00c7b1;
  --c-yellow: #ffb81c;
  --c-purple: #af8ee0;
  --c-pink: #ffabba;
  --c-magenta: #eb4264;
  --c-red: #D5234A;
  --c-blue: #b4e4f5;
  --c-maroon: #640a32;
  --c-black: #000;
  --fontBody: "AvenirNextLTW01-Regular", "Avenir Next World W05 Regular",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontBold: "Avenir Next LT W01 Bold", "Avenir Next World W05 Bold",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontItalic: "AvenirNextLTW01-Italic", "Avenir Next World W05 Italic",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontTitle: "GT America", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --fontSize: 112.5%;
  --fontSmall: 70%;
  --lineHeight: 1.5;
  --containerWidth: 1802px;
  --cols-3: calc(var(--containerWidth) * 0.25);
  --cols-6: calc(var(--containerWidth) * 0.5);
  --cols-8: calc(var(--containerWidth) * 0.6666666667);
  --cols-10: calc(var(--containerWidth) * 0.833333333333);
  --variableHeightLimit: clamp(20vh, 60vw, 60vh);
  --heightLimit: 700px;
  --gutter: 15px;
  --easing: cubic-bezier(0.83, 0, 0.17, 1);
  --transition: 0.3s var(--easing);
  --lineLength: 600px;
}

/**
* Breakpoints for @include-media
*/
/**
 * Base
 */
/**
 * ----------------------
 * Un.titled
 * Base - Defaults
 * ----------------------
 */
.grid {
  max-width: var(--containerWidth);
}

.container-full > .grid {
  max-width: none;
}

ul.menu,
ul.plain {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.menu li,
ul.plain li {
  list-style: none;
  margin: 0;
  padding: 0;
}

img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: opacity var(--transition);
}
img.lazy {
  opacity: 0;
}
@media not all and (-webkit-min-device-pixel-ratio: 0), not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {
    img.lazy {
      opacity: 1;
    }
  }
}
img.loaded {
  opacity: 1;
}

.restricted-height {
  max-height: var(--heightLimit);
  width: auto;
  max-width: 100%;
  display: block;
  margin: 0 auto;
}

a[data-gallery] {
  cursor: zoom-in;
}
a[data-gallery]:hover {
  opacity: 0.85;
  text-decoration: none;
}

.hidden {
  display: none !important;
  visibility: hidden !important;
}

.video-container,
.media-vimeo-video {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 25px;
  height: 0;
}
.video-container iframe,
.media-vimeo-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.video-wrapper {
  position: relative;
}

.video-caption {
  margin-top: 0.5rem;
  font-size: var(--fontSmall);
}

.media-soundcloud-audio iframe {
  width: 100%;
  max-height: 150px;
}

figcaption {
  margin-top: 0.5rem;
  font-size: 90%;
}

/**
 * ----------------------
 * Un.titled
 * Base - Typography
 * ----------------------
 */
/**
 * Config
 */
/**
 * Heading
 */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 0;
  font-family: var(--fontTitle);
  font-weight: normal;
  margin-bottom: 1rem;
}

h1,
.h1 {
  line-height: 1.15;
  font-size: clamp(2.5rem, 5vw, 5rem);
}

h2,
.h2 {
  line-height: 1.15;
  font-size: clamp(1.8rem, 2.5vw, 3rem);
}

h3,
.h3 {
  line-height: 1.3;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
}

h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: var(--fontBold);
  line-height: 1.5;
  font-size: 1rem;
}
@media (max-width: 575px) {
  h4,
.h4,
h5,
.h5,
h6,
.h6 {
    margin-bottom: 0.5rem;
  }
}

.centered {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.centered-padding-bottom {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  padding-bottom: 1rem;
}

.border-bottom {
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 1rem;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .border-bottom {
    margin-bottom: 1rem;
  }
}
.border-top {
  border-top: 1px solid var(--c-primary);
  padding-top: 1rem;
  margin-top: 2rem;
}
@media (max-width: 767px) {
  .border-top {
    margin-top: 1rem;
  }
}

/**
 * Paragraphs
 */
p {
  margin: 0 0 1.5rem;
}
p:first-of-type {
  margin-top: 0;
}
p:last-of-type {
  margin-bottom: 0;
}

/**
 * Lists
 */
ul,
ol {
  margin: 1.5rem 0;
  list-style-position: inside;
  padding-left: 0;
}

/**
 * Links
 */
a,
.link {
  color: inherit;
  font-weight: inherit;
  text-decoration: underline;
  transition: all var(--transition);
}
a:hover, a:focus, a:active,
.link:hover,
.link:focus,
.link:active {
  text-decoration: none;
  color: currentColor;
}
a:focus,
.link:focus {
  outline: 3px dashed currentColor;
}
.js-focus-visible a:focus:not(.focus-visible),
.js-focus-visible .link:focus:not(.focus-visible) {
  outline: 0;
}
a.no-link,
.link.no-link {
  pointer-events: none;
}

.no-click {
  pointer-events: none;
  cursor: default;
}

::-moz-selection {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}

::selection {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}

/**
 * Buttons
 */
button:focus {
  outline: 3px dashed currentColor;
}
.js-focus-visible button:focus:not(.focus-visible) {
  outline: 0;
}

/**
 * Inline
 */
strong {
  font-weight: normal;
  font-family: var(--fontBold);
}

em {
  font-family: var(--fontItalic);
  font-style: italic;
}

span {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-size: inherit;
}

address {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-size: inherit;
  font-style: normal;
}

small {
  font-size: 90%;
}

hr {
  border: solid var(--c-primary);
  border-width: 0 0 1px 0;
  width: 100%;
}

figure {
  margin: 0;
}

/**
 * ----------------------
 * Un.titled
 * Base - Main
 * ----------------------
 */
/**
 * Styles
 */
html,
body {
  -moz-font-smoothing: grayscale;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
  font-size: var(--fontSize);
  line-height: var(--lineHeight);
  font-family: var(--fontBody);
  background-color: var(--c-greyLight);
  color: var(--c-primary);
}
@media (max-width: 1199px) {
  html,
body {
    --fontSize: 100%;
  }
}

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

body {
  display: flex;
  flex-direction: column;
}

/**
 * ----------------------
 * Un.titled
 * Base - Animations
 * ----------------------
 */
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
    display: flex;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    display: none;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
    display: flex;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    display: none;
  }
}
/**
* Atoms
*/
/**
 * ----------------------
 * Un.titled
 * Atoms - Buttons
 * ----------------------
 */
/**
 * Config
 **/
/**
 * Styles
 **/
.a-btn {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  border-bottom: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.a-btn::after {
  display: none;
  visibility: hidden;
}
.a-btn svg {
  margin-left: 10px;
  transition: transform var(--transition);
  width: 20px;
}
.a-btn path {
  fill: currentColor;
}
.a-btn:focus, .a-btn:hover {
  text-decoration: none;
  color: var(--btnColour);
}
.a-btn:focus svg, .a-btn:hover svg {
  transform: translateX(5px);
}
.a-btn--yel {
  --btnBg: var(--c-yellow);
  --btnColour: var(--c-primary);
}
.a-btn--blue {
  --btnBg: var(--c-blue);
  --btnColour: var(--c-primary);
}
.a-btn--wh {
  --btnBg: var(--c-white);
  --btnColour: var(--c-primary);
}
.a-btn--wide {
  padding-left: 4rem;
  padding-right: 4rem;
}
@media (max-width: 575px) {
  .a-btn--wide {
    padding-left: 1rem;
    padding-right: 1rem;
    display: flex;
  }
}
.a-btn--fullWidth {
  display: flex;
  width: 100%;
}
.a-btn--narrow {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.a-btn--sm {
  --btnBg: transparent;
  --btnColour: var(--c-primary);
  border-color: var(--c-primary);
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  font-size: var(--fontSmall);
  letter-spacing: 1px;
}
.a-btn--sm:hover {
  --btnBg: var(--c-primary);
  color: var(--c-white);
}
.a-btn--hollow {
  --btnBg: transparent;
  --btnColour: var(--c-primary);
  border-color: var(--c-primary);
}
.a-btn--iconLeft svg {
  margin: 0 10px 0 0;
}
.a-btn--iconLeft:hover svg {
  transform: translateX(-5px);
}
.a-btn--white {
  --btnBg: transparent;
  --btnColour: var(--c-white);
  border-color: var(--c-white);
}
.a-btn--white:hover {
  background-color: var(--c-pink);
  color: var(--c-primary);
  border-color: var(--c-pink);
}
.a-btn:focus {
  outline: 3px dashed var(--btnBg);
}
.js-focus-visible .a-btn:focus:not(.focus-visible) {
  outline: 0;
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Image credits
 * ----------------------
 */
.a-image-credit {
  position: absolute;
  bottom: 0;
  right: 0;
  cursor: help;
  border: 0;
  width: 50px;
  height: 50px;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
}
.a-image-credit__icon {
  background-color: var(--c-white);
  color: var(--c-primary);
  width: 1.25rem;
  height: 1.25rem;
  display: flex;
  justify-content: center;
  border-radius: 50%;
  align-items: center;
  text-transform: none;
  line-height: 15px;
  text-align: center;
  font-size: var(--fontSmall);
}
.a-image-credit__copy {
  background: var(--c-white);
  color: var(--c-primary);
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  padding: 1rem 3rem 1rem 1rem;
  font-size: var(--fontSmall);
  width: 95vw;
  max-width: 500px;
  text-align: left;
  display: block;
  pointer-events: none;
  transition: opacity var(--transition);
}
@media (max-width: 767px) {
  .a-image-credit__copy {
    padding-right: 2rem;
  }
}
.a-image-credit:focus .a-image-credit__icon, .a-image-credit:active .a-image-credit__icon, .a-image-credit:hover .a-image-credit__icon {
  color: var(--c-white);
  background-color: var(--c-primary);
}
.a-image-credit:focus .a-image-credit__copy, .a-image-credit:active .a-image-credit__copy, .a-image-credit:hover .a-image-credit__copy {
  opacity: 1;
  visibility: visible;
  z-index: 21;
}

/**
* ----------------------
* Un.titled
* Atoms - Breadcrumbs
* ----------------------
*/
/**
* Styling
*/
.a-breadcrumbs {
  padding: 0.5rem 2rem;
  font-size: var(--fontSmall);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .a-breadcrumbs {
    display: none;
    visibility: hidden;
    padding: 0.5rem 1rem;
  }
}
@media (max-width: 575px) {
  .a-breadcrumbs {
    padding: 0.5rem 15px;
  }
}
.a-breadcrumbs__divider {
  margin: 0 5px;
}
.a-breadcrumbs a {
  text-decoration: none;
}
.a-breadcrumbs a:hover {
  text-decoration: underline;
}

/**
* ----------------------
* Un.titled
* Atoms - Loader
* ----------------------
*/
/**
* Config
*/
@-webkit-keyframes loaderAnimation {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }
  25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }
  90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}
@keyframes loaderAnimation {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }
  25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }
  90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}
:root {
  --loaderColour: var(--c-primary);
}

/**
* Styling
*/
.a-loader {
  margin: 20px auto;
  width: 40px;
  height: 40px;
  position: relative;
  transform: rotateZ(45deg);
}
.a-loader--white {
  --loaderColour: rgba(255, 255, 255, 0.8);
}
.a-loader__cube {
  float: left;
  width: 50%;
  height: 50%;
  position: relative;
  transform: scale(1.1);
}
.a-loader__cube::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--loaderColour);
  -webkit-animation: loaderAnimation 2.4s infinite linear both;
          animation: loaderAnimation 2.4s infinite linear both;
  transform-origin: 100% 100%;
}
.a-loader__cube-2 {
  transform: scale(1.1) rotateZ(90deg);
}
.a-loader__cube-2::before {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.a-loader__cube-3 {
  transform: scale(1.1) rotateZ(180deg);
}
.a-loader__cube-3::before {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}
.a-loader__cube-4 {
  transform: scale(1.1) rotateZ(270deg);
}
.a-loader__cube-4::before {
  -webkit-animation-delay: 0.9s;
          animation-delay: 0.9s;
}

/**
* ----------------------
* Un.titled
* Atoms - Date picker
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-date-picker {
  width: 100%;
  max-width: 80%;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  .a-date-picker {
    max-width: 100%;
  }
}
.a-date-picker .DayPicker-wrapper {
  position: unset;
}
.a-date-picker .DayPicker-NavBar {
  position: absolute;
  top: 1.5rem;
  right: 1rem;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .a-date-picker .DayPicker-NavBar {
    width: 100%;
    right: 0;
    top: 1.25rem;
    padding: 0 1rem;
    justify-content: space-between;
  }
}
@media (max-width: 575px) {
  .a-date-picker .DayPicker-NavBar {
    top: 0.5rem;
  }
}
.a-date-picker .DayPicker-NavButton {
  position: relative;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  margin: 0 0.5rem;
}
@media (max-width: 767px) {
  .a-date-picker .DayPicker-NavButton {
    background-size: 15px;
    margin: 0;
  }
}
.a-date-picker .DayPicker-NavButton--prev {
  background-image: url("../img/arrow-head-left.svg") !important;
}
.a-date-picker .DayPicker-NavButton--next {
  background-image: url("../img/arrow-head-right.svg") !important;
}
.a-date-picker .DayPicker-Caption {
  font-family: var(--fontTitle);
  text-align: center;
  font-size: 1.5rem;
  border-bottom: 1px solid var(--c-primary);
  padding: 1rem 0;
}
@media (max-width: 575px) {
  .a-date-picker .DayPicker-Caption {
    font-size: 1rem;
    padding: 0.5rem 0;
  }
}
.a-date-picker abbr {
  font-family: var(--fontBold);
  font-size: 1rem;
  color: vaR(--c-primary);
}
.a-date-picker .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside) {
  background-color: rgba(255, 171, 186, 0.4) !important;
  color: var(--c-primary);
  transition: background var(--transition);
}
.a-date-picker .DayPicker-Day {
  border-radius: 0% !important;
}
.a-date-picker .DayPicker-Day--today {
  border: 1px solid var(--c-primary);
  color: var(--c-primary);
}
.a-date-picker .DayPicker-Day:hover {
  background-color: var(--c-pink) !important;
}
.a-date-picker .DayPicker-Day--start {
  border-top-left-radius: 10px !important;
  border-bottom-left-radius: 10px !important;
}
.a-date-picker .DayPicker-Day--end {
  border-top-right-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}
.a-date-picker .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside) {
  background-color: var(--c-pink);
  color: var(--c-primary);
  transition: background var(--transition);
}

/**
* ----------------------
* Un.titled
* Atoms - Pagination
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-pager {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin: 2rem 0;
}
.a-pager li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.a-pager .disabled {
  display: none;
  visibility: hidden;
}
.a-pager span,
.a-pager a {
  border-bottom: none;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.25rem 0.5rem;
}
.a-pager span::after,
.a-pager a::after {
  display: none;
  visibility: hidden;
}
.a-pager a:hover {
  text-decoration: underline;
}
.a-pager a:hover path {
  fill: var(--c-secondary);
}
.a-pager span,
.a-pager a.undefined {
  text-decoration: underline;
}
.a-pager svg {
  width: 25px;
  margin: 0 0.5rem;
}
.a-pager path {
  transition: fill var(--transition);
}

/**
* ----------------------
* Un.titled
* Atoms - Columns
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cols {
  width: 100%;
  padding: 0 15px;
  width: 100%;
  margin: 0 auto;
}
.a-cols--xs {
  max-width: var(--cols-3);
}
.a-cols--sm {
  max-width: var(--cols-6);
}
.a-cols--md {
  max-width: var(--cols-8);
}
.a-cols--full {
  max-width: var(--containerWidth);
}
.a-cols--bgColour {
  margin: 4rem auto;
}

/**
* ----------------------
* Un.titled
* Atoms - Image captions
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-caption {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 8px;
  padding-left: var(--gutter);
  background-image: url("../img/arrow-head.svg");
  background-position: left 11px;
  font-size: var(--fontSmall);
}

/**
* ----------------------
* Un.titled
* Atoms - Auto grid
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--autoGridMin, 1fr), var(--autoGridMax, 1fr)));
  gap: var(--autoGridGap, 1rem);
  align-items: start;
}

/**
* ----------------------
* Un.titled
* Atoms - Links
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-links {
  margin: 2rem 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .a-links {
    margin: 1rem 0;
  }
}
.a-links a {
  margin-right: 1rem;
}

/**
* ----------------------
* Un.titled
* Atoms - Sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-sidebar {
  margin-bottom: 3rem;
  font-size: 1rem;
}
@media (max-width: 767px) {
  .a-sidebar {
    margin-bottom: 1.5rem;
  }
}
.a-sidebar--block {
  border: 1px solid var(--c-primary);
  border-left: 0;
  border-right: 0;
  padding: 1rem 0;
  margin-bottom: 1.5rem;
}
.a-sidebar .a-tag,
.a-sidebar .a-btn {
  margin-bottom: 1.5rem;
}
.a-sidebar svg {
  width: 15px;
}
@media (max-width: 991px) {
  .single-people .a-sidebar {
    order: -1;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Tags
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-tag {
  --tagBg: var(--c-primary);
  --tagColour: var(--c-white);
  display: inline-block;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  font-size: 90%;
  letter-spacing: 1px;
  background-color: var(--tagBg);
  color: var(--tagColour);
}
.a-tag--yel {
  --tagBg: var(--c-yellow);
  --tagColour: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Atoms - Sticky
* ----------------------
*/
/**
* Config
*/
:root {
  --stickyLeft: 0;
  --stickyWidth: 0;
  --stickyHeight: 0;
}

/**
* Styling
*/
.a-sticky[data-sticky=true] .a-btn {
  position: fixed;
  top: 0;
  left: var(--stickyLeft);
  width: var(--stickyWidth);
  z-index: 20;
  transition: none;
}
@media (max-width: 575px) {
  .a-sticky[data-sticky=true] .a-btn {
    left: 0;
    width: 100%;
  }
}
.a-sticky[data-sticky=true] .a-sticky__placeholder {
  display: block;
}
.a-sticky__placeholder {
  height: var(--stickyHeight);
  margin-bottom: 1.5rem;
  display: none;
}

/**
* ----------------------
* Un.titled
* Atoms - Event cancelled message
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cancelled {
  width: 100%;
  padding: 0.75rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.a-cancelled p {
  max-width: var(--containerWidth);
}

/**
* ----------------------
* Un.titled
* Atoms - Skip link
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-skip-link {
  font-family: var(--fontBold);
  position: absolute;
  transform: translateY(-100%);
  width: 100%;
  background-color: var(--c-primary);
  color: var(--c-white);
  text-align: center;
  padding: 0.5rem;
  z-index: 10;
  border: 0;
  outline: 0;
}
.a-skip-link:focus, .a-skip-link:active {
  transform: translateY(0);
  color: var(--c-white);
}

/**
* ----------------------
* Un.titled
* Atoms - Listing
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-listing {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 1199px) {
  .a-listing {
    gap: 1rem;
  }
}
@media (max-width: 768px) {
  .a-listing {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .a-listing {
    align-items: start;
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/**
* ----------------------
* Un.titled
* Atoms - Citations
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.a-cite {
  position: relative;
}
.a-cite a {
  border-bottom: none;
}
.a-cite a::after {
  display: none;
  visibility: hidden;
}
.a-cite__number {
  font-size: var(--fontSmall);
  vertical-align: top;
  transition: color var(--transition);
}
.a-cite__description {
  display: none;
  visibility: hidden;
  position: absolute;
  padding: 0.5rem;
  background-color: var(--c-white);
  top: 100%;
  left: 0;
  max-width: 230px;
  font-size: var(--fontSmall);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.a-cite:focus .a-cite__number, .a-cite:hover .a-cite__number {
  color: var(--c-red);
}
.a-cite:focus .a-cite__description, .a-cite:hover .a-cite__description {
  display: block;
  visibility: visible;
}

/**
* ----------------------
* Un.titled
* Atoms - Back to top
* ----------------------
*/
/**
* Styling
*/
.a-back-top {
  border-bottom: none;
  position: sticky;
  left: calc(100% - 6rem);
  bottom: 3rem;
  margin-bottom: -30px;
  height: 60px;
  width: 60px;
  background-color: var(--c-white);
  border-radius: 50%;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  visibility: hidden;
}
.a-back-top::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 1199px) {
  .a-back-top {
    left: calc(100% - 4rem);
    bottom: 1rem;
  }
}
@media (max-width: 767px) {
  .a-back-top {
    height: 40px;
    width: 40px;
    margin-bottom: -20px;
  }
}
.a-back-top[data-visible=true] {
  display: flex;
  -webkit-animation: fadeIn 0.2s ease-in-out forwards;
          animation: fadeIn 0.2s ease-in-out forwards;
}
.a-back-top[data-visible=false] {
  display: flex;
  visibility: visible;
  -webkit-animation: fadeOut 0.2s ease-in-out forwards;
          animation: fadeOut 0.2s ease-in-out forwards;
}
.a-back-top:hover {
  transform: translateY(-10px);
}
@media (max-width: 767px) {
  .a-back-top:hover {
    transform: translateY(-5px);
  }
}
.a-back-top svg {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  max-height: 30px;
}
@media (max-width: 767px) {
  .a-back-top svg {
    max-height: 20px;
  }
}

/**
 * Molecules
 */
/**
 * ----------------------
 * Un.titled
 * Molecules - Emergency Message
 * ----------------------
 */
/**
 * Config
 **/
@-webkit-keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  80% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  80% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/**
 * Styling
 **/
.m-emmsg {
  width: 100%;
  background-color: var(--c-primary);
  color: #fff;
  padding: 0.25rem 1rem;
  display: none;
  visibility: hidden;
  text-align: center;
  min-height: 52px;
  position: relative;
  align-items: center;
}
@media (max-width: 767px) {
  .m-emmsg {
    text-align: left;
    padding: 1rem 0;
  }
}
@media (max-width: 575px) {
  .m-emmsg {
    padding: 1rem 0;
  }
}
.m-emmsg[data-state=visible] {
  display: flex;
  visibility: visible;
}
.m-emmsg h3 {
  margin-bottom: 0.5rem;
  width: 85%;
}
.m-emmsg p {
  width: 85%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 767px) {
  .m-emmsg p {
    margin-left: 0;
  }
}
@media (max-width: 359px) {
  .m-emmsg p {
    max-width: 80%;
  }
}
.m-emmsg p a:hover, .m-emmsg p a:focus {
  text-decoration: underline;
}
.m-emmsg button {
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  position: absolute;
  top: 0.25rem;
  right: 2rem;
  height: 42px;
  width: 42px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all var(--transition);
  background-color: var(--c-white);
  border-radius: 50%;
}
@media (max-width: 767px) {
  .m-emmsg button {
    right: 1rem;
  }
}
@media (max-width: 575px) {
  .m-emmsg button {
    right: 15px;
  }
}
.m-emmsg button svg {
  width: 15px;
}
.m-emmsg button path {
  stroke: var(--c-primary);
  transition: stroke var(--transition);
}
.m-emmsg button:hover {
  background-color: var(--c-primary);
}
.m-emmsg button:hover path {
  stroke: var(--c-white);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Entities
 * ----------------------
 */
article > .m-entity:last-of-type.bgColour {
  margin-bottom: -30px;
}
@media (max-width: 767px) {
  article > .m-entity:last-of-type.bgColour {
    margin-bottom: -20px;
  }
}

.m-entity {
  margin: 0 0 clamp(2rem, 5vw, 5rem);
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  /**
   * ----------------------
   * Un.titled
   * Molecules - Intro
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quotes
   * ----------------------
   */
  /**
   * Config
   */
  /**
   * Styles
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Accordions
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Gallery
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image & Text
   * ----------------------
   */
  /**
  * ----------------------
  * Un.titled
  * Molecules - Downloads
  * ----------------------
  */
  /**
  * Config
  */
  /**
  * Styling
  */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Embed
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Tables
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Flexible signpost
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - signposts
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Linked logos
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Video
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - YMAL
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Big CTA
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - News tags
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Quick links
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Special Options
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - People profiles
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Mini listing
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Featured content
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Citations
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image Zoom
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Forms
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Search results
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Divider
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Buy Now Button
   * ----------------------
   */
}
.m-entity img:not(.restricted-height) {
  width: 100%;
  height: auto;
  display: block;
}
.m-entity--top {
  margin-top: clamp(2rem, 5vw, 5rem);
}
.m-entity__body ul, .m-entity__text ul, .m-entity__accordion ul {
  margin-left: var(--gutter);
}
.m-entity__body ul li, .m-entity__text ul li, .m-entity__accordion ul li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
}
.m-entity__body ul li::before, .m-entity__text ul li::before, .m-entity__accordion ul li::before {
  content: "";
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 12px;
  background-color: currentColor;
}
.m-entity__intro {
  align-items: flex-start;
}
.m-entity__intro-block_image {
  align-items: center;
}
.m-entity__image {
  position: relative;
  padding-bottom: var(--captionHeight);
}
.m-entity__image figure {
  padding: 0 var(--gutter);
}
.m-entity__image figcaption {
  width: var(--captionWidth);
  position: absolute;
  left: var(--captionOffset);
  padding-right: var(--captionPadding);
  max-width: calc(100% - 30px);
}
.m-entity__image a {
  border-bottom: none;
}
.m-entity__image a::after {
  display: none;
  visibility: hidden;
}
.m-entity__quote {
  --starSize: 17px;
}
.m-entity__quote .short-quote {
  --starSize: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.m-entity__quote .short-quote blockquote {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-entity__quote blockquote {
  margin: 0 0 1rem;
}
.m-entity__quote cite {
  font-style: normal;
}
.m-entity__quote .rating {
  display: inline-flex;
  margin-right: 0.5rem;
  margin-bottom: 1rem;
}
.short-quote .m-entity__quote .rating {
  margin-bottom: 2rem;
}
.m-entity__quote .rating__star {
  width: var(--starSize);
  height: var(--starSize);
  margin-right: 5px;
  stroke: var(--c-primary);
}
.m-entity__quote .rating__star:last-child {
  margin-right: 0;
}
.m-entity__quote .rating--1 .rating__star:nth-child(-n+1) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--2 .rating__star:nth-child(-n+2) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--3 .rating__star:nth-child(-n+3) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--4 .rating__star:nth-child(-n+4) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__quote .rating--5 .rating__star:nth-child(-n+5) path {
  fill: var(--c-primary);
  stroke: var(--c-primary);
}
.m-entity__accordion .accordion {
  border-bottom: 1px solid var(--c-primary);
}
.m-entity__accordion .accordion__header {
  border-bottom: none;
  display: flex;
  width: 100%;
  border: 0;
  background-color: transparent;
  -moz-text-align-last: left;
       text-align-last: left;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  border-top: 1px solid var(--c-primary);
  transition: all var(--transition);
  text-align: left;
}
.m-entity__accordion .accordion__header::after {
  display: none;
  visibility: hidden;
}
.m-entity__accordion .accordion__header::after {
  content: "";
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("../img/plus.svg");
  height: 12px;
  width: 12px;
  min-width: 12px;
  transition: all var(--transition);
  visibility: visible;
  display: block;
  margin-left: 10px;
}
.m-entity__accordion .accordion__header:focus, .m-entity__accordion .accordion__header[aria-expanded=true] {
  outline: none;
  background-color: rgba(0, 0, 0, 0.05);
}
.m-entity__accordion .accordion__header:focus::after, .m-entity__accordion .accordion__header[aria-expanded=true]::after {
  transform: translateX(-10px);
}
.m-entity__accordion .accordion__header[aria-expanded=true]::after {
  transform: translateX(-10px);
  background-image: url("../img/close-accordion.svg");
}
.m-entity__accordion .accordion__title {
  margin: 0;
}
.m-entity__accordion .js-accordion__panel {
  display: none;
}
.m-entity__accordion .accordion__panel {
  display: block;
  overflow: hidden;
  opacity: 1;
  transition: visibility 0s ease, max-height 0.2s ease, opacity 0.2s ease;
  max-height: 1000em;
  visibility: visible;
  transition-delay: 0s;
}
.m-entity__accordion .accordion__panel[aria-hidden=true] {
  display: block;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transition-delay: 0.2s, 0s, 0s;
}
.m-entity__accordion .accordion__panel p:first-child {
  margin-top: 1rem;
}
.m-entity__accordion .accordion__panel p:last-child {
  margin-bottom: 1rem;
}
.m-entity__gallery {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 767px) {
  .m-entity__gallery {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 499px) {
  .m-entity__gallery {
    --autoGridMin: 100px;
  }
}
.m-entity__gallery a {
  border-bottom: none;
  display: flex;
  align-items: flex-end;
}
.m-entity__gallery a::after {
  display: none;
  visibility: hidden;
}
.m-entity__gallery .a-auto-grid {
  align-items: end;
}
.m-entity__gallery figure {
  width: 100%;
}
.m-entity__gallery figcaption {
  font-size: var(--fontSmall);
}
.m-entity .m-imagetext {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
.m-entity .m-imagetext--reverse {
  grid-template-columns: 2fr 1fr;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext--reverse {
    grid-template-columns: 1fr;
  }
}
.m-entity .m-imagetext--reverse .m-imagetext__copy {
  order: -1;
}
@media (max-width: 575px) {
  .m-entity .m-imagetext--reverse .m-imagetext__copy {
    order: 1;
  }
}
.m-entity__downloads a {
  margin-bottom: 1rem;
}
.m-entity__downloads a:last-of-type {
  margin-bottom: 0;
}
.m-entity__embed iframe {
  width: 100%;
}
.m-entity__table table {
  width: 100%;
  -moz-text-align-last: left;
       text-align-last: left;
  text-align: left;
  border-spacing: 2px;
  border-collapse: unset;
}
.m-entity__table table th {
  background-color: #0e3034;
  color: #fff;
  font-weight: bold;
}
.m-entity__table table td {
  background-color: #a4dbe8;
  transition: 0.2s var(--easing);
}
.m-entity__table table td,
.m-entity__table table th {
  padding: 0.5rem;
}
.m-entity__table table tr:hover td {
  background-color: #fff;
  cursor: crosshair;
}
.m-entity__signpost:last-of-type {
  margin-bottom: 0;
}
.m-entity__signpost .signpost {
  max-width: var(--containerWidth);
  margin: 2rem auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  align-items: start;
}
@media (max-width: 1199px) {
  .m-entity__signpost .signpost {
    gap: 2rem;
    margin-left: 1rem auto;
  }
}
@media (max-width: 767px) {
  .m-entity__signpost .signpost {
    grid-template-columns: 1fr;
    margin: 0;
  }
}
.m-entity__signpost .signpost--reverse .signpost__image {
  order: -1;
}
.m-entity__signpost .signpost__image {
  border-bottom: none;
}
.m-entity__signpost .signpost__image::after {
  display: none;
  visibility: hidden;
}
.m-entity__signpost .signpost__image img {
  transition: opacity var(--transition);
}
.m-entity__signpost .signpost__image:hover {
  opacity: 1;
}
.m-entity__signpost .signpost__image:hover img {
  opacity: 0.85;
}
.m-entity__signpost .signpost__image figure {
  position: relative;
}
.m-entity__signpost .signpost__content {
  display: grid;
  gap: 1.5rem;
  justify-items: start;
}
.m-entity__signpost .signpost__content h2,
.m-entity__signpost .signpost__content .a-links {
  margin: 0;
}
.m-entity__signpost .signpost__content p {
  max-width: var(--lineLength);
}
.m-entity__signposts {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
.m-entity__signposts p:last-of-type {
  margin-bottom: 1rem;
}
.m-entity__signposts .a-auto-grid {
  margin-top: 2rem;
}
@media (max-width: 768px) {
  .m-entity__signposts {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 575px) {
  .m-entity__signposts {
    --autoGridMin: 48%;
  }
}
.m-entity__externalsignposts .o-teaser__thumb {
  overflow: hidden;
}
.m-entity__linkedlogos {
  --autoGridMin: 100px;
  --autoGridMax: 30%;
  --autoGridGap: 2rem;
}
@media (max-width: 575px) {
  .m-entity__linkedlogos {
    --autoGridMax: 1fr;
  }
}
.m-entity__linkedlogos a {
  border-bottom: none;
}
.m-entity__linkedlogos a::after {
  display: none;
  visibility: hidden;
}
.m-entity__linkedlogos a:hover {
  opacity: 0.7;
}
.m-entity__linkedlogos .a-auto-grid {
  align-items: end;
  justify-content: start;
}
.m-entity__linkedlogos .single img {
  width: auto;
  height: auto;
  max-width: 100%;
}
.m-entity__video {
  --autoGridGap: 2rem;
}
@media (min-width: 361px) {
  .m-entity__video {
    --autoGridMin: 230px;
  }
}
.m-entity__ymal {
  background-color: var(--c-white);
}
.m-entity__ymal:last-of-type {
  margin-bottom: 0;
}
.m-entity__bigcta {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-entity__bigcta .a-links {
  justify-content: center;
}
.m-entity__bigcta .a-links a {
  margin: 0 0.5rem;
}
.m-entity__bigcta .h2 p {
  line-height: 1.5;
}
.m-entity__bigcta .big-btn {
  border-bottom: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 3rem 1.5rem;
  overflow: hidden;
  position: relative;
  z-index: 1;
  text-decoration: none;
}
.m-entity__bigcta .big-btn::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 767px) {
  .m-entity__bigcta .big-btn {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
.m-entity__bigcta .big-btn svg {
  margin-top: 1rem;
  width: 50px;
}
.m-entity__bigcta .big-btn::after {
  content: "";
  background-color: var(--c-pink);
  position: absolute;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  transform: translateY(35%);
  visibility: visible;
  display: block;
  z-index: -1;
  transition: transform var(--transition);
}
@media (max-width: 767px) {
  .m-entity__bigcta .big-btn::after {
    transform: translateY(27%);
  }
}
.m-entity__bigcta .big-btn:hover::after {
  transform: translateY(0);
}
.m-entity__readmore .terms {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.m-entity__readmore .terms a {
  margin-right: 1rem;
}
.m-entity__quicklinks {
  margin-top: -5rem;
  position: relative;
}
@media (max-width: 1199px) {
  .m-entity__quicklinks {
    margin-top: -3rem;
  }
}
@media (max-width: 991px) {
  .m-entity__quicklinks {
    margin-top: -2rem;
  }
}
.m-entity__quicklinks .a-cols {
  background-color: var(--c-white);
  padding-top: 1.25rem;
  padding-bottom: 1.8rem;
}
.m-entity__quicklinks .a-links {
  margin: 0;
  justify-content: center;
}
.m-entity__special-options hr {
  margin-bottom: 3rem;
}
@media (max-width: 767px) {
  .m-entity__special-options hr {
    margin-bottom: 1.5rem;
  }
}
.m-entity__special-options .a-auto-grid {
  --autoGridMin: 23%;
  --autoGridMax: 1fr;
  --autoGridGap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 767px) {
  .m-entity__special-options .a-auto-grid {
    --autoGridMin: 200px;
    --autoGridMax: 1fr;
    margin-top: 1.5rem;
  }
}
@media (max-width: 575px) {
  .m-entity__special-options .a-auto-grid {
    --autoGridMin: 150px;
  }
}
.m-entity__peopleprofiles .title {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.m-entity__peopleprofiles .title--border {
  border-bottom: 1px solid var(--c-primary);
}
.m-entity__peopleprofiles .title a {
  border-bottom-color: var(--c-teal);
}
.m-entity__peopleprofiles .title a:hover::after {
  background-color: var(--c-teal);
}
.m-entity__listing .whats-on {
  min-height: 60vh;
  width: 100%;
}
.m-entity__minilisting {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 991px) {
  .m-entity__minilisting {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 768px) {
  .m-entity__minilisting {
    --autoGridMin: 48%;
  }
}
.m-entity__minilisting .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__minilisting .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__minilisting .listing-header a {
  align-self: end;
  justify-self: end;
}
.m-entity__featuredcontent {
  background-color: var(--c-primary);
}
.m-entity__featuredcontent .featured {
  width: 100%;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .featured {
    padding: 1rem 0;
  }
}
.m-entity__featuredcontent .featured--multi {
  padding: 2rem 0;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .featured--multi {
    padding: 1rem 0;
  }
}
.m-entity__featuredcontent .a-auto-grid {
  --autoGridGap: 2rem;
  --autoGridMin: 225px;
}
@media (max-width: 767px) {
  .m-entity__featuredcontent .a-auto-grid {
    --autoGridMin: 1fr;
  }
}
.m-entity__citations cite {
  font-style: normal;
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 0.5rem;
  align-items: start;
  margin-bottom: 2rem;
}
@media (max-width: 575px) {
  .m-entity__citations cite {
    margin-bottom: 1rem;
  }
}
.m-entity__citations cite a {
  border-bottom: none;
}
.m-entity__citations cite a::after {
  display: none;
  visibility: hidden;
}
.m-entity__citations cite a:hover {
  color: var(--c-red);
}
.m-entity__citations cite p a {
  text-decoration: underline;
}
.m-entity__citations cite p a:hover {
  text-decoration: none;
}
.m-entity__imagezoom .deepzoomContainer {
  background-color: var(--c-white);
}
.m-entity__imagezoom .navigator {
  background-color: rgba(255, 255, 255, 0.8) !important;
  border-color: var(--c-primary) !important;
  margin: 0 10px 0 0 !important;
}
.m-entity__form .gform_wrapper ul li.gfield {
  margin-top: 1.5rem;
}
.m-entity__form .gform_wrapper select,
.m-entity__form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
  padding: 0.75rem 1rem;
}
@media (max-width: 767px) {
  .m-entity__form .gform_wrapper select,
.m-entity__form .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]) {
    padding: 0.5rem 0.75rem;
  }
}
.m-entity__form .gform_wrapper .field_sublabel_above .ginput_complex.ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_above div[class*=gfield_date_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_above div[class*=gfield_time_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below div[class*=gfield_date_].ginput_container label,
.m-entity__form .gform_wrapper .field_sublabel_below div[class*=gfield_time_].ginput_container label {
  font-size: var(--fontSmall);
  letter-spacing: 0;
  margin-top: 0.25rem;
}
.m-entity__form .gform_wrapper ul.gfield_checkbox li input[type=checkbox],
.m-entity__form .gform_wrapper ul.gfield_radio li input[type=radio] {
  height: 25px !important;
  width: 25px !important;
  padding: 0 !important;
  margin-right: 0.25rem;
}
.m-entity__form .gform_wrapper .gform_button {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  border-bottom: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.m-entity__form .gform_wrapper .gform_button::after {
  display: none;
  visibility: hidden;
}
.m-entity__form .gform_wrapper .gform_button svg {
  margin-left: 10px;
  transition: transform var(--transition);
  width: 20px;
}
.m-entity__form .gform_wrapper .gform_button path {
  fill: currentColor;
}
.m-entity__form .gform_wrapper .gform_button:hover {
  text-decoration: none;
  color: var(--btnColour);
  --btnColour: var(--c-primary);
  --btnBg: var(--c-white);
}
.m-entity__form .gform_wrapper .gform_button:hover svg {
  transform: translateX(5px);
}
.m-entity__search-results .a-listing {
  align-items: start;
}
.m-entity__buynowbutton .product-ids {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
}
@media (max-width: 767px) {
  .m-entity__buynowbutton .product-ids {
    grid-template-columns: 1fr;
  }
}
.m-entity__buynowbutton .product-ids--item {
  background: #fff;
  padding: 15px;
  display: grid;
  align-items: flex-end;
}
.m-entity__buynowbutton .product-ids--item:empty {
  display: none;
}
.m-entity__buynowbutton .product-ids--item h2 {
  margin-top: 10px;
}
.m-entity__buynowbutton .product-ids--item .shopify-buy__product__variant-selectors {
  display: none;
}
.m-entity__buynowbutton .product-ids--item .shopify-buy__option-select-wrapper svg {
  display: none;
}
.m-entity__buynowbutton .see-collection {
  text-align: center;
  margin-top: 10px;
}
.m-entity__buynowbutton .see-collection a {
  --btnBg: var(--c-primary);
  --btnColour: var(--c-white);
  border-bottom: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--btnBg);
  color: var(--btnColour);
  border: 1px solid var(--btnBg);
  transition: all var(--transition);
  text-decoration: none;
}
.m-entity__buynowbutton .see-collection a::after {
  display: none;
  visibility: hidden;
}
.m-entity__buynowbutton .see-collection a svg {
  margin-left: 10px;
  transition: transform var(--transition);
  width: 20px;
}
.m-entity__buynowbutton .see-collection a path {
  fill: currentColor;
}
.m-entity__buynowbutton .see-collection a:hover {
  text-decoration: none;
  color: var(--btnColour);
}
.m-entity__buynowbutton .see-collection a:hover svg {
  transform: translateX(5px);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Forms
 * ----------------------
 */
input,
input[type=text],
input[type=password],
input[type=email],
input[type=submit],
textarea,
select {
  font-family: var(--fontBody);
  color: var(--c-primary);
  resize: none;
  padding: 0.75rem 1rem;
  -webkit-border-radius: 0px;
  border-radius: 0;
  outline: 0;
  border: 1px solid var(--c-primary);
  transition: all var(--transition);
  background-color: var(--c-white);
}
input:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=submit]:focus,
textarea:focus,
select:focus {
  border: 1px solid var(--c-secondary);
}

input[type=search],
input[type=text],
input[type=submit] {
  -webkit-appearance: none;
}

.form-actions input,
input[type=submit] {
  cursor: pointer;
}

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Main nav
 * ----------------------
 */
.m-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5vw;
}
@media (max-width: 991px) {
  .m-nav {
    grid-template-columns: 1fr;
    gap: 0;
    padding-top: 2rem;
  }
}
.m-nav__cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}
@media (max-width: 991px) {
  .m-nav__cols {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 5vw;
  }
}
@media (max-width: 767px) {
  .m-nav__cols {
    width: 100%;
    max-width: 300px;
    justify-self: center;
  }
  .m-nav__cols:first-of-type {
    padding-bottom: 3rem;
  }
  .m-nav__cols:last-of-type {
    margin-top: 1rem;
  }
}
@media (max-width: 359px) {
  .m-nav__cols {
    padding: 0 5vw;
  }
}
.m-nav__cols .column {
  display: grid;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 991px) {
  .m-nav__cols .column {
    gap: 0;
  }
}
@media (max-width: 767px) {
  .m-nav__cols .column {
    margin: 0 auto;
    width: 100%;
  }
}
@media (max-width: 991px) {
  .m-nav__info .m-nav__social,
.m-nav__info h3,
.m-nav__info p {
    display: none;
    visibility: hidden;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .m-nav__info {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 991px) {
  .m-nav__menu {
    order: -1;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
@media (max-width: 767px) {
  .m-nav__menu {
    grid-template-columns: 1fr;
    gap: 0;
    justify-content: center;
  }
}
@media (max-width: 767px) {
  .m-nav__menu .primary {
    order: 2;
  }
}
.m-nav__menu .primary a {
  color: var(--c-grey);
}
.m-nav__menu .primary a:hover {
  color: var(--c-secondary);
}
.m-nav__menu a:hover {
  color: var(--c-secondary);
}
.m-nav h3 {
  font-family: var(--fontBody);
}
.m-nav a:not(.a-btn) {
  border-bottom: none;
  text-decoration: none;
}
.m-nav a:not(.a-btn)::after {
  display: none;
  visibility: hidden;
}
.m-nav .a-btn {
  margin-top: 1.5rem;
  max-width: 300px;
}
@media (max-width: 991px) {
  .m-nav .a-btn {
    max-width: 35vw;
  }
}
@media (max-width: 767px) {
  .m-nav .a-btn {
    max-width: 250px;
  }
}
@media (max-width: 575px) {
  .m-nav .a-btn {
    margin-top: 1rem;
  }
}
.m-nav nav {
  font-family: var(--fontTitle);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  line-height: 1;
  display: flex;
  flex-direction: column;
}
@media (max-width: 1199px) {
  .m-nav nav {
    font-size: clamp(1.5rem, 4vw, 2rem);
  }
}
@media (max-width: 767px) {
  .m-nav nav {
    width: 100%;
    margin: 0 auto;
  }
}
.m-nav nav a {
  margin-bottom: 1rem;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Banner
 * ----------------------
 */
.m-no-banner {
  width: 100%;
  padding: 4rem 0 5rem;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
@media (max-width: 767px) {
  .m-no-banner {
    padding: 3rem 0 4rem;
  }
}
.m-no-banner--news {
  padding-bottom: 0;
}
.m-no-banner--page h1 {
  margin-bottom: 0;
}
.m-no-banner p {
  font-size: 110%;
}
.m-no-banner .pre-title {
  margin-bottom: 0.5rem;
}

.m-banner {
  position: relative;
  margin: 0 0 clamp(1.5rem, 4vw, 3rem);
  width: 100%;
}
.m-banner__image {
  position: relative;
  width: 100%;
}
.m-banner__image picture {
  width: 100%;
}
.m-banner--default img, .m-banner--alt img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}
.m-banner--default {
  height: clamp(20vh, 60vw, 60vh);
}
.m-banner--alt {
  height: auto;
}
@media (max-width: 767px) {
  .m-banner--alt .a-cols {
    padding: 0;
  }
}
.m-banner--alt .m-banner__inner {
  display: grid;
  grid-template-columns: 1fr 2fr;
  align-items: stretch;
}
@media (max-width: 767px) {
  .m-banner--alt .m-banner__inner {
    grid-template-columns: 1fr;
  }
}
.m-banner--alt .m-banner__copy {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 2rem;
  text-align: center;
}
@media (max-width: 767px) {
  .m-banner--alt .m-banner__copy {
    order: 1;
    padding: 1rem 1rem 1.5rem;
  }
}
.m-banner--alt h1 {
  font-weight: bold;
  font-size: clamp(2rem, 5vw, 4.75rem);
  line-height: 1.1;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  margin-bottom: 1.5rem;
}
.m-banner--alt .h4 {
  font-size: 1rem;
  margin-bottom: 0;
}
.m-banner--alt .a-cols {
  padding: 0;
}
.m-banner--collection {
  height: var(--variableHeightLimit);
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--c-white);
  position: relative;
  margin-bottom: 0;
}
.m-banner--collection a,
.m-banner--collection picture {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.m-banner--collection a img,
.m-banner--collection picture img {
  height: auto;
  width: auto;
  max-height: 100%;
  max-width: 100%;
  display: block;
}
.m-banner--collection__icon {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
}
.m-banner--collection__icon svg {
  width: 40px;
}
@media (max-width: 575px) {
  .m-banner--collection__icon svg {
    width: 25px;
  }
}
.m-banner--listing {
  margin: clamp(1.5rem, 5vw, 2rem) 0 clamp(1.5rem, 5vw, 3rem);
}
.m-banner--listing h1 {
  margin: 0;
}
.m-banner a {
  border-bottom: none;
}
.m-banner a::after {
  display: none;
  visibility: hidden;
}
.m-banner .pre-title {
  margin-bottom: 0.5rem;
}
.m-banner .a-image-credit {
  z-index: 5;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Social links
 * ----------------------
 */
/**
 * Styling
 */
.m-social-links {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}
@media (max-width: 359px) {
  .m-social-links {
    grid-template-columns: repeat(4, 1fr);
  }
}
.m-nav__social .m-social-links {
  grid-template-columns: repeat(6, 1fr);
}
.m-social-links a {
  border-bottom: none;
  display: block;
  padding: 0.5rem;
  height: 35px;
  width: 35px;
}
.m-social-links a::after {
  display: none;
  visibility: hidden;
}
.m-social-links a span {
  display: none;
  visibility: hidden;
}
.m-social-links a svg {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
.m-social-links a path {
  transition: 0.2s var(--transition);
  fill: var(--c-white);
}
.m-social-links a:hover path {
  fill: var(--c-pink);
}

/**
* ----------------------
* Un.titled
* Molecules - Subnav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
ul.m-subnav {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.m-subnav li {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.m-subnav ul {
  margin-top: 0.25rem;
  margin-bottom: 0;
  margin-left: 1rem;
}
ul.m-subnav a {
  border-bottom: none;
  text-decoration: none;
  display: flex;
  align-items: center;
  min-height: 20px;
}
ul.m-subnav a::after {
  display: none;
  visibility: hidden;
}
ul.m-subnav a span {
  text-decoration: none;
}
ul.m-subnav a[aria-current], ul.m-subnav a:hover {
  color: var(--c-red);
}
ul.m-subnav a[aria-current] span, ul.m-subnav a:hover span {
  text-decoration: none;
}
ul.m-subnav > li > a {
  font-family: var(--fontBold);
  padding-bottom: 0.25rem;
  display: inline-block;
}

/**
* ----------------------
* Un.titled
* Molecules - Intro
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-intro {
  width: 100%;
  max-width: var(--containerWidth);
  display: grid;
  justify-content: end;
  grid-template-columns: minmax(0, var(--cols-6)) minmax(0, var(--cols-3));
  margin-top: 2rem;
}
.m-intro--alt {
  grid-template-columns: minmax(0, var(--cols-3)) minmax(0, var(--cols-6));
  justify-content: start;
}
.m-intro--collection {
  margin-top: 1rem;
}
.m-intro--collection .a-cols--sm {
  padding-top: clamp(1.5rem, 4vw, 3rem);
}
.m-intro--collection .a-cols--sm > .a-cols--sm {
  padding: 0;
}
@media (max-width: 991px) {
  .m-intro {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .m-intro .a-cols--xs {
    max-width: var(--cols-6);
  }
}
@media (max-width: 767px) {
  .m-intro {
    margin-top: 1rem;
  }
}

/**
* ----------------------
* Un.titled
* Molecules - Anchor nav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-anchor-nav__links {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.m-anchor-nav__links a {
  border-bottom: none;
  margin-bottom: 0.25rem;
}
.m-anchor-nav__links a::after {
  display: none;
  visibility: hidden;
}
.m-anchor-nav__links a:hover {
  text-decoration: underline;
}

span[data-anchor] {
  margin-top: -50px;
  margin-bottom: 50px;
}

/**
* ----------------------
* Un.titled
* Molecules - Course details
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-course-details {
  --autoGridMin: 15%;
  --autoGridGap: 2rem;
  margin: 3rem 0 2rem;
}
@media (max-width: 991px) {
  .m-course-details {
    margin: 2rem 0 1rem;
  }
}
@media (max-width: 767px) {
  .m-course-details {
    --autoGridMin: 150px;
    --autoGridGap: 1rem;
    margin-top: 1rem;
  }
}
@media (max-width: 359px) {
  .m-course-details {
    --autoGridMin: 1fr;
  }
}
.m-course-details__detail {
  border-top: 1px solid var(--c-primary);
  padding-top: 0.5rem;
  font-size: 1rem;
}
.m-course-details__detail h3 {
  margin-bottom: 0;
}

/**
* ----------------------
* Un.titled
* Molecules - People sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-people-sidebar {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.m-people-sidebar__links {
  width: 100%;
}
@media (max-width: 575px) {
  .m-people-sidebar__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.m-people-sidebar img {
  margin-top: var(--photoOffset);
  margin-bottom: 2rem;
  border-radius: 50%;
  max-width: 330px;
  width: 100%;
  display: block;
}
@media (max-width: 1599px) {
  .m-people-sidebar img {
    margin-top: 0;
  }
}
.m-people-sidebar a {
  border-bottom: none;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 20px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--c-primary);
  padding: 0.5rem 0 0.5rem 32px;
  width: 100%;
  background-position: left center;
  background-image: url("../img/link.svg");
}
.m-people-sidebar a::after {
  display: none;
  visibility: hidden;
}
@media (max-width: 575px) {
  .m-people-sidebar a {
    border-top: 0;
    padding: 0.75rem;
    width: auto;
    margin: 0.25rem;
  }
  .m-people-sidebar a span {
    display: none;
  }
}
.m-people-sidebar a svg {
  justify-self: center;
}
.m-people-sidebar a:hover span {
  text-decoration: underline;
}
@media (max-width: 575px) {
  .m-people-sidebar a:hover {
    opacity: 0.7;
  }
}
.m-people-sidebar a[href*=mailto] {
  background-image: url("../img/email.svg");
}
.m-people-sidebar a[href*=tel] {
  background-image: url("../img/phone.svg");
}
.m-people-sidebar a[href*=twitter] {
  background-image: url("../img/twitter.svg");
}
.m-people-sidebar a[href*=facebook] {
  background-image: url("../img/facebook.svg");
  background-size: auto 20px;
  background-position: 5px center;
}
.m-people-sidebar a[href*=linkedin] {
  background-image: url("../img/linkedin.svg");
}

/**
* ----------------------
* Un.titled
* Molecules - Homepage banner
* ----------------------
*/
/**
* Config
*/
@-webkit-keyframes bannerIn {
  0% {
    opacity: 0;
    z-index: -1;
  }
  10% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 1;
    z-index: 1;
  }
}
@keyframes bannerIn {
  0% {
    opacity: 0;
    z-index: -1;
  }
  10% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 1;
    z-index: 1;
  }
}
@-webkit-keyframes bannerOut {
  0% {
    opacity: 1;
    z-index: 1;
  }
  90% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 0;
    z-index: -1;
  }
}
@keyframes bannerOut {
  0% {
    opacity: 1;
    z-index: 1;
  }
  90% {
    opacity: 0;
    z-index: 1;
  }
  100% {
    opacity: 0;
    z-index: -1;
  }
}
/**
* Styling
*/
.m-homepage-banner {
  position: relative;
  min-height: 60vh;
  width: 100%;
}
.m-homepage-banner figure.default-image {
  position: relative;
  height: 0;
  width: 100%;
  padding-top: 56.25%;
}
.m-homepage-banner figure.default-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.m-homepage-banner figure a {
  border-bottom: none;
}
.m-homepage-banner figure a::after {
  display: none;
  visibility: hidden;
}
.m-homepage-banner img {
  width: 100%;
  height: auto;
}
.m-homepage-banner__block-img {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: opacity var(--transition);
  z-index: -1;
}
.m-homepage-banner__block-img[data-visible=true] {
  -webkit-animation: bannerIn 0.2s ease-in-out forwards;
          animation: bannerIn 0.2s ease-in-out forwards;
}
.m-homepage-banner__block-img[data-visible=false] {
  -webkit-animation: bannerOut 0.2s ease-in-out forwards;
          animation: bannerOut 0.2s ease-in-out forwards;
}
.m-homepage-banner__blocks {
  padding: 0 5rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
@media (max-width: 1199px) {
  .m-homepage-banner__blocks {
    padding: 0 3.5rem;
  }
}
@media (max-width: 767px) {
  .m-homepage-banner__blocks {
    grid-template-columns: 1fr;
    padding: 0;
  }
}
.m-homepage-banner__block {
  background-color: var(--c-white);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 2;
  margin-top: -14rem;
  transition: background-color var(--transition);
}
@media (max-width: 1199px) {
  .m-homepage-banner__block {
    padding: 1rem;
    margin-top: -5rem;
  }
}
@media (max-width: 767px) {
  .m-homepage-banner__block {
    margin-top: 0;
  }
}
.m-homepage-banner__block .pre-title {
  margin-bottom: 0;
}
.m-homepage-banner__block .a-links {
  justify-content: center;
}
.m-homepage-banner__block .a-links a {
  margin: 0 0.5rem;
}
.m-homepage-banner__block .a-btn {
  margin-top: 1rem;
}
.m-homepage-banner__block:hover {
  background-color: var(--c-teal);
}
.m-homepage-banner__block:hover:last-child {
  background-color: var(--c-purple);
}

/**
* ----------------------
* Un.titled
* Molecules - Event sidebar
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-event-sidebar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.m-event-sidebar .promo-copy {
  margin-bottom: 1rem;
}
.m-event-sidebar .detail {
  border-top: 1px solid var(--c-primary);
  padding-top: 0.5rem;
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.m-event-sidebar .detail--bold {
  font-family: var(--fontBold);
  flex-wrap: nowrap;
}
.m-event-sidebar .detail--copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.m-event-sidebar .detail--copy h2,
.m-event-sidebar .detail--copy h3,
.m-event-sidebar .detail--copy h4 {
  margin-bottom: 0.5rem;
}
.m-event-sidebar .detail--copy > p {
  display: flex;
  flex-direction: column;
}
.m-event-sidebar .detail svg {
  margin-right: 0.5rem;
  width: 100%;
  height: 100%;
  max-width: 15px;
}
.m-event-sidebar .detail a {
  margin-right: 5px;
}

/**
* ----------------------
* Un.titled
* Molecules - Search form
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-search-form {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 767px) {
  .m-search-form {
    overflow-y: scroll;
    padding-top: 2rem;
  }
}
@media (max-height: 599px) {
  .m-search-form {
    max-height: 70vh;
  }
}
.m-search-form__row {
  margin-bottom: 3rem;
}
@media (max-width: 575px) {
  .m-search-form__row {
    margin-bottom: 1.5rem;
  }
}
.m-search-form__row:last-child {
  margin-bottom: 0;
}
.m-search-form h3 {
  margin-bottom: 1rem;
  font-family: var(--fontBody);
  font-size: 1.2rem;
}
.m-search-form .a-links {
  margin: 0;
  justify-content: center;
}
.m-search-form .a-links--big {
  font-size: 1.5rem;
}
@media (max-width: 767px) {
  .m-search-form .a-links--big {
    font-size: 1.25rem;
  }
}
@media (max-width: 359px) {
  .m-search-form .a-links--big {
    font-size: 1rem;
  }
}
.m-search-form a {
  border-bottom: none;
  text-decoration: none;
  border-bottom: 1px solid var(--c-white);
  margin: 0 0.5rem 0.5rem;
}
.m-search-form a::after {
  display: none;
  visibility: hidden;
}
.m-search-form a:hover {
  color: var(--c-secondary);
  border-color: var(--c-secondary);
}
.m-search-form form {
  border-bottom: 1px solid var(--c-white);
  display: grid;
  grid-template-columns: 1fr 75px;
  width: 100%;
  max-width: 1300px;
}
@media (max-width: 767px) {
  .m-search-form form {
    grid-template-columns: 1fr 50px;
  }
}
.m-search-form form input {
  background-color: transparent;
  color: var(--c-white);
  font-family: var(--fontTitle);
  font-size: 3rem;
  padding: 0.5rem 0 0.5rem 1rem;
  min-width: 0;
}
@media (max-width: 991px) {
  .m-search-form form input {
    padding: 0.5rem;
    text-align: left;
  }
}
@media (max-width: 767px) {
  .m-search-form form input {
    font-size: 1.5rem;
  }
}
.m-search-form form input:focus {
  border: 0;
}
.m-search-form form ::-webkit-input-placeholder,
.m-search-form form ::-moz-placeholder,
.m-search-form form :-ms-input-placeholder,
.m-search-form form :-moz-placeholder {
  color: #879799;
  opacity: 0.7;
}
.m-search-form form button {
  border: 0;
  background-color: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background var(--transition);
}
.m-search-form form button svg {
  width: 30px;
}
.m-search-form form button path {
  stroke: var(--c-white);
  transition: stroke var(--transition);
}
.m-search-form form button:hover {
  background-color: var(--c-white);
}
.m-search-form form button:hover path {
  stroke: var(--c-primary);
}

/**
* ----------------------
* Un.titled
* Molecules - Performances modal
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-performances {
  --modalPadding: 4rem;
  background-color: rgba(14, 48, 52, 0.9);
}
@media (max-width: 767px) {
  .m-performances {
    --modalPadding: 2rem;
  }
}
@media (max-width: 575px) {
  .m-performances {
    --modalPadding: 1rem;
  }
}
.m-performances__inner {
  background-color: var(--c-greyLight);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  max-width: var(--containerWidth);
  padding: 2rem 0;
  position: relative;
  max-height: 100vh;
}
@media (max-width: 767px) {
  .m-performances__inner h2 {
    margin-top: 3rem;
  }
}
.m-performances__performances {
  margin: 2rem 0 0;
  padding: 0 var(--modalPadding);
  overflow: hidden;
  overflow-y: scroll;
}
@media (max-width: 767px) {
  .m-performances__performances {
    margin-top: 1rem;
  }
}
.m-performances__performance {
  display: grid;
  grid-template-columns: minmax(150px, auto) 1fr minmax(200px, auto);
  gap: 2rem;
  position: relative;
  padding: 0.75rem 0;
  align-items: center;
  border-bottom: 1px solid var(--c-primary);
  transition: var(--transition);
}
@media (max-width: 767px) {
  .m-performances__performance {
    grid-template-columns: minmax(150px, auto) 1fr;
    gap: 1rem;
  }
}
@media (max-width: 575px) {
  .m-performances__performance {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}
.m-performances__performance:first-of-type {
  border-top: 1px solid var(--c-primary);
}
.m-performances__performance time {
  font-size: 1.3rem;
}
@media (max-width: 1199px) {
  .m-performances__performance time {
    font-size: 1rem;
  }
}
@media (min-width: 577px) and (max-width: 767px) {
  .m-performances__performance time:nth-child(2) {
    text-align: right;
  }
}
.m-performances__performance .a-btn {
  justify-self: end;
  margin-bottom: 0;
}
@media (min-width: 577px) and (max-width: 767px) {
  .m-performances__performance .a-btn {
    grid-column: span 2;
  }
}
.m-performances__performance::before, .m-performances__performance::after {
  content: "";
  position: absolute;
  width: var(--modalPadding);
  height: 100%;
  top: 0;
  background-color: inherit;
}
.m-performances__performance::before {
  left: calc(var(--modalPadding) * -1);
}
.m-performances__performance::after {
  right: calc(var(--modalPadding) * -1);
}
.m-performances__performance:hover {
  background-color: var(--c-yellow);
  border-color: transparent;
}

/**
* ----------------------
* Un.titled
* Molecules - Gallery
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-gallery {
  /* pswp__ui--over-close class it added when mouse is over element that should close gallery */
  /* no arrows on touch screens */
  /*
    Arrow buttons hit area
    (icon is added to :before pseudo-element)
  */
  /*

    2. Share modal/popup and links

   */
  /* increase size of share links on touch devices */
  /*

    3. Index indicator ("1 of X" counter)

   */
  /*

    4. Caption

   */
  /* Fake caption element, used to calculate height of next/prev image */
  /*

    5. Loading indicator (preloader)

    You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR

   */
  /*

    6. Additional styles

   */
  /* root element of UI */
  /* top black bar with buttons and "1 of X" indicator */
  /* pswp--has_mouse class is added only when two subsequent mousemove events occur */
  /* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
  /* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
  /*
    pswp__ui--hidden class is added when controls are hidden
    e.g. when user taps to toggle visibility of controls
  */
  /* pswp__ui--one-slide class is added when there is just one item in gallery */
}
.m-gallery .pswp__button {
  width: 44px;
  height: 44px;
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
  float: right;
  opacity: 0.75;
  transition: all var(--transition);
}
.m-gallery .pswp__button:focus,
.m-gallery .pswp__button:hover {
  opacity: 1;
}
.m-gallery .pswp__button:active {
  outline: none;
  opacity: 0.9;
}
.m-gallery .pswp__button::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.m-gallery .pswp__ui--over-close .pswp__button--close {
  opacity: 1;
}
.m-gallery .pswp__button,
.m-gallery .pswp__button--arrow--left:before,
.m-gallery .pswp__button--arrow--right:before {
  background: url("../img/default-skin.png") 0 0 no-repeat;
  background-size: 264px 88px;
  width: 44px;
  height: 44px;
}
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
  .m-gallery {
    /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
  }
  .m-gallery .pswp--svg .pswp__button,
.m-gallery .pswp--svg .pswp__button--arrow--left:before,
.m-gallery .pswp--svg .pswp__button--arrow--right:before {
    background-image: url("../img/default-skin.svg");
  }
  .m-gallery .pswp--svg .pswp__button--arrow--left,
.m-gallery .pswp--svg .pswp__button--arrow--right {
    background: none;
  }
}
.m-gallery .pswp__button--close {
  background-position: 0 -44px;
}
.m-gallery .pswp__button--share {
  background-position: -44px -44px;
}
.m-gallery .pswp__button--fs {
  display: none;
}
.m-gallery .pswp--supports-fs .pswp__button--fs {
  display: block;
}
.m-gallery .pswp--fs .pswp__button--fs {
  background-position: -44px 0;
}
.m-gallery .pswp__button--zoom {
  display: none;
  background-position: -88px 0;
}
.m-gallery .pswp--zoom-allowed .pswp__button--zoom {
  display: block;
}
.m-gallery .pswp--zoomed-in .pswp__button--zoom {
  background-position: -132px 0;
}
.m-gallery .pswp--touch .pswp__button--arrow--left,
.m-gallery .pswp--touch .pswp__button--arrow--right {
  visibility: hidden;
}
.m-gallery .pswp__button--arrow--left,
.m-gallery .pswp__button--arrow--right {
  background: none;
  top: 50%;
  margin-top: -50px;
  width: 70px;
  height: 100px;
  position: absolute;
}
.m-gallery .pswp__button--arrow--left {
  left: 0;
}
.m-gallery .pswp__button--arrow--right {
  right: 0;
}
.m-gallery .pswp__button--arrow--left:before,
.m-gallery .pswp__button--arrow--right:before {
  content: "";
  top: 35px;
  height: 30px;
  width: 32px;
  position: absolute;
}
.m-gallery .pswp__button--arrow--left:before {
  left: 6px;
  background-position: -138px -44px;
}
.m-gallery .pswp__button--arrow--right:before {
  right: 6px;
  background-position: -94px -44px;
}
.m-gallery .pswp__counter,
.m-gallery .pswp__share-modal {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.m-gallery .pswp__share-modal {
  display: block;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  padding: 10px;
  position: absolute;
  z-index: 1600;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: opacity;
}
.m-gallery .pswp__share-modal--hidden {
  display: none;
}
.m-gallery .pswp__share-tooltip {
  z-index: 1620;
  position: absolute;
  background: var(--c-white);
  top: 56px;
  border-radius: 2px;
  display: block;
  width: auto;
  right: 44px;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  -webkit-transform: translateY(6px);
  -ms-transform: translateY(6px);
  transform: translateY(6px);
  -webkit-transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}
.m-gallery .pswp__share-tooltip a {
  display: block;
  padding: 8px 12px;
  color: var(--c-primary);
  text-decoration: none;
  font-size: 14px;
  line-height: 18px;
}
.m-gallery .pswp__share-tooltip a:hover {
  text-decoration: none;
  color: var(--c-primary);
}
.m-gallery .pswp__share-tooltip a:first-child {
  /* round corners on the first/last list item */
  border-radius: 2px 2px 0 0;
}
.m-gallery .pswp__share-tooltip a:last-child {
  border-radius: 0 0 2px 2px;
}
.m-gallery .pswp__share-modal--fade-in {
  opacity: 1;
}
.m-gallery .pswp__share-modal--fade-in .pswp__share-tooltip {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
}
.m-gallery .pswp--touch .pswp__share-tooltip a {
  padding: 16px 12px;
}
.m-gallery a.pswp__share--facebook:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: -12px;
  right: 15px;
  border: 6px solid transparent;
  border-bottom-color: var(--c-white);
  -webkit-pointer-events: none;
  -moz-pointer-events: none;
  pointer-events: none;
}
.m-gallery a.pswp__share--facebook:hover {
  background: #3e5c9a;
  color: var(--c-white);
}
.m-gallery a.pswp__share--facebook:hover:before {
  border-bottom-color: #3e5c9a;
}
.m-gallery a.pswp__share--twitter:hover {
  background: #55acee;
  color: var(--c-white);
}
.m-gallery a.pswp__share--pinterest:hover {
  background: #ccc;
  color: #ce272d;
}
.m-gallery a.pswp__share--download:hover {
  background: #ddd;
}
.m-gallery .pswp__counter {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 13px;
  line-height: 44px;
  color: var(--c-white);
  opacity: 0.75;
  padding: 0 10px;
}
.m-gallery .pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px;
}
.m-gallery .pswp__caption small {
  font-size: 11px;
  color: #bbb;
}
.m-gallery .pswp__caption__center {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
  padding: 0.5rem;
  color: var(--c-primary);
}
.m-gallery .pswp__caption--empty {
  display: none;
}
.m-gallery .pswp__caption--fake {
  visibility: hidden;
}
.m-gallery .pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr;
}
.m-gallery .pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px;
}
.m-gallery .pswp__preloader--active {
  opacity: 1;
}
.m-gallery .pswp__preloader--active .pswp__preloader__icn {
  /* We use .gif in browsers that don't support CSS animation */
  background: url(../img/preloader.gif) 0 0 no-repeat;
}
.m-gallery .pswp--css_animation .pswp__preloader--active {
  opacity: 1;
}
.m-gallery .pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
  -webkit-animation: clockwise 500ms linear infinite;
  animation: clockwise 500ms linear infinite;
}
.m-gallery .pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
}
.m-gallery .pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0;
}
.m-gallery .pswp--css_animation .pswp__preloader__cut {
  /* 
      The idea of animating inner circle is based on Polymer ("material") loading indicator 
       by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
    */
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden;
}
.m-gallery .pswp--css_animation .pswp__preloader__donut {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid var(--c-white);
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .m-gallery .pswp__preloader {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
    float: right;
  }
}
@-webkit-keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
@keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
.m-gallery .pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550;
}
.m-gallery .pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  width: 100%;
}
.m-gallery .pswp__caption,
.m-gallery .pswp__top-bar,
.m-gallery .pswp--has_mouse .pswp__button--arrow--left,
.m-gallery .pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: opacity;
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
}
.m-gallery .pswp--has_mouse .pswp__button--arrow--left,
.m-gallery .pswp--has_mouse .pswp__button--arrow--right {
  visibility: visible;
}
.m-gallery .pswp__top-bar,
.m-gallery .pswp__caption {
  background-color: rgba(0, 0, 0, 0.5);
}
.m-gallery .pswp__ui--fit .pswp__top-bar,
.m-gallery .pswp__ui--fit .pswp__caption {
  background-color: rgba(255, 255, 255, 0.8);
}
.m-gallery .pswp__ui--idle .pswp__top-bar {
  opacity: 0;
}
.m-gallery .pswp__ui--idle .pswp__button--arrow--left,
.m-gallery .pswp__ui--idle .pswp__button--arrow--right {
  opacity: 0;
}
.m-gallery .pswp__ui--hidden .pswp__top-bar,
.m-gallery .pswp__ui--hidden .pswp__caption,
.m-gallery .pswp__ui--hidden .pswp__button--arrow--left,
.m-gallery .pswp__ui--hidden .pswp__button--arrow--right {
  /* Force paint & create composition layer for controls. */
  opacity: 0.001;
}
.m-gallery .pswp__ui--one-slide .pswp__button--arrow--left,
.m-gallery .pswp__ui--one-slide .pswp__button--arrow--right,
.m-gallery .pswp__ui--one-slide .pswp__counter {
  display: none;
}
.m-gallery .pswp__element--disabled {
  display: none !important;
}
.m-gallery .pswp--minimal--dark .pswp__top-bar {
  background: none;
}
.m-gallery .pswp__zoom-wrap,
.m-gallery .pswp__container,
.m-gallery .pswp__item {
  background-color: var(--c-white);
}
.m-gallery .pswp__button {
  color: var(--c-primary);
}
.m-gallery .pswp__button:hover {
  background-color: #efefef;
}
.m-gallery .pswp__counter {
  color: var(--c-primary);
}
.m-gallery .pswp--zoomed-in .pswp__caption {
  opacity: 0;
}

/**
* ----------------------
* Un.titled
* Molecules - Toggle subnav
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-toggle-subnav[data-isOpen=false] button:after {
  content: "+";
}
.m-toggle-subnav[data-isOpen=false] > div {
  display: none;
}
.m-toggle-subnav button {
  display: flex;
  border: 0;
  background-color: transparent;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0;
  margin-bottom: 0;
  text-align: left;
}
.m-toggle-subnav button::after {
  content: "—";
  display: block;
  transition: transform var(--transition);
}
.m-toggle-subnav button:hover::after {
  transform: translateX(-10px);
}

/**
* ----------------------
* Un.titled
* Molecules - Subnav container
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.m-subnav-container {
  border-bottom: 1px solid var(--c-primary);
}
.m-subnav-container .m-subnav {
  margin-top: 1.5rem;
}

/**
 * Organisims
 */
/**
 * ----------------------
 * Un.titled
 * Organisms - Header
 * ----------------------
 */
.o-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
  align-items: center;
  padding: 1rem 2rem;
}
@media (max-width: 1099px) {
  .o-header {
    grid-template-columns: repeat(2, 1fr);
    justify-items: start;
  }
}
@media (max-width: 767px) {
  .o-header {
    padding: 1rem;
  }
}
@media (max-width: 575px) {
  .o-header {
    padding: 0.5rem 15px;
  }
}
.o-header__nav {
  justify-self: start;
}
@media (max-width: 1099px) {
  .o-header__nav {
    display: none;
    visibility: hidden;
  }
}
.o-header__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}
.o-header__nav ul li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-header__nav a {
  border-bottom: none;
  text-decoration: none;
  margin-right: 1.25rem;
}
.o-header__nav a::after {
  display: none;
  visibility: hidden;
}
.o-header__nav a:hover {
  text-decoration: underline;
}
.o-header__logo {
  border-bottom: none;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
}
.o-header__logo::after {
  display: none;
  visibility: hidden;
}
.o-header__logo svg {
  width: 100%;
  height: auto;
  max-width: 240px;
}
.o-header__logo path {
  transition: fill var(--transition);
}
.o-header__logo:hover path {
  fill: var(--c-red);
}
.o-header__buttons {
  justify-self: end;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
}
@media (max-width: 575px) {
  .o-header__buttons {
    gap: 0;
  }
}
.o-header__buttons button,
.o-header__buttons a {
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 42px;
  width: 42px;
  padding: 0 0.5rem;
  transition: background var(--transition);
  background-color: transparent;
  border-radius: 50%;
}
.o-header__buttons button svg,
.o-header__buttons a svg {
  height: 20px;
  width: auto;
}
.o-header__buttons button.ticket-icon:hover path,
.o-header__buttons a.ticket-icon:hover path {
  stroke: none;
  fill: var(--c-white);
}
.o-header__buttons button path,
.o-header__buttons a path {
  transition: stroke var(--transition);
}
.o-header__buttons button:hover,
.o-header__buttons a:hover {
  background-color: var(--c-primary);
}
.o-header__buttons button:hover path,
.o-header__buttons a:hover path {
  stroke: var(--c-white);
}
.o-header h1 {
  margin-bottom: 0;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Footer
 * ----------------------
 */
.o-footer {
  --colMaxWidth: 250px;
  --padding: 3rem;
  background-color: var(--c-primary);
  color: var(--c-white);
  padding: var(--padding) 0;
}
@media (max-width: 767px) {
  .o-footer {
    --colMaxWidth: 350px;
    --padding: 2rem;
  }
}
@media (max-width: 359px) {
  .o-footer {
    --colMaxWidth: none;
  }
}
.o-footer .a-cols--full {
  max-width: 1200px;
}
.o-footer .a-links {
  margin-top: 0;
  flex-direction: column;
  align-items: flex-start;
}
.o-footer .a-links a {
  margin-bottom: 0.5rem;
}
.o-footer h3 {
  font-family: var(--fontBody);
}
.o-footer__top {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
@media (max-width: 767px) {
  .o-footer__top {
    grid-template-columns: 1fr;
    align-items: center;
    justify-items: center;
    gap: 2rem;
  }
}
.o-footer__top > div {
  width: 100%;
  max-width: var(--colMaxWidth);
}
.o-footer__about {
  grid-column: 1;
  grid-row: 1/5;
}
@media (max-width: 767px) {
  .o-footer__about {
    grid-column: 1;
    grid-row: auto;
  }
  .o-footer__about p {
    display: none;
    visibility: hidden;
  }
}
.o-footer__about .a-links {
  margin-top: 1rem;
}
.o-footer__newsletter {
  grid-column: 2;
  grid-row: 1/2;
  justify-self: center;
}
@media (max-width: 767px) {
  .o-footer__newsletter {
    grid-column: 1;
    grid-row: auto;
    order: -1;
  }
}
.o-footer__info {
  grid-column: 2;
  grid-row: 2/5;
  align-self: end;
  justify-self: center;
}
@media (max-width: 767px) {
  .o-footer__info {
    grid-column: 1;
    grid-row: auto;
    align-self: center;
    order: 2;
  }
}
.o-footer__join-support {
  grid-column: 3;
  grid-row: 1/3;
  justify-self: end;
}
@media (max-width: 767px) {
  .o-footer__join-support {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
  }
}
.o-footer__join-support .links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.o-footer__social {
  grid-column: 3;
  grid-row: 3;
  align-self: end;
  justify-self: end;
}
@media (max-width: 767px) {
  .o-footer__social {
    grid-column: 1;
    grid-row: auto;
    align-self: center;
    justify-self: center;
    order: -2;
  }
}
.o-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--padding);
}
@media (max-width: 767px) {
  .o-footer__bottom {
    flex-direction: column;
  }
}
@media (max-width: 767px) {
  .o-footer__partners, .o-footer__headline-partner {
    width: 100%;
    max-width: var(--colMaxWidth);
  }
}
.o-footer__partners a, .o-footer__headline-partner a {
  border-bottom: none;
}
.o-footer__partners a::after, .o-footer__headline-partner a::after {
  display: none;
  visibility: hidden;
}
.o-footer__partners a:hover, .o-footer__headline-partner a:hover {
  opacity: 0.7;
}
.o-footer__headline-partner {
  width: 100%;
}
.o-footer__headline-partner p {
  max-width: var(--colMaxWidth);
  font-size: var(--fontSmall);
}
.o-footer__headline-partner img {
  margin-top: 1rem;
}
.o-footer__partners {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: var(--padding);
}
@media (max-width: 767px) {
  .o-footer__partners {
    flex-direction: column;
    align-items: flex-start;
  }
}
.o-footer__partners img {
  height: 50px;
  width: auto;
  margin-right: 1.5rem;
}
@media (max-width: 359px) {
  .o-footer__partners img {
    height: 40px;
    max-width: 100%;
  }
}
.o-footer__legal {
  align-self: flex-end;
  font-size: var(--fontSmall);
  margin-top: 1rem;
}
@media (max-width: 767px) {
  .o-footer__legal {
    margin-top: var(--padding);
    align-self: center;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Search results
 * ----------------------
 */
.o-search-results-wrapper h2 {
  display: none;
}
.o-search-results-wrapper .result__title {
  margin-bottom: 0;
}
.o-search-results-wrapper__list {
  margin-bottom: 2rem;
}
.o-search-results-wrapper__list ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-search-results-wrapper__list ol li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-search-results-wrapper__list ol li {
  margin-bottom: 1rem;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Teasers
 * ----------------------
 */
.o-featured-teaser,
.o-listing-teaser,
.o-teaser {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media (min-width: 769px) {
  .o-featured-teaser--single,
.o-listing-teaser--single,
.o-teaser--single {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
.o-featured-teaser__thumb,
.o-listing-teaser__thumb,
.o-teaser__thumb {
  border-bottom: none;
  display: block;
  width: 100%;
  position: relative;
}
.o-featured-teaser__thumb::after,
.o-listing-teaser__thumb::after,
.o-teaser__thumb::after {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__thumb figure,
.o-listing-teaser__thumb figure,
.o-teaser__thumb figure {
  height: 0;
  position: relative;
  padding-top: 56.25%;
}
.o-featured-teaser__thumb figure.listing_image_square,
.o-listing-teaser__thumb figure.listing_image_square,
.o-teaser__thumb figure.listing_image_square {
  padding-top: 100%;
}
.o-featured-teaser__thumb figure.listing_image_portrait,
.o-listing-teaser__thumb figure.listing_image_portrait,
.o-teaser__thumb figure.listing_image_portrait {
  padding-top: 133.3333%;
}
.o-featured-teaser__thumb figure picture,
.o-listing-teaser__thumb figure picture,
.o-teaser__thumb figure picture {
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--c-greyLight);
  width: 100%;
  height: 100%;
  display: flex;
}
.o-featured-teaser__thumb img,
.o-listing-teaser__thumb img,
.o-teaser__thumb img {
  width: 100%;
  height: auto;
  display: block;
  transition: opacity var(--transition);
  -o-object-fit: cover;
     object-fit: cover;
}
.o-featured-teaser__thumb .label,
.o-listing-teaser__thumb .label,
.o-teaser__thumb .label {
  position: absolute;
  top: -0.8rem;
  left: 0.5rem;
  text-transform: uppercase;
  font-size: var(--fontSmall);
  padding: 5px 10px;
  background-color: var(--c-primary);
  color: var(--c-white);
}
.o-featured-teaser__thumb:hover img,
.o-listing-teaser__thumb:hover img,
.o-teaser__thumb:hover img {
  opacity: 0.9;
}
.o-featured-teaser__content,
.o-listing-teaser__content,
.o-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 1rem 0;
}
@media (max-width: 767px) {
  .o-featured-teaser__content,
.o-listing-teaser__content,
.o-teaser__content {
    padding: 0.5rem 0;
  }
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more),
.o-listing-teaser__content a:not(.a-btn):not(.read-more),
.o-teaser__content a:not(.a-btn):not(.read-more) {
  border-bottom: none;
  text-decoration: none;
}
.o-featured-teaser__content a:not(.a-btn):not(.read-more)::after,
.o-listing-teaser__content a:not(.a-btn):not(.read-more)::after,
.o-teaser__content a:not(.a-btn):not(.read-more)::after {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__content .tag,
.o-listing-teaser__content .tag,
.o-teaser__content .tag {
  margin-bottom: 0.5rem;
  text-transform: capitalize;
  font-size: var(--fontSmall);
}
@media (min-width: 769px) {
  .o-teaser--single .o-featured-teaser__content,
.o-teaser--single .o-listing-teaser__content,
.o-teaser--single .o-teaser__content {
    grid-row: 1;
    grid-column: 2;
    padding: 0;
  }
}
.o-featured-teaser__content p:last-of-type,
.o-listing-teaser__content p:last-of-type,
.o-teaser__content p:last-of-type {
  margin-bottom: 0;
}
.o-featured-teaser__buttons,
.o-listing-teaser__buttons,
.o-teaser__buttons {
  margin-top: auto;
  padding: 0 0 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.o-featured-teaser__buttons > .a-btn,
.o-listing-teaser__buttons > .a-btn,
.o-teaser__buttons > .a-btn {
  width: auto;
  margin-right: 1rem;
  font-size: var(--fontSmall);
  text-transform: uppercase;
  margin-top: 0.5rem;
}
.o-featured-teaser__buttons > .a-btn svg,
.o-listing-teaser__buttons > .a-btn svg,
.o-teaser__buttons > .a-btn svg {
  display: none;
  visibility: hidden;
}
.o-featured-teaser__buttons > .a-btn:not(.no-link):hover,
.o-listing-teaser__buttons > .a-btn:not(.no-link):hover,
.o-teaser__buttons > .a-btn:not(.no-link):hover {
  background-color: var(--c-secondary);
  color: var(--c-primary);
}
.o-featured-teaser__buttons > a,
.o-listing-teaser__buttons > a,
.o-teaser__buttons > a {
  margin-right: 1rem;
  margin-top: 0.5rem;
}
@media (min-width: 769px) {
  .o-teaser--single .o-featured-teaser__buttons,
.o-teaser--single .o-listing-teaser__buttons,
.o-teaser--single .o-teaser__buttons {
    grid-row: 1;
    grid-column: 2;
    padding-bottom: 0;
  }
}
.o-featured-teaser p,
.o-listing-teaser p,
.o-teaser p {
  max-width: var(--lineLength);
}

.o-listing-teaser h2 {
  font-size: clamp(1.6rem, 2.2vw, 2.8rem);
}
.o-listing-teaser__thumb {
  background-color: transparent;
  align-self: end;
}
.o-listing-teaser__content {
  align-items: stretch;
}
.o-listing-teaser__buttons {
  margin-top: 1rem;
}

.o-featured-teaser {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 1199px) {
  .o-featured-teaser {
    grid-template-columns: 1fr 1.5fr;
    gap: 1rem;
  }
}
@media (max-width: 991px) {
  .o-featured-teaser {
    grid-template-columns: 1fr;
  }
}
.o-featured-teaser--single {
  align-items: center;
}
.o-featured-teaser__content {
  color: var(--c-white);
  padding: 0;
}
.o-featured-teaser__buttons {
  padding-bottom: 0;
  flex-direction: column-reverse;
  align-items: flex-start;
  margin-top: 1.5rem;
}
.o-featured-teaser__buttons > .a-btn {
  font-size: 1rem;
  text-transform: none;
  margin-top: 1.5rem;
  border: 0;
  --btnBg: var(--c-yellow);
  --btnColour: var(--c-primary);
}
.o-featured-teaser__buttons > .a-btn svg {
  display: block;
  visibility: visible;
}

.o-teaser__content p {
  word-break: break-word;
}

/**
* ----------------------
* Un.titled
* Organisms - Listing **temp**
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.o-listing__filters {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  border: 1px solid var(--c-primary);
  border-left: 0;
  border-right: 0;
  margin-bottom: 2rem;
}
@media (max-width: 575px) {
  .o-listing__filters {
    margin-bottom: 1rem;
  }
}
.o-listing__filters .btn {
  border: 0;
  background-color: transparent;
  padding: 1.5rem;
  margin: 0;
  transition: color var(--transition);
}
@media (max-width: 767px) {
  .o-listing__filters .btn {
    padding: 0.5rem;
  }
  .o-listing__filters .btn--dropdown {
    width: 50%;
  }
}
@media (max-width: 359px) {
  .o-listing__filters .btn {
    font-size: 1rem;
  }
  .o-listing__filters .btn--dropdown {
    width: auto;
  }
}
.o-listing__filters .btn.active, .o-listing__filters .btn:hover {
  color: var(--c-red);
}
.o-listing__filters .divider {
  height: 100%;
  width: 1px;
  padding-left: 0;
  padding-right: 0;
  margin: 0 0.5rem;
  display: block;
  background-color: var(--c-primary);
}
@media (max-width: 767px) {
  .o-listing__filters .divider {
    display: none;
    visibility: hidden;
  }
}
.o-listing__dropdown {
  position: absolute;
  z-index: 2;
  top: calc(100% + 1px);
  left: 0;
  width: 100%;
  background-color: var(--c-greyLight);
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
  padding: 2rem 1rem;
}
.o-listing__dropdown .show-results {
  margin: 20px 0 0 0;
}
.o-listing__dropdown .a-cols {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
@media (max-width: 575px) {
  .o-listing__dropdown .a-cols {
    flex-direction: column;
  }
}
.o-listing__dropdown-calendar .a-cols {
  flex-direction: column;
  align-items: center;
  position: relative;
}
.o-listing__dropdown-calendar-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.o-listing__dropdown-calendar-controls p {
  margin-bottom: 1rem;
}
.o-listing__dropdown-taxonomy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin: 0 1rem;
}
.o-listing__dropdown-taxonomy h3 {
  width: 100%;
  text-align: center;
}
@media (max-width: 575px) {
  .o-listing__dropdown-taxonomy h3 {
    text-align: left;
  }
}
.o-listing__dropdown-taxonomy--filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 10px;
  width: 100%;
}
@media (max-width: 767px) {
  .o-listing__dropdown-taxonomy--filters {
    grid-template-columns: 1fr;
  }
}
.o-listing__dropdown-taxonomy--filters label {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 5px;
  align-items: center;
}
@media (max-width: 575px) {
  .o-listing__dropdown-taxonomy {
    margin: 0 0 1rem;
    max-width: none;
  }
  .o-listing__dropdown-taxonomy:last-child {
    margin-bottom: 0;
  }
}
.o-listing__dropdown .link {
  border-bottom: none;
  border: 0;
  padding: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: 0.5rem;
  background-color: transparent;
  text-align: left;
}
.o-listing__dropdown .link::after {
  display: none;
  visibility: hidden;
}
.o-listing__dropdown .link:hover, .o-listing__dropdown .link.active {
  border-bottom-color: var(--c-red);
}
.o-listing__active-filters {
  padding: 0.5rem 0 0;
  background-color: var(--c-greyLight);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
@media (max-width: 575px) {
  .o-listing__active-filters {
    margin-top: 0;
  }
}
.o-listing__active-filters .a-btn {
  margin-right: 1rem;
  padding: 0.25rem 0.5rem;
  text-transform: uppercase;
  font-size: var(--fontSmall);
  display: flex;
  justify-content: space-between;
  align-items: center;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}
.o-listing__active-filters .a-btn span {
  display: inline-block;
  margin-left: 0.5rem;
  color: var(--c-red);
  line-height: 1;
  transition: color var(--transition);
}
.o-listing__active-filters .a-btn:hover {
  border-color: var(--c-red);
  background-color: var(--c-red);
  color: var(--c-white);
}
.o-listing__active-filters .a-btn:hover span {
  color: var(--c-white);
}
.o-listing .DayPicker-Months {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (max-width: 575px) {
  .o-listing .DayPicker-Months {
    grid-template-columns: 1fr;
    gap: 0;
    font-size: var(--fontSmall);
  }
}
.o-listing .DayPicker-Month {
  width: 100%;
  margin: 0;
}

/**
* ----------------------
* Un.titled
* Organisms - Person teaser
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
.o-people--sm {
  margin-top: 1.5rem;
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 767px) {
  .o-people--sm {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 575px) {
  .o-people--sm {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 359px) {
  .o-people--sm {
    grid-template-columns: 1fr;
  }
}
.o-people--sm .o-people__person {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.o-people--sm .o-people__person figure {
  margin-bottom: 1.5rem;
  order: -1;
  position: relative;
  height: 0;
  padding-top: 100%;
}
.o-people--sm .o-people__person img {
  position: absolute;
  top: 0;
  left: 0;
}
.o-people--sm .o-people__person h3 {
  margin-bottom: 0;
}
.o-people--sm .o-people__person h4 {
  font-family: var(--fontBody);
}
.o-people--lg .o-people__person {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 2rem;
  border-top: 1px solid var(--c-primary);
  padding-top: 1.5rem;
  margin-top: 1.5rem;
}
.o-people--lg .o-people__person:first-of-type {
  margin-top: 0;
}
@media (max-width: 767px) {
  .o-people--lg .o-people__person {
    grid-template-columns: 1fr 150px;
  }
}
@media (max-width: 575px) {
  .o-people--lg .o-people__person {
    grid-template-columns: 1fr;
  }
  .o-people--lg .o-people__person img {
    max-width: 300px;
    width: 100%;
    height: auto;
    justify-self: center;
    order: -1;
  }
}
.o-people__person {
  border-bottom: none;
  text-decoration: none;
}
.o-people__person::after {
  display: none;
  visibility: hidden;
}
.o-people__person .link {
  display: inline-block;
  margin-top: 1rem;
}
.o-people__person:hover h3,
.o-people__person:hover .link {
  text-decoration: underline;
}
.o-people__person:hover .link::after {
  background-color: currentColor;
}
.o-people__person:hover img {
  opacity: 0.7;
}
.o-people img {
  border-radius: 50%;
  overflow: hidden;
  transition: opacity var(--transition);
}

/**
* ----------------------
* Un.titled
* Organisms - Performances modal
* ----------------------
*/
/**
* Styling
*/
[data-modalOpen=true] {
  overflow: hidden;
}

.o-modal {
  border: 0;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 25;
  visibility: hidden;
  justify-content: center;
  align-items: center;
  color: var(--c-primary);
}
.o-modal[data-visible=true] {
  display: flex;
  -webkit-animation: fadeIn 0.2s ease-in-out forwards;
          animation: fadeIn 0.2s ease-in-out forwards;
}
.o-modal[data-visible=false] {
  display: none;
  visibility: hidden;
}
@media (max-width: 767px) {
  .o-modal .a-cols {
    padding: 0;
  }
}
.o-modal--fullscreen {
  background-color: var(--c-primary);
  color: var(--c-white);
  padding: 2rem;
  overflow-y: scroll;
}
@media (max-width: 767px) {
  .o-modal--fullscreen {
    padding: 2rem 0;
  }
}
.o-modal--fullscreen .a-cols {
  max-height: 95vh;
  padding: 1rem 0 0;
}
.o-modal--fullscreen .o-modal__close {
  background-color: transparent;
  right: 2rem;
}
@media (max-width: 767px) {
  .o-modal--fullscreen .o-modal__close {
    right: 1rem;
  }
}
@media (max-width: 575px) {
  .o-modal--fullscreen .o-modal__close {
    right: 15px;
  }
}
.o-modal--fullscreen .o-modal__close path {
  stroke: var(--c-white);
}
.o-modal--fullscreen .o-modal__close:hover {
  background-color: var(--c-white);
}
.o-modal--fullscreen .o-modal__close:hover path {
  stroke: var(--c-primary);
}
.o-modal__close {
  position: absolute;
  height: 42px;
  width: 42px;
  background-color: var(--c-white);
  border-radius: 50%;
  padding: 0;
  margin: 0;
  top: 1rem;
  right: 1rem;
  border: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color var(--transition);
}
@media (max-width: 575px) {
  .o-modal__close {
    right: 0.5rem;
    height: 35px;
    width: 35px;
  }
}
.o-modal__close svg {
  width: 20px;
}
@media (max-width: 575px) {
  .o-modal__close svg {
    width: 15px;
  }
}
.o-modal__close path {
  transition: stroke var(--transition);
}
.o-modal__close:hover {
  background-color: var(--c-primary);
}
.o-modal__close:hover path {
  stroke: var(--c-white);
}

/**
* Templates
*/
/**
* ----------------------
* Un.titled
* Template - Posts
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
article {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcGhvdG9zd2lwZS9kaXN0L3Bob3Rvc3dpcGUuY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX21peGlucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19oZWxwZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2ZvY3VzLXZpc2libGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fZm9udC1zbW9vdGhpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2NvbmZpZy9fZm9udHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvY29uZmlnL192YXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX2RlZmF1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX21haW4uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9faW1hZ2UtY3JlZGl0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbG9hZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19kYXRlLXBpY2tlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fcGFnZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NvbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NhcHRpb24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2F1dG8tZ3JpZC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3RhZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fc3RpY2t5LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19jYW5jZWxsZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NraXAtbGluay5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fY2l0ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYmFjay10b3Auc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19lbW1zZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Jsb2Nrcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ludHJvLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9faW1hZ2Uuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19xdW90ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2dhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbWFnZS10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZG93bmxvYWRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL190YWJsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NpZ25wb3N0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2lnbnBvc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fbGlua2VkLWxvZ29zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fdmlkZW8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL195bWFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYmlnLWN0YS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3JlYWRtb3JlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fcXVpY2tsaW5rcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NwZWNpYWwtb3B0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3Blb3BsZS1wcm9maWxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2xpc3Rpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19taW5pbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ZlYXR1cmVkLWNvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19jaXRhdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbWFnZXpvb20uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19mb3Jtcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZGl2aWRlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2J1eS1ub3ctYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19uYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19iYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zb2NpYWwtbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zdWJuYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19pbnRyby5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2FuY2hvci1uYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19jb3Vyc2UtZGV0YWlscy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3Blb3BsZS1zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9faG9tZXBhZ2UtYmFubmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fZXZlbnQtc2lkZWJhci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3NlYXJjaC1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fcGVyZm9ybWFuY2VzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fcGhvdG9zd2lwZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3RvZ2dsZS1zdWJuYXYuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zdWJuYXYtY29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9faGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL190ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19saXN0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fcGVvcGxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvdGVtcGxhdGVzL19wb3N0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEVBQTBFO0FBQzFFOztDQUVDO0FBQ0Qsc0JBQXNCO0FBQ3RCO0VBQ0UsYUFB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STtFQ2dYQSw4QkQ5V3dCO0VDK1d4QiwyQkQvV3dCO0VDZ1h4QixzQkRoWHdCO0VDSHBCO0VBQ0E7RUFDQTtBSnFiUjs7QUd4YUE7RUNrV0ksOEJEaldvQjtFQ2tXcEIsMkJEbFdvQjtFQ21XcEIsc0JEbldvQjtFQ2hCaEI7RUFDQTtFQUNBO0VEZ0JKO0VBQ0E7RUFDQTtFQUNBLGFEckJrQjtFQ29DZDtHQUNBO0VBQ0E7QUhpYVI7QUdoYkk7RUMwVkEsOEJEeFZ3QjtFQ3lWeEIsMkJEelZ3QjtFQzBWeEIsc0JEMVZ3QjtFQ3pCcEI7RUFDQTtFQUNBO0FKNmNSO0FHamJJO0VDNEVJO0VBR0o7RUFDQTtFRDlFSTtBSHFiUjs7QUk3ZlE7RUFDSTtHQUVJO0FKK2ZoQjs7QUlsZ0JRO0VBQ0k7R0FFSTtBSm9nQmhCOztBSXZnQlE7RUFDSTtHQUVJO0FKeWdCaEI7O0FJNWdCUTtFQUNJO0dBRUk7QUo4Z0JoQjs7QUlqaEJRO0VBQ0k7R0FFSTtBSm1oQmhCOztBSXRoQlE7RUFDSTtHQUVJO0FKd2hCaEI7O0FJM2hCUTtFQUNJO0dBRUk7QUo2aEJoQjs7QUloaUJRO0VBQ0k7R0FFSTtBSmtpQmhCOztBSXJpQlE7RUFDSTtHQUVJO0FKdWlCaEI7O0FJMWlCUTtFQUNJO0dBRUk7QUo0aUJoQjs7QUkvaUJRO0VBQ0k7R0FFSTtBSmlqQmhCOztBSXBqQlE7RUFDSTtHQUVJO0FKc2pCaEI7O0FHamVBO0VDeEZRO0lBQ0k7S0FFSTtFSjRqQmQ7O0VJL2pCTTtJQUNJO0tBRUk7RUppa0JkOztFSXBrQk07SUFDSTtLQUVJO0VKc2tCZDs7RUl6a0JNO0lBQ0k7S0FFSTtFSjJrQmQ7O0VJOWtCTTtJQUNJO0tBRUk7RUpnbEJkOztFSW5sQk07SUFDSTtLQUVJO0VKcWxCZDs7RUl4bEJNO0lBQ0k7S0FFSTtFSjBsQmQ7O0VJN2xCTTtJQUNJO0tBRUk7RUorbEJkOztFSWxtQk07SUFDSTtLQUVJO0VKb21CZDs7RUl2bUJNO0lBQ0k7S0FFSTtFSnltQmQ7O0VJNW1CTTtJQUNJO0tBRUk7RUo4bUJkOztFSWpuQk07SUFDSTtLQUVJO0VKbW5CZDtBQUNGO0FHM2hCQTtFQzVGUTtJQUNJO0tBRUk7RUp5bkJkOztFSTVuQk07SUFDSTtLQUVJO0VKOG5CZDs7RUlqb0JNO0lBQ0k7S0FFSTtFSm1vQmQ7O0VJdG9CTTtJQUNJO0tBRUk7RUp3b0JkOztFSTNvQk07SUFDSTtLQUVJO0VKNm9CZDs7RUlocEJNO0lBQ0k7S0FFSTtFSmtwQmQ7O0VJcnBCTTtJQUNJO0tBRUk7RUp1cEJkOztFSTFwQk07SUFDSTtLQUVJO0VKNHBCZDs7RUkvcEJNO0lBQ0k7S0FFSTtFSmlxQmQ7O0VJcHFCTTtJQUNJO0tBRUk7RUpzcUJkOztFSXpxQk07SUFDSTtLQUVJO0VKMnFCZDs7RUk5cUJNO0lBQ0k7S0FFSTtFSmdyQmQ7QUFDRjtBR3BsQkE7RUNoR1E7SUFDSTtLQUVJO0VKc3JCZDs7RUl6ckJNO0lBQ0k7S0FFSTtFSjJyQmQ7O0VJOXJCTTtJQUNJO0tBRUk7RUpnc0JkOztFSW5zQk07SUFDSTtLQUVJO0VKcXNCZDs7RUl4c0JNO0lBQ0k7S0FFSTtFSjBzQmQ7O0VJN3NCTTtJQUNJO0tBRUk7RUorc0JkOztFSWx0Qk07SUFDSTtLQUVJO0VKb3RCZDs7RUl2dEJNO0lBQ0k7S0FFSTtFSnl0QmQ7O0VJNXRCTTtJQUNJO0tBRUk7RUo4dEJkOztFSWp1Qk07SUFDSTtLQUVJO0VKbXVCZDs7RUl0dUJNO0lBQ0k7S0FFSTtFSnd1QmQ7O0VJM3VCTTtJQUNJO0tBRUk7RUo2dUJkO0FBQ0Y7QUc3b0JBO0VDcEdRO0lBQ0k7S0FFSTtFSm12QmQ7O0VJdHZCTTtJQUNJO0tBRUk7RUp3dkJkOztFSTN2Qk07SUFDSTtLQUVJO0VKNnZCZDs7RUlod0JNO0lBQ0k7S0FFSTtFSmt3QmQ7O0VJcndCTTtJQUNJO0tBRUk7RUp1d0JkOztFSTF3Qk07SUFDSTtLQUVJO0VKNHdCZDs7RUkvd0JNO0lBQ0k7S0FFSTtFSml4QmQ7O0VJcHhCTTtJQUNJO0tBRUk7RUpzeEJkOztFSXp4Qk07SUFDSTtLQUVJO0VKMnhCZDs7RUk5eEJNO0lBQ0k7S0FFSTtFSmd5QmQ7O0VJbnlCTTtJQUNJ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RUk5MUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUptM0NOOztFSW4yQ007SUFsQkosMkJBRmE7S0FJVDtFSnczQ047O0VJeDJDTTtJQWxCSiwwQkFGYTtLQUlUO0VKNjNDTjs7RUk3MkNNO0lBbEJKLGNBTFM7S0FPTDtFSms0Q047QUFDRjtBR2p6Q0E7RUNsRVE7SUFsQkosMkJBRmE7S0FJVDtFSnc0Q047O0VJeDNDTTtJQWxCSiwyQkFGYTtLQUlUO0VKNjRDTjs7RUk3M0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUprNUNOOztFSWw0Q007SUFsQkosMkJBRmE7S0FJVDtFSnU1Q047O0VJdjRDTTtJQWxCSiwyQkFGYTtLQUlUO0VKNDVDTjs7RUk1NENNO0lBbEJKLGdCQUZhO0tBSVQ7RUppNkNOOztFSWo1Q007SUFsQkosMkJBRmE7S0FJVDtFSnM2Q047O0VJdDVDTTtJQWxCSiwyQkFGYTtLQUlUO0VKMjZDTjs7RUkzNUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUpnN0NOOztFSWg2Q007SUFsQkosMkJBRmE7S0FJVDtFSnE3Q047O0VJcjZDTTtJQWxCSiwwQkFGYTtLQUlUO0VKMDdDTjs7RUkxNkNNO0lBbEJKLGNBTFM7S0FPTDtFSis3Q047QUFDRjtBRzEyQ0E7RUN0RVE7SUFsQkosMkJBRmE7S0FJVDtFSnE4Q047O0VJcjdDTTtJQWxCSiwyQkFGYTtLQUlUO0VKMDhDTjs7RUkxN0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUorOENOOztFSS83Q007SUFsQkosMkJBRmE7S0FJVDtFSm85Q047O0VJcDhDTTtJQWxCSiwyQkFGYTtLQUlUO0VKeTlDTjs7RUl6OENNO0lBbEJKLGdCQUZhO0tBSVQ7RUo4OUNOOztFSTk4Q007SUFsQkosMkJBRmE7S0FJVDtFSm0rQ047O0VJbjlDTTtJQWxCSiwyQkFGYTtLQUlUO0VKdytDTjs7RUl4OUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUo2K0NOOztFSTc5Q007SUFsQkosMkJBRmE7S0FJVDtFSmsvQ047O0VJbCtDTTtJQWxCSiwwQkFGYTtLQUlUO0VKdS9DTjs7RUl2K0NNO0lBbEJKLGNBTFM7S0FPTDtFSjQvQ047QUFDRjtBR242Q0E7RUMxRVE7SUFsQkosMkJBRmE7S0FJVDtFSmtnRE47O0VJbC9DTTtJQWxCSiwyQkFGYTtLQUlUO0VKdWdETjs7RUl2L0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUo0Z0ROOztFSTUvQ007SUFsQkosMkJBRmE7S0FJVDtFSmloRE47O0VJamdETTtJQWxCSiwyQkFGYTtLQUlUO0VKc2hETjs7RUl0Z0RNO0lBbEJKLGdCQUZhO0tBSVQ7RUoyaEROOztFSTNnRE07SUFsQkosMkJBRmE7S0FJVDtFSmdpRE47O0VJaGhETTtJQWxCSiwyQkFGYTtLQUlUO0VKcWlETjs7RUlyaERNO0lBbEJKLGdCQUZhO0tBSVQ7RUowaUROOztFSTFoRE07SUFsQkosMkJBRmE7S0FJVDtFSitpRE47O0VJL2hETTtJQWxCSiwwQkFGYTtLQUlUO0VKb2pETjs7RUlwaURNO0lBbEJKLGNBTFM7S0FPTDtFSnlqRE47QUFDRjtBRzU5Q0E7RUM5RVE7SUFsQkosMkJBRmE7S0FJVDtFSitqRE47O0VJL2lETTtJQWxCSiwyQkFGYTtLQUlUO0VKb2tETjs7RUlwakRNO0lBbEJKLGdCQUZhO0tBSVQ7RUp5a0ROOztFSXpqRE07SUFsQkosMkJBRmE7S0FJVDtFSjhrRE47O0VJOWpETTtJQWxCSiwyQkFGYTtLQUlUO0VKbWxETjs7RUlua0RNO0lBbEJKLGdCQUZhO0tBSVQ7RUp3bEROOztFSXhrRE07SUFsQkosMkJBRmE7S0FJVDtFSjZsRE47O0VJN2tETTtJQWxCSiwyQkFGYTtLQUlUO0VKa21ETjs7RUlsbERNO0lBbEJKLGdCQUZhO0tBSVQ7RUp1bUROOztFSXZsRE07SUFsQkosMkJBRmE7S0FJVDtFSjRtRE47O0VJNWxETTtJQWxCSiwwQkFGYTtLQUlUO0VKaW5ETjs7RUlqbURNO0lBbEJKLGNBTFM7S0FPTDtFSnNuRE47QUFDRjtBS2h1REE7RUR3TEksbUJDdkxtQjtFRHdMbkIsdUJDeExtQjtFRHlMbkIsZUN6TG1CO0FMb3VEdkI7O0FLanVEQTtFRG9MSSxxQkNuTG1CO0VEb0xuQix5QkNwTG1CO0VEcUxuQixpQkNyTG1CO0FMc3VEdkI7QUtqdURJO0VEMkpBLG9CQzFKeUI7RUQySnpCLHNCQzNKeUI7RUQ0SnpCLGNDNUp5QjtBTHF1RDdCOztBS2p1REE7RUR5S0ksMkJDeEttQjtFRHlLbkIsK0JDekttQjtFRDBLbkIsdUJDMUttQjtBTHN1RHZCOztBSy90REE7RUR1S0ksdUJDdEt3QjtFRHVLeEIsMkJDdkt3QjtFRHdLeEIsbUJDeEt3QjtBTG91RDVCOztBS2p1REE7RURtS0ksK0JDbEt3QjtFRG1LeEIsbUNDbkt3QjtFRG9LeEIsMkJDcEt3QjtBTHN1RDVCOztBS251REE7RUQrSkksMEJDOUp3QjtFRCtKeEIsOEJDL0p3QjtFRGdLeEIsc0JDaEt3QjtBTHd1RDVCOztBS3J1REE7RUQySkksa0NDMUp3QjtFRDJKeEIsc0NDM0p3QjtFRDRKeEIsOEJDNUp3QjtBTDB1RDVCOztBS251REE7RURvTFE7RUF0QkosK0JDN0pxQjtFRDhKckIsdUJDOUpxQjtBTHd1RHpCOztBS3J1REE7RURrTFE7RUF4QkosNkJDekpxQjtFRDBKckIscUJDMUpxQjtBTDB1RHpCO0FLdHVEUTtFQUNJO0FMd3VEWjs7QUtudURBO0VEeUtRLHNCQ3hLaUI7RUQ4SXJCLDJCQzlJcUI7RUQrSXJCLG1CQy9JcUI7QUx3dUR6QjtBS3B1RFE7RUFDSTtBTHN1RFo7O0FLanVEQTtFRDhKUSx3QkM3SmlCO0VEbUlyQiw2QkNuSXFCO0VEb0lyQixxQkNwSXFCO0FMc3VEekI7O0FLL3REQTtFRHNLUTtFQTlCSixpQ0N2SXVCO0VEd0l2Qix5QkN4SXVCO0FMb3VEM0I7O0FLanVEQTtFRG9LUTtFQWhDSiwrQkNuSXVCO0VEb0l2Qix1QkNwSXVCO0FMc3VEM0I7QUtudURJO0VBQ0k7QUxxdURSOztBS2p1REE7RURpS1EsMEJDaEttQjtFRDBIdkIsNkJDMUh1QjtFRDJIdkIscUJDM0h1QjtBTHN1RDNCOztBS251REE7RUR5SlE7RUFsQ0osb0NDdEh1QjtFRHVIdkIsNEJDdkh1QjtBTHd1RDNCOztBS3J1REE7RUR1SlE7RUFwQ0osbUNDbEh1QjtFRG1IdkIsMkJDbkh1QjtBTDB1RDNCOztBS251REE7RURtSVEsNEJDbElnQjtFRG9HcEIsMkJDcEdvQjtFRHFHcEIsbUJDckdvQjtBTHd1RHhCOztBS3J1REE7RUQySFE7RUExQkosOEJDaEdvQjtFRGlHcEIsc0JDakdvQjtBTDB1RHhCOztBS3Z1REE7RUR5SFE7RUE1QkosNEJDNUZvQjtFRDZGcEIsb0JDN0ZvQjtFQUNwQjtBTDR1REo7O0FLenVEQTtFRHNIUSwyQkNySGdCO0VEdUZwQiwwQkN2Rm9CO0VEd0ZwQixrQkN4Rm9CO0VBQ3BCO0FMOHVESjs7QUszdURBO0VEaUhRLDZCQ2hIZ0I7RURrRnBCLDRCQ2xGb0I7RURtRnBCLG9CQ25Gb0I7RUFDcEI7QUxndkRKOztBS3p1REE7RURtSUk7RUFDQTtFQUNBO0FKMG1ESjtBSzN1RFE7RUFDSTtBTDZ1RFo7O0FLeHVEQTtFRCtISTtFQUNBO0VBQ0E7QUo2bURKO0FLMXVEUTtFQUNJO0VBQ0E7RUFDQTtBTDR1RFo7QUsxdURZO0VEMUZSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSnUwREo7O0FLM3VEQTtFRHFISTtFQUNBO0VBQ0E7QUowbkRKO0FLN3VEUTtFQUNJO0VBQ0E7RUFDQTtBTCt1RFo7QUs3dURZO0VEMUdSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSjAxREo7O0FLOXVEQTtFRDJHSTtFQUNBO0VBQ0E7QUp1b0RKO0FLaHZEUTtFQUNJO0VBQ0E7RUFDQTtBTGt2RFo7QUtodkRZO0VEMUhSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSjYyREo7O0FLanZEQTtFRGlHSTtFQUNBO0VBQ0E7QUpvcERKO0FLbnZEUTtFQUNJO0VBQ0E7RUFDQTtBTHF2RFo7QUtudkRZO0VEMUlSO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmc0REo7O0FLOXVESTtFQUNJO0FMaXZEUjs7QUt4dURBO0VEckZJO0VBQ0E7RUFDQTtFQWtEQSwwQkNtQ3dCO0VEbEN4Qiw4QkNrQ3dCO0VEakN4QixzQkNpQ3dCO0FMK3VENUI7QUs3dURJO0VEckNBLHVC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Q0E7RUN4QkY7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VBT0E7O0lBQUE7RUFhQTs7SUFBQTtFQ3BCQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7R0FBQTtFQU9BOztHQUFBO0VBSUE7O0dBQUE7RUNYQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7QWhFNHlIQTtBb0M5d0hFO0VBQ0U7RUFDQTtFQUNBO0FwQ2d4SEo7QW9DN3dIRTtFQUNFO0FwQyt3SEo7QW9DendISTtFQUNFO0FwQzJ3SE47QW9DendITTtFQUNFO0VBQ0E7RUFDQTtBcEMyd0hSO0FvQ3p3SFE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXBDMndIVjtBcUNoMEhBO0VBQ0U7QXJDazBIRjtBcUNoMEhFO0VBQ0U7QXJDazBISjtBc0N0MEhBO0VBQ0U7RUFDQTtBdEN3MEhGO0FzQ3QwSEU7RUFDRTtBdEN3MEhKO0FzQ3IwSEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F0Q3UwSEo7QXNDcDBIRTtFOUJ5QkE7QVI4eUhGO0FRNXlIRTtFQUNFO0VBQ0E7QVI4eUhKO0F1QzEwSEE7RUFDRTtBdkM0MEhGO0F1QzEwSEU7RUFDRTtFQUVBO0VBQ0E7RUFDQTtBdkMyMEhKO0F1Q3owSEk7RUFDRTtFQUNBO09BQUE7QXZDMjBITjtBdUN2MEhFO0VBQ0U7QXZDeTBISjtBdUN0MEhFO0VBQ0U7QXZDdzBISjtBdUNyMEhFO0VBQ0U7RUFDQTtFQUNBO0F2Q3UwSEo7QXVDcjBISTtFQUNFO0F2Q3UwSE47QXVDcDBISTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0F2Q3MwSE47QXVDcDBITTtFQUNFO0F2Q3MwSFI7QXVDejNISTtFQUNFO0VBQ0E7QXZDMjNITjtBdUM3M0hJO0VBQ0U7RUFDQTtBdkMrM0hOO0F1Q2o0SEk7RUFDRTtFQUNBO0F2Q200SE47QXVDcjRISTtFQUNFO0VBQ0E7QXZDdTRITjtBdUN6NEhJO0VBQ0U7RUFDQTtBdkMyNEhOO0F3Q2w1SEU7RUFDRTtBeENvNUhKO0F3Q2w1SEU7RWhDcUNBO0VnQ25DRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO09BQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhDbzVISjtBUXozSEU7RUFDRTtFQUNBO0FSMjNISjtBd0N0NUhJO0VBQ0U7RWhDRUo7RUFDQTtFQUNBLHdCZ0NIb0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeEMwNUhOO0F3Q3Y1SEk7RUFFRTtFQUNBO0F4Q3c1SE47QXdDdDVITTtFQUNFO0F4Q3c1SFI7QXdDcDVISTtFQUNFO0VBQ0E7QXhDczVITjtBd0NsNUhFO0VBQ0U7QXhDbzVISjtBd0NqNUhFO0VBQ0U7QXhDbTVISjtBd0NoNUhFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhDazVISjtBd0NoNUhJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeENrNUhOO0F3Qy80SEk7RUFDRTtBeENpNUhOO0F3Qzk0SEk7RUFDRTtBeENnNUhOO0F5Qzc5SEE7RUFDRTtFQUNBO0F6Qys5SEY7QWN2N0dJO0UyQjFpQko7SUFLSTtJQUNBO0V6Q2crSEY7QUFDRjtBYzc3R0k7RTJCMWlCSjtJQVVJO0V6Q2krSEY7QUFDRjtBeUMvOUhFO0VqQzRCQTtFaUMxQkU7RUFDQTtBekNpK0hKO0FRdDhIRTtFQUNFO0VBQ0E7QVJ3OEhKO0F5Q2wrSEU7RUFDRTtBekNvK0hKO0F5Q2orSEU7RUFDRTtBekNtK0hKO0F5Q2grSEU7RUFDRTtBekNrK0hKO0EwQzkvSEE7RUFDRTtFQUNBO0VBQ0E7QTFDZ2dJRjtBY3o5R0k7RTRCMWlCSjtJQU1JO0lBQ0E7RTFDaWdJRjtBQUNGO0EwQy8vSEU7RUFDRTtBMUNpZ0lKO0FjbCtHSTtFNEJoaUJGO0lBSUk7RTFDa2dJSjtBQUNGO0EwQ2hnSUk7RUFDRTtBMUNrZ0lOO0FjMStHSTtFNEJ6aEJBO0lBSUk7RTFDbWdJTjtBQUNGO0EyQ2poSUU7RUFDRTtBM0NtaElKO0EyQ2poSUk7RUFDRTtBM0NtaElOO0E0QzloSUU7RUFDRTtBNUNnaUlKO0E2Q2ppSUU7RUFDRTtFQUNBO09BQUE7RUFDQTtFQUNBO0VBQ0E7QTdDbWlJSjtBNkNqaUlJO0VBQ0U7RUFDQTtFQUNBO0E3Q21pSU47QTZDaGlJSTtFQUNFO0VBQ0E7QTdDa2lJTjtBNkMvaElJOztFQUVFO0E3Q2lpSU47QTZDN2hJTTtFQUNFO0VBQ0E7QTdDK2hJUjtBOEN6aklFO0VBQ0U7QTlDMmpJSjtBOEN4aklFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E5QzBqSUo7QWMzaEhJO0VnQ3JpQkY7SUFTSTtJQUNBO0U5QzJqSUo7QUFDRjtBY2ppSEk7RWdDcmlCRjtJQWNJO0lBQ0E7RTlDNGpJSjtBQUNGO0E4Q3pqSU07RUFDRTtBOUMyaklSO0E4Q3ZqSUk7RXRDWUY7QVI4aUlGO0FRNWlJRTtFQUNFO0VBQ0E7QVI4aUlKO0E4QzNqSU07RUFDRTtBOUM2aklSO0E4QzFqSU07RUFDRTtBOUM0aklSO0E4QzFqSVE7RUFDRTtBOUM0aklWO0E4Q3pqSU07RUFDRTtBOUMyaklSO0E4Q3ZqSUk7RUFDRTtFQUNBO0VBQ0E7QTlDeWpJTjtBOEN2aklNOztFQUVFO0E5Q3lqSVI7QThDdGpJTTtFQUNFO0E5Q3dqSVI7QStDbm5JQTtFQUNFO0VBQ0E7QS9DcW5JRjtBK0NubklFO0VBQ0U7QS9DcW5JSjtBK0NsbklFO0VBQ0U7QS9Db25JSjtBY25sSEk7RWlDMWlCSjtJQWFJO0lBQ0E7RS9Db25JRjtBQUNGO0FjemxISTtFaUMxaUJKO0lBa0JJO0UvQ3FuSUY7QUFDRjtBK0NqbklFO0VBQ0U7QS9DbW5JSjtBZ0Qzb0lBO0VBQ0U7RUFDQTtFQUNBO0FoRDZvSUY7QWN0bUhJO0VrQzFpQko7SUFNSTtFaEQ4b0lGO0FBQ0Y7QWdENW9JRTtFeENnQ0E7QVIrbUlGO0FRN21JRTtFQUNFO0VBQ0E7QVIrbUlKO0FnRGhwSUk7RUFDRTtBaERrcElOO0FnRDlvSUU7RUFDRTtFQUNBO0FoRGdwSUo7QWdENW9JSTtFQUNFO0VBQ0E7RUFDQTtBaEQ4b0lOO0FpRHhxSUE7RUFDRTtBakQwcUlGO0Fjam9ISTtFbUMxaUJKO0lBSUk7RWpEMnFJRjtBQUNGO0FrRGhySUE7RUFDRTtBbERrcklGO0FrRGhySUU7RUFDRTtBbERrcklKO0FtRHRySUE7RUFDRTtFQUNBO09BQUE7QW5Ed3JJRjtBbURqcklFO0VBQ0U7QW5EbXJJSjtBbURqcklJO0VBQ0U7QW5EbXJJTjtBbUQ5cUlJO0VBQ0U7QW5EZ3JJTjtBbUQ1cUlFO0UzQ2tCQTtFMkNoQkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkQ4cUlKO0FRbnFJRTtFQUNFO0VBQ0E7QVJxcUlKO0FjeHFISTtFcUNuaEJGO0lBWUk7SUFDQTtFbkRtcklKO0FBQ0Y7QW1EanJJSTtFQUNFO0VBQ0E7QW5EbXJJTjtBbURocklJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuRGtySU47QWNoc0hJO0VxQzlmQTtJQWVJO0VuRG1ySU47QUFDRjtBbUQvcUlNO0VBQ0U7QW5EaXJJUjtBb0RqdklFO0VBQ0U7RUFDQTtFQUNBO0FwRG12SUo7QW9EanZJSTtFQUNFO0FwRG12SU47QXFEMXZJQTtFQUNFO0VBQ0E7QXJENHZJRjtBY3B0SEk7RXVDMWlCSjtJQUtJO0VyRDZ2SUY7QUFDRjtBY3p0SEk7RXVDMWlCSjtJQVNJO0VyRDh2SUY7QUFDRjtBcUQ1dklFO0VBQ0U7RUFDQTtFQUNBO0FyRDh2SUo7QXFEM3ZJRTtFQUNFO0VBQ0E7QXJENnZJSjtBc0RoeElFO0VBQ0U7QXREa3hJSjtBYzF1SEk7RXdDemlCRjtJQUlJO0V0RG14SUo7QUFDRjtBc0RoeElFO0VBQ0U7RUFDQTtFQUNBO0VBRUE7QXREaXhJSjtBY3J2SEk7RXdDamlCRjtJQVFJO0lBQ0E7SUFFQTtFdERpeElKO0FBQ0Y7QWM1dkhJO0V3Q2ppQkY7SUFlSTtFdERreElKO0FBQ0Y7QXVEMXlJRTtFQUNFO0VBQ0E7RUFDQTtBdkQ0eUlKO0F1RDF5SUk7RUFDRTtBdkQ0eUlOO0F1RHp5SUk7RUFDRTtBdkQyeUlOO0F1RHh5SVE7RUFDRTtBdkQweUlWO0F3RHh6SUU7RUFDRTtFQUNBO0F4RDB6SUo7QXlEN3pJQTtFQUNFO0VBQ0E7QXpEK3pJRjtBY3Z4SEk7RTJDMWlCSjtJQUtJO0lBQ0E7RXpEZzBJRjtBQUNGO0FjN3hISTtFMkMxaUJKO0lBVUk7RXpEaTBJRjtBQUNGO0F5RC96SUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXpEaTBJSjtBYzF5SEk7RTJDN2hCRjtJQVNJO0V6RGswSUo7QUFDRjtBeURoMElJO0VBQ0U7RUFDQTtBekRrMElOO0EwRDcxSUE7RUFDRTtBMUQrMUlGO0EwRDcxSUU7RUFDRTtBMUQrMUlKO0FjenpISTtFNEN2aUJGO0lBSUk7RTFEZzJJSjtBQUNGO0EwRDkxSUk7RUFDRTtBMURnMklOO0FjajBISTtFNENoaUJBO0lBSUk7RTFEaTJJTjtBQUNGO0EwRHQwSUU7RUFDRTtFQUNBO0ExRHcwSUo7QWMxMEhJO0U0Q2hnQkY7SUFLSTtFMUR5MElKO0FBQ0Y7QTJEeDNJRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBM0QwM0lKO0FjdjFISTtFNkN6aUJGO0lBU0k7RTNEMjNJSjtBQUNGO0EyRHozSUk7RW5ENEJGO0FSZzJJRjtBUTkxSUU7RUFDRTtFQUNBO0FSZzJJSjtBMkQ3M0lNO0VBQ0U7QTNEKzNJUjtBMkQzM0lJO0VBQ0U7QTNENjNJTjtBMkQzM0lNO0VBQ0U7QTNENjNJUjtBNERyNUlFO0VBQ0U7QTVEdTVJSjtBNERyNUlFO0VBQ0U7RUFDQTtFQUNBO0E1RHU1SUo7QTZEMzVJTTtFQUNFO0E3RDY1SVI7QTZEejVJSTs7RUFFRTtBN0QyNUlOO0FjMzNISTtFK0NsaUJBOztJQUtJO0U3RDY1SU47QUFDRjtBNkQxNUlJOzs7Ozs7RUFNRTtFQUNBO0VBQ0E7QTdENDVJTjtBNkR6NUlJOztFQUVFO0VBQ0E7RUFDQTtFQUNBO0E3RDI1SU47QTZEeDVJSTtFQUNFO0VBQ0E7RXJER0o7RVNuQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpCNDdJRjtBUWg2SUU7RUFDRTtFQUNBO0FSazZJSjtBaUI5N0lFO0VBQ0U7RUFDQTtFQUNBO0FqQmc4SUo7QWlCNzdJRTtFQUNFO0FqQis3SUo7QTZEOTZJTTtFNUNaSjtFQUNBO0U0Q2NNO0VBQ0E7QTdEZzdJUjtBaUI3N0lFO0VBQ0U7QWpCKzdJSjtBOEQvOUlFO0VBQ0U7QTlEaStJSjtBZ0VsK0lFO0VBQ0U7RUFDQTtFQUNBO0FoRW8rSUo7QWM5N0hJO0VrRHppQkY7SUFLSTtFaEVzK0lKO0FBQ0Y7QWdFcitJSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FoRXUrSU47QWdFdCtJTTtFQUNFO0FoRXcrSVI7QWdFdCtJTTtFQUNFO0FoRXcrSVI7QWdFdCtJTTtFQUNFO0FoRXcrSVI7QWdFcitJUTtFQUNFO0FoRXUrSVY7QWdFbCtJRTtFQUNFO0VBQ0U7QWhFbytJTjtBZ0VuK0lNO0VBQ0U7RUFDQTtFeERPTjtFU25DQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakJtZ0pGO0FRditJRTtFQUNFO0VBQ0E7QVJ5K0lKO0FpQnJnSkU7RUFDRTtFQUNBO0VBQ0E7QWpCdWdKSjtBaUJwZ0pFO0VBQ0U7QWpCc2dKSjtBZ0V6L0lRO0UvQ1JOO0VBQ0E7QWpCb2dKRjtBaUJsZ0pFO0VBQ0U7QWpCb2dKSjs7QWlFNWlKQTs7Ozs7RUFBQTtBQU9BOzs7Ozs7O0VBT0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpFOGlKRjtBaUU1aUpFOzs7Ozs7O0VBQ0U7QWpFb2pKSjs7QWlFaGpKQTs7O0VBR0U7QWpFbWpKRjs7QWlFaGpKQTs7RUFFRTtBakVtakpGOztBaUVoakpBO0VBQ0U7S0FBQTtVQUFBO0FqRW1qSkY7O0FrRTdsSkE7Ozs7O0VBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtBbEUrbEpGO0FjeGpJSTtFb0QxaUJKO0lBTUk7SUFDQTtJQUNBO0VsRWdtSkY7QUFDRjtBa0U5bEpFO0VBQ0U7RUFDQTtFQUNBO0FsRWdtSko7QWNwa0lJO0VvRC9oQkY7SUFNSTtJQUNBO0lBQ0E7RWxFaW1KSjtBQUNGO0FjM2tJSTtFb0QvaEJGO0lBWUk7SUFDQTtJQUNBO0VsRWttSko7RWtFaG1KSTtJQUNFO0VsRWttSk47RWtFL2xKSTtJQUNFO0VsRWltSk47QUFDRjtBY3hsSUk7RW9EL2hCRjtJQTBCSTtFbEVpbUpKO0FBQ0Y7QWtFL2xKSTtFQUNFO0VBQ0E7RUFDQTtBbEVpbUpOO0FjbG1JSTtFb0RsZ0JBO0lBTUk7RWxFa21KTjtBQUNGO0Fjdm1JSTtFb0RsZ0JBO0lBVUk7SUFDQTtFbEVtbUpOO0FBQ0Y7QWM3bUlJO0VvRGhmRTs7O0lBR0U7SUFDQTtFbEVnbUpOO0FBQ0Y7QWNybklJO0VvRGxmRjtJQVVJO0VsRWltSko7QUFDRjtBYzFuSUk7RW9EcGVGO0lBRUk7SUFDQTtJQUNBO0VsRWdtSko7QUFDRjtBY2pvSUk7RW9EcGVGO0lBUUk7SUFDQTtJQUNBO0VsRWltSko7QUFDRjtBY3hvSUk7RW9EdmRBO0lBRUk7RWxFaW1KTjtBQUNGO0FrRS9sSk07RUFDRTtBbEVpbUpSO0FrRS9sSlE7RUFDRTtBbEVpbUpWO0FrRTNsSk07RUFDRTtBbEU2bEpSO0FrRXhsSkU7RUFDRTtBbEUwbEpKO0FrRXZsSkU7RTFEbkVBO0UwRHFFRTtBbEV5bEpKO0FRNXBKRTtFQUNFO0VBQ0E7QVI4cEpKO0FrRTFsSkU7RUFDRTtFQUNBO0FsRTRsSko7QWNycUlJO0VvRHpiRjtJQUtJO0VsRTZsSko7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RjtJQWdESTtFOUUrc0xGO0U4RTlzTEU7OztJQUdFO0U5RWd0TEo7RThFOXNMRTs7SUFFRTtFOUVndExKO0FBQ0Y7QThFN3NMRTtFQUNFO0E5RStzTEo7QThFNXNMRTtFQUNFO0E5RThzTEo7QThFM3NMRTtFQUNFO0E5RTZzTEo7QThFMXNMRTtFQUNFO0E5RTRzTEo7QThFenNMRTtFQUNFO0E5RTJzTEo7QThFeHNMRTtFQUNFO0VBQ0E7QTlFMHNMSjtBOEV2c0xFO0VBQ0U7QTlFeXNMSjtBOEV0c0xFO0VBQ0U7QTlFd3NMSjtBOEVwc0xFOztFQUVFO0E5RXNzTEo7QThFL3JMRTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlFaXNMSjtBOEU5ckxFO0VBQ0U7QTlFZ3NMSjtBOEU3ckxFO0VBQ0U7QTlFK3JMSjtBOEU1ckxFOztFQUVFO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7QTlFNnJMSjtBOEUxckxFO0VBQ0U7RUFDQTtBOUU0ckxKO0E4RXpyTEU7RUFDRTtFQUNBO0E5RTJyTEo7QThFbnJMRTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtBOUVxckxKO0E4RWxyTEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlFb3JMSjtBOEVqckxFO0VBQ0U7QTlFbXJMSjtBOEVockxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E5RWtyTEo7QThFaHJMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUVrckxKO0E4RWhyTEU7RUFDRTtFQUNBO0E5RWtyTEo7QThFaHJMRTtFQUNFO0VBQ0E7QTlFa3JMSjtBOEVockxFO0VBQ0U7QTlFa3JMSjtBOEUvcUxFO0VBQ0U7QTlFaXJMSjtBOEUvcUxFO0VBQ0U7RUFDQTtFQUNBO0E5RWlyTEo7QThFN3FMRTtFQUNFO0E5RStxTEo7QThFNXFMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUU4cUxKO0E4RTNxTEU7RUFDRTtFQUNBO0E5RTZxTEo7QThFM3FMRTtFQUNFO0E5RTZxTEo7QThFMXFMRTtFQUNFO0VBQ0E7QTlFNHFMSjtBOEV6cUxFO0VBQ0U7RUFDQTtBOUUycUxKO0E4RXhxTEU7RUFDRTtBOUUwcUxKO0E4RWxxTEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlFb3FMSjtBOEU1cExFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUU4cExKO0E4RTVwTEU7RUFDRTtFQUNBO0E5RThwTEo7QThFM3BMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlFNnBMSjtBOEUxcExFO0VBQ0U7QTlFNHBMSjtBOEV4cExFO0VBQ0U7QTlFMHBMSjtBOEVocExFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUVrcExKO0E4RS9vTEU7RUFDRTtFQUNBO0VBQ0E7QTlFaXBMSjtBOEU5b0xFO0VBQ0U7QTlFZ3BMSjtBOEU5b0xFO0VBQ0U7RUFDQTtBOUVncExKO0E4RTdvTEU7RUFDRTtBOUUrb0xKO0E4RTdvTEU7RUFDRTtFQUNBO0E5RStvTEo7QThFN29MRTtFQUNFO0VBRUE7QTlFOG9MSjtBOEUzb0xFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUU2b0xKO0E4RTFvTEU7RUFDRTs7O0tBQUE7RUFJQTtFQUNBO0VBQ0E7RUFDQTtBOUU0b0xKO0E4RXpvTEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOUUyb0xKO0E4RXhvTEU7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RTlFMG9MSjtBQUNGO0E4RXZvTEU7RUFDRTtJQUNFO0lBQ0E7RTlFeW9MSjtFOEV2b0xFO0lBQ0U7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RTtFQUNBO0VBQ0E7QXhGbXlPRixDIiwiZmlsZSI6ImNzcy9nbG9iYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIFBob3RvU3dpcGUgbWFpbiBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovXG4vKlxuXHRTdHlsZXMgZm9yIGJhc2ljIFBob3RvU3dpcGUgZnVuY3Rpb25hbGl0eSAoc2xpZGluZyBhcmVhLCBvcGVuL2Nsb3NlIHRyYW5zaXRpb25zKVxuKi9cbi8qIHBzd3AgPSBwaG90b3N3aXBlICovXG4ucHN3cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHotaW5kZXg6IDE1MDA7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogY3JlYXRlIHNlcGFyYXRlIGxheWVyLCB0byBhdm9pZCBwYWludCBvbiB3aW5kb3cub25zY3JvbGwgaW4gd2Via2l0L2JsaW5rICovXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdXRsaW5lOiBub25lOyB9XG4gIC5wc3dwICoge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLnBzd3AgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogc3R5bGUgaXMgYWRkZWQgd2hlbiBKUyBvcHRpb24gc2hvd0hpZGVPcGFjaXR5IGlzIHNldCB0byB0cnVlICovXG4ucHN3cC0tYW5pbWF0ZV9vcGFjaXR5IHtcbiAgLyogMC4wMDEsIGJlY2F1c2Ugb3BhY2l0eTowIGRvZXNuJ3QgdHJpZ2dlciBQYWludCBhY3Rpb24sIHdoaWNoIGNhdXNlcyBsYWcgYXQgc3RhcnQgb2YgdHJhbnNpdGlvbiAqL1xuICBvcGFjaXR5OiAwLjAwMTtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7IH1cblxuLnBzd3AtLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucHN3cC0tem9vbS1hbGxvd2VkIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbiAgY3Vyc29yOiAtbW96LXpvb20taW47XG4gIGN1cnNvcjogem9vbS1pbjsgfVxuXG4ucHN3cC0tem9vbWVkLWluIC5wc3dwX19pbWcge1xuICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiAtbW96LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjsgfVxuXG4ucHN3cC0tZHJhZ2dpbmcgLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiAtbW96LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nOyB9XG5cbi8qXG5cdEJhY2tncm91bmQgaXMgYWRkZWQgYXMgYSBzZXBhcmF0ZSBlbGVtZW50LlxuXHRBcyBhbmltYXRpbmcgb3BhY2l0eSBpcyBtdWNoIGZhc3RlciB0aGFuIGFuaW1hdGluZyByZ2JhKCkgYmFja2dyb3VuZC1jb2xvci5cbiovXG4ucHN3cF9fYmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7IH1cblxuLnBzd3BfX3Njcm9sbC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX196b29tLXdyYXAge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi8qIFByZXZlbnQgc2VsZWN0aW9uIGFuZCB0YXAgaGlnaGxpZ2h0cyAqL1xuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX19pbWcge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG5cbi5wc3dwX196b29tLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwX19iZyB7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1hbmltYXRlZC1pbiAucHN3cF9fYmcsXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5wc3dwX19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2ltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi8qXG5cdHN0cmV0Y2hlZCB0aHVtYm5haWwgb3IgZGl2IHBsYWNlaG9sZGVyIGVsZW1lbnQgKHNlZSBiZWxvdylcblx0c3R5bGUgaXMgYWRkZWQgdG8gYXZvaWQgZmxpY2tlcmluZyBpbiB3ZWJraXQvYmxpbmsgd2hlbiBsYXllcnMgb3ZlcmxhcFxuKi9cbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcblx0ZGl2IGVsZW1lbnQgdGhhdCBtYXRjaGVzIHNpemUgb2YgbGFyZ2UgaW1hZ2Vcblx0bGFyZ2UgaW1hZ2UgbG9hZHMgb24gdG9wIG9mIGl0XG4qL1xuLnBzd3BfX2ltZy0tcGxhY2Vob2xkZXItLWJsYW5rIHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4ucHN3cC0taWUgLnBzd3BfX2ltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7IH1cblxuLypcblx0RXJyb3IgbWVzc2FnZSBhcHBlYXJzIHdoZW4gaW1hZ2UgaXMgbm90IGxvYWRlZFxuXHQoSlMgb3B0aW9uIGVycm9yTXNnIGNvbnRyb2xzIG1hcmt1cClcbiovXG4ucHN3cF9fZXJyb3ItbXNnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbWFyZ2luLXRvcDogLThweDtcbiAgY29sb3I6ICNDQ0M7IH1cblxuLnBzd3BfX2Vycm9yLW1zZyBhIHtcbiAgY29sb3I6ICNDQ0M7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTWFpbiAtIEdsb2JhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRGVwZW5kZW5jaWVzXG4gKi9cbkBpbXBvcnQgJ35pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnfm5vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzJztcbkBpbXBvcnQgJ35yZWZsZXgtZ3JpZC9zY3NzL3JlZmxleC5zY3NzJztcbkBpbXBvcnQgJ35waG90b3N3aXBlL2Rpc3QvcGhvdG9zd2lwZS5jc3MnO1xuXG4vKipcbiAqIEhlbHBlcnNcbiAqL1xuQGltcG9ydCAnaGVscGVycy9mb2N1cy12aXNpYmxlJztcbkBpbXBvcnQgJ2hlbHBlcnMvZm9udC1zbW9vdGhpbmcnO1xuQGltcG9ydCAnaGVscGVycy9taXhpbnMnO1xuQGltcG9ydCAnaGVscGVycy90YWJsZSc7XG5cbi8qKlxuICogQ29uZmlnXG4gKi9cbkBpbXBvcnQgJ2NvbmZpZy9mb250cyc7XG5AaW1wb3J0ICdjb25maWcvdmFycyc7XG5cbi8qKlxuICogQmFzZVxuICovXG5AaW1wb3J0ICdiYXNlL2RlZmF1bHRzJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL21haW4nO1xuQGltcG9ydCAnYmFzZS9hbmltYXRpb25zJztcblxuLyoqXG4qIEF0b21zXG4qL1xuQGltcG9ydCAnYXRvbXMvYnV0dG9ucyc7XG5AaW1wb3J0ICdhdG9tcy9pbWFnZS1jcmVkaXQnO1xuQGltcG9ydCAnYXRvbXMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnYXRvbXMvbG9hZGVyJztcbkBpbXBvcnQgJ2F0b21zL2RhdGUtcGlja2VyJztcbkBpbXBvcnQgJ2F0b21zL3BhZ2VyJztcbkBpbXBvcnQgJ2F0b21zL2NvbHMnO1xuQGltcG9ydCAnYXRvbXMvY2FwdGlvbic7XG5AaW1wb3J0ICdhdG9tcy9hdXRvLWdyaWQnO1xuQGltcG9ydCAnYXRvbXMvbGlua3MnO1xuQGltcG9ydCAnYXRvbXMvc2lkZWJhcic7XG5AaW1wb3J0ICdhdG9tcy90YWcnO1xuQGltcG9ydCAnYXRvbXMvc3RpY2t5JztcbkBpbXBvcnQgJ2F0b21zL2NhbmNlbGxlZCc7XG5AaW1wb3J0ICdhdG9tcy9za2lwLWxpbmsnO1xuQGltcG9ydCAnYXRvbXMvbGlzdGluZyc7XG5AaW1wb3J0ICdhdG9tcy9jaXRlJztcbkBpbXBvcnQgJ2F0b21zL2JhY2stdG9wJztcblxuLyoqXG4gKiBNb2xlY3VsZXNcbiAqL1xuQGltcG9ydCAnbW9sZWN1bGVzL2VtbXNnJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9ibG9ja3MnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2Zvcm1zJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9uYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2Jhbm5lcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc29jaWFsLWxpbmtzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9zdWJuYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2ludHJvJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9hbmNob3ItbmF2JztcbkBpbXBvcnQgJ21vbGVjdWxlcy9jb3Vyc2UtZGV0YWlscyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvcGVvcGxlLXNpZGViYXInO1xuQGltcG9ydCAnbW9sZWN1bGVzL2hvbWVwYWdlLWJhbm5lcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZXZlbnQtc2lkZWJhcic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc2VhcmNoLWZvcm0nO1xuQGltcG9ydCAnbW9sZWN1bGVzL3BlcmZvcm1hbmNlcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvcGhvdG9zd2lwZSc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvdG9nZ2xlLXN1Ym5hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc3VibmF2LWNvbnRhaW5lcic7XG5cbi8qKlxuICogT3JnYW5pc2ltc1xuICovXG5AaW1wb3J0ICdvcmdhbmlzbXMvaGVhZGVyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9mb290ZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL3NlYXJjaC1yZXN1bHRzJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy90ZWFzZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL2xpc3RpbmcnO1xuQGltcG9ydCAnb3JnYW5pc21zL3Blb3BsZSc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvbW9kYWwnO1xuXG4vKipcbiogVGVtcGxhdGVzXG4qL1xuQGltcG9ydCAndGVtcGxhdGVzL3Bvc3QnO1xuIiwiLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IHZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBZb3UgY2FuIG9wdGlvbmFsbHkgbmFtZXNwYWNlIHJlZmxleCBjbGFzc2VzIHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggb3RoZXIgY3NzIGZyYW1ld29ya3Ncbi8vIGUuZy4gc2V0dGluZyAkcmVmbGV4LXByZWZpeCBhcyBcInJlZmxleC1cIiBoZXJlIHdvdWxkIGNhdXNlIGNvbC1zbS02IHRvIGJlY29tZSByZWZsZXgtY29sLXNtLTZcbi8vIEV4YW1wbGU6ICRyZWZsZXgtcHJlZml4OiByZWZsZXgtO1xuLy8gQnkgZGVmYXVsdCB0aGlzIGlzIGFuIGVtcHR5IHN0cmluZ1xuJHJlZmxleC1wcmVmaXg6IG51bGwgIWRlZmF1bHQ7XG5cblxuLy8gTGVnYWN5IHN1cHBvcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBhZGRzIGEgbG90IG9mIGNzcyBwcm9wZXJ0aWUgdG8gc3VwcG9ydCBvbGRlciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgZmxleGJveCBsYXlvdXQuXG4vLyBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGlzIGFzIGEgcHVyZWx5IGZsZXhib3ggZ3JpZCB3aXRob3V0IGxlZ2FjeSBzdXBwb3J0IHRoZW4gc2V0IHRoaXMgdG8gZmFsc2VcbiRsZWdhY3ktc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBoYXMgc29tZSBnZW5lcmljIHZpc2liaWxpdHkgY2xhc3NlcyB0byBoaWRlIGVsZW1lbnRzIGF0IGRpZmZlcmVudCBicmVha3BvaW50cy5cbi8vIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhlc2UgdGhlbiBzZXQgdGhpcyB0byBmYWxzZVxuJHZpc2liaWxpdHktaGVscGVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHJlZmxleC1jb2x1bW5zOiAxMiAhZGVmYXVsdDsgLy8gbnVtYmVyIG9mIGNvbHVtbnNcblxuLy8gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgteHM6IDU3NnB4ICFkZWZhdWx0O1xuJHJlZmxleC1zbTogNzY4cHggIWRlZmF1bHQ7XG4kcmVmbGV4LW1kOiA5OTJweCAhZGVmYXVsdDtcbiRyZWZsZXgtbGc6IDEyMDBweCAhZGVmYXVsdDtcbiRyZWZsZXgteGxnOiAxNjAwcHggIWRlZmF1bHQ7XG5cbiRyZWZsZXgteHhzLW1heDogKCRyZWZsZXgteHMgLSAxKTtcbiRyZWZsZXgteHMtbWF4OiAoJHJlZmxleC1zbSAtIDEpO1xuJHJlZmxleC1zbS1tYXg6ICgkcmVmbGV4LW1kIC0gMSk7XG4kcmVmbGV4LW1kLW1heDogKCRyZWZsZXgtbGcgLSAxKTtcbiRyZWZsZXgtbGctbWF4OiAoJHJlZmxleC14bGcgLSAxKTtcblxuJHJlZmxleC1icmVha3BvaW50czogKFxuICB4eHM6IDBweCxcbiAgeHM6ICRyZWZsZXgteHMsXG4gIHNtOiAkcmVmbGV4LXNtLFxuICBtZDogJHJlZmxleC1tZCxcbiAgbGc6ICRyZWZsZXgtbGcsXG4gIHhsZzogJHJlZmxleC14bGdcbik7XG5cbi8vIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgtZ3JpZC1zcGFjaW5nOiAxNXB4ICFkZWZhdWx0O1xuXG4vLyBDdXN0b20gcHJvcGVydGllcyBzbyBvdGhlcnMgY2FuIHJlZmVyZW5jZSB0aGUgdmFyaWFibGVzLlxuOnJvb3Qge1xuICAtLXJlZmxleC1jb2x1bW5zOiAjeyAkcmVmbGV4LWNvbHVtbnMgfTtcbiAgLS1yZWZsZXgtZ3JpZC1zcGFjaW5nOiAjeyAkcmVmbGV4LWdyaWQtc3BhY2luZyB9O1xuICAtLXJlZmxleC14czogI3sgJHJlZmxleC14cyB9O1xuICAtLXJlZmxleC1zbTogI3sgJHJlZmxleC1zbSB9O1xuICAtLXJlZmxleC1tZDogI3sgJHJlZmxleC1tZCB9O1xuICAtLXJlZmxleC1sZzogI3sgJHJlZmxleC1sZyB9O1xuICAtLXJlZmxleC14bGc6ICN7ICRyZWZsZXgteGxnIH07XG4gIC0tcmVmbGV4LXh4cy1tYXg6ICN7ICRyZWZsZXgteHhzLW1heCB9O1xuICAtLXJlZmxleC14cy1tYXg6ICN7ICRyZWZsZXgteHMtbWF4IH07XG4gIC0tcmVmbGV4LXNtLW1heDogI3sgJHJlZmxleC1zbS1tYXggfTtcbiAgLS1yZWZsZXgtbWQtbWF4OiAjeyAkcmVmbGV4LW1kLW1heCB9O1xuICAtLXJlZmxleC1sZy1tYXg6ICN7ICRyZWZsZXgtbGctbWF4IH07XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGNvbnRhaW5lcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lcixcbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lci1mdWxsIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJHJlZmxleC1ncmlkLXNwYWNpbmcgKiAyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkcmVmbGV4LWdyaWQtc3BhY2luZyAqIDIpO1xuXG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Z3JpZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgteHM7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXNtO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1tZDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtbGc7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC14bGc7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1mbGV4KCk7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgc2V0dXAtd2hpdGVzcGFjZSgpO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSB3aGVuIGxpc3RzIGFyZSB1c2VkIGFzIGEgZ3JpZFxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wgZGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbltjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6ICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSBncmlkcyBuZXN0ZWQgaW4gY29sdW1uc1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEsIDEsIGF1dG8pO1xuICAgICAgICBtYXJnaW46IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICB9XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHpvb206IDE7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14cy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLXNtLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtbWQtKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1sZy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14bGctKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wtYXV0b1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWF1dG8ge1xuICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC14cy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1zbS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1tZC1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1sZy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wteGxnLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb3JkZXIgaGVscGVycyBnZW5lcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBtYWtlLW9yZGVyLWhlbHBlcnMoKTtcblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy14cycpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXNtJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctbWQnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1sZycpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy14bGcnKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBvZmZzZXQgaGVscGVycyBnZW5lcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBtYWtlLW9mZnNldC1oZWxwZXJzKCk7XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy14cycpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICctc20nKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxLCAnLW1kJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1sZycpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxLCAnLXhsZycpO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBncmlkIGdlbmVyYXRpb24gbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gbWFrZS1yZWZsZXgtZ3JpZCgkY2xhc3MpIHtcbiAgICBAaW5jbHVkZSBsb29wLXJlZmxleC1jb2x1bW5zKCRyZWZsZXgtY29sdW1ucywgJGNsYXNzLCB3aWR0aCk7XG59XG5cbkBtaXhpbiBjYWxjLXJlZmxleC1jb2x1bW5zKCRpbmRleCwgJGNsYXNzLCAkdHlwZSkge1xuICAgIEBpZiAkdHlwZSA9PSB3aWR0aCBhbmQgJGluZGV4ID4gMCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fSN7JGNsYXNzfSN7JGluZGV4fSB7XG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgoJGluZGV4IC8gJHJlZmxleC1jb2x1bW5zKSk7XG4gICAgICAgICAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAgICAgICAgICp3aWR0aDogcGVyY2VudGFnZSgoJGluZGV4IC8gJHJlZmxleC1jb2x1bW5zKSkgLSAuMTsgLy8gaWU3IGNzcyBoYWNrXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsb29wLXJlZmxleC1jb2x1bW5zKCRpbmRleCwgJGNsYXNzLCAkdHlwZSkge1xuICAgIEBpZiAkaW5kZXggPj0gMCB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGMtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKTtcbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1yZWZsZXgtY29sdW1ucygoJGluZGV4IC0gMSksICRjbGFzcywgJHR5cGUpO1xuICAgIH1cbn1cblxuLy8gZGVmYXVsdHMgZm9yIGF1dG8gY29sc1xuQG1peGluIHNldHVwLWF1dG8tY29scygpIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEsIDAsIDBweCk7IC8vIGEgdW5pdCBvbiBsYXN0IHZhbHVlIGlzIHJlcXVpcmVkIGJ5IElFMTAtMTFcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGlubGluZS1ibG9jayBzcGVjaWZpYyBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBzZXR1cC13aGl0ZXNwYWNlKCkge1xuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtLjMxZW07XG4gICAgICAgICpsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IC0uNDNlbTtcbiAgICB9XG59XG5cbkBtaXhpbiByZXNldC13aGl0ZXNwYWNlKCkge1xuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cbn1cblxuQG1peGluIHJlc2V0LXRleHQtYWxpZ24oKSB7XG4gICAgLy9cbiAgICAvLyBXZSB3YW50IHRvIHJlc2V0IGFueSB0ZXh0LWFsaWduIHByb3BlcnRpZXMgc2V0IGJ5IHRoZSBncmlkXG4gICAgLy8gKHJlcXVpcmVkIGZvciB0aGUgaW5saW5lLWJsb2NrIGZhbGxiYWNrKVxuICAgIC8vIGJ1dCB3ZSBkb24ndCB3YW50IHRvIG92ZXJyaWRlIGFueSB0ZXh0LWFsaWduIHByb3BlcnRpZXNcbiAgICAvLyBzZXQgb24gdGhlIGluZGl2aWR1YWwgY29sLXggZWxlbWVudFxuICAgIC8vIG9yIG9uIGFueSBvZiBpdCdzIGNoaWxkIGVsZW1lbnRzXG4gICAgLy9cbiAgICAvLyAxKSBzZXQgdG8gbGVmdCBieSBkZWZhdWx0ICh3b3JrcyBldmVyeXdoZXJlKVxuICAgIC8vIDIpIHNldCB0byBzdGFydCAocmVzcGVjdHMgcmlnaHQgdG8gbGVmdCB0ZXh0KVxuICAgIC8vXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogc3RhcnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ24tbGFzdDogc3RhcnQ7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvcmRlciBjbGFzcyBnZW5lcmF0aW9uIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIG9yZGVyKCRvcmRlcjogMCkge1xuICAgIC1tcy1mbGV4LW9yZGVyOiAkb3JkZXI7XG4gICAgLXdlYmtpdC1vcmRlcjogJG9yZGVyO1xuICAgIG9yZGVyOiAkb3JkZXI7XG59XG5cbkBtaXhpbiBtYWtlLW9yZGVyLWhlbHBlcnMoKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyk7XG59XG5cbkBtaXhpbiBsb29wLW9yZGVyLWhlbHBlcnMoJGluZGV4LCAkYnJlYWtwb2ludDogbnVsbCkge1xuICAgIEBpZiAkaW5kZXggPj0gMCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fW9yZGVyI3skYnJlYWtwb2ludH0tI3skaW5kZXh9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9yZGVyKCRpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCgkaW5kZXggLSAxKSwgJGJyZWFrcG9pbnQpO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9mZnNldCBjbGFzcyBnZW5lcmF0aW9uIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBvZmZzZXQoJGluZGV4OiAwKSB7XG4gICAgJG9mZnNldDogKCRpbmRleCAvICRyZWZsZXgtY29sdW1ucyk7XG4gICAgLy8gY29udmVydCB0byBwZXJjZW50YWdlIG9ubHkgaWYgbm90IHplcm9cbiAgICBAaWYgJG9mZnNldCAhPSAwIHtcbiAgICAgICAgJG9mZnNldDogcGVyY2VudGFnZSgkb2Zmc2V0KTtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6ICRvZmZzZXQ7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgKm1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkaW5kZXggLyAkcmVmbGV4LWNvbHVtbnMpKSAtIC4xOyAvLyBpZTcgY3NzIGhhY2tcbiAgICB9XG59XG5cbkBtaXhpbiBtYWtlLW9mZnNldC1oZWxwZXJzKCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSk7XG59XG5cbkBtaXhpbiBsb29wLW9mZnNldC1oZWxwZXJzKCRpbmRleCwgJGJyZWFrcG9pbnQ6IG51bGwpIHtcbiAgICBAaWYgJGluZGV4ID4gMCBhbmQgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fW9mZnNldCN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvZmZzZXQoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCgkaW5kZXggLSAxKSwgJGJyZWFrcG9pbnQpO1xuICAgIH0gQGVsc2UgaWYgJGluZGV4ID49IDAgYW5kICRicmVha3BvaW50ICE9IG51bGwge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vZmZzZXQjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb2Zmc2V0KCRpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggbW9kaWZpZXIgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gZGlzcGxheVxuLy8gLS0tXG5cbkBtaXhpbiBkaXNwbGF5LWZsZXgoKSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vXG4vLyBmbGV4XG4vLyAtLS1cblxuQG1peGluIGZsZXgoJGdyb3c6IDAsICRzaHJpbms6IDEsICRiYXNpczogYXV0bykge1xuICAgIEBpZiAkYmFzaXMgPT0gMCB7XG4gICAgICAgIC1tcy1mbGV4OiAkZ3JvdyAkc2hyaW5rIGF1dG87IC8vaWUxMCBuZWVkcyBhdXRvXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbiAgICB9XG5cbiAgICAtd2Via2l0LWZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xuICAgIGZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xufVxuXG5AbWl4aW4gZmxleC1ncm93KCRncm93OjEpIHtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogJGdyb3c7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6ICRncm93O1xuICAgIGZsZXgtZ3JvdzogJGdyb3c7XG59XG5cbkBtaXhpbiBmbGV4LXNocmluaygkc2hyaW5rOjEpIHtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogJHNocmluaztcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAkc2hyaW5rO1xuICAgIGZsZXgtc2hyaW5rOiAkc2hyaW5rO1xufVxuXG5AbWl4aW4gZmxleC1iYXNpcygkYmFzaXM6YXV0bykge1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkYmFzaXM7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAkYmFzaXM7XG4gICAgZmxleC1iYXNpczogJGJhc2lzO1xufVxuXG5AbWl4aW4gZmxleC1mbG93KCRkaXJlY3Rpb246IHJvdywgJHdyYXA6IG5vd3JhcCkge1xuICAgIC1tcy1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbiAgICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHdyYXA6IHdyYXApIHtcbiAgICAtbXMtZmxleC13cmFwOiAkd3JhcDtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogJHdyYXA7XG4gICAgZmxleC13cmFwOiAkd3JhcDtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuXG4vL1xuLy8gYWxpZ25cbi8vIC0tLVxuXG5AbWl4aW4gYWxpZ24taXRlbXMoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24taXRlbXMoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkYWxpZ247XG4gICAgYWxpZ24taXRlbXM6ICRhbGlnbjtcbn1cblxuQG1peGluIGFsaWduLXNlbGYoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24tc2VsZigkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogJGFsaWduO1xuICAgIGFsaWduLXNlbGY6ICRhbGlnbjtcbn1cblxuQG1peGluIGFsaWduLWNvbnRlbnQoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24tY29udGVudCgkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogJGFsaWduO1xuICAgIGFsaWduLWNvbnRlbnQ6ICRhbGlnbjtcbn1cblxuLy9cbi8vIGllMTAgc3ludGF4IGZvciBhbGlnblxuLy8gLS0tXG5cbkBtaXhpbiBtcy1hbGlnbi1pdGVtcygkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjtcbiAgICB9XG59XG5cbkBtaXhpbiBtcy1hbGlnbi1zZWxmKCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJGFsaWduO1xuICAgIH1cbn1cblxuQG1peGluIG1zLWFsaWduLWNvbnRlbnQoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnc3BhY2UtYmV0d2Vlbicge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ3NwYWNlLWFyb3VuZCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogJGFsaWduO1xuICAgIH1cbn1cblxuLy9cbi8vIGp1c3RpZnktY29udGVudFxuLy9cbi8vIFVzZXMgXCJ0ZXh0LWFsaWduXCIgZm9yIHRoZSBmYWxsYmFjayBpbmxpbmUtYmxvY2sgZ3JpZFxuLy8gXCJ0ZXh0LWFsaWduXCIgaXMgZ2xvYmFsbHkgc3VwcG9ydGVkIGFuZCB3b3JrcyBvbiBhbGwgcm93cyBleGNlcHQgdGhlIGxhc3Rcbi8vIFwidGV4dC1hbGlnbi1sYXN0XCIsIHdoZXJlIHN1cHBvcnRlZCwgaGFuZGxlcyB0aGUgbGFzdCBsaW5lIChhbmQsIGhhcHBpbHksIGdyaWRzIHdpdGggb25seSBvbmUgcm93KVxuLy8gLS0tXG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LWVuZCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4oKSB7XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5kKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpYmxlIFZpc2liaWxpdHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiByZXNwb25zaXZlLXZpc2liaWxpdHktaGVscGVycygpIHtcbiAgICBAaWYgJHZpc2liaWxpdHktaGVscGVycyA9PSB0cnVlIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgeHhzIGFuZCB4bGcgYnJlYWtwb2ludHMgZGlmZmVyZW50bHlcbiAgICAgICAgJG1hcC1yZWZsZXgtYnJlYWtwb2ludHM6IG1hcC1yZW1vdmUoJHJlZmxleC1icmVha3BvaW50cywgeHhzLCB4bGcpO1xuXG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi14eHMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCd4eHMnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRicCBpbiBtYXAta2V5cygkbWFwLXJlZmxleC1icmVha3BvaW50cykge1xuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfS11cCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuXG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9LWRvd24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4teGxnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgneGxnJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy8gKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkcmVmbGV4LWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSkgLT4gbWRcbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnRzOiAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IG1kXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQpKSAtPiBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAgICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vLyA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiA3NjhweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG1pbiAhPTAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjEuXG4vLyA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiA5OTFweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAgIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gMSwgbnVsbCk7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgICBAaWYgJG1pbiB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtYXgge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb3RoZXIgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICAtbW96LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICBib3gtc2l6aW5nOiAkYm94bW9kZWw7XG59XG4iLCJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBncmlkIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZsZXgtd3JhcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9d3JhcCB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1uby13cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAobm93cmFwKTtcblxuICAgIC8vIFRoaXMgaXMgbW9zdGx5IG5lZWRlZCB0byBzdG9wIHRoZSBncmlkIGNvbnRlbnRzIG92ZXJmbG93aW5nIGluIHRoZVxuICAgIC8vIGllMTAgaW1wbGVtZW50YXRpb24gb2YgZmxleGJveCBidXQgaXQgY2FuJ3QgaHVydCBpbiBvdGhlciBicm93c2Vyc1xuICAgIC8vIGFzIGl0IGlzIHRoZSBkZXNpcmVkIGJlaGF2aW91ciBvZiBub24gd3JhcHBpbmcgZmxleCBpdGVtc1xuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXNocmluaygxKTtcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fXdyYXAtcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXAtcmV2ZXJzZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBmbGV4LWRpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdy1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3ctcmV2ZXJzZSk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uLXJldmVyc2UpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24gaXRlbXMgKGNyb3NzIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tYmFzZWxpbmUge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGJhc2VsaW5lKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduIGNvbnRlbnQgKGNyb3NzIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChmbGV4LWVuZCk7XG5cbiAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGNlbnRlcik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3BhY2UtYmV0d2VlbiB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zcGFjZS1hcm91bmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3BhY2UtYXJvdW5kKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduLXNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtc3RyZXRjaCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihzdHJldGNoKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoZmxleC1lbmQpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihiYXNlbGluZSk7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8ganVzdGlmeS1jb250ZW50IChtYWluIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LWVuZCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LWVuZCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IHJpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiByaWdodDtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LWNlbnRlciB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LWNlbnRlcigpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXNwYWNlLWJldHdlZW4ge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3BhY2UtYXJvdW5kIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5kKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb3NtZXRpYyBncmlkIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUmVtb3ZlcyBpbnRlcm5hbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1ncmlkLWJsZWVkIHtcbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb2wgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlcyBhIGNvbHVtbiBlbGVtZW50IGludG8gYSBmbGV4Ym94IGNvbHVtblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWdyaWQge1xuICAgIEBpbmNsdWRlIGRpc3BsYXktZmxleCgpO1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG5cbiAgICAmLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG4gICAgfVxufVxuXG4vLyBSZW1vdmVzIGludGVybmFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gUmVtb3ZlcyBob3Jpem9udGFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZC14IHtcbiAgICBwYWRkaW5nOiAkcmVmbGV4LWdyaWQtc3BhY2luZyAwO1xufVxuXG4vLyBSZW1vdmVzIHZlcnRpY2FsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZC15IHtcbiAgICBwYWRkaW5nOiAwICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29sLWdyaWQgY29udGVudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWZsZXgtaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBmbGV4KDAsIDAsIGF1dG8pO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgKndpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZmxleC1mb290ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eS1oZWxwZXJzKCk7XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEZvY3VzIFZpc2libGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIEZvY3VzIFZpc2libGVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZvY3VzLXZpc2libGVcbiAqIE92ZXJyaWRlIGJhc2UgZm9jdXMgc3R5bGVzIGZvciBtb3VzZSBhbmQgdG91Y2ggaW50ZXJhY3Rpb25zXG4gKi9cbkBtaXhpbiBmb2N1cy12aXNpYmxlKCkge1xuICAuanMtZm9jdXMtdmlzaWJsZSAmIHtcbiAgICAmOm5vdCguZm9jdXMtdmlzaWJsZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIEZvbnQgU21vb3RoaW5nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqIFxuICogRm9udCBTbW9vdGhpbmdcbiAqIEVuYWJsZXMgZm9udCBzbW9vdGhpbmcgZm9yIGNhcGFibGUgYnJvd3NlcnMuXG4gKiBPcHRpb25hbGx5IGZvcmNlIGZvbnQtc21vb3RoaW5nIG9uIG5vbi1yZXRpbmEgZGV2aWNlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gJGZvcmNlIFtmYWxzZV1cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuQG1peGluIGZvbnQtc21vb3RoaW5nKCRmb3JjZTogZmFsc2UpIHtcbiAgQGlmICRmb3JjZSA9PSB0cnVlIHtcbiAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgICAgLW1vei1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBHbG9iYWwgbWl4aW5zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLy8gUmVzZXQgPGxpPiBlbGVtZW50c1xuQG1peGluIGxpLXJlc2V0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi8vIFJlbW92ZSB0ZXh0IGZyb20gZWxlbWVudHNcbkBtaXhpbiBybS10ZXh0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG5cbi8vIEJhY2tncm91bmQgaW1hZ2VzXG5AbWl4aW4gYmctaW1nKCRzaXplKSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogJHNpemU7XG59XG5cbi8vIElFIDkrIG9ubHlcbkBtaXhpbiBpZSgkcHJvcGVydHksICR2YWx1ZSkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSBhbmQgKG1pbi1yZXNvbHV0aW9uOiArNzJkcGkpIHtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcbiAgfVxufVxuXG5AbWl4aW4gYnRuUmVzZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWl4aW4gbGlua1Jlc2V0IHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gVGFibGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFJlc3BvbnNpdmUgVGFibGVcbiAqIENyZWF0ZXMgYSByZXNwb25zaXZlIHRhYmxlXG4gKiBBY2NlcHRzIGEgbGlzdCBvZiBoZWFkZXJzIHRvIHJlcGxhY2UgbWFpbiBcbiAqIHRhYmxlIGhlYWRlcnMgb24gbW9iaWxlLlxuICogQHBhcmFtIHttYXB9ICRoZWFkZXJzXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbkBtaXhpbiByZXNwb25zaXZlLXRhYmxlKCRoZWFkZXJzOiAoKSkge1xuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRhYmxlLFxuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRoLFxuICB0ZCxcbiAgdHIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIHRyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTk5OTlweDtcbiAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsYWNrO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgIHBhZGRpbmc6IHNpemUoMzBweCkgMDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUoMTZweCk7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVhZGVyc1xuICAgKi9cbiAgQGVhY2ggJGhlYWRlciBpbiAkaGVhZGVycyB7XG4gICAgJGk6IGluZGV4KCRoZWFkZXJzLCAkaGVhZGVyKTtcblxuICAgIHRkOm50aC1vZi10eXBlKCN7JGl9KTo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBjb250ZW50OiAkaGVhZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIENvbmZpZyAtIEZvbnRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLy8gQGltcG9ydCB1cmwoJ2h0dHBzOi8vZmFzdC5mb250cy5uZXQvbHQvMS5jc3M/YXBpVHlwZT1jc3MmYz0wM2FkYjM1ZC0xYmEzLTRiMGUtOGExOS02ZjFmNzRjNmU5OGMmZm9udGlkcz03MjEyODEsNzIxMjY2LDcyMTI2MycpO1xuLy8gQGltcG9ydCB1cmwoXCJodHRwczovL2Zhc3QuZm9udHMubmV0L2x0LzEuY3NzP2FwaVR5cGU9Y3NzJmM9OGU4M2NiMTEtODgxYi00ODUxLWJmYTYtNjM1Mzc5ZjFhZmJiJmZvbnRpZHM9NjA4MDgzNiw2MDgwODUyLDYwODA4NzBcIik7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBSZWd1bGFyJztcbiAgc3JjOnVybChcIi4uL2ZvbnQvNjA4MDgzNi8wOWFiMDYyNi1iYjQ1LTQ2NTAtYWNjOC0wMTgyZDY5M2RmMDIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gIHVybChcIi4uL2ZvbnQvNjA4MDgzNi8xMzk3ZTgxMi05MzA3LTQyNjctOGE5OS04YTIyZWE3YzY5Yzcud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBJdGFsaWMnO1xuICBzcmM6dXJsKFwiLi4vZm9udC82MDgwOTk0L2I5YzViODM5LWRiNTYtNDQxOS04ZmNiLTZhYjY2MWJhYmIxZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi4vZm9udC82MDgwOTk0Lzk1MGI1Nzg4LWNmZGQtNDhkOS05ZDhhLTUyMzU2MDA0MmM1Yi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgV29ybGQgVzA1IEJvbGQnO1xuICBzcmM6dXJsKFwiLi4vZm9udC82MDgwODcwLzA3NGRmYzcwLTY0MzYtNGY0Yi05MzE0LWQxZTY5Mjg3YWVhMS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi4vZm9udC82MDgwODcwLzBjNGNlZmNhLTNiNzgtNDRiOS04YjJiLTY2N2JiYWJmZmUzOC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyTmV4dExUVzAxLVJlZ3VsYXInO1xuICBzcmM6IHVybCgnLi4vZm9udC8yY2Q1NTU0Ni1lYzAwLTRhZjktYWVjYS00YTNjZDE4NmRhNTMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250LzFlOTg5MmMwLTY5MjctNDQxMi05ODc0LTFiODI4MDFiYTQ3YS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuLy8gNzIxMjY2XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXJOZXh0TFRXMDEtSXRhbGljJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvNzM3N2RiZTYtZjExYS00YTA1LWIzM2MtYmM4Y2UxZjYwZjg0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC85MmI2NmRiZC00MjAxLTRhYzItYTYwNS00ZDRmZmM4NzA1Y2Mud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbi8vIDcyMTI4MVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIE5leHQgTFQgVzAxIEJvbGQnO1xuICBzcmM6IHVybCgnLi4vZm9udC8xNGM3MzcxMy1lNGRmLTRkYmEtOTMzYi0wNTdmZWVhYzhkZDEud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi9mb250L2I4ZTkwNmExLWY1ZTgtNGJmMS04ZTgwLTgyYzY0NmNhNGQ1Zi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR1QgQW1lcmljYSc7XG4gIHNyYzogdXJsKCcuLi9mb250L0dULUFtZXJpY2EtQ29tcHJlc3NlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC9HVC1BbWVyaWNhLUNvbXByZXNzZWQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBDb25maWcgLSBWYXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuOnJvb3Qge1xuICAvLyBDb2xvdXJzXG4gIC0tYy1wcmltYXJ5OiAjMGUzMDM0O1xuICAtLWMtc2Vjb25kYXJ5OiB2YXIoLS1jLXBpbmspO1xuICAtLWMtd2hpdGU6ICNmZmZmZmY7XG4gIC0tYy1ncmV5TGlnaHQ6ICNmM2YyZjE7XG4gIC0tYy1ncmV5OiAjZDBjY2M3O1xuICAtLWMtdGVhbDogIzAwYzdiMTtcbiAgLS1jLXllbGxvdzogI2ZmYjgxYztcbiAgLS1jLXB1cnBsZTogI2FmOGVlMDtcbiAgLS1jLXBpbms6ICNmZmFiYmE7XG4gIC0tYy1tYWdlbnRhOiAjZWI0MjY0O1xuICAtLWMtcmVkOiAjRDUyMzRBO1xuICAtLWMtYmx1ZTogI2I0ZTRmNTtcbiAgLS1jLW1hcm9vbjogIzY0MGEzMjtcbiAgLS1jLWJsYWNrOiAjMDAwO1xuXG4gIC8vIFR5cG9ncmFwaHlcbiAgLS1mb250Qm9keTogJ0F2ZW5pck5leHRMVFcwMS1SZWd1bGFyJywgJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBSZWd1bGFyJyxcbiAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsXG4gICAgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250Qm9sZDogJ0F2ZW5pciBOZXh0IExUIFcwMSBCb2xkJywgJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBCb2xkJyxcbiAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsXG4gICAgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250SXRhbGljOiAnQXZlbmlyTmV4dExUVzAxLUl0YWxpYycsICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgSXRhbGljJyxcbiAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsXG4gICAgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250VGl0bGU6ICdHVCBBbWVyaWNhJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLFxuICAgIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udFNpemU6IDExMi41JTtcbiAgLS1mb250U21hbGw6IDcwJTtcbiAgLS1saW5lSGVpZ2h0OiAxLjU7XG5cbiAgLy8gTGF5b3V0XG4gIC0tY29udGFpbmVyV2lkdGg6IDE4MDJweDtcbiAgLS1jb2xzLTM6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpICogMC4yNSk7XG4gIC0tY29scy02OiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuNSk7XG4gIC0tY29scy04OiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuNjY2NjY2NjY2Nyk7XG4gIC0tY29scy0xMDogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgKiAwLjgzMzMzMzMzMzMzMyk7XG4gIC0tdmFyaWFibGVIZWlnaHRMaW1pdDogY2xhbXAoMjB2aCwgNjB2dywgNjB2aCk7XG4gIC0taGVpZ2h0TGltaXQ6IDcwMHB4O1xuICAtLWd1dHRlcjogMTVweDtcblxuICAvLyBBbmltYXRpb25zXG4gIC0tZWFzaW5nOiBjdWJpYy1iZXppZXIoMC44MywgMCwgMC4xNywgMSk7XG4gIC0tdHJhbnNpdGlvbjogMC4zcyB2YXIoLS1lYXNpbmcpO1xuXG4gIC0tbGluZUxlbmd0aDogNjAwcHg7XG59XG5cbi8qKlxuKiBCcmVha3BvaW50cyBmb3IgQGluY2x1ZGUtbWVkaWFcbiovXG4kYnJlYWtwb2ludHM6IChcbiAgeHhzOiAzNjBweCxcbiAgeHM6IDU3NnB4LFxuICBzbTogNzY4cHgsXG4gIG1kOiA5OTJweCxcbiAgbGc6IDEyMDBweCxcbiAgeGxnOiAxNjAwcHgsXG4pO1xuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBEZWZhdWx0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5ncmlkIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG59XG5cbi5jb250YWluZXItZnVsbCA+IC5ncmlkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG51bC5tZW51LFxudWwucGxhaW4ge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbn1cblxuaW1nIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAmLmxhenkge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICBAbWVkaWEgbm90IGFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAwLjAwMWRwY20pIHtcbiAgICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJlc3RyaWN0ZWQtaGVpZ2h0IHtcbiAgbWF4LWhlaWdodDogdmFyKC0taGVpZ2h0TGltaXQpO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbmFbZGF0YS1nYWxsZXJ5XSB7XG4gIGN1cnNvcjogem9vbS1pbjtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLy8gS2VlcCB2aWRlbyByYXRpbyBmb3IgZmx1aWQgd2lkdGhzXG4udmlkZW8tY29udGFpbmVyLFxuLm1lZGlhLXZpbWVvLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBwYWRkaW5nLXRvcDogMjVweDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGlmcmFtZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG4vLyBWaWRlbyBDYXB0aW9uc1xuLnZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52aWRlby1jYXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogLjVyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbn1cblxuLy8gU291bmNsb3VkXG4ubWVkaWEtc291bmRjbG91ZC1hdWRpbyBpZnJhbWUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG59XG5cbmZpZ2NhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogOTAlO1xuICAvLyBmb250LWZhbWlseTogdmFyKC0tZm9udEl0YWxpYyk7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIFR5cG9ncmFwaHlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5cbi8qKlxuICogSGVhZGluZ1xuICovXG5oMSxcbi5oMSxcbmgyLFxuLmgyLFxuaDMsXG4uaDMsXG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuaDEsXG4uaDEge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDV2dywgNXJlbSk7XG59XG5cbmgyLFxuLmgyIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS44cmVtLCAyLjV2dywgM3JlbSk7XG59XG5cbmgzLFxuLmgzIHtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgZm9udC1zaXplOiBjbGFtcCgxLjI1cmVtLCAyLjV2dywgMS41cmVtKTtcbn1cblxuaDQsXG4uaDQsXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC1zaXplOiAxcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cbi5jZW50ZXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICYtcGFkZGluZy1ib3R0b20ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4uYm9yZGVyIHtcbiAgJi1ib3R0b20ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gIH1cbiAgJi10b3Age1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJhZ3JhcGhzXG4gKi9cbnAge1xuICBtYXJnaW46IDAgMCAxLjVyZW07XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBMaXN0c1xuICovXG51bCxcbm9sIHtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi8qKlxuICogTGlua3NcbiAqL1xuYSxcbi5saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gJjo6YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6ICcnO1xuICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy8gICBib3R0b206IDA7XG4gIC8vICAgbGVmdDogMDtcbiAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgLy8gICBoZWlnaHQ6IDJweDtcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLy8gICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICAvLyAgIHdpZHRoOiAxMDAlO1xuICAvLyB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xuXG4gICAgLy8gJjo6YWZ0ZXIge1xuICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIC8vIH1cbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBkYXNoZWQgY3VycmVudENvbG9yO1xuXG4gICAgQGluY2x1ZGUgZm9jdXMtdmlzaWJsZSgpIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG5cbiAgJi5uby1saW5rIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuXG4ubm8tY2xpY2sge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG59XG5cbi8qKlxuICogQnV0dG9uc1xuICovXG5idXR0b24ge1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAzcHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcblxuICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIElubGluZVxuICovXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xufVxuXG5lbSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250SXRhbGljKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5zcGFuIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDkwJTtcbn1cblxuaHIge1xuICBib3JkZXI6IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gTWFpblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogU3R5bGVzXG4gKi9cbmh0bWwsXG5ib2R5IHtcbiAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmcodHJ1ZSk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZUhlaWdodCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAtLWZvbnRTaXplOiAxMDAlO1xuICB9XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gQW5pbWF0aW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEJ1dHRvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICoqL1xuXG5AbWl4aW4gYnRuIHtcbiAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG5CZyk7XG4gIGNvbG9yOiB2YXIoLS1idG5Db2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idG5CZyk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIHdpZHRoOiAyMHB4O1xuICB9XG5cbiAgcGF0aCB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBidG4taG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1idG5Db2xvdXIpO1xuXG4gIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTdHlsZXNcbiAqKi9cblxuLmEtYnRuIHtcbiAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICBAaW5jbHVkZSBidG47XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgYnRuLWhvdmVyO1xuICB9XG5cbiAgJi0teWVsIHtcbiAgICAtLWJ0bkJnOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAmLS1ibHVlIHtcbiAgICAtLWJ0bkJnOiB2YXIoLS1jLWJsdWUpO1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJi0td2gge1xuICAgIC0tYnRuQmc6IHZhcigtLWMtd2hpdGUpO1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJi0td2lkZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5cbiAgJi0tZnVsbFdpZHRoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJi0tbmFycm93IHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIH1cblxuICAmLS1zbSB7XG4gICAgLS1idG5CZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAtLWJ0bkJnOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIH1cbiAgfVxuXG4gICYtLWhvbGxvdyB7XG4gICAgLS1idG5CZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJi0taWNvbkxlZnQge1xuICAgIHN2ZyB7XG4gICAgICBtYXJnaW46IDAgMTBweCAwIDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBzdmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTVweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0td2hpdGUge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBpbmspO1xuICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcGluayk7XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogM3B4IGRhc2hlZCB2YXIoLS1idG5CZyk7XG5cbiAgICBAaW5jbHVkZSBmb2N1cy12aXNpYmxlKCkge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEltYWdlIGNyZWRpdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uYS1pbWFnZS1jcmVkaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLy8gQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgLy8gICBib3R0b206IDAuNXJlbTtcbiAgLy8gICByaWdodDogMXJlbTtcbiAgLy8gfVxuXG4gICZfX2ljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gIH1cblxuICAmX19jb3B5IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMXJlbSAzcmVtIDFyZW0gMXJlbTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgd2lkdGg6IDk1dnc7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgLmEtaW1hZ2UtY3JlZGl0X19pY29uIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgLmEtaW1hZ2UtY3JlZGl0X19jb3B5IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgei1pbmRleDogMjE7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBCcmVhZGNydW1ic1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWJyZWFkY3J1bWJzIHtcbiAgcGFkZGluZzogMC41cmVtIDJyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxNXB4O1xuICB9XG5cbiAgJl9fZGl2aWRlciB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBMb2FkZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cbkBrZXlmcmFtZXMgbG9hZGVyQW5pbWF0aW9uIHtcbiAgMCUsXG4gIDEwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKC0xODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoLTE4MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAyNSUsXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA5MCUsXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWSgxODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbjpyb290IHtcbiAgLS1sb2FkZXJDb2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG59XG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtbG9hZGVyIHtcbiAgbWFyZ2luOiAyMHB4IGF1dG87XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKTtcblxuICAmLS13aGl0ZSB7XG4gICAgLS1sb2FkZXJDb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgfVxuXG4gICZfX2N1YmUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxvYWRlckNvbG91cik7XG4gICAgICBhbmltYXRpb246IGxvYWRlckFuaW1hdGlvbiAyLjRzIGluZmluaXRlIGxpbmVhciBib3RoO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2N1YmUtMiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooOTBkZWcpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcztcbiAgICB9XG4gIH1cblxuICAmX19jdWJlLTMge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGVaKDE4MGRlZyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjZzO1xuICAgIH1cbiAgfVxuXG4gICZfX2N1YmUtNCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZVooMjcwZGVnKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDAuOXM7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBEYXRlIHBpY2tlclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWRhdGUtcGlja2VyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODAlO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLkRheVBpY2tlci13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogdW5zZXQ7XG4gIH1cblxuICAuRGF5UGlja2VyLU5hdkJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMS41cmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAxLjI1cmVtO1xuICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICB0b3A6IDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyLU5hdkJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLS1wcmV2IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQtbGVmdC5zdmcnKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLS1uZXh0IHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQtcmlnaHQuc3ZnJykgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyLUNhcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgfVxuICB9XG5cbiAgYWJiciB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6IHZhUigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tc2VsZWN0ZWQ6bm90KC5EYXlQaWNrZXItRGF5LS1zdGFydCk6bm90KC5EYXlQaWNrZXItRGF5LS1lbmQpOm5vdCguRGF5UGlja2VyLURheS0tb3V0c2lkZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxNzEsIDE4NiwgMC40KSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cblxuICAuRGF5UGlja2VyLURheSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCUgIWltcG9ydGFudDtcblxuICAgICYtLXRvZGF5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcGluaykgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tc3RhcnQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tZW5kIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuRGF5UGlja2VyLURheS0tc2VsZWN0ZWQ6bm90KC5EYXlQaWNrZXItRGF5LS1kaXNhYmxlZCk6bm90KC5EYXlQaWNrZXItRGF5LS1vdXRzaWRlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBQYWdpbmF0aW9uXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtcGFnZXIge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAycmVtIDA7XG5cbiAgLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIHNwYW4sXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICB9XG5cbiAgYSB7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzcGFuLFxuICBhLnVuZGVmaW5lZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIG1hcmdpbjogMCAwLjVyZW07XG4gIH1cblxuICBwYXRoIHtcbiAgICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBDb2x1bW5zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY29scyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcblxuICAmLS14cyB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xzLTMpO1xuICB9XG5cbiAgJi0tc20ge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29scy02KTtcbiAgfVxuXG4gICYtLW1kIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtOCk7XG4gIH1cblxuICAmLS1mdWxsIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgfVxuXG4gICYtLWJnQ29sb3VyIHtcbiAgICBtYXJnaW46IDRyZW0gYXV0bztcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gSW1hZ2UgY2FwdGlvbnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1jYXB0aW9uIHtcbiAgQGluY2x1ZGUgYmctaW1nKDhweCk7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYXJyb3ctaGVhZC5zdmcnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAxMXB4O1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBBdXRvIGdyaWRcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1hdXRvLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChcbiAgICBhdXRvLWZpdCxcbiAgICBtaW5tYXgodmFyKC0tYXV0b0dyaWRNaW4sIDFmciksIHZhcigtLWF1dG9HcmlkTWF4LCAxZnIpKVxuICApO1xuICBnYXA6IHZhcigtLWF1dG9HcmlkR2FwLCAxcmVtKTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gTGlua3NcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1saW5rcyB7XG4gIG1hcmdpbjogMnJlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgfVxuXG4gIGEge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gU2lkZWJhclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXNpZGViYXIge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICBmb250LXNpemU6IDFyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cblxuICAmLS1ibG9jayB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuXG4gIC5hLXRhZyxcbiAgLmEtYnRuIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAxNXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAuc2luZ2xlLXBlb3BsZSAmIHtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFRhZ3NcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS10YWcge1xuICAtLXRhZ0JnOiB2YXIoLS1jLXByaW1hcnkpO1xuICAtLXRhZ0NvbG91cjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRhZ0JnKTtcbiAgY29sb3I6IHZhcigtLXRhZ0NvbG91cik7XG5cbiAgJi0teWVsIHtcbiAgICAtLXRhZ0JnOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgLS10YWdDb2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFN0aWNreVxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuOnJvb3Qge1xuICAtLXN0aWNreUxlZnQ6IDA7XG4gIC0tc3RpY2t5V2lkdGg6IDA7XG4gIC0tc3RpY2t5SGVpZ2h0OiAwO1xufVxuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXN0aWNreSB7XG4gICZbZGF0YS1zdGlja3k9J3RydWUnXSB7XG4gICAgLmEtYnRuIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IHZhcigtLXN0aWNreUxlZnQpO1xuICAgICAgd2lkdGg6IHZhcigtLXN0aWNreVdpZHRoKTtcbiAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmEtc3RpY2t5X19wbGFjZWhvbGRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAmX19wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiB2YXIoLS1zdGlja3lIZWlnaHQpO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBFdmVudCBjYW5jZWxsZWQgbWVzc2FnZVxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWNhbmNlbGxlZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIHAge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBTa2lwIGxpbmtcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1za2lwLWxpbmsge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtO1xuICB6LWluZGV4OiAxMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBMaXN0aW5nXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtbGlzdGluZyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMnJlbTtcbiAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXNtJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDJyZW07XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIENpdGF0aW9uc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWNpdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICB9XG5cbiAgJl9fbnVtYmVyIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxuXG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1heC13aWR0aDogMjMwcHg7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIC5hLWNpdGVfX251bWJlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgIH1cbiAgICAuYS1jaXRlX19kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBCYWNrIHRvIHRvcFxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWJhY2stdG9wIHtcbiAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiBjYWxjKDEwMCUgLSA2cmVtKTtcbiAgYm90dG9tOiAzcmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMzBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDRyZW0pO1xuICAgIGJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0yMHB4O1xuICB9XG5cbiAgJltkYXRhLXZpc2libGU9J3RydWUnXSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICB9XG5cbiAgJltkYXRhLXZpc2libGU9J2ZhbHNlJ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBhbmltYXRpb246IGZhZGVPdXQgMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xuICAgIH1cbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgbWF4LWhlaWdodDogMzBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVW4udGl0bGVkXHJcbiAqIE1vbGVjdWxlcyAtIEVtZXJnZW5jeSBNZXNzYWdlXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG4vKipcclxuICogQ29uZmlnXHJcbiAqKi9cclxuQGtleWZyYW1lcyBzbGlkZUluVXAge1xyXG4gIDAlIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XHJcbiAgfVxyXG4gIDgwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogU3R5bGluZ1xyXG4gKiovXHJcbi5tLWVtbXNnIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHBhZGRpbmc6IDAuMjVyZW0gMXJlbTtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWluLWhlaWdodDogNTJweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBwYWRkaW5nOiAxcmVtIDA7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gIH1cclxuXHJcbiAgJltkYXRhLXN0YXRlPSd2aXNpYmxlJ10ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgfVxyXG5cclxuICBoMyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbiAgICB3aWR0aDogODUlO1xyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICB3aWR0aDogODUlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XHJcbiAgICAgIG1heC13aWR0aDogODAlO1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICAmOmhvdmVyLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ0blJlc2V0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwLjI1cmVtO1xyXG4gICAgcmlnaHQ6IDJyZW07XHJcbiAgICBoZWlnaHQ6IDQycHg7XHJcbiAgICB3aWR0aDogNDJweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICByaWdodDogMXJlbTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xyXG4gICAgICByaWdodDogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICBzdmcge1xyXG4gICAgICB3aWR0aDogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICBwYXRoIHtcclxuICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xyXG4gICAgICB0cmFuc2l0aW9uOiBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcblxyXG4gICAgICBwYXRoIHtcclxuICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBNb2xlY3VsZXMgLSBFbnRpdGllc1xyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuYXJ0aWNsZSB7XHJcbiAgJiA+IC5tLWVudGl0eTpsYXN0LW9mLXR5cGUge1xyXG4gICAgJi5iZ0NvbG91ciB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IC0zMHB4O1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm0tZW50aXR5IHtcclxuICBtYXJnaW46IDAgMCBjbGFtcCgycmVtLCA1dncsIDVyZW0pO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAvLyAmX190ZXh0LmJnQ29sb3VyIHtcclxuICAvLyAgIG1hcmdpbjogMDtcclxuICAvLyB9XHJcblxyXG4gIGltZzpub3QoLnJlc3RyaWN0ZWQtaGVpZ2h0KSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgJi0tdG9wIHtcclxuICAgIG1hcmdpbi10b3A6IGNsYW1wKDJyZW0sIDV2dywgNXJlbSk7XHJcbiAgfVxyXG5cclxuICAmX19ib2R5LFxyXG4gICZfX3RleHQsXHJcbiAgJl9fYWNjb3JkaW9uIHtcclxuICAgIHVsIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcik7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgaGVpZ2h0OiA3cHg7XHJcbiAgICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OiAtMTVweDtcclxuICAgICAgICAgIHRvcDogMTJweDtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbXBvcnQgJy4vYmxvY2svaW50cm8nO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svaW1hZ2UnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svcXVvdGUnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svYWNjb3JkaW9uJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2dhbGxlcnknO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svaW1hZ2UtdGV4dCc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9kb3dubG9hZHMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZW1iZWQnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svdGFibGUnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svc2lnbnBvc3QnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svc2lnbnBvc3RzJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2xpbmtlZC1sb2dvcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay92aWRlbyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay95bWFsJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2JpZy1jdGEnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svcmVhZG1vcmUnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svcXVpY2tsaW5rcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9zcGVjaWFsLW9wdGlvbnMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svcGVvcGxlLXByb2ZpbGVzJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2xpc3RpbmcnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svbWluaWxpc3RpbmcnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZmVhdHVyZWQtY29udGVudCc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9jaXRhdGlvbnMnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svaW1hZ2V6b29tJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2Zvcm1zJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3NlYXJjaC1yZXN1bHRzJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2RpdmlkZXInO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svYnV5LW5vdy1idXR0b24nO1xyXG59XHJcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbnRyb1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ludHJvIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgJi1ibG9ja19pbWFnZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jYXB0aW9uSGVpZ2h0KTtcblxuICBmaWd1cmUge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tZ3V0dGVyKTtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIHdpZHRoOiB2YXIoLS1jYXB0aW9uV2lkdGgpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiB2YXIoLS1jYXB0aW9uT2Zmc2V0KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jYXB0aW9uUGFkZGluZyk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFF1b3Rlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cblxuQG1peGluIHJhdGluZygkc3RhcnMpIHtcbiAgJjpudGgtY2hpbGQoLW4gKyAjeyRzdGFyc30pIHtcbiAgICBwYXRoIHtcbiAgICAgIGZpbGw6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU3R5bGVzXG4gKi9cblxuJl9fcXVvdGUge1xuICAtLXN0YXJTaXplOiAxN3B4O1xuXG4gIC5zaG9ydC1xdW90ZSB7XG4gICAgLS1zdGFyU2l6ZTogMjRweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICB9XG5cbiAgY2l0ZSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbiAgLnJhdGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIC5zaG9ydC1xdW90ZSAmIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuXG4gICAgJl9fc3RhciB7XG4gICAgICB3aWR0aDogdmFyKC0tc3RhclNpemUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zdGFyU2l6ZSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJHN0YXJzIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgJi0tI3skc3RhcnN9IHtcbiAgICAgICAgLnJhdGluZ19fc3RhciB7XG4gICAgICAgICAgQGluY2x1ZGUgcmF0aW5nKCN7JHN0YXJzfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBBY2NvcmRpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cbiAgLmFjY29yZGlvbl9faGVhZGVyIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgQGluY2x1ZGUgYmctaW1nKGNvbnRhaW4pO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvcGx1cy5zdmcnKTtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgbWluLXdpZHRoOiAxMnB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgIC8vIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ106OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9jbG9zZS1hY2NvcmRpb24uc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgLmFjY29yZGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5qcy1hY2NvcmRpb25fX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmFjY29yZGlvbl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIGVhc2UsIG1heC1oZWlnaHQgMC4ycyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwZW07XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcblxuICAgICZbYXJpYS1oaWRkZW49J3RydWUnXSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycywgMHMsIDBzO1xuICAgIH1cblxuICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBHYWxsZXJ5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZ2FsbGVyeSB7XG4gIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw1MDBweCcpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAxMDBweDtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgfVxuXG4gIGZpZ3VyZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBmaWdjYXB0aW9uIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZSAmIFRleHRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4ubS1pbWFnZXRleHQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gIGdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gICYtLXJldmVyc2Uge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAubS1pbWFnZXRleHRfX2NvcHkge1xuICAgICAgb3JkZXI6IC0xO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBEb3dubG9hZHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4mX19kb3dubG9hZHMge1xuICBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBFbWJlZFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2VtYmVkIHtcbiAgaWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFRhYmxlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3RhYmxlIHtcbiAgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJvcmRlci1zcGFjaW5nOiAycHg7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiB1bnNldDtcblxuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwZTMwMzQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNGRiZTg7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIHZhcigtLWVhc2luZyk7XG4gICAgfVxuXG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgIH1cblxuICAgIHRyIHtcbiAgICAgICY6aG92ZXIgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGbGV4aWJsZSBzaWducG9zdFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NpZ25wb3N0IHtcbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuc2lnbnBvc3Qge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDNyZW07XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIGdhcDogMnJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtIGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYtLXJldmVyc2Uge1xuICAgICAgLnNpZ25wb3N0X19pbWFnZSB7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZmlndXJlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdhcDogMS41cmVtO1xuICAgICAganVzdGlmeS1pdGVtczogc3RhcnQ7XG5cbiAgICAgIGgyLFxuICAgICAgLmEtbGlua3Mge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLWxpbmVMZW5ndGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIHNpZ25wb3N0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NpZ25wb3N0cyB7XG4gIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXNtJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAtLWF1dG9HcmlkTWluOiA0OCU7XG4gIH1cbn1cblxuJl9fZXh0ZXJuYWxzaWducG9zdHMge1xuICAuby10ZWFzZXJfX3RodW1iIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTGlua2VkIGxvZ29zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fbGlua2VkbG9nb3Mge1xuICAtLWF1dG9HcmlkTWluOiAxMDBweDtcbiAgLS1hdXRvR3JpZE1heDogMzAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1heDogMWZyO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIH1cblxuICAuc2luZ2xlIHtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gVmlkZW9cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX192aWRlbyB7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz54eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMjMwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBZTUFMXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9feW1hbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQmlnIENUQVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2JpZ2N0YSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gIC8vIHBhZGRpbmc6IDNyZW0gMDtcblxuICAvLyBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAvLyAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAvLyB9XG5cbiAgLmEtbGlua3Mge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5oMiB7XG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMS41XG4gICAgfVxuICB9XG5cbiAgLmJpZy1idG4ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41cmVtIDNyZW0gMS41cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBpbmspO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM1JSk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI3JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBOZXdzIHRhZ3NcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19yZWFkbW9yZSB7XG4gIC50ZXJtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFF1aWNrIGxpbmtzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcXVpY2tsaW5rcyB7XG4gIG1hcmdpbi10b3A6IC01cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBtYXJnaW4tdG9wOiAtM3JlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgbWFyZ2luLXRvcDogLTJyZW07XG4gIH1cblxuICAuYS1jb2xzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS44cmVtO1xuICB9XG5cbiAgLmEtbGlua3Mge1xuICAgIG1hcmdpbjogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFNwZWNpYWwgT3B0aW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3NwZWNpYWwtb3B0aW9ucyB7XG4gIGhyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIC0tYXV0b0dyaWRNaW46IDIzJTtcbiAgICAtLWF1dG9HcmlkTWF4OiAxZnI7XG4gICAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICAgIG1hcmdpbi10b3A6IDNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLS1hdXRvR3JpZE1pbjogMjAwcHg7XG4gICAgICAtLWF1dG9HcmlkTWF4OiAxZnI7XG5cbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgLS1hdXRvR3JpZE1pbjogMTUwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gUGVvcGxlIHByb2ZpbGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcGVvcGxlcHJvZmlsZXMge1xuICAudGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmLS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBMaXN0aW5nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fbGlzdGluZyB7XG4gIC53aGF0cy1vbiB7XG4gICAgbWluLWhlaWdodDogNjB2aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIE1pbmkgbGlzdGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX21pbmlsaXN0aW5nIHtcbiAgLS1hdXRvR3JpZE1pbjogMjAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMzAlO1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICAtLWF1dG9HcmlkTWluOiA0OCU7XG4gIH1cblxuICAubGlzdGluZy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDFyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIC5hLWF1dG8tZ3JpZCB7XG4gIC8vICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZlYXR1cmVkIGNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19mZWF0dXJlZGNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIC5mZWF0dXJlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cblxuICAgICYtLW11bHRpIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgfVxuXG4gICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAgICAgLy8gJjo6YmVmb3JlIHtcbiAgICAgIC8vICAgY29udGVudDogJyc7XG4gICAgICAvLyAgIHdpZHRoOiAxMDAlO1xuICAgICAgLy8gICBoZWlnaHQ6IDgwJTtcbiAgICAgIC8vICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC8vICAgbGVmdDogMDtcbiAgICAgIC8vICAgYm90dG9tOiAwO1xuICAgICAgLy8gICB6LWluZGV4OiAwO1xuICAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICAvLyAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAvLyAgICAgaGVpZ2h0OiA5MCU7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cblxuICAgICAgLy8gLmEtY29scyB7XG4gICAgICAvLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIC0tYXV0b0dyaWRHYXA6IDJyZW07XG4gICAgLS1hdXRvR3JpZE1pbjogMjI1cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLS1hdXRvR3JpZE1pbjogMWZyO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIENpdGF0aW9uc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2NpdGF0aW9ucyB7XG4gIGNpdGUge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzBweCAxZnI7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcCBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlIFpvb21cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19pbWFnZXpvb20ge1xuICAuZGVlcHpvb21Db250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG4gIC5uYXZpZ2F0b3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAxMHB4IDAgMCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRm9ybXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19mb3JtIHtcbiAgLmdmb3JtX3dyYXBwZXIge1xuICAgIHVsIHtcbiAgICAgIGxpLmdmaWVsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgaW5wdXQ6bm90KFt0eXBlPSdyYWRpbyddKTpub3QoW3R5cGU9J2NoZWNrYm94J10pOm5vdChbdHlwZT0nc3VibWl0J10pOm5vdChbdHlwZT0nYnV0dG9uJ10pOm5vdChbdHlwZT0naW1hZ2UnXSk6bm90KFt0eXBlPSdmaWxlJ10pIHtcbiAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkX3N1YmxhYmVsX2Fib3ZlIC5naW5wdXRfY29tcGxleC5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9hYm92ZSBkaXZbY2xhc3MqPSdnZmllbGRfZGF0ZV8nXS5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9hYm92ZSBkaXZbY2xhc3MqPSdnZmllbGRfdGltZV8nXS5naW5wdXRfY29udGFpbmVyIGxhYmVsLFxuICAgIC5maWVsZF9zdWJsYWJlbF9iZWxvdyAuZ2lucHV0X2NvbXBsZXguZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYmVsb3cgZGl2W2NsYXNzKj0nZ2ZpZWxkX2RhdGVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYmVsb3cgZGl2W2NsYXNzKj0nZ2ZpZWxkX3RpbWVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCB7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgfVxuXG4gICAgdWwuZ2ZpZWxkX2NoZWNrYm94IGxpIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4gICAgdWwuZ2ZpZWxkX3JhZGlvIGxpIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICAgICAgaGVpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMjVweCAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgIH1cblxuICAgIC5nZm9ybV9idXR0b24ge1xuICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIEBpbmNsdWRlIGJ0bjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcblxuICAgICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgLS1idG5CZzogdmFyKC0tYy13aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU2VhcmNoIHJlc3VsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zZWFyY2gtcmVzdWx0cyB7XG4gIC5hLWxpc3Rpbmcge1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIERpdmlkZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19kaXZpZGVyIHtcblxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEJ1eSBOb3cgQnV0dG9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fYnV5bm93YnV0dG9uIHtcbiAgLnByb2R1Y3QtaWRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgICAmLS1pdGVtIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICY6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnNob3BpZnktYnV5X19wcm9kdWN0X192YXJpYW50LXNlbGVjdG9ycyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAuc2hvcGlmeS1idXlfX29wdGlvbi1zZWxlY3Qtd3JhcHBlciB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAuc2VlLWNvbGxlY3Rpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBhIHtcbiAgICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgLS1idG5Db2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICBAaW5jbHVkZSBidG47XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgQGluY2x1ZGUgYnRuLWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gIH1cbn1cblxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZvcm1zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW5wdXQsXG5pbnB1dFt0eXBlPSd0ZXh0J10sXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuaW5wdXRbdHlwZT0nZW1haWwnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgcmVzaXplOiBub25lO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4uZm9ybS1hY3Rpb25zIGlucHV0LFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vIC8vIENoZWNrYm94ZXNcbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpIHtcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAtOTk5OXB4O1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsLFxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsIHtcbi8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4vLyAgIGN1cnNvcjogcG9pbnRlcjtcbi8vICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4vLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgY29udGVudDogJyc7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vICAgdG9wOiAwO1xuLy8gICB3aWR0aDogMjBweDtcbi8vICAgaGVpZ2h0OiAyMHB4O1xuLy8gICBib3JkZXItcmFkaXVzOiAzcHg7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuLy8gICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgY29udGVudDogJ1xcMjcxNFxcMDAyMCc7XG4vLyAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRvcDogMXB4O1xuLy8gICBsZWZ0OiAzLjVweDtcbi8vICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMDtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbi8vIH1cbi8vIFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDE7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4vLyB9XG5cbi8vIFt0eXBlPSdjaGVja2JveCddOmZvY3VzICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4vLyB9XG5cbi8vIC8vIFJhZGlvc1xuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCxcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IC05OTk5cHg7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkICsgbGFiZWwsXG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpICsgbGFiZWwge1xuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgIHBhZGRpbmctbGVmdDogMjhweDtcbi8vICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gICBsaW5lLWhlaWdodDogMjBweDtcbi8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4vLyBbdHlwZT0ncmFkaW8nXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YmVmb3JlIHtcbi8vICAgY29udGVudDogJyc7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogMDtcbi8vICAgdG9wOiAwO1xuLy8gICB3aWR0aDogMjBweDtcbi8vICAgaGVpZ2h0OiAyMHB4O1xuLy8gICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuLy8gICBib3JkZXItcmFkaXVzOiAxMDAlO1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4vLyAgIGNvbnRlbnQ6ICcnO1xuLy8gICB3aWR0aDogMTJweDtcbi8vICAgaGVpZ2h0OiAxMnB4O1xuLy8gICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXByaW1hcnkpO1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIHRvcDogNHB4O1xuLy8gICBsZWZ0OiA0cHg7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4vLyAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDA7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBvcGFjaXR5OiAxO1xuLy8gICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Zm9jdXMgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBib3JkZXItY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbi8vIH1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBNYWluIG5hdlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5tLW5hdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogNXZ3O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAwO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG5cbiAgJl9fY29scyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMDtcbiAgICAgIHBhZGRpbmc6IDAgNXZ3O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgIHBhZGRpbmc6IDAgNXZ3O1xuICAgIH1cblxuICAgIC5jb2x1bW4ge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdhcDogM3JlbTtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIC5tLW5hdl9fc29jaWFsLFxuICAgICAgaDMsXG4gICAgICBwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1zbScsICc8bWQnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGdhcDogMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleSk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIH1cblxuICBhOm5vdCguYS1idG4pIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmEtYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICBtYXgtd2lkdGg6IDM1dnc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgbmF2IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgNHZ3LCAyLjVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgNHZ3LCAycmVtKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQmFubmVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cbi5tLW5vLWJhbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA0cmVtIDAgNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIHBhZGRpbmc6IDNyZW0gMCA0cmVtO1xuICB9XG5cbiAgJi0tbmV3cyB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICAmLS1wYWdlIHtcbiAgICBoMSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgfVxuXG4gIC5wcmUtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxufVxuXG4ubS1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCAwIGNsYW1wKDEuNXJlbSwgNHZ3LCAzcmVtKTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwaWN0dXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICYtLWRlZmF1bHQsXG4gICYtLWFsdCB7XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLS1kZWZhdWx0IHtcbiAgICBoZWlnaHQ6IGNsYW1wKDIwdmgsIDYwdncsIDYwdmgpO1xuICB9XG5cbiAgJi0tYWx0IHtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLmEtY29scyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm0tYmFubmVyX19pbm5lciB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tLWJhbm5lcl9fY29weSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMS41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDQuNzVyZW0pO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cblxuICAgIC5oNCB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hLWNvbHMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAmLS1jb2xsZWN0aW9uIHtcbiAgICBoZWlnaHQ6IHZhcigtLXZhcmlhYmxlSGVpZ2h0TGltaXQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGEsXG4gICAgcGljdHVyZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDFyZW07XG4gICAgICByaWdodDogMXJlbTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWxpc3Rpbmcge1xuICAgIG1hcmdpbjogY2xhbXAoMS41cmVtLCA1dncsIDJyZW0pIDAgY2xhbXAoMS41cmVtLCA1dncsIDNyZW0pO1xuXG4gICAgaDEge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgfVxuXG4gIC5wcmUtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxuXG4gIC5hLWltYWdlLWNyZWRpdCB7XG4gICAgei1pbmRleDogNTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFNvY2lhbCBsaW5rc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogU3R5bGluZ1xuICovXG4ubS1zb2NpYWwtbGlua3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCAxZnIpO1xuICBnYXA6IDFyZW07XG4gIC8vIGRpc3BsYXk6IGZsZXg7XG4gIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8vIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICB9XG5cbiAgLm0tbmF2X19zb2NpYWwgJiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAvLyBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGhlaWdodDogMzVweDtcbiAgICB3aWR0aDogMzVweDtcblxuICAgIC8vICY6bGFzdC1jaGlsZCB7XG4gICAgLy8gICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgLy8gfVxuXG4gICAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiAwLjJzIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgZmlsbDogdmFyKC0tYy13aGl0ZSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogdmFyKC0tYy1waW5rKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBTdWJuYXZcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5cbnVsLm0tc3VibmF2IHtcbiAgQGluY2x1ZGUgbGktcmVzZXQ7XG5cbiAgdWwge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgfVxuXG4gIC8vIC5jdXJyZW50X3BhZ2VfYW5jZXN0b3IgPiBhLFxuICAvLyAuY3VycmVudF9wYWdlX3BhcmVudCA+IGEge1xuICAvLyAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAvLyB9XG4gIC8vIFthcmlhLWN1cnJlbnQ9J3BhZ2UnXSB7XG4gIC8vICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8vIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xuXG4gICAgc3BhbiB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJlthcmlhLWN1cnJlbnRdLFxuICAgICY6aG92ZXIge1xuICAgICAgLy8gdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBjb2xvcjogdmFyKC0tYy1yZWQpO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYgPiBsaSA+IGEge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gSW50cm9cbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1pbnRybyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1jb250ZW50OiBlbmQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIHZhcigtLWNvbHMtNikpIG1pbm1heCgwLCB2YXIoLS1jb2xzLTMpKTtcbiAgbWFyZ2luLXRvcDogMnJlbTtcblxuICAmLS1hbHQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIHZhcigtLWNvbHMtMykpIG1pbm1heCgwLCB2YXIoLS1jb2xzLTYpKTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICB9XG5cbiAgJi0tY29sbGVjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgIC5hLWNvbHMtLXNtIHtcbiAgICAgIHBhZGRpbmctdG9wOiBjbGFtcCgxLjVyZW0sIDR2dywgM3JlbSk7XG5cbiAgICAgICYgPiAuYS1jb2xzLS1zbSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuYS1jb2xzLS14cyB7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtNik7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gQW5jaG9yIG5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWFuY2hvci1uYXYge1xuICAmX19saW5rcyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQW5jaG9yIHNjcm9sbCBwb3NpdGlvbiBvZmZzZXRcbnNwYW5bZGF0YS1hbmNob3JdIHtcbiAgbWFyZ2luLXRvcDogLTUwcHg7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gQ291cnNlIGRldGFpbHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1jb3Vyc2UtZGV0YWlscyB7XG4gIC0tYXV0b0dyaWRNaW46IDE1JTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcbiAgbWFyZ2luOiAzcmVtIDAgMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIG1hcmdpbjogMnJlbSAwIDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDE1MHB4O1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDFmcjtcbiAgfVxuXG4gICZfX2RldGFpbCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFBlb3BsZSBzaWRlYmFyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tcGVvcGxlLXNpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICZfX2xpbmtzIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1waG90b09mZnNldCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiAzMzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8MTYwMHB4Jykge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgQGluY2x1ZGUgYmctaW1nKDIwcHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMzJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9saW5rLnN2ZycpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDAuMjVyZW07XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cblxuICAgICZbaHJlZio9J21haWx0byddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2VtYWlsLnN2ZycpO1xuICAgIH1cbiAgICAmW2hyZWYqPSd0ZWwnXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9waG9uZS5zdmcnKTtcbiAgICB9XG4gICAgJltocmVmKj0ndHdpdHRlciddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3R3aXR0ZXIuc3ZnJyk7XG4gICAgfVxuICAgICZbaHJlZio9J2ZhY2Vib29rJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvZmFjZWJvb2suc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjBweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDVweCBjZW50ZXI7XG4gICAgfVxuICAgICZbaHJlZio9J2xpbmtlZGluJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbGlua2VkaW4uc3ZnJyk7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gSG9tZXBhZ2UgYmFubmVyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbkBrZXlmcmFtZXMgYmFubmVySW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuICAxMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogMTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYW5uZXJPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG4gIDkwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogLTE7XG4gIH1cbn1cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1ob21lcGFnZS1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDYwdmg7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIGZpZ3VyZSB7XG4gICAgJi5kZWZhdWx0LWltYWdlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy10b3A6IDU2LjI1JTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAmX19ibG9jay1pbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgJltkYXRhLXZpc2libGU9J3RydWUnXSB7XG4gICAgICBhbmltYXRpb246IGJhbm5lckluIDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gICAgfVxuICAgICZbZGF0YS12aXNpYmxlPSdmYWxzZSddIHtcbiAgICAgIGFuaW1hdGlvbjogYmFubmVyT3V0IDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gICAgfVxuICB9XG5cbiAgJl9fYmxvY2tzIHtcbiAgICBwYWRkaW5nOiAwIDVyZW07XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogMC41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIHBhZGRpbmc6IDAgMy41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbi10b3A6IC0xNHJlbTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAucHJlLXRpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmEtbGlua3Mge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgIGEge1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hLWJ0biB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy10ZWFsKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIEV2ZW50IHNpZGViYXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1ldmVudC1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgLnByb21vLWNvcHkge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAuZGV0YWlsIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgJi0tYm9sZCB7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvbGQpO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJi0tY29weSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICBoMixcbiAgICAgIGgzLFxuICAgICAgaDQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICB9XG4gICAgICAmID4gcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDE1cHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBTZWFyY2ggZm9ybVxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXNlYXJjaC1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCdoZWlnaHQ8NjAwcHgnKSB7XG4gICAgbWF4LWhlaWdodDogNzB2aDtcbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmLS1iaWcge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC8vIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcbiAgICBtYXJnaW46IDAgMC41cmVtIDAuNXJlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDc1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMzAwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNTBweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgcGFkZGluZzogMC41cmVtIDAgMC41cmVtIDFyZW07XG4gICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgOjotbW96LXBsYWNlaG9sZGVyLFxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gICAgOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICM4Nzk3OTk7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgfVxuXG4gICAgICBwYXRoIHtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gUGVyZm9ybWFuY2VzIG1vZGFsXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tcGVyZm9ybWFuY2VzIHtcbiAgLS1tb2RhbFBhZGRpbmc6IDRyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAtLW1vZGFsUGFkZGluZzogMnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgLS1tb2RhbFBhZGRpbmc6IDFyZW07XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE0LCA0OCwgNTIsIDAuOSk7XG5cbiAgJl9faW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcGVyZm9ybWFuY2VzIHtcbiAgICBtYXJnaW46IDJyZW0gMCAwO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tbW9kYWxQYWRkaW5nKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3BlcmZvcm1hbmNlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE1MHB4LCBhdXRvKSAxZnIgbWlubWF4KDIwMHB4LCBhdXRvKTtcbiAgICBnYXA6IDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDE1MHB4LCBhdXRvKSAxZnI7XG4gICAgICBnYXA6IDFyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwLjVyZW07XG4gICAgfVxuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz54cycsICc8c20nKSB7XG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5hLWJ0biB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+eHMnLCAnPHNtJykge1xuICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiB2YXIoLS1tb2RhbFBhZGRpbmcpO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgbGVmdDogY2FsYyh2YXIoLS1tb2RhbFBhZGRpbmcpICogLTEpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1vZGFsUGFkZGluZykgKiAtMSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIEdhbGxlcnlcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1nYWxsZXJ5IHtcbiAgLnBzd3BfX2J1dHRvbiB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cbiAgLnBzd3BfX2J1dHRvbjpmb2N1cyxcbiAgLnBzd3BfX2J1dHRvbjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAucHN3cF9fYnV0dG9uOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjk7XG4gIH1cbiAgLnBzd3BfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvKiBwc3dwX191aS0tb3Zlci1jbG9zZSBjbGFzcyBpdCBhZGRlZCB3aGVuIG1vdXNlIGlzIG92ZXIgZWxlbWVudCB0aGF0IHNob3VsZCBjbG9zZSBnYWxsZXJ5ICovXG4gIC5wc3dwX191aS0tb3Zlci1jbG9zZSAucHN3cF9fYnV0dG9uLS1jbG9zZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24sXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZGVmYXVsdC1za2luLnBuZycpIDAgMCBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNjRweCA4OHB4O1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgfVxuXG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjEpLFxuICAgICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMDkzNzUpLFxuICAgIChtaW4tcmVzb2x1dGlvbjogMTA1ZHBpKSxcbiAgICAobWluLXJlc29sdXRpb246IDEuMWRwcHgpIHtcbiAgICAvKiBTZXJ2ZSBTVkcgc3ByaXRlIGlmIGJyb3dzZXIgc3VwcG9ydHMgU1ZHIGFuZCByZXNvbHV0aW9uIGlzIG1vcmUgdGhhbiAxMDVkcGkgKi9cbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24sXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2RlZmF1bHQtc2tpbi5zdmcnKTtcbiAgICB9XG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00NHB4O1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tc2hhcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NHB4IC00NHB4O1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tZnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucHN3cC0tc3VwcG9ydHMtZnMgLnBzd3BfX2J1dHRvbi0tZnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnBzd3AtLWZzIC5wc3dwX19idXR0b24tLWZzIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDRweCAwO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODhweCAwO1xuICB9XG5cbiAgLnBzd3AtLXpvb20tYWxsb3dlZCAucHN3cF9fYnV0dG9uLS16b29tIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzMnB4IDA7XG4gIH1cblxuICAvKiBubyBhcnJvd3Mgb24gdG91Y2ggc2NyZWVucyAqL1xuICAucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwLS10b3VjaCAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8qXG4gICAgQXJyb3cgYnV0dG9ucyBoaXQgYXJlYVxuICAgIChpY29uIGlzIGFkZGVkIHRvIDpiZWZvcmUgcHNldWRvLWVsZW1lbnQpXG4gICovXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTUwcHg7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUsXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogMzVweDtcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSB7XG4gICAgbGVmdDogNnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMzhweCAtNDRweDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIHJpZ2h0OiA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk0cHggLTQ0cHg7XG4gIH1cblxuICAvKlxuICBcbiAgICAyLiBTaGFyZSBtb2RhbC9wb3B1cCBhbmQgbGlua3NcbiAgXG4gICAqL1xuICAucHN3cF9fY291bnRlcixcbiAgLnBzd3BfX3NoYXJlLW1vZGFsIHtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE2MDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIH1cblxuICAucHN3cF9fc2hhcmUtbW9kYWwtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS10b29sdGlwIHtcbiAgICB6LWluZGV4OiAxNjIwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB0b3A6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHJpZ2h0OiA0NHB4O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXM7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfVxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAgYTpmaXJzdC1jaGlsZCB7XG4gICAgLyogcm91bmQgY29ybmVycyBvbiB0aGUgZmlyc3QvbGFzdCBsaXN0IGl0ZW0gKi9cbiAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgfVxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLW1vZGFsLS1mYWRlLWluIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwX19zaGFyZS1tb2RhbC0tZmFkZS1pbiAucHN3cF9fc2hhcmUtdG9vbHRpcCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICAvKiBpbmNyZWFzZSBzaXplIG9mIHNoYXJlIGxpbmtzIG9uIHRvdWNoIGRldmljZXMgKi9cbiAgLnBzd3AtLXRvdWNoIC5wc3dwX19zaGFyZS10b29sdGlwIGEge1xuICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIGJvcmRlcjogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIC13ZWJraXQtcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLW1vei1wb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U1YzlhO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuICBhLnBzd3BfX3NoYXJlLS1mYWNlYm9vazpob3ZlcjpiZWZvcmUge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMzZTVjOWE7XG4gIH1cblxuICBhLnBzd3BfX3NoYXJlLS10d2l0dGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTVhY2VlO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLXBpbnRlcmVzdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2NjYztcbiAgICBjb2xvcjogI2NlMjcyZDtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLWRvd25sb2FkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGRkO1xuICB9XG5cbiAgLypcbiAgXG4gICAgMy4gSW5kZXggaW5kaWNhdG9yIChcIjEgb2YgWFwiIGNvdW50ZXIpXG4gIFxuICAgKi9cbiAgLnBzd3BfX2NvdW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgfVxuXG4gIC8qXG4gICAgXG4gICAgNC4gQ2FwdGlvblxuICBcbiAgICovXG4gIC5wc3dwX19jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgfVxuICAucHN3cF9fY2FwdGlvbiBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjYmJiO1xuICB9XG5cbiAgLnBzd3BfX2NhcHRpb25fX2NlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLnBzd3BfX2NhcHRpb24tLWVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogRmFrZSBjYXB0aW9uIGVsZW1lbnQsIHVzZWQgdG8gY2FsY3VsYXRlIGhlaWdodCBvZiBuZXh0L3ByZXYgaW1hZ2UgKi9cbiAgLnBzd3BfX2NhcHRpb24tLWZha2Uge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8qXG4gIFxuICAgIDUuIExvYWRpbmcgaW5kaWNhdG9yIChwcmVsb2FkZXIpXG4gIFxuICAgIFlvdSBjYW4gcGxheSB3aXRoIGl0IGhlcmUgLSBodHRwOi8vY29kZXBlbi5pby9kaW1zZW1lbm92L3Blbi95eUJXb1JcbiAgXG4gICAqL1xuICAucHN3cF9fcHJlbG9hZGVyIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gIH1cblxuICAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtYXJnaW46IDEycHg7XG4gIH1cblxuICAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgLyogV2UgdXNlIC5naWYgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IENTUyBhbmltYXRpb24gKi9cbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3ByZWxvYWRlci5naWYpIDAgMCBuby1yZXBlYXQ7XG4gIH1cblxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGNsb2Nrd2lzZSA1MDBtcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlO1xuICB9XG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19kb251dCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSlcbiAgICAgIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogZG9udXQtcm90YXRlIDEwMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKSBpbmZpbml0ZTtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTVweDtcbiAgICB0b3A6IDE1cHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9fY3V0IHtcbiAgICAvKiBcbiAgICAgICAgVGhlIGlkZWEgb2YgYW5pbWF0aW5nIGlubmVyIGNpcmNsZSBpcyBiYXNlZCBvbiBQb2x5bWVyIChcIm1hdGVyaWFsXCIpIGxvYWRpbmcgaW5kaWNhdG9yIFxuICAgICAgICAgYnkgS2VhbnUgTGVlIGh0dHBzOi8vYmxvZy5rZWFudWxlZS5jb20vMjAxNC8xMC8yMC90aGUtdGFsZS1vZi10aHJlZS1zcGlubmVycy5odG1sXG4gICAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9fZG9udXQge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5wc3dwX19wcmVsb2FkZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICBALXdlYmtpdC1rZXlmcmFtZXMgY2xvY2t3aXNlIHtcbiAgICAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGNsb2Nrd2lzZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxuICB9XG5cbiAgQC13ZWJraXQta2V5ZnJhbWVzIGRvbnV0LXJvdGF0ZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIGRvbnV0LXJvdGF0ZSB7XG4gICAgMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgIFxuICAgIDYuIEFkZGl0aW9uYWwgc3R5bGVzXG4gIFxuICAgKi9cbiAgLyogcm9vdCBlbGVtZW50IG9mIFVJICovXG4gIC5wc3dwX191aSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTU1MDtcbiAgfVxuXG4gIC8qIHRvcCBibGFjayBiYXIgd2l0aCBidXR0b25zIGFuZCBcIjEgb2YgWFwiIGluZGljYXRvciAqL1xuICAucHN3cF9fdG9wLWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5wc3dwX19jYXB0aW9uLFxuICAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgfVxuXG4gIC8qIHBzd3AtLWhhc19tb3VzZSBjbGFzcyBpcyBhZGRlZCBvbmx5IHdoZW4gdHdvIHN1YnNlcXVlbnQgbW91c2Vtb3ZlIGV2ZW50cyBvY2N1ciAqL1xuICAucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIC5wc3dwX190b3AtYmFyLFxuICAucHN3cF9fY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB9XG5cbiAgLyogcHN3cF9fdWktLWZpdCBjbGFzcyBpcyBhZGRlZCB3aGVuIG1haW4gaW1hZ2UgXCJmaXRzXCIgYmV0d2VlbiB0b3AgYmFyIGFuZCBib3R0b20gYmFyIChjYXB0aW9uKSAqL1xuICAucHN3cF9fdWktLWZpdCAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3BfX3VpLS1maXQgLnBzd3BfX2NhcHRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1pZGxlIGNsYXNzIGlzIGFkZGVkIHdoZW4gbW91c2UgaXNuJ3QgbW92aW5nIGZvciBzZXZlcmFsIHNlY29uZHMgKEpTIG9wdGlvbiB0aW1lVG9JZGxlKSAqL1xuICAucHN3cF9fdWktLWlkbGUgLnBzd3BfX3RvcC1iYXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAucHN3cF9fdWktLWlkbGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwX191aS0taWRsZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAvKlxuICAgIHBzd3BfX3VpLS1oaWRkZW4gY2xhc3MgaXMgYWRkZWQgd2hlbiBjb250cm9scyBhcmUgaGlkZGVuXG4gICAgZS5nLiB3aGVuIHVzZXIgdGFwcyB0byB0b2dnbGUgdmlzaWJpbGl0eSBvZiBjb250cm9sc1xuICAqL1xuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fdG9wLWJhcixcbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2NhcHRpb24sXG4gIC5wc3dwX191aS0taGlkZGVuIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgIC8qIEZvcmNlIHBhaW50ICYgY3JlYXRlIGNvbXBvc2l0aW9uIGxheWVyIGZvciBjb250cm9scy4gKi9cbiAgICBvcGFjaXR5OiAwLjAwMTtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1vbmUtc2xpZGUgY2xhc3MgaXMgYWRkZWQgd2hlbiB0aGVyZSBpcyBqdXN0IG9uZSBpdGVtIGluIGdhbGxlcnkgKi9cbiAgLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCxcbiAgLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2NvdW50ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucHN3cF9fZWxlbWVudC0tZGlzYWJsZWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wc3dwLS1taW5pbWFsLS1kYXJrIC5wc3dwX190b3AtYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgLnBzd3BfX3pvb20td3JhcCxcbiAgLnBzd3BfX2NvbnRhaW5lcixcbiAgLnBzd3BfX2l0ZW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbiB7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuICB9XG5cbiAgLnBzd3BfX2NvdW50ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLnBzd3AtLXpvb21lZC1pbiB7XG4gICAgLnBzd3BfX2NhcHRpb24ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBUb2dnbGUgc3VibmF2XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tdG9nZ2xlLXN1Ym5hdiB7XG4gICZbZGF0YS1pc09wZW49J2ZhbHNlJ10ge1xuICAgIGJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgJiA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0JztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFN1Ym5hdiBjb250YWluZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1zdWJuYXYtY29udGFpbmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgLm0tc3VibmF2IHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBIZWFkZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1oZWFkZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPDExMDBweCcpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGp1c3RpZnktaXRlbXM6IHN0YXJ0O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMTVweDtcbiAgfVxuXG4gICZfX25hdiB7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8MTEwMHB4Jykge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICBAaW5jbHVkZSBsaS1yZXNldDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjI1cmVtO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbG9nbyB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXJlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDAuNXJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgZ2FwOiAwO1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICBhIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDQycHg7XG4gICAgICB3aWR0aDogNDJweDtcbiAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgICAgJi50aWNrZXQtaWNvbiB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgc3Ryb2tlOiBub25lO1xuICAgICAgICAgICAgZmlsbDogIHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwYXRoIHtcbiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBGb290ZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1mb290ZXIge1xuICAtLWNvbE1heFdpZHRoOiAyNTBweDtcbiAgLS1wYWRkaW5nOiAzcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1jb2xNYXhXaWR0aDogMzUwcHg7XG4gICAgLS1wYWRkaW5nOiAycmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgLS1jb2xNYXhXaWR0aDogbm9uZTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZykgMDtcblxuICAuYS1jb2xzLS1mdWxsIHtcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgfVxuXG4gICZfX3RvcCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogMXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDJyZW07XG4gICAgfVxuXG4gICAgJiA+IGRpdiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tY29sTWF4V2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2Fib3V0IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMSAvIDU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcblxuICAgICAgcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYS1saW5rcyB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX25ld3NsZXR0ZXIge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGdyaWQtcm93OiAxIC8gMjtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cbiAgfVxuXG4gICZfX2luZm8ge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICAgIGdyaWQtcm93OiAyIC8gNTtcbiAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIG9yZGVyOiAyO1xuICAgIH1cbiAgfVxuXG4gICZfX2pvaW4tc3VwcG9ydCB7XG4gICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgZ3JpZC1yb3c6IDEgLyAzO1xuICAgIGp1c3RpZnktc2VsZjogZW5kO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubGlua3Mge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3NvY2lhbCB7XG4gICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgZ3JpZC1yb3c6IDM7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICAgIGp1c3RpZnktc2VsZjogZW5kO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgIG9yZGVyOiAtMjtcbiAgICB9XG4gIH1cblxuICAmX19ib3R0b20ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXBhZGRpbmcpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICB9XG5cbiAgJl9fcGFydG5lcnMsXG4gICZfX2hlYWRsaW5lLXBhcnRuZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tY29sTWF4V2lkdGgpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRsaW5lLXBhcnRuZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgcCB7XG4gICAgICBtYXgtd2lkdGg6IHZhcigtLWNvbE1heFdpZHRoKTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19wYXJ0bmVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcGFkZGluZyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMS41cmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnYWwge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi10b3A6IHZhcigtLXBhZGRpbmcpO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gU2VhcmNoIHJlc3VsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1zZWFyY2gtcmVzdWx0cy13cmFwcGVyIHtcbiAgaDIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucmVzdWx0X190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICZfX2xpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBvbCB7XG4gICAgICBAaW5jbHVkZSBsaS1yZXNldDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIFRlYXNlcnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uby1mZWF0dXJlZC10ZWFzZXIsXG4uby1saXN0aW5nLXRlYXNlcixcbi5vLXRlYXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgJi0tc2luZ2xlIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3RodW1iIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZmlndXJlIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG5cbiAgICAgICYubGlzdGluZ19pbWFnZV9zcXVhcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgIH1cbiAgICAgICYubGlzdGluZ19pbWFnZV9wb3J0cmFpdCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMzMuMzMzMyU7XG4gICAgICB9XG5cbiAgICAgIHBpY3R1cmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ibGFjayk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICAubGFiZWwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMC44cmVtO1xuICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICB9XG5cbiAgICBhOm5vdCguYS1idG4pOm5vdCgucmVhZC1tb3JlKSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnRhZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICAgLm8tdGVhc2VyLS1zaW5nbGUgJiB7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZzogMCAwIDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYgPiAuYS1idG4ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5uby1saW5rKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICAuby10ZWFzZXItLXNpbmdsZSAmIHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWxpbmVMZW5ndGgpO1xuICB9XG59XG5cbi5vLWxpc3RpbmctdGVhc2VyIHtcbiAgLy8gZGlzcGxheTogZ3JpZDtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIC8vIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbiAgLy8gYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgLy8gQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgLy8gICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgLy8gfVxuXG4gIGgyIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNnJlbSwgMi4ydncsIDIuOHJlbSk7XG4gIH1cblxuICAmX190aHVtYiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG5cbi5vLWZlYXR1cmVkLXRlYXNlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDEuNWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAmLS1zaW5nbGUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLy8gICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAvLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvLyAgIEBpbmNsdWRlIG1lZGlhKCc8PXNtJykge1xuICAgIC8vICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAvLyAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgLy8gICB9XG5cbiAgICAvLyAgIC5vLWZlYXR1cmVkLXRlYXNlcl9fdGh1bWIge1xuICAgIC8vICAgICBncmlkLWNvbHVtbjogMSAvIDk7XG4gICAgLy8gICAgIGdyaWQtcm93OiAxO1xuXG4gICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLy8gICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cblxuICAgIC8vICAgLm8tZmVhdHVyZWQtdGVhc2VyX19jb250ZW50IHtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAvLyAgICAgZ3JpZC1jb2x1bW46IDggLyAxMztcbiAgICAvLyAgICAgZ3JpZC1yb3c6IDE7XG4gICAgLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyAgICAgcGFkZGluZzogM3JlbTtcblxuICAgIC8vICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIC8vICAgICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gM3JlbTtcbiAgICAvLyAgICAgfVxuXG4gICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLy8gICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgLy8gICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgLy8gICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuXG4gICAgLy8gICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgIC8vICAgICAuby1mZWF0dXJlZC10ZWFzZXJfX2J1dHRvbnMge1xuICAgIC8vICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgLy8gICAgICAgJiA+IC5hLWJ0biB7XG4gICAgLy8gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICAgICAgICBib3R0b206IC0xLjI1cmVtO1xuICAgIC8vICAgICAgICAgbGVmdDogM3JlbTtcbiAgICAvLyAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAvLyAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgLy8gICAgICAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcblxuICAgICYgPiAuYS1idG4ge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICBib3JkZXI6IDA7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAtLWJ0bkJnOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuLm8tdGVhc2VyIHtcbiAgJl9fY29udGVudCB7XG4gICAgcCB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbiAgfVxufSIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBPcmdhbmlzbXMgLSBMaXN0aW5nICoqdGVtcCoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuXG4uby1saXN0aW5nIHtcbiAgJl9fZmlsdGVycyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIC5idG4ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICYtLWRyb3Bkb3duIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICAgICAgJi0tZHJvcGRvd24ge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRpdmlkZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRvcDogY2FsYygxMDAlICsgMXB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgLnNob3ctcmVzdWx0cyB7XG4gICAgICAgbWFyZ2luOiAyMHB4IDAgMCAwO1xuICAgIH1cbiAgICAuYS1jb2xzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtY2FsZW5kYXIge1xuICAgICAgLmEtY29scyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgJi1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYtdGF4b25vbXkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgIGgzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLWZpbHRlcnMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgICAgZ3JpZC1nYXA6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgIGdyaWQtZ2FwOiA1cHg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5saW5rIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19hY3RpdmUtZmlsdGVycyB7XG4gICAgcGFkZGluZzogMC41cmVtIDAgMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLmEtYnRuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5EYXlQaWNrZXIge1xuICAgICYtTW9udGhzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgZ2FwOiAycmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICB9XG4gICAgfVxuICAgICYtTW9udGgge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogT3JnYW5pc21zIC0gUGVyc29uIHRlYXNlclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5vLXBlb3BsZSB7XG4gICYtLXNtIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDJyZW07XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuXG4gICAgLm8tcGVvcGxlX19wZXJzb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDA7XG5cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1sZyB7XG4gICAgLm8tcGVvcGxlX19wZXJzb24ge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDIyMHB4O1xuICAgICAgZ2FwOiAycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxNTBweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19wZXJzb24ge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgIC5saW5rIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBoMyxcbiAgICAgIC5saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIC5saW5rOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE9yZ2FuaXNtcyAtIFBlcmZvcm1hbmNlcyBtb2RhbFxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbltkYXRhLW1vZGFsT3Blbj0ndHJ1ZSddIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm8tbW9kYWwge1xuICBib3JkZXI6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyNTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgJltkYXRhLXZpc2libGU9J3RydWUnXSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICB9XG5cbiAgJltkYXRhLXZpc2libGU9J2ZhbHNlJ10ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC8vIGFuaW1hdGlvbjogZmFkZU91dCAwLjJzIGVhc2UtaW4tb3V0IGZvcndhcmRzO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAuYS1jb2xzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tZnVsbHNjcmVlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgIH1cblxuICAgIC5hLWNvbHMge1xuICAgICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMCAwO1xuICAgIH1cblxuICAgIC5vLW1vZGFsX19jbG9zZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHJpZ2h0OiAycmVtO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDQycHg7XG4gICAgd2lkdGg6IDQycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogMXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgLy8gdG9wOiAwLjVyZW07XG4gICAgICByaWdodDogMC41cmVtO1xuICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgd2lkdGg6IDM1cHg7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIFRlbXBsYXRlIC0gUG9zdHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5hcnRpY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyAmOm5vdCguby10ZWFzZXIpOm5vdCguby1saXN0aW5nLXRlYXNlcikge1xuICAvLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gICB6LWluZGV4OiAxO1xuICAvLyB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/