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

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

/**
 * ----------------------
 * Un.titled
 * Atoms - Grid
 * ----------------------
 */
/**
 * Styling
 */
.a-grid {
  display: grid;
  gap: var(--autoGridGap, 1rem);
  align-items: start;
}
.a-grid--1 {
  grid-template-columns: 1fr;
}
.a-grid--2 {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 767px) {
  .a-grid--2 {
    grid-template-columns: 1fr;
  }
}
.a-grid--3 {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 767px) {
  .a-grid--3 {
    grid-template-columns: 1fr;
  }
}
.a-grid--4 {
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-rows: 1fr;
}
@media (max-width: 991px) {
  .a-grid--4 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 575px) {
  .a-grid--4 {
    grid-template-columns: 1fr;
  }
}

/**
 * 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%;
  padding: 0.25rem 1rem;
  display: none;
  visibility: hidden;
  text-align: center;
  min-height: 52px;
  position: relative;
  align-items: center;
}
.m-emmsg.primary {
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.m-emmsg.secondary {
  background-color: var(--c-primary);
  color: #fff;
}
@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 - Enhanced Event 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
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - CTA Multiple
   * ----------------------
   */
}
.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 .accordion__title:before {
  display: none;
}
.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 tbody th {
  background-color: #a4dbe8;
  color: var(--c-primary);
  font-weight: normal;
}
.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;
  align-items: flex-end;
  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__enhancedeventlisting {
  --autoGridMin: 20%;
  --autoGridGap: 2rem;
}
@media (max-width: 991px) {
  .m-entity__enhancedeventlisting {
    --autoGridMin: 30%;
    --autoGridGap: 1rem;
  }
}
@media (max-width: 768px) {
  .m-entity__enhancedeventlisting {
    --autoGridMin: 48%;
  }
}
.m-entity__enhancedeventlisting .listing-header {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: flex-end;
  border-bottom: 1px solid var(--c-primary);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 991px) {
  .m-entity__enhancedeventlisting .listing-header {
    grid-template-columns: 1fr;
  }
}
.m-entity__enhancedeventlisting .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 .gfield_time_hour,
.m-entity .gfield_time_minute {
  max-width: 100px !important;
}
.m-entity .gfield_time_hour input,
.m-entity .gfield_time_minute input {
  max-width: 100px !important;
}
.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);
}
.m-entity__ctamultiple {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 40px;
}
@media (max-width: 767px) {
  .m-entity__ctamultiple {
    grid-template-columns: 1fr;
  }
}

/**
 * ----------------------
 * 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 .label.teal,
.o-listing-teaser__thumb .label.teal,
.o-teaser__thumb .label.teal {
  background-color: var(--c-teal);
}
.o-featured-teaser__thumb .label.violet,
.o-listing-teaser__thumb .label.violet,
.o-teaser__thumb .label.violet {
  background-color: var(--c-maroon);
}
.o-featured-teaser__thumb .label.yellow,
.o-listing-teaser__thumb .label.yellow,
.o-teaser__thumb .label.yellow {
  background-color: var(--c-yellow);
  color: var(--c-primary);
}
.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;
  }
}
@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 {
  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 {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  width: 50%;
}
.o-listing__dropdown-calendar .DayPicker-NavBar {
  top: 0;
}
.o-listing__dropdown-calendar .DayPicker-NavBar span {
  width: 20px;
  height: 20px;
}
.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: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 20px;
  justify-content: center;
  margin: 0 1rem;
  margin-bottom: 40px;
}
@media (max-width: 991px) {
  .o-listing__dropdown-taxonomy {
    grid-template-columns: 1fr 1fr;
    grid-gap: 15px;
  }
}
@media (max-width: 767px) {
  .o-listing__dropdown-taxonomy {
    grid-template-columns: 1fr;
    grid-gap: 10px;
    margin-bottom: 15px;
  }
}
.o-listing__dropdown-taxonomy label {
  display: flex;
  justify-content: center;
  align-items: center;
  grid-gap: 10px;
}
.o-listing__dropdown-taxonomy label input {
  accent-color: #ffb81c;
  width: 15px;
  height: 15px;
}
.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);
}

#ccc #ccc-close.ccc-close--labelled {
  background-color: transparent !important;
  transition: all var(--transition);
}
#ccc #ccc-close.ccc-close--labelled:hover svg {
  -webkit-animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
          animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}
#ccc #ccc-reject-settings.ccc-notify-button.ccc-reject-button {
  background-color: var(--c-white) !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}
#ccc #ccc-reject-settings.ccc-notify-button.ccc-reject-button > span {
  background-color: var(--c-white) !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}

@-webkit-keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }
  30%, 50%, 70% {
    transform: translate3d(-2px, 0, 0);
  }
  40%, 60% {
    transform: translate3d(2px, 0, 0);
  }
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }
  30%, 50%, 70% {
    transform: translate3d(-2px, 0, 0);
  }
  40%, 60% {
    transform: translate3d(2px, 0, 0);
  }
}
/**
* Templates
*/
/**
* ----------------------
* Un.titled
* Template - Posts
* ----------------------
*/
/**
* Config
*/
/**
* Styling
*/
article {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvcGhvdG9zd2lwZS9kaXN0L3Bob3Rvc3dpcGUuY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vbm9kZV9tb2R1bGVzL3JlZmxleC1ncmlkL3Njc3MvaW5jbHVkZXMvX21peGlucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19oZWxwZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2ZvY3VzLXZpc2libGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fZm9udC1zbW9vdGhpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2NvbmZpZy9fZm9udHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvY29uZmlnL192YXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX2RlZmF1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX21haW4uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYnV0dG9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9faW1hZ2UtY3JlZGl0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbG9hZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19kYXRlLXBpY2tlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fcGFnZXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NvbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2NhcHRpb24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2F1dG8tZ3JpZC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3RhZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fc3RpY2t5LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19jYW5jZWxsZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX3NraXAtbGluay5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fY2l0ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fYmFjay10b3Auc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19lbW1zZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Jsb2Nrcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ludHJvLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9faW1hZ2Uuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19xdW90ZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2FjY29yZGlvbi5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2dhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19pbWFnZS10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZG93bmxvYWRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZW1iZWQuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL190YWJsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NpZ25wb3N0LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2lnbnBvc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fbGlua2VkLWxvZ29zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fdmlkZW8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL195bWFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYmlnLWN0YS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3JlYWRtb3JlLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fcXVpY2tsaW5rcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3NwZWNpYWwtb3B0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX3Blb3BsZS1wcm9maWxlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2xpc3Rpbmcuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19taW5pbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2VuaGFuY2VkZXZlbnRsaXN0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fZmVhdHVyZWQtY29udGVudC5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2NpdGF0aW9ucy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2ltYWdlem9vbS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvYmxvY2svX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19kaXZpZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9ibG9jay9fYnV5LW5vdy1idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2Jsb2NrL19jdGFtdWx0aXBsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fYmFubmVyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc29jaWFsLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3VibmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9faW50cm8uc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19hbmNob3ItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fY291cnNlLWRldGFpbHMuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19wZW9wbGUtc2lkZWJhci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2hvbWVwYWdlLWJhbm5lci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2V2ZW50LXNpZGViYXIuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19zZWFyY2gtZm9ybS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3BlcmZvcm1hbmNlcy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX3Bob3Rvc3dpcGUuc2NzcyIsIndlYnBhY2s6Ly9waXBwaXAtdGhlbWUvLi93cC1jb250ZW50L3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL190b2dnbGUtc3VibmF2LnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3VibmF2LWNvbnRhaW5lci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2hlYWRlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbGlzdGluZy5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3Blb3BsZS5zY3NzIiwid2VicGFjazovL3BpcHBpcC10aGVtZS8uL3dwLWNvbnRlbnQvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vcGlwcGlwLXRoZW1lLy4vd3AtY29udGVudC90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL3RlbXBsYXRlcy9fcG9zdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRTs7Q0FFQztBQUNELHNCQUFzQjtBQUN0QjtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixPQUFPO0VBQ1AsTUFBTTtFQUNOLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsNkVBQTZFO0VBQzdFLG1DQUFtQztFQUNuQyxhQUFhLEVBQUU7RUFDZjtJQUNFLDhCQUE4QjtZQUN0QixzQkFBc0IsRUFBRTtFQUNsQztJQUNFLGVBQWUsRUFBRTs7QUFFckIsaUVBQWlFO0FBQ2pFO0VBQ0UsbUdBQW1HO0VBQ25HLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsOEJBQThCO0VBQzlCLCtEQUErRDtVQUN2RCx1REFBdUQsRUFBRTs7QUFFbkU7RUFDRSxjQUFjLEVBQUU7O0FBRWxCO0VBQ0Usc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFDcEIsZUFBZSxFQUFFOztBQUVuQjtFQUNFLHNCQUFzQjtFQUN0QixvQkFBb0I7RUFDcEIsaUJBQWlCO0VBQ2pCLFlBQVksRUFBRTs7QUFFaEI7RUFDRSxzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLHFCQUFxQjtFQUNyQixnQkFBZ0IsRUFBRTs7QUFFcEI7OztDQUdDO0FBQ0Q7RUFDRSxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLE1BQU07RUFDTixXQUFXO0VBQ1gsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixVQUFV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RUFMSjtJQU1RLGdCRE9JO0VGaWFWO0FBQ0Y7QUd0YUk7RUFUSjtJQVVRLGdCRElJO0VGcWFWO0FBQ0Y7QUd2YUk7RUFiSjtJQWNRLGlCRENJO0VGeWFWO0FBQ0Y7QUd4YUk7RUFqQko7SUFrQlEsaUJERks7RUY2YVg7QUFDRjs7QUdwYUE7RUMwWEksOEJEelhvQjtFQzBYcEIsMkJEMVhvQjtFQzJYcEIsc0JEM1hvQjtFQUNwQjtFQ29HQTtFQUNBO0VBQ0E7RUE0Q0EsbUJBRG9CO0VBRXBCLHVCQUZvQjtFQUdwQixlQUhvQjtFRDlJcEI7RUFDQTtFQUNBO0VDTkk7R0FDQTtFQUNBO0VEY0o7QUh1YUo7QUc5YUk7RUNnWEEsOEJEOVd3QjtFQytXeEIsMkJEL1d3QjtFQ2dYeEIsc0JEaFh3QjtFQ0hwQjtFQUNBO0VBQ0E7QUpxYlI7O0FHeGFBO0VDa1dJLDhCRGpXb0I7RUNrV3BCLDJCRGxXb0I7RUNtV3BCLHNCRG5Xb0I7RUNoQmhCO0VBQ0E7RUFDQTtFRGdCSjtFQUNBO0VBQ0E7RUFDQSxhRHJCa0I7RUNvQ2Q7R0FDQTtFQUNBO0FIaWFSO0FHaGJJO0VDMFZBLDhCRHhWd0I7RUN5VnhCLDJCRHpWd0I7RUMwVnhCLHNCRDFWd0I7RUN6QnBCO0VBQ0E7RUFDQTtBSjZjUjtBR2piSTtFQzRFSTtFQUdKO0VBQ0E7RUQ5RUk7QUhxYlI7O0FJN2ZRO0VBQ0k7R0FFSTtBSitmaEI7O0FJbGdCUTtFQUNJO0dBRUk7QUpvZ0JoQjs7QUl2Z0JRO0VBQ0k7R0FFSTtBSnlnQmhCOztBSTVnQlE7RUFDSTtHQUVJO0FKOGdCaEI7O0FJamhCUTtFQUNJO0dBRUk7QUptaEJoQjs7QUl0aEJRO0VBQ0k7R0FFSTtBSndoQmhCOztBSTNoQlE7RUFDSTtHQUVJO0FKNmhCaEI7O0FJaGlCUTtFQUNJO0dBRUk7QUpraUJoQjs7QUlyaUJRO0VBQ0k7R0FFSTtBSnVpQmhCOztBSTFpQlE7RUFDSTtHQUVJO0FKNGlCaEI7O0FJL2lCUTtFQUNJO0dBRUk7QUppakJoQjs7QUlwakJRO0VBQ0k7R0FFSTtBSnNqQmhCOztBR2plQTtFQ3hGUTtJQUNJO0tBRUk7RUo0akJkOztFSS9qQk07SUFDSTtLQUVJO0VKaWtCZDs7RUlwa0JNO0lBQ0k7S0FFSTtFSnNrQmQ7O0VJemtCTTtJQUNJO0tBRUk7RUoya0JkOztFSTlrQk07SUFDSTtLQUVJO0VKZ2xCZDs7RUlubEJNO0lBQ0k7S0FFSTtFSnFsQmQ7O0VJeGxCTTtJQUNJO0tBRUk7RUowbEJkOztFSTdsQk07SUFDSTtLQUVJO0VKK2xCZDs7RUlsbUJNO0lBQ0k7S0FFSTtFSm9tQmQ7O0VJdm1CTTtJQUNJO0tBRUk7RUp5bUJkOztFSTVtQk07SUFDSTtLQUVJO0VKOG1CZDs7RUlqbkJNO0lBQ0k7S0FFSTtFSm1uQmQ7QUFDRjtBRzNoQkE7RUM1RlE7SUFDSTtLQUVJO0VKeW5CZDs7RUk1bkJNO0lBQ0k7S0FFSTtFSjhuQmQ7O0VJam9CTTtJQUNJO0tBRUk7RUptb0JkOztFSXRvQk07SUFDSTtLQUVJO0VKd29CZDs7RUkzb0JNO0lBQ0k7S0FFSTtFSjZvQmQ7O0VJaHBCTTtJQUNJO0tBRUk7RUprcEJkOztFSXJwQk07SUFDSTtLQUVJO0VKdXBCZDs7RUkxcEJNO0lBQ0k7S0FFSTtFSjRwQmQ7O0VJL3BCTTtJQUNJO0tBRUk7RUppcUJkOztFSXBxQk07SUFDSTtLQUVJO0VKc3FCZDs7RUl6cUJNO0lBQ0k7S0FFSTtFSjJxQmQ7O0VJOXFCTTtJQUNJO0tBRUk7RUpnckJkO0FBQ0Y7QUdwbEJBO0VDaEdRO0lBQ0k7S0FFSTtFSnNyQmQ7O0VJenJCTTtJQUNJO0tBRUk7RUoyckJkOztFSTlyQk07SUFDSTtLQUVJO0VKZ3NCZDs7RUluc0JNO0lBQ0k7S0FFSTtFSnFzQmQ7O0VJeHNCTTtJQUNJO0tBRUk7RUowc0JkOztFSTdzQk07SUFDSTtLQUVJO0VKK3NCZDs7RUlsdEJNO0lBQ0k7S0FFSTtFSm90QmQ7O0VJdnRCTTtJQUNJO0tBRUk7RUp5dEJkOztFSTV0Qk07SUFDSTtLQUVJO0VKOHRCZDs7RUlqdUJNO0lBQ0k7S0FFSTtFSm11QmQ7O0VJdHVCTTtJQUNJO0tBRUk7RUp3dUJkOztFSTN1Qk07SUFD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QUlUO0VKKzhDTjs7RUkvN0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUpvOUNOOztFSXA4Q007SUFsQkosMkJBRmE7S0FJVDtFSnk5Q047O0VJejhDTTtJQWxCSixnQkFGYTtLQUlUO0VKODlDTjs7RUk5OENNO0lBbEJKLDJCQUZhO0tBSVQ7RUptK0NOOztFSW45Q007SUFsQkosMkJBRmE7S0FJVDtFSncrQ047O0VJeDlDTTtJQWxCSixnQkFGYTtLQUlUO0VKNitDTjs7RUk3OUNNO0lBbEJKLDJCQUZhO0tBSVQ7RUprL0NOOztFSWwrQ007SUFsQkosMEJBRmE7S0FJVDtFSnUvQ047O0VJditDTTtJQWxCSixjQUxTO0tBT0w7RUo0L0NOO0FBQ0Y7QUduNkNBO0VDMUVRO0lBbEJKLDJCQUZhO0tBSVQ7RUprZ0ROOztFSWwvQ007SUFsQkosMkJBRmE7S0FJVDtFSnVnRE47O0VJdi9DTTtJQWxCSixnQkFGYTtLQUlUO0VKNGdETjs7RUk1L0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUppaEROOztFSWpnRE07SUFsQkosMkJBRmE7S0FJVDtFSnNoRE47O0VJdGdETTtJQWxCSixnQkFGYTtLQUlUO0VKMmhETjs7RUkzZ0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUpnaUROOztFSWhoRE07SUFsQkosMkJBRmE7S0FJVDtFSnFpRE47O0VJcmhETTtJQWxCSixnQkFGYTtLQUlUO0VKMGlETjs7RUkxaERNO0lBbEJKLDJCQUZhO0tBSVQ7RUoraUROOztFSS9oRE07SUFsQkosMEJBRmE7S0FJVDtFSm9qRE47O0VJcGlETTtJQWxCSixjQUxTO0tBT0w7RUp5akROO0FBQ0Y7QUc1OUNBO0VDOUVRO0lBbEJKLDJCQUZhO0tBSVQ7RUorakROOztFSS9pRE07SUFsQkosMkJBRmE7S0FJVDtFSm9rRE47O0VJcGpETTtJQWxCSixnQkFGYTtLQUlUO0VKeWtETjs7RUl6akRNO0lBbEJKLDJCQUZhO0tBSVQ7RUo4a0ROOztFSTlqRE07SUFsQkosMkJBRmE7S0FJVDtFSm1sRE47O0VJbmtETTtJQWxCSixnQkFGYTtLQUlUO0VKd2xETjs7RUl4a0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUo2bEROOztFSTdrRE07SUFsQkosMkJBRmE7S0FJVDtFSmttRE47O0VJbGxETTtJQWxCSixnQkFGYTtLQUlUO0VKdW1ETjs7RUl2bERNO0lBbEJKLDJCQUZhO0tBSVQ7RUo0bUROOztFSTVsRE07SUFsQkosMEJBRmE7S0FJVDtFSmluRE47O0VJam1ETTtJQWxCSixjQUxTO0tBT0w7RUpzbkROO0FBQ0Y7QUtodURBO0VEd0xJLG1CQ3ZMbUI7RUR3TG5CLHVCQ3hMbUI7RUR5TG5CLGVDekxtQjtBTG91RHZCOztBS2p1REE7RURvTEkscUJDbkxtQjtFRG9MbkIseUJDcExtQjtFRHFMbkIsaUJDckxtQjtBTHN1RHZCO0FLanVESTtFRDJKQSxvQkMxSnlCO0VEMkp6QixzQkMzSnlCO0VENEp6QixjQzVKeUI7QUxxdUQ3Qjs7QUtqdURBO0VEeUtJLDJCQ3hLbUI7RUR5S25CLCtCQ3pLbUI7RUQwS25CLHVCQzFLbUI7QUxzdUR2Qjs7QUsvdERBO0VEdUtJLHVCQ3RLd0I7RUR1S3hCLDJCQ3ZLd0I7RUR3S3hCLG1CQ3hLd0I7QUxvdUQ1Qjs7QUtqdURBO0VEbUtJLCtCQ2xLd0I7RURtS3hCLG1DQ25Ld0I7RURvS3hCLDJCQ3BLd0I7QUxzdUQ1Qjs7QUtudURBO0VEK0pJLDBCQzlKd0I7RUQrSnhCLDhCQy9Kd0I7RURnS3hCLHNCQ2hLd0I7QUx3dUQ1Qjs7QUtydURBO0VEMkpJLGtDQzFKd0I7RUQySnhCLHNDQzNKd0I7RUQ0SnhCLDhCQzVKd0I7QUwwdUQ1Qjs7QUtudURBO0VEb0xRO0VBdEJKLCtCQzdKcUI7RUQ4SnJCLHVCQzlKcUI7QUx3dUR6Qjs7QUtydURBO0VEa0xRO0VBeEJKLDZCQ3pKcUI7RUQwSnJCLHFCQzFKcUI7QUwwdUR6QjtBS3R1RFE7RUFDSTtBTHd1RFo7O0FLbnVEQTtFRHlLUSxzQkN4S2lCO0VEOElyQiwyQkM5SXFCO0VEK0lyQixtQkMvSXFCO0FMd3VEekI7QUtwdURRO0VBQ0k7QUxzdURaOztBS2p1REE7RUQ4SlEsd0JDN0ppQjtFRG1JckIsNkJDbklxQjtFRG9JckIscUJDcElxQjtBTHN1RHpCOztBSy90REE7RURzS1E7RUE5QkosaUNDdkl1QjtFRHdJdkIseUJDeEl1QjtBTG91RDNCOztBS2p1REE7RURvS1E7RUFoQ0osK0JDbkl1QjtFRG9JdkIsdUJDcEl1QjtBTHN1RDNCO0FLbnVESTtFQUNJO0FMcXVEUjs7QUtqdURBO0VEaUtRLDBCQ2hLbUI7RUQwSHZCLDZCQzFIdUI7RUQySHZCLHFCQzNIdUI7QUxzdUQzQjs7QUtudURBO0VEeUpRO0VBbENKLG9DQ3RIdUI7RUR1SHZCLDRCQ3ZIdUI7QUx3dUQzQjs7QUtydURBO0VEdUpRO0VBcENKLG1DQ2xIdUI7RURtSHZCLDJCQ25IdUI7QUwwdUQzQjs7QUtudURBO0VEbUlRLDRCQ2xJZ0I7RURvR3BCLDJCQ3BHb0I7RURxR3BCLG1CQ3JHb0I7QUx3dUR4Qjs7QUtydURBO0VEMkhRO0VBMUJKLDhCQ2hHb0I7RURpR3BCLHNCQ2pHb0I7QUwwdUR4Qjs7QUt2dURBO0VEeUhRO0VBNUJKLDRCQzVGb0I7RUQ2RnBCLG9CQzdGb0I7RUFDcEI7QUw0dURKOztBS3p1REE7RURzSFEsMkJDckhnQjtFRHVGcEIsMEJDdkZvQjtFRHdGcEIsa0JDeEZvQjtFQUNwQjtBTDh1REo7O0FLM3VEQTtFRGlIUSw2QkNoSGdCO0VEa0ZwQiw0QkNsRm9CO0VEbUZwQixvQkNuRm9CO0VBQ3BCO0FMZ3ZESjs7QUt6dURBO0VEbUlJO0VBQ0E7RUFDQTtBSjBtREo7QUszdURRO0VBQ0k7QUw2dURaOztBS3h1REE7RUQrSEk7RUFDQTtFQUNBO0FKNm1ESjtBSzF1RFE7RUFDSTtFQUNBO0VBQ0E7QUw0dURaO0FLMXVEWTtFRDFGUjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUp1MERKOztBSzN1REE7RURxSEk7RUFDQTtFQUNBO0FKMG5ESjtBSzd1RFE7RUFDSTtFQUNBO0VBQ0E7QUwrdURaO0FLN3VEWTtFRDFHUjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUowMURKOztBSzl1REE7RUQyR0k7RUFDQTtFQUNBO0FKdW9ESjtBS2h2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OG1GRjtBUWxsRkU7RUFDRTtFQUNBO0FSb2xGSjtBaUJobkZFO0VBQ0U7RUFDQTtFQUNBO0FqQmtuRko7QWlCL21GRTtFQUNFO0FqQmluRko7QWlCM2xGRTtFQWpCQTtFQUNBO0FqQittRkY7QWlCN21GRTtFQUNFO0FqQittRko7QWlCN2xGRTtFQUNFO0VBQ0E7QWpCK2xGSjtBaUI1bEZFO0VBQ0U7RUFDQTtBakI4bEZKO0FpQjNsRkU7RUFDRTtFQUNBO0FqQjZsRko7QWlCMWxGRTtFQUNFO0VBQ0E7QWpCNGxGSjtBY3RuRUk7RUd4ZUY7SUFLSTtJQUNBO0lBQ0E7RWpCNmxGSjtBQUNGO0FpQjFsRkU7RUFDRTtFQUNBO0FqQjRsRko7QWlCemxGRTtFQUNFO0VBQ0E7QWpCMmxGSjtBaUJ4bEZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpCMGxGSjtBaUJ4bEZJO0VBQ0U7RUFDQTtBakIwbEZOO0FpQnRsRkU7RUFDRTtFQUNBO0VBQ0E7QWpCd2xGSjtBaUJwbEZJO0VBQ0U7QWpCc2xGTjtBaUJsbEZNO0VBQ0U7QWpCb2xGUjtBaUIva0ZFO0VBQ0U7RUFDQTtFQUNBO0FqQmlsRko7QWlCL2tGSTtFQUNFO0VBQ0E7RUFDQTtBakJpbEZOO0FpQjdrRkU7RUFDRTtBakIra0ZKOztBa0IzdEZBOzs7OztFQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQjZ0RkY7QWtCdHRGRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbEJ3dEZKO0FrQnJ0RkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQnV0Rko7QWM1dEVJO0VJemdCRjtJQWlCSTtFbEJ3dEZKO0FBQ0Y7QWtCbHRGSTtFQUNFO0VBQ0E7QWxCb3RGTjtBa0JqdEZJO0VBQ0U7RUFDQTtFQUNBO0FsQm10Rk47O0Ft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O0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtFQ0FBOzs7OztJQUFBO0VDQUE7Ozs7O0lBQUE7RUNBQTs7Ozs7SUFBQTtBbkUyMkhBO0FxQzcwSEU7RUFDRTtFQUNBO0VBQ0E7QXJDKzBISjtBcUM1MEhFO0VBQ0U7QXJDODBISjtBcUN4MEhJO0VBQ0U7QXJDMDBITjtBcUN4MEhNO0VBQ0U7RUFDQTtFQUNBO0FyQzAwSFI7QXFDeDBIUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBckMwMEhWO0FzQy8zSEE7RUFDRTtBdENpNEhGO0FzQy8zSEU7RUFDRTtBdENpNEhKO0F1Q3I0SEE7RUFDRTtFQUNBO0F2Q3U0SEY7QXVDcjRIRTtFQUNFO0F2Q3U0SEo7QXVDcDRIRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZDczRISjtBdUNuNEhFO0UvQnlCQTtBUjYySEY7QVEzMkhFO0VBQ0U7RUFDQTtBUjYySEo7QXdDejRIQTtFQUNFO0F4QzI0SEY7QXdDejRIRTtFQUNFO0VBRUE7RUFDQTtFQUNBO0F4QzA0SEo7QXdDeDRISTtFQUNFO0VBQ0E7T0FBQTtBeEMwNEhOO0F3Q3Q0SEU7RUFDRTtBeEN3NEhKO0F3Q3I0SEU7RUFDRTtBeEN1NEhKO0F3Q3A0SEU7RUFDRTtFQUNBO0VBQ0E7QXhDczRISjtBd0NwNEhJO0VBQ0U7QXhDczRITjtBd0NuNEhJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhDcTRITjtBd0NuNEhNO0VBQ0U7QXhDcTRIUjtBd0N4N0hJO0VBQ0U7RUFDQTtBeEMwN0hOO0F3QzU3SEk7RUFDRTtFQUNBO0F4Qzg3SE47QXdDaDhISTtFQUNFO0VBQ0E7QXhDazhITjtBd0NwOEhJO0VBQ0U7RUFDQTtBeENzOEhOO0F3Q3g4SEk7RUFDRTtFQUNBO0F4QzA4SE47QXlDajlIRTtFQUNFO0F6Q205SEo7QXlDajlIRTtFakNxQ0E7RWlDbkNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekNtOUhKO0FReDdIRTtFQUNFO0VBQ0E7QVIwN0hKO0F5Q3I5SEk7RUFDRTtFakNFSjtFQUNBO0VBQ0Esd0JpQ0hvQjtFQUNoQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F6Q3k5SE47QXlDdDlISTtFQUVFO0VBQ0E7QXpDdTlITjtBeUNyOUhNO0VBQ0U7QXpDdTlIUjtBeUNuOUhJO0VBQ0U7RUFDQTtBekNxOUhOO0F5Q2o5SEU7RUFDRTtBekNtOUhKO0F5Q2w5SEk7RUFDRTtBekNvOUhOO0F5Q2g5SEU7RUFDRTtBekNrOUhKO0F5Qy84SEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBekNpOUhKO0F5Qy84SEk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F6Q2k5SE47QXlDOThISTtFQUNFO0F6Q2c5SE47QXlDNzhISTtFQUNFO0F6Qys4SE47QTBDL2hJQTtFQUNFO0VBQ0E7QTFDaWlJRjtBY3ovR0k7RTRCMWlCSjtJQUtJO0lBQ0E7RTFDa2lJRjtBQUNGO0FjLy9HSTtFNEIxaUJKO0lBVUk7RTFDbWlJRjtBQUNGO0EwQ2ppSUU7RWxDNEJBO0VrQzFCRTtFQUNBO0ExQ21pSUo7QVF4Z0lFO0VBQ0U7RUFDQTtBUjBnSUo7QTBDcGlJRTtFQUNFO0ExQ3NpSUo7QTBDbmlJRTtFQUNFO0ExQ3FpSUo7QTBDbGlJRTtFQUNFO0ExQ29pSUo7QTJDaGtJQTtFQUNFO0VBQ0E7RUFDQTtBM0Nra0lGO0FjM2hISTtFNkIxaUJKO0lBTUk7SUFDQTtFM0Nta0lGO0FBQ0Y7QTJDamtJRTtFQUNFO0EzQ21rSUo7QWNwaUhJO0U2QmhpQkY7SUFJSTtFM0Nva0lKO0FBQ0Y7QTJDbGtJSTtFQUNFO0EzQ29rSU47QWM1aUhJO0U2QnpoQkE7SUFJSTtFM0Nxa0lOO0FBQ0Y7QTRDbmxJRTtFQUNFO0E1Q3FsSUo7QTRDbmxJSTtFQUNFO0E1Q3FsSU47QTZDaG1JRTtFQUNFO0E3Q2ttSUo7QThDbm1JRTtFQUNFO0VBQ0E7T0FBQTtFQUNBO0VBQ0E7RUFDQTtBOUNxbUlKO0E4Q25tSUk7RUFDRTtFQUNBO0VBQ0E7QTlDcW1JTjtBOENsbUlJO0VBQ0U7RUFDQTtBOUNvbUlOO0E4Q2ptSUk7O0VBRUU7QTlDbW1JTjtBOEMvbElNO0VBQ0U7RUFDQTtFQUNBO0E5Q2ltSVI7QThDNWxJTTtFQUNFO0VBQ0E7QTlDOGxJUjtBK0Nob0lFO0VBQ0U7QS9Da29JSjtBK0MvbklFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EvQ2lvSUo7QWNsbUhJO0VpQ3JpQkY7SUFTSTtJQUNBO0UvQ2tvSUo7QUFDRjtBY3htSEk7RWlDcmlCRjtJQWNJO0lBQ0E7RS9DbW9JSjtBQUNGO0ErQ2hvSU07RUFDRTtBL0Nrb0lSO0ErQzluSUk7RXZDWUY7QVJxbklGO0FRbm5JRTtFQUNFO0VBQ0E7QVJxbklKO0ErQ2xvSU07RUFDRTtBL0Nvb0lSO0ErQ2pvSU07RUFDRTtBL0Ntb0lSO0ErQ2pvSVE7RUFDRTtBL0Ntb0lWO0ErQ2hvSU07RUFDRTtBL0Nrb0lSO0ErQzluSUk7RUFDRTtFQUNBO0VBQ0E7QS9DZ29JTjtBK0M5bklNOztFQUVFO0EvQ2dvSVI7QStDN25JTTtFQUNFO0EvQytuSVI7QWdEMXJJQTtFQUNFO0VBQ0E7QWhENHJJRjtBZ0QxcklFO0VBQ0U7QWhENHJJSjtBZ0R6cklFO0VBQ0U7QWhEMnJJSjtBYzFwSEk7RWtDMWlCSjtJQWFJO0lBQ0E7RWhEMnJJRjtBQUNGO0FjaHFISTtFa0MxaUJKO0lBa0JJO0VoRDRySUY7QUFDRjtBZ0R4cklFO0VBQ0U7QWhEMHJJSjtBaURsdElBO0VBQ0U7RUFDQTtFQUNBO0FqRG90SUY7QWM3cUhJO0VtQzFpQko7SUFNSTtFakRxdElGO0FBQ0Y7QWlEbnRJRTtFekNnQ0E7QVJzcklGO0FRcHJJRTtFQUNFO0VBQ0E7QVJzcklKO0FpRHZ0SUk7RUFDRTtBakR5dElOO0FpRHJ0SUU7RUFDRTtFQUNBO0FqRHV0SUo7QWlEbnRJSTtFQUNFO0VBQ0E7RUFDQTtBakRxdElOO0FrRC91SUE7RUFDRTtBbERpdklGO0FjeHNISTtFb0MxaUJKO0lBSUk7RWxEa3ZJRjtBQUNGO0FtRHZ2SUE7RUFDRTtBbkR5dklGO0FtRHZ2SUU7RUFDRTtBbkR5dklKO0FvRDd2SUE7RUFDRTtFQUNBO09BQUE7QXBEK3ZJRjtBb0R4dklFO0VBQ0U7QXBEMHZJSjtBb0R4dklJO0VBQ0U7QXBEMHZJTjtBb0RydklJO0VBQ0U7QXBEdXZJTjtBb0RudklFO0U1Q2tCQTtFNENoQkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBcERxdklKO0FRMXVJRTtFQUNFO0VBQ0E7QVI0dUlKO0FjL3VISTtFc0NuaEJGO0lBWUk7SUFDQTtFcEQwdklKO0FBQ0Y7QW9EeHZJSTtFQUNFO0VBQ0E7QXBEMHZJTjtBb0R2dklJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FwRHl2SU47QWN2d0hJO0VzQzlmQTtJQWVJO0VwRDB2SU47QUFDRjtBb0R0dklNO0VBQ0U7QXBEd3ZJUjtBcUR4eklFO0VBQ0U7RUFDQTtFQUNBO0FyRDB6SUo7QXFEeHpJSTtFQUNFO0FyRDB6SU47QXNEajBJQTtFQUNFO0VBQ0E7QXREbTBJRjtBYzN4SEk7RXdDMWlCSjtJQUtJO0V0RG8wSUY7QUFDRjtBY2h5SEk7RXdDMWlCSjtJQVNJO0V0RHEwSUY7QUFDRjtBc0RuMElFO0VBQ0U7RUFDQTtFQUNBO0F0RHEwSUo7QXNEbDBJRTtFQUNFO0VBQ0E7QXREbzBJSjtBdUR2MUlFO0VBQ0U7QXZEeTFJSjtBY2p6SEk7RXlDemlCRjtJQUlJO0V2RDAxSUo7QUFDRjtBdUR2MUlFO0VBQ0U7RUFDQTtFQUNBO0VBRUE7QXZEdzFJSjtBYzV6SEk7RXlDamlCRjtJQVFJO0lBQ0E7SUFFQTtFdkR3MUlKO0FBQ0Y7QWNuMEhJO0V5Q2ppQkY7SUFlSTtFdkR5MUlKO0FBQ0Y7QXdEajNJRTtFQUNFO0VBQ0E7RUFDQTtBeERtM0lKO0F3RGozSUk7RUFDRTtBeERtM0lOO0F3RGgzSUk7RUFDRTtBeERrM0lOO0F3RC8ySVE7RUFDRTtBeERpM0lWO0F5RC8zSUU7RUFDRTtFQUNBO0F6RGk0SUo7QTBEcDRJQTtFQUNFO0VBQ0E7QTFEczRJRjtBYzkxSEk7RTRDMWlCSjtJQUtJO0lBQ0E7RTFEdTRJRjtBQUNGO0FjcDJISTtFNEMxaUJKO0lBVUk7RTFEdzRJRjtBQUNGO0EwRHQ0SUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBMUR3NElKO0FjbDNISTtFNEM3aEJGO0lBVUk7RTFEeTRJSjtBQUNGO0EwRHY0SUk7RUFDRTtFQUNBO0ExRHk0SU47QTJEcjZJQztFQUNHO0VBQ0E7QTNEdTZJSjtBYy8zSEk7RTZDMWlCSDtJQUtLO0lBQ0E7RTNEdzZJSjtBQUNGO0FjcjRISTtFNkMxaUJIO0lBVUs7RTNEeTZJSjtBQUNGO0EyRHY2SUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBM0R5NklOO0FjbjVISTtFNkM3aEJBO0lBVUk7RTNEMDZJTjtBQUNGO0EyRHg2SU07RUFDRTtFQUNBO0EzRDA2SVI7QTREdDhJQTtFQUNFO0E1RHc4SUY7QTREdDhJRTtFQUNFO0E1RHc4SUo7QWNsNkhJO0U4Q3ZpQkY7SUFJSTtFNUR5OElKO0FBQ0Y7QTREdjhJSTtFQUNFO0E1RHk4SU47QWMxNkhJO0U4Q2hpQkE7SUFJSTtFNUQwOElOO0FBQ0Y7QTRELzZJRTtFQUNFO0VBQ0E7QTVEaTdJSjtBY243SEk7RThDaGdCRjtJQUtJO0U1RGs3SUo7QUFDRjtBNkRqK0lFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RG0rSUo7QWNoOEhJO0UrQ3ppQkY7SUFTSTtFN0RvK0lKO0FBQ0Y7QTZEbCtJSTtFckQ0QkY7QVJ5OElGO0FRdjhJRTtFQUNFO0VBQ0E7QVJ5OElKO0E2RHQrSU07RUFDRTtBN0R3K0lSO0E2RHArSUk7RUFDRTtBN0RzK0lOO0E2RHArSU07RUFDRTtBN0RzK0lSO0E4RDkvSUU7RUFDRTtBOURnZ0pKO0E4RDkvSUU7RUFDRTtFQUNBO0VBQ0E7QTlEZ2dKSjtBK0RwZ0pNO0VBQ0U7QS9Ec2dKUjtBK0RsZ0pJOztFQUVFO0EvRG9nSk47QWNwK0hJO0VpRGxpQkE7O0lBS0k7RS9Ec2dKTjtBQUNGO0ErRG5nSkk7Ozs7OztFQU1FO0VBQ0E7RUFDQTtBL0RxZ0pOO0ErRGxnSkk7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7QS9Eb2dKTjtBK0RqZ0pJO0VBQ0U7RUFDQTtFdkRHSjtFU25DQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakJxaUpGO0FRemdKRTtFQUNFO0VBQ0E7QVIyZ0pKO0FpQnZpSkU7RUFDRTtFQUNBO0VBQ0E7QWpCeWlKSjtBaUJ0aUpFO0VBQ0U7QWpCd2lKSjtBK0R2aEpNO0U5Q1pKO0VBQ0E7RThDY007RUFDQTtBL0R5aEpSO0FpQnRpSkU7RUFDRTtBakJ3aUpKO0ErRHRoSkE7O0VBRUU7QS9Ed2hKRjtBK0R2aEpFOztFQUNFO0EvRDBoSko7QWdFaGxKRTtFQUNFO0FoRWtsSko7QWtFbmxKRTtFQUNFO0VBQ0E7RUFDQTtBbEVxbEpKO0FjL2lJSTtFb0R6aUJGO0lBS0k7RWxFdWxKSjtBQUNGO0FrRXRsSkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBbEV3bEpOO0FrRXZsSk07RUFDRTtBbEV5bEpSO0FrRXZsSk07RUFDRTtBbEV5bEpSO0FrRXZsSk07RUFDRTtBbEV5bEpSO0FrRXRsSlE7RUFDRTtBbEV3bEpWO0FrRW5sSkU7RUFDRTtFQUNFO0FsRXFsSk47QWtFcGxKTTtFQUNFO0VBQ0E7RTFET047RVNuQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpCb25KRjtBUXhsSkU7RUFDRTtFQUNBO0FSMGxKSjtBaUJ0bkpFO0VBQ0U7RUFDQTtFQUNBO0FqQnduSko7QWlCcm5KRTtFQUNFO0FqQnVuSko7QWtFMW1KUTtFakRSTjtFQUNBO0FqQnFuSkY7QWlCbm5KRTtFQUNFO0FqQnFuSko7QW1FdHBKQTtFQUNFO0VBQ0E7RUFDQTtBbkV3cEpGO0Fj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eUxKO0FpRjF5TEU7RUFDRTtBakY0eUxKO0FpRjF5TEU7RUFDRTtFQUNBO0VBQ0E7QWpGNHlMSjtBaUZ4eUxFO0VBQ0U7QWpGMHlMSjtBaUZ2eUxFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRnl5TEo7QWlGdHlMRTtFQUNFO0VBQ0E7QWpGd3lMSjtBaUZ0eUxFO0VBQ0U7QWpGd3lMSjtBaUZyeUxFO0VBQ0U7RUFDQTtBakZ1eUxKO0FpRnB5TEU7RUFDRTtFQUNBO0FqRnN5TEo7QWlGbnlMRTtFQUNFO0FqRnF5TEo7QWlGN3hMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakYreExKO0FpRnZ4TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRnl4TEo7QWlGdnhMRTtFQUNFO0VBQ0E7QWpGeXhMSjtBaUZ0eExFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakZ3eExKO0FpRnJ4TEU7RUFDRTtBakZ1eExKO0FpRm54TEU7RUFDRTtBakZxeExKO0FpRjN3TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRjZ3TEo7QWlGMXdMRTtFQUNFO0VBQ0E7RUFDQTtBakY0d0xKO0FpRnp3TEU7RUFDRTtBakYyd0xKO0FpRnp3TEU7RUFDRTtFQUNBO0FqRjJ3TEo7QWlGeHdMRTtFQUNFO0FqRjB3TEo7QWlGeHdMRTtFQUNFO0VBQ0E7QWpGMHdMSjtBaUZ4d0xFO0VBQ0U7RUFFQTtBakZ5d0xKO0FpRnR3TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRnd3TEo7QWlGcndMRTtFQUNFOzs7S0FBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0FqRnV3TEo7QWlGcHdMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqRnN3TEo7QWlGbndMRTtF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QUNBO0VBQ0E7RUFDQTtLQUFBO0F2Rit1Tk47QXVGNXVOSTs7O0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdkZndk5OO0F1Rjl1Tk07OztFQUNFO0F2Rmt2TlI7QXVGaHZOTTs7O0VBQ0U7QXZGb3ZOUjtBdUZqdk5NOzs7RUFDRTtFQUNBO0F2RnF2TlI7QXVGaHZOTTs7O0VBQ0U7QXZGb3ZOUjtBdUYvdU5FOzs7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F2Rm12Tko7QWNqeU1JO0V5RXZkRjs7O0lBUUk7RXZGc3ZOSjtBQUNGO0F1RnB2Tkk7OztFL0VyREY7RStFdURJO0F2Rnd2Tk47QVE3eU5FOzs7RUFDRTtFQUNBO0FSaXpOSjtBdUYzdk5JOzs7RUFDRTtFQUNBO0VBQ0E7QXZGK3ZOTjtBYzN6TUk7RXlFaGNFOzs7SUFDRTtJQUNBO0lBQ0E7RXZGZ3dOTjtBQUNGO0F1Rjd2Tkk7OztFQUNFO0F2Rml3Tk47QXVGN3ZORTs7O0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBdkZpd05KO0F1Ri92Tkk7OztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXZGbXdOTjtBdUZqd05NOzs7RUFDRTtFQUNBO0F2RnF3TlI7QXVGbHdOTTs7O0VBQ0U7RUFDQTtBdkZzd05SO0F1Rmx3Tkk7OztFQUNFO0VBQ0E7QXZGc3dOTjtBYzcyTUk7RXlFclpFOzs7SUFDRTtJQUNBO0lBQ0E7RXZGdXdOTjtBQUNGO0F1Rm53TkU7OztFQUNFO0F2RnV3Tko7O0F1Rnp2TkU7RUFDRTtBdkY0dk5KO0F1Rnp2TkU7RUFDRTtFQUNBO0F2RjJ2Tko7QXVGeHZORTtFQUNFO0F2RjB2Tko7QXVGdnZORTtFQUNFO0F2Rnl2Tko7O0F1RnJ2TkE7RUFDRTtFQUNBO0VBQ0E7QXZGd3ZORjtBYy80TUk7RXlFNVdKO0lBTUk7SUFDQTtFdkZ5dk5GO0FBQ0Y7QWNyNU1JO0V5RTVXSjtJQVdJO0V2RjB2TkY7QUFDRjtBdUZ4dk5FO0VBQ0U7QXZGMHZOSjtBdUZwc05FO0VBQ0U7RUFDQTtBdkZzc05KO0F1Rm5zTkU7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QUNGO0EwRnIxT007RUFDRTtBMUZ1MU9SO0EwRnAxT007RUFDRTtBMUZzMU9SO0EwRnAxT1E7RUFDRTtBMUZzMU9WO0EwRmgxT0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0ExRmsxT0o7QWNwNE5JO0U0RTVkRjtJQWtCSTtJQUNBO0lBQ0E7RTFGazFPSjtBQUNGO0EwRmgxT0k7RUFDRTtBMUZrMU9OO0FjOTROSTtFNEVyY0E7SUFJSTtFMUZtMU9OO0FBQ0Y7QTBGaDFPSTtFQUNFO0ExRmsxT047QTBGLzBPSTtFQUNFO0ExRmkxT047QTBGLzBPTTtFQUNFO0ExRmkxT1I7O0EwRnQwT1U7RUFDRTtFQUNBO0ExRnkwT1o7QTBGdDBPYztFQUNFO1VBQUE7QTFGdzBPaEI7QTBGN3pPVTtFQUNFO0VBQ0E7RUFDQTtBMUYrek9aO0EwRjl6T1k7RUFDRTtFQUNBO0VBQ0E7QTFGZzBPZDs7QTBGcnpPQTtFQUNFO0lBQ0U7RTFGd3pPRjtFMEZ0ek9BO0lBQ0U7RTFGd3pPRjtFMEZyek9BO0lBQ0U7RTFGdXpPRjtFMEZyek9BO0lBQ0U7RTFGdXpPRjtBQUNGOztBMEZwME9BO0VBQ0U7SUFDRTtFMUZ3ek9GO0UwRnR6T0E7SUFDRTtFMUZ3ek9GO0UwRnJ6T0E7SUFDRTtFMUZ1ek9GO0UwRnJ6T0E7SUFDRTtFMUZ1ek9GO0FBQ0Y7QUFqNU9BOztDQUFBO0EyRjdGQTs7Ozs7Q0FBQTtBQU9BOztDQUFBO0FBSUE7O0NBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtBM0ZpL09GLEMiLCJmaWxlIjoiY3NzL2dsb2JhbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgUGhvdG9Td2lwZSBtYWluIENTUyBieSBEbWl0cnkgU2VtZW5vdiB8IHBob3Rvc3dpcGUuY29tIHwgTUlUIGxpY2Vuc2UgKi9cbi8qXG5cdFN0eWxlcyBmb3IgYmFzaWMgUGhvdG9Td2lwZSBmdW5jdGlvbmFsaXR5IChzbGlkaW5nIGFyZWEsIG9wZW4vY2xvc2UgdHJhbnNpdGlvbnMpXG4qL1xuLyogcHN3cCA9IHBob3Rvc3dpcGUgKi9cbi5wc3dwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgei1pbmRleDogMTUwMDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiBjcmVhdGUgc2VwYXJhdGUgbGF5ZXIsIHRvIGF2b2lkIHBhaW50IG9uIHdpbmRvdy5vbnNjcm9sbCBpbiB3ZWJraXQvYmxpbmsgKi9cbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnBzd3AgKiB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAucHN3cCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKiBzdHlsZSBpcyBhZGRlZCB3aGVuIEpTIG9wdGlvbiBzaG93SGlkZU9wYWNpdHkgaXMgc2V0IHRvIHRydWUgKi9cbi5wc3dwLS1hbmltYXRlX29wYWNpdHkge1xuICAvKiAwLjAwMSwgYmVjYXVzZSBvcGFjaXR5OjAgZG9lc24ndCB0cmlnZ2VyIFBhaW50IGFjdGlvbiwgd2hpY2ggY2F1c2VzIGxhZyBhdCBzdGFydCBvZiB0cmFuc2l0aW9uICovXG4gIG9wYWNpdHk6IDAuMDAxO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgLyogZm9yIG9wZW4vY2xvc2UgdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfVxuXG4ucHN3cC0tb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluOyB9XG5cbi5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IC1tb3otZ3JhYjtcbiAgY3Vyc29yOiBncmFiOyB9XG5cbi5wc3dwLS1kcmFnZ2luZyAucHN3cF9faW1nIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7IH1cblxuLypcblx0QmFja2dyb3VuZCBpcyBhZGRlZCBhcyBhIHNlcGFyYXRlIGVsZW1lbnQuXG5cdEFzIGFuaW1hdGluZyBvcGFjaXR5IGlzIG11Y2ggZmFzdGVyIHRoYW4gYW5pbWF0aW5nIHJnYmEoKSBiYWNrZ3JvdW5kLWNvbG9yLlxuKi9cbi5wc3dwX19iZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxuXG4ucHN3cF9fc2Nyb2xsLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7IH1cblxuLyogUHJldmVudCBzZWxlY3Rpb24gYW5kIHRhcCBoaWdobGlnaHRzICovXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX2ltZyB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IH1cblxuLnBzd3BfX3pvb20td3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7IH1cblxuLnBzd3BfX2JnIHtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gIC8qIGZvciBvcGVuL2Nsb3NlIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7IH1cblxuLnBzd3AtLWFuaW1hdGVkLWluIC5wc3dwX19iZyxcbi5wc3dwLS1hbmltYXRlZC1pbiAucHN3cF9fem9vbS13cmFwIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5wc3dwX19jb250YWluZXIsXG4ucHN3cF9fem9vbS13cmFwIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnBzd3BfX2l0ZW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ucHN3cF9faW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLypcblx0c3RyZXRjaGVkIHRodW1ibmFpbCBvciBkaXYgcGxhY2Vob2xkZXIgZWxlbWVudCAoc2VlIGJlbG93KVxuXHRzdHlsZSBpcyBhZGRlZCB0byBhdm9pZCBmbGlja2VyaW5nIGluIHdlYmtpdC9ibGluayB3aGVuIGxheWVycyBvdmVybGFwXG4qL1xuLnBzd3BfX2ltZy0tcGxhY2Vob2xkZXIge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKlxuXHRkaXYgZWxlbWVudCB0aGF0IG1hdGNoZXMgc2l6ZSBvZiBsYXJnZSBpbWFnZVxuXHRsYXJnZSBpbWFnZSBsb2FkcyBvbiB0b3Agb2YgaXRcbiovXG4ucHN3cF9faW1nLS1wbGFjZWhvbGRlci0tYmxhbmsge1xuICBiYWNrZ3JvdW5kOiAjMjIyOyB9XG5cbi5wc3dwLS1pZSAucHN3cF9faW1nIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDsgfVxuXG4vKlxuXHRFcnJvciBtZXNzYWdlIGFwcGVhcnMgd2hlbiBpbWFnZSBpcyBub3QgbG9hZGVkXG5cdChKUyBvcHRpb24gZXJyb3JNc2cgY29udHJvbHMgbWFya3VwKVxuKi9cbi5wc3dwX19lcnJvci1tc2cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW4tdG9wOiAtOHB4O1xuICBjb2xvcjogI0NDQzsgfVxuXG4ucHN3cF9fZXJyb3ItbXNnIGEge1xuICBjb2xvcjogI0NDQztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNYWluIC0gR2xvYmFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBEZXBlbmRlbmNpZXNcbiAqL1xuQGltcG9ydCAnfmluY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd+bm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3MnO1xuQGltcG9ydCAnfnJlZmxleC1ncmlkL3Njc3MvcmVmbGV4LnNjc3MnO1xuQGltcG9ydCAnfnBob3Rvc3dpcGUvZGlzdC9waG90b3N3aXBlLmNzcyc7XG5cbi8qKlxuICogSGVscGVyc1xuICovXG5AaW1wb3J0ICdoZWxwZXJzL2ZvY3VzLXZpc2libGUnO1xuQGltcG9ydCAnaGVscGVycy9mb250LXNtb290aGluZyc7XG5AaW1wb3J0ICdoZWxwZXJzL21peGlucyc7XG5AaW1wb3J0ICdoZWxwZXJzL3RhYmxlJztcblxuLyoqXG4gKiBDb25maWdcbiAqL1xuQGltcG9ydCAnY29uZmlnL2ZvbnRzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJzJztcblxuLyoqXG4gKiBCYXNlXG4gKi9cbkBpbXBvcnQgJ2Jhc2UvZGVmYXVsdHMnO1xuQGltcG9ydCAnYmFzZS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Jhc2UvbWFpbic7XG5AaW1wb3J0ICdiYXNlL2FuaW1hdGlvbnMnO1xuXG4vKipcbiogQXRvbXNcbiovXG5AaW1wb3J0ICdhdG9tcy9idXR0b25zJztcbkBpbXBvcnQgJ2F0b21zL2ltYWdlLWNyZWRpdCc7XG5AaW1wb3J0ICdhdG9tcy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdhdG9tcy9sb2FkZXInO1xuQGltcG9ydCAnYXRvbXMvZGF0ZS1waWNrZXInO1xuQGltcG9ydCAnYXRvbXMvcGFnZXInO1xuQGltcG9ydCAnYXRvbXMvY29scyc7XG5AaW1wb3J0ICdhdG9tcy9jYXB0aW9uJztcbkBpbXBvcnQgJ2F0b21zL2F1dG8tZ3JpZCc7XG5AaW1wb3J0ICdhdG9tcy9saW5rcyc7XG5AaW1wb3J0ICdhdG9tcy9zaWRlYmFyJztcbkBpbXBvcnQgJ2F0b21zL3RhZyc7XG5AaW1wb3J0ICdhdG9tcy9zdGlja3knO1xuQGltcG9ydCAnYXRvbXMvY2FuY2VsbGVkJztcbkBpbXBvcnQgJ2F0b21zL3NraXAtbGluayc7XG5AaW1wb3J0ICdhdG9tcy9saXN0aW5nJztcbkBpbXBvcnQgJ2F0b21zL2NpdGUnO1xuQGltcG9ydCAnYXRvbXMvYmFjay10b3AnO1xuQGltcG9ydCAnYXRvbXMvZ3JpZCc7XG5cbi8qKlxuICogTW9sZWN1bGVzXG4gKi9cbkBpbXBvcnQgJ21vbGVjdWxlcy9lbW1zZyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvYmxvY2tzJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9mb3Jtcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvbmF2JztcbkBpbXBvcnQgJ21vbGVjdWxlcy9iYW5uZXInO1xuQGltcG9ydCAnbW9sZWN1bGVzL3NvY2lhbC1saW5rcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvc3VibmF2JztcbkBpbXBvcnQgJ21vbGVjdWxlcy9pbnRybyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvYW5jaG9yLW5hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvY291cnNlLWRldGFpbHMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3Blb3BsZS1zaWRlYmFyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9ob21lcGFnZS1iYW5uZXInO1xuQGltcG9ydCAnbW9sZWN1bGVzL2V2ZW50LXNpZGViYXInO1xuQGltcG9ydCAnbW9sZWN1bGVzL3NlYXJjaC1mb3JtJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9wZXJmb3JtYW5jZXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3Bob3Rvc3dpcGUnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3RvZ2dsZS1zdWJuYXYnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3N1Ym5hdi1jb250YWluZXInO1xuXG4vKipcbiAqIE9yZ2FuaXNpbXNcbiAqL1xuQGltcG9ydCAnb3JnYW5pc21zL2hlYWRlcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvZm9vdGVyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9zZWFyY2gtcmVzdWx0cyc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvdGVhc2VyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9saXN0aW5nJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9wZW9wbGUnO1xuQGltcG9ydCAnb3JnYW5pc21zL21vZGFsJztcblxuLyoqXG4qIFRlbXBsYXRlc1xuKi9cbkBpbXBvcnQgJ3RlbXBsYXRlcy9wb3N0JztcbiIsIi8qISBub3JtYWxpemUuc2NzcyB2MC4xLjAgfCBNSVQgTGljZW5zZSB8IGJhc2VkIG9uIGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCB2YXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFByZWZpeFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gWW91IGNhbiBvcHRpb25hbGx5IG5hbWVzcGFjZSByZWZsZXggY2xhc3NlcyB0byBhdm9pZCBjbGFzaGluZyB3aXRoIG90aGVyIGNzcyBmcmFtZXdvcmtzXG4vLyBlLmcuIHNldHRpbmcgJHJlZmxleC1wcmVmaXggYXMgXCJyZWZsZXgtXCIgaGVyZSB3b3VsZCBjYXVzZSBjb2wtc20tNiB0byBiZWNvbWUgcmVmbGV4LWNvbC1zbS02XG4vLyBFeGFtcGxlOiAkcmVmbGV4LXByZWZpeDogcmVmbGV4LTtcbi8vIEJ5IGRlZmF1bHQgdGhpcyBpcyBhbiBlbXB0eSBzdHJpbmdcbiRyZWZsZXgtcHJlZml4OiBudWxsICFkZWZhdWx0O1xuXG5cbi8vIExlZ2FjeSBzdXBwb3J0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWZsZXggYWRkcyBhIGxvdCBvZiBjc3MgcHJvcGVydGllIHRvIHN1cHBvcnQgb2xkZXIgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGZsZXhib3ggbGF5b3V0LlxuLy8gSWYgeW91IHByZWZlciB0byB1c2UgdGhpcyBhcyBhIHB1cmVseSBmbGV4Ym94IGdyaWQgd2l0aG91dCBsZWdhY3kgc3VwcG9ydCB0aGVuIHNldCB0aGlzIHRvIGZhbHNlXG4kbGVnYWN5LXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWZsZXggaGFzIHNvbWUgZ2VuZXJpYyB2aXNpYmlsaXR5IGNsYXNzZXMgdG8gaGlkZSBlbGVtZW50cyBhdCBkaWZmZXJlbnQgYnJlYWtwb2ludHMuXG4vLyBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIHRoZXNlIHRoZW4gc2V0IHRoaXMgdG8gZmFsc2VcbiR2aXNpYmlsaXR5LWhlbHBlcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIEdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgtY29sdW1uczogMTIgIWRlZmF1bHQ7IC8vIG51bWJlciBvZiBjb2x1bW5zXG5cbi8vIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kcmVmbGV4LXhzOiA1NzZweCAhZGVmYXVsdDtcbiRyZWZsZXgtc206IDc2OHB4ICFkZWZhdWx0O1xuJHJlZmxleC1tZDogOTkycHggIWRlZmF1bHQ7XG4kcmVmbGV4LWxnOiAxMjAwcHggIWRlZmF1bHQ7XG4kcmVmbGV4LXhsZzogMTYwMHB4ICFkZWZhdWx0O1xuXG4kcmVmbGV4LXh4cy1tYXg6ICgkcmVmbGV4LXhzIC0gMSk7XG4kcmVmbGV4LXhzLW1heDogKCRyZWZsZXgtc20gLSAxKTtcbiRyZWZsZXgtc20tbWF4OiAoJHJlZmxleC1tZCAtIDEpO1xuJHJlZmxleC1tZC1tYXg6ICgkcmVmbGV4LWxnIC0gMSk7XG4kcmVmbGV4LWxnLW1heDogKCRyZWZsZXgteGxnIC0gMSk7XG5cbiRyZWZsZXgtYnJlYWtwb2ludHM6IChcbiAgeHhzOiAwcHgsXG4gIHhzOiAkcmVmbGV4LXhzLFxuICBzbTogJHJlZmxleC1zbSxcbiAgbWQ6ICRyZWZsZXgtbWQsXG4gIGxnOiAkcmVmbGV4LWxnLFxuICB4bGc6ICRyZWZsZXgteGxnXG4pO1xuXG4vLyBTcGFjaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kcmVmbGV4LWdyaWQtc3BhY2luZzogMTVweCAhZGVmYXVsdDtcblxuLy8gQ3VzdG9tIHByb3BlcnRpZXMgc28gb3RoZXJzIGNhbiByZWZlcmVuY2UgdGhlIHZhcmlhYmxlcy5cbjpyb290IHtcbiAgLS1yZWZsZXgtY29sdW1uczogI3sgJHJlZmxleC1jb2x1bW5zIH07XG4gIC0tcmVmbGV4LWdyaWQtc3BhY2luZzogI3sgJHJlZmxleC1ncmlkLXNwYWNpbmcgfTtcbiAgLS1yZWZsZXgteHM6ICN7ICRyZWZsZXgteHMgfTtcbiAgLS1yZWZsZXgtc206ICN7ICRyZWZsZXgtc20gfTtcbiAgLS1yZWZsZXgtbWQ6ICN7ICRyZWZsZXgtbWQgfTtcbiAgLS1yZWZsZXgtbGc6ICN7ICRyZWZsZXgtbGcgfTtcbiAgLS1yZWZsZXgteGxnOiAjeyAkcmVmbGV4LXhsZyB9O1xuICAtLXJlZmxleC14eHMtbWF4OiAjeyAkcmVmbGV4LXh4cy1tYXggfTtcbiAgLS1yZWZsZXgteHMtbWF4OiAjeyAkcmVmbGV4LXhzLW1heCB9O1xuICAtLXJlZmxleC1zbS1tYXg6ICN7ICRyZWZsZXgtc20tbWF4IH07XG4gIC0tcmVmbGV4LW1kLW1heDogI3sgJHJlZmxleC1tZC1tYXggfTtcbiAgLS1yZWZsZXgtbGctbWF4OiAjeyAkcmVmbGV4LWxnLW1heCB9O1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb250YWluZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1jb250YWluZXIsXG4uI3skcmVmbGV4LXByZWZpeH1jb250YWluZXItZnVsbCB7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogKCRyZWZsZXgtZ3JpZC1zcGFjaW5nICogMik7XG4gICAgcGFkZGluZy1sZWZ0OiAoJHJlZmxleC1ncmlkLXNwYWNpbmcgKiAyKTtcblxuICAgIC4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lciB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXhzO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1zbTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtbWQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LWxnO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgteGxnO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBncmlkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1ncmlkIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIGRpc3BsYXktZmxleCgpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCgpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHNldHVwLXdoaXRlc3BhY2UoKTtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LXdoaXRlc3BhY2UoKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgd2hlbiBsaXN0cyBhcmUgdXNlZCBhcyBhIGdyaWRcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggY29sIGRlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5bY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIEBpbmNsdWRlIHJlc2V0LXdoaXRlc3BhY2UoKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBwYWRkaW5nOiAkcmVmbGV4LWdyaWQtc3BhY2luZztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LXdoaXRlc3BhY2UoKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgZ3JpZHMgbmVzdGVkIGluIGNvbHVtbnNcbiAgICAuI3skcmVmbGV4LXByZWZpeH1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxLCAxLCBhdXRvKTtcbiAgICAgICAgbWFyZ2luOiAtJHJlZmxleC1ncmlkLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICAgICB6b29tOiAxO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBncmlkIGdlbmVyYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLSk7XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhzKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wteHMtKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1zbS0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLW1kLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LWxnKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtbGctKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wteGxnLSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggY29sLWF1dG9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1hdXRvIHtcbiAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wteHMtYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wtc20tYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wtbWQtYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wtbGctYXV0byB7XG4gICAgICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Y29sLXhsZy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG9yZGVyIGhlbHBlcnMgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1vcmRlci1oZWxwZXJzKCk7XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICcteHMnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1zbScpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgtbWQpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLW1kJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctbGcnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICcteGxnJyk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb2Zmc2V0IGhlbHBlcnMgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1vZmZzZXQtaGVscGVycygpO1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICcteHMnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygkcmVmbGV4LWNvbHVtbnMgLSAxLCAnLXNtJyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1tZCcpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICctbGcnKTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy14bGcnKTtcbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggZ3JpZCBnZW5lcmF0aW9uIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIG1ha2UtcmVmbGV4LWdyaWQoJGNsYXNzKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1yZWZsZXgtY29sdW1ucygkcmVmbGV4LWNvbHVtbnMsICRjbGFzcywgd2lkdGgpO1xufVxuXG5AbWl4aW4gY2FsYy1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpIHtcbiAgICBAaWYgJHR5cGUgPT0gd2lkdGggYW5kICRpbmRleCA+IDAge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH0jeyRjbGFzc30jeyRpbmRleH0ge1xuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRyZWZsZXgtY29sdW1ucykpO1xuICAgICAgICAgICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAqd2lkdGg6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRyZWZsZXgtY29sdW1ucykpIC0gLjE7IC8vIGllNyBjc3MgaGFja1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbG9vcC1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpIHtcbiAgICBAaWYgJGluZGV4ID49IDAge1xuICAgICAgICBAaW5jbHVkZSBjYWxjLXJlZmxleC1jb2x1bW5zKCRpbmRleCwgJGNsYXNzLCAkdHlwZSk7XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoKCRpbmRleCAtIDEpLCAkY2xhc3MsICR0eXBlKTtcbiAgICB9XG59XG5cbi8vIGRlZmF1bHRzIGZvciBhdXRvIGNvbHNcbkBtaXhpbiBzZXR1cC1hdXRvLWNvbHMoKSB7XG4gICAgQGluY2x1ZGUgZmxleCgxLCAwLCAwcHgpOyAvLyBhIHVuaXQgb24gbGFzdCB2YWx1ZSBpcyByZXF1aXJlZCBieSBJRTEwLTExXG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBpbmxpbmUtYmxvY2sgc3BlY2lmaWMgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gc2V0dXAtd2hpdGVzcGFjZSgpIHtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4zMWVtO1xuICAgICAgICAqbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd29yZC1zcGFjaW5nOiAtLjQzZW07XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtd2hpdGVzcGFjZSgpIHtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG59XG5cbkBtaXhpbiByZXNldC10ZXh0LWFsaWduKCkge1xuICAgIC8vXG4gICAgLy8gV2Ugd2FudCB0byByZXNldCBhbnkgdGV4dC1hbGlnbiBwcm9wZXJ0aWVzIHNldCBieSB0aGUgZ3JpZFxuICAgIC8vIChyZXF1aXJlZCBmb3IgdGhlIGlubGluZS1ibG9jayBmYWxsYmFjaylcbiAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0byBvdmVycmlkZSBhbnkgdGV4dC1hbGlnbiBwcm9wZXJ0aWVzXG4gICAgLy8gc2V0IG9uIHRoZSBpbmRpdmlkdWFsIGNvbC14IGVsZW1lbnRcbiAgICAvLyBvciBvbiBhbnkgb2YgaXQncyBjaGlsZCBlbGVtZW50c1xuICAgIC8vXG4gICAgLy8gMSkgc2V0IHRvIGxlZnQgYnkgZGVmYXVsdCAod29ya3MgZXZlcnl3aGVyZSlcbiAgICAvLyAyKSBzZXQgdG8gc3RhcnQgKHJlc3BlY3RzIHJpZ2h0IHRvIGxlZnQgdGV4dClcbiAgICAvL1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IHN0YXJ0O1xuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IHN0YXJ0O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb3JkZXIgY2xhc3MgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBvcmRlcigkb3JkZXI6IDApIHtcbiAgICAtbXMtZmxleC1vcmRlcjogJG9yZGVyO1xuICAgIC13ZWJraXQtb3JkZXI6ICRvcmRlcjtcbiAgICBvcmRlcjogJG9yZGVyO1xufVxuXG5AbWl4aW4gbWFrZS1vcmRlci1oZWxwZXJzKCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMpO1xufVxuXG5AbWl4aW4gbG9vcC1vcmRlci1oZWxwZXJzKCRpbmRleCwgJGJyZWFrcG9pbnQ6IG51bGwpIHtcbiAgICBAaWYgJGluZGV4ID49IDAge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vcmRlciN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcmRlcigkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvZmZzZXQgY2xhc3MgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb2Zmc2V0KCRpbmRleDogMCkge1xuICAgICRvZmZzZXQ6ICgkaW5kZXggLyAkcmVmbGV4LWNvbHVtbnMpO1xuICAgIC8vIGNvbnZlcnQgdG8gcGVyY2VudGFnZSBvbmx5IGlmIG5vdCB6ZXJvXG4gICAgQGlmICRvZmZzZXQgIT0gMCB7XG4gICAgICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJG9mZnNldCk7XG4gICAgfVxuICAgIG1hcmdpbi1sZWZ0OiAkb2Zmc2V0O1xuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICptYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGluZGV4IC8gJHJlZmxleC1jb2x1bW5zKSkgLSAuMTsgLy8gaWU3IGNzcyBoYWNrXG4gICAgfVxufVxuXG5AbWl4aW4gbWFrZS1vZmZzZXQtaGVscGVycygpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEpO1xufVxuXG5AbWl4aW4gbG9vcC1vZmZzZXQtaGVscGVycygkaW5kZXgsICRicmVha3BvaW50OiBudWxsKSB7XG4gICAgQGlmICRpbmRleCA+IDAgYW5kICRicmVha3BvaW50ID09IG51bGwge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vZmZzZXQjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb2Zmc2V0KCRpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9IEBlbHNlIGlmICRpbmRleCA+PSAwIGFuZCAkYnJlYWtwb2ludCAhPSBudWxsIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9b2Zmc2V0I3skYnJlYWtwb2ludH0tI3skaW5kZXh9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9mZnNldCgkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoKCRpbmRleCAtIDEpLCAkYnJlYWtwb2ludCk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG1vZGlmaWVyIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy9cbi8vIGRpc3BsYXlcbi8vIC0tLVxuXG5AbWl4aW4gZGlzcGxheS1mbGV4KCkge1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vL1xuLy8gZmxleFxuLy8gLS0tXG5cbkBtaXhpbiBmbGV4KCRncm93OiAwLCAkc2hyaW5rOiAxLCAkYmFzaXM6IGF1dG8pIHtcbiAgICBAaWYgJGJhc2lzID09IDAge1xuICAgICAgICAtbXMtZmxleDogJGdyb3cgJHNocmluayBhdXRvOyAvL2llMTAgbmVlZHMgYXV0b1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleDogJGdyb3cgJHNocmluayAkYmFzaXM7XG4gICAgfVxuXG4gICAgLXdlYmtpdC1mbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbiAgICBmbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbn1cblxuQG1peGluIGZsZXgtZ3JvdygkZ3JvdzoxKSB7XG4gICAgLW1zLWZsZXgtcG9zaXRpdmU6ICRncm93O1xuICAgIC13ZWJraXQtZmxleC1ncm93OiAkZ3JvdztcbiAgICBmbGV4LWdyb3c6ICRncm93O1xufVxuXG5AbWl4aW4gZmxleC1zaHJpbmsoJHNocmluazoxKSB7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRzaHJpbms7XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogJHNocmluaztcbiAgICBmbGV4LXNocmluazogJHNocmluaztcbn1cblxuQG1peGluIGZsZXgtYmFzaXMoJGJhc2lzOmF1dG8pIHtcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJGJhc2lzO1xuICAgIC13ZWJraXQtZmxleC1iYXNpczogJGJhc2lzO1xuICAgIGZsZXgtYmFzaXM6ICRiYXNpcztcbn1cblxuQG1peGluIGZsZXgtZmxvdygkZGlyZWN0aW9uOiByb3csICR3cmFwOiBub3dyYXApIHtcbiAgICAtbXMtZmxleC13cmFwOiAkd3JhcDtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgLXdlYmtpdC1mbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG4gICAgZmxleC1mbG93OiAkZGlyZWN0aW9uICR3cmFwO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR3cmFwOiB3cmFwKSB7XG4gICAgLW1zLWZsZXgtd3JhcDogJHdyYXA7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIGZsZXgtd3JhcDogJHdyYXA7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cblxuLy9cbi8vIGFsaWduXG4vLyAtLS1cblxuQG1peGluIGFsaWduLWl0ZW1zKCRhbGlnbjogc3RyZXRjaCkge1xuICAgIEBpbmNsdWRlIG1zLWFsaWduLWl0ZW1zKCRhbGlnbik7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogJGFsaWduO1xuICAgIGFsaWduLWl0ZW1zOiAkYWxpZ247XG59XG5cbkBtaXhpbiBhbGlnbi1zZWxmKCRhbGlnbjogc3RyZXRjaCkge1xuICAgIEBpbmNsdWRlIG1zLWFsaWduLXNlbGYoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6ICRhbGlnbjtcbiAgICBhbGlnbi1zZWxmOiAkYWxpZ247XG59XG5cbkBtaXhpbiBhbGlnbi1jb250ZW50KCRhbGlnbjogc3RyZXRjaCkge1xuICAgIEBpbmNsdWRlIG1zLWFsaWduLWNvbnRlbnQoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICRhbGlnbjtcbiAgICBhbGlnbi1jb250ZW50OiAkYWxpZ247XG59XG5cbi8vXG4vLyBpZTEwIHN5bnRheCBmb3IgYWxpZ25cbi8vIC0tLVxuXG5AbWl4aW4gbXMtYWxpZ24taXRlbXMoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247XG4gICAgfVxufVxuXG5AbWl4aW4gbXMtYWxpZ24tc2VsZigkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICRhbGlnbjtcbiAgICB9XG59XG5cbkBtaXhpbiBtcy1hbGlnbi1jb250ZW50KCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ3NwYWNlLWJldHdlZW4nIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdzcGFjZS1hcm91bmQnIHtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6ICRhbGlnbjtcbiAgICB9XG59XG5cbi8vXG4vLyBqdXN0aWZ5LWNvbnRlbnRcbi8vXG4vLyBVc2VzIFwidGV4dC1hbGlnblwiIGZvciB0aGUgZmFsbGJhY2sgaW5saW5lLWJsb2NrIGdyaWRcbi8vIFwidGV4dC1hbGlnblwiIGlzIGdsb2JhbGx5IHN1cHBvcnRlZCBhbmQgd29ya3Mgb24gYWxsIHJvd3MgZXhjZXB0IHRoZSBsYXN0XG4vLyBcInRleHQtYWxpZ24tbGFzdFwiLCB3aGVyZSBzdXBwb3J0ZWQsIGhhbmRsZXMgdGhlIGxhc3QgbGluZSAoYW5kLCBoYXBwaWx5LCBncmlkcyB3aXRoIG9ubHkgb25lIHJvdylcbi8vIC0tLVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXN0YXJ0KCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1lbmQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LWNlbnRlcigpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1peGluIGp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXNwYWNlLWFyb3VuZCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXNwb25zaWJsZSBWaXNpYmlsaXR5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS12aXNpYmlsaXR5LWhlbHBlcnMoKSB7XG4gICAgQGlmICR2aXNpYmlsaXR5LWhlbHBlcnMgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIHh4cyBhbmQgeGxnIGJyZWFrcG9pbnRzIGRpZmZlcmVudGx5XG4gICAgICAgICRtYXAtcmVmbGV4LWJyZWFrcG9pbnRzOiBtYXAtcmVtb3ZlKCRyZWZsZXgtYnJlYWtwb2ludHMsIHh4cywgeGxnKTtcblxuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4teHhzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgneHhzJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnAgaW4gbWFwLWtleXMoJG1hcC1yZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0tdXAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICBcblxuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfS1kb3duIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJGJwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LW9ubHkoJGJwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLXhsZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LW9ubHkoJ3hsZycpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KVxuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJHJlZmxleC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20pIC0+IG1kXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50czogKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiBtZFxuLy8gPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kKSkgLT4gbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy8gPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KSkgLT4gNzY4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICBAcmV0dXJuIGlmKCRtaW4gIT0wLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4xLlxuLy8gPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogNTc2cHgsIHNtOiA3NjhweCwgbWQ6IDk5MnB4KSkgLT4gOTkxcHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDEsIG51bGwpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtaW4ge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpZiAkbWF4IHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG90aGVyIG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKSB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgYm94LXNpemluZzogJGJveG1vZGVsO1xufVxuIiwiXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZ3JpZCBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBmbGV4LXdyYXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fXdyYXAge1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9bm8td3JhcCB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKG5vd3JhcCk7XG5cbiAgICAvLyBUaGlzIGlzIG1vc3RseSBuZWVkZWQgdG8gc3RvcCB0aGUgZ3JpZCBjb250ZW50cyBvdmVyZmxvd2luZyBpbiB0aGVcbiAgICAvLyBpZTEwIGltcGxlbWVudGF0aW9uIG9mIGZsZXhib3ggYnV0IGl0IGNhbid0IGh1cnQgaW4gb3RoZXIgYnJvd3NlcnNcbiAgICAvLyBhcyBpdCBpcyB0aGUgZGVzaXJlZCBiZWhhdmlvdXIgb2Ygbm9uIHdyYXBwaW5nIGZsZXggaXRlbXNcbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1zaHJpbmsoMSk7XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH13cmFwLXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwLXJldmVyc2UpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZmxleC1kaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1yb3ctcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93LXJldmVyc2UpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1kaXJlY3Rpb24tY29sdW1uLXJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbi1yZXZlcnNlKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduIGl0ZW1zIChjcm9zcyBheGlzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc3RhcnQge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIGxlZ2FjeSB2ZXJ0aWNhbC1hbGlnblxuICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNlbnRlciB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgIC8vIGZhbGxiYWNrIHRvIGxlZ2FjeSB2ZXJ0aWNhbC1hbGlnblxuICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWJhc2VsaW5lIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhiYXNlbGluZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbiBjb250ZW50IChjcm9zcyBheGlzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoZmxleC1lbmQpO1xuXG4gICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LWNlbnRlciB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChjZW50ZXIpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXNwYWNlLWJldHdlZW4ge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3BhY2UtYXJvdW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KHNwYWNlLWFyb3VuZCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBhbGlnbi1zZWxmXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoc3RyZXRjaCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtc3RhcnQge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtZW5kIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGZsZXgtZW5kKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zZWxmLWNlbnRlciB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihjZW50ZXIpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtYmFzZWxpbmUge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoYmFzZWxpbmUpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGp1c3RpZnktY29udGVudCAobWFpbiBheGlzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1zdGFydCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LXN0YXJ0KCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1lbmQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1lbmQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDogcmlnaHQ7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1jZW50ZXIge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1jZW50ZXIoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXRleHQtYWxpZ24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9anVzdGlmeS1zcGFjZS1iZXR3ZWVuIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbigpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXNwYWNlLWFyb3VuZCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LXNwYWNlLWFyb3VuZCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICAgICAgICAtbW96LXRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcbiAgICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDoganVzdGlmeTtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29zbWV0aWMgZ3JpZCBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFJlbW92ZXMgaW50ZXJuYWwgcGFkZGluZyBmcm9tIGFsbCBjb2x1bW5zIGluIGEgZ3JpZFxuLiN7JHJlZmxleC1wcmVmaXh9Z3JpZC1ibGVlZCB7XG4gICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29sIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZXMgYSBjb2x1bW4gZWxlbWVudCBpbnRvIGEgZmxleGJveCBjb2x1bW5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ncmlkIHtcbiAgICBAaW5jbHVkZSBkaXNwbGF5LWZsZXgoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuXG4gICAgJi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1yb3cge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xuICAgIH1cbn1cblxuLy8gUmVtb3ZlcyBpbnRlcm5hbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYmxlZWQge1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8vIFJlbW92ZXMgaG9yaXpvbnRhbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYmxlZWQteCB7XG4gICAgcGFkZGluZzogJHJlZmxleC1ncmlkLXNwYWNpbmcgMDtcbn1cblxuLy8gUmVtb3ZlcyB2ZXJ0aWNhbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1jb2wtYmxlZWQteSB7XG4gICAgcGFkZGluZzogMCAkcmVmbGV4LWdyaWQtc3BhY2luZztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvbC1ncmlkIGNvbnRlbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1mbGV4LWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZmxleCgwLCAwLCBhdXRvKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICp3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWZsZXgtZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSByZXNwb25zaXZlLXZpc2liaWxpdHktaGVscGVycygpO1xuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBGb2N1cyBWaXNpYmxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBGb2N1cyBWaXNpYmxlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9mb2N1cy12aXNpYmxlXG4gKiBPdmVycmlkZSBiYXNlIGZvY3VzIHN0eWxlcyBmb3IgbW91c2UgYW5kIHRvdWNoIGludGVyYWN0aW9uc1xuICovXG5AbWl4aW4gZm9jdXMtdmlzaWJsZSgpIHtcbiAgLmpzLWZvY3VzLXZpc2libGUgJiB7XG4gICAgJjpub3QoLmZvY3VzLXZpc2libGUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBGb250IFNtb290aGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKiBcbiAqIEZvbnQgU21vb3RoaW5nXG4gKiBFbmFibGVzIGZvbnQgc21vb3RoaW5nIGZvciBjYXBhYmxlIGJyb3dzZXJzLlxuICogT3B0aW9uYWxseSBmb3JjZSBmb250LXNtb290aGluZyBvbiBub24tcmV0aW5hIGRldmljZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59ICRmb3JjZSBbZmFsc2VdXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbkBtaXhpbiBmb250LXNtb290aGluZygkZm9yY2U6IGZhbHNlKSB7XG4gIEBpZiAkZm9yY2UgPT0gdHJ1ZSB7XG4gICAgLW1vei1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH0gQGVsc2Uge1xuICAgIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gR2xvYmFsIG1peGluc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8vIFJlc2V0IDxsaT4gZWxlbWVudHNcbkBtaXhpbiBsaS1yZXNldCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLyBSZW1vdmUgdGV4dCBmcm9tIGVsZW1lbnRzXG5AbWl4aW4gcm0tdGV4dCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xufVxuXG4vLyBCYWNrZ3JvdW5kIGltYWdlc1xuQG1peGluIGJnLWltZygkc2l6ZSkge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xufVxuXG4vLyBJRSA5KyBvbmx5XG5AbWl4aW4gaWUoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkgYW5kIChtaW4tcmVzb2x1dGlvbjogKzcyZHBpKSB7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07XG4gIH1cbn1cblxuQG1peGluIGJ0blJlc2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuQG1peGluIGxpbmtSZXNldCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogSGVscGVycyAtIFRhYmxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBSZXNwb25zaXZlIFRhYmxlXG4gKiBDcmVhdGVzIGEgcmVzcG9uc2l2ZSB0YWJsZVxuICogQWNjZXB0cyBhIGxpc3Qgb2YgaGVhZGVycyB0byByZXBsYWNlIG1haW4gXG4gKiB0YWJsZSBoZWFkZXJzIG9uIG1vYmlsZS5cbiAqIEBwYXJhbSB7bWFwfSAkaGVhZGVyc1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5AbWl4aW4gcmVzcG9uc2l2ZS10YWJsZSgkaGVhZGVyczogKCkpIHtcbiAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0YWJsZSxcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0aCxcbiAgdGQsXG4gIHRyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIHRoZWFkIHtcbiAgICB0ciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ibGFjaztcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgICBwYWRkaW5nOiBzaXplKDMwcHgpIDA7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ZCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW4tdG9wOiBzaXplKDE2cHgpO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlYWRlcnNcbiAgICovXG4gIEBlYWNoICRoZWFkZXIgaW4gJGhlYWRlcnMge1xuICAgICRpOiBpbmRleCgkaGVhZGVycywgJGhlYWRlcik7XG5cbiAgICB0ZDpudGgtb2YtdHlwZSgjeyRpfSk6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgY29udGVudDogJGhlYWRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBDb25maWcgLSBGb250c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8vIEBpbXBvcnQgdXJsKCdodHRwczovL2Zhc3QuZm9udHMubmV0L2x0LzEuY3NzP2FwaVR5cGU9Y3NzJmM9MDNhZGIzNWQtMWJhMy00YjBlLThhMTktNmYxZjc0YzZlOThjJmZvbnRpZHM9NzIxMjgxLDcyMTI2Niw3MjEyNjMnKTtcbi8vIEBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mYXN0LmZvbnRzLm5ldC9sdC8xLmNzcz9hcGlUeXBlPWNzcyZjPThlODNjYjExLTg4MWItNDg1MS1iZmE2LTYzNTM3OWYxYWZiYiZmb250aWRzPTYwODA4MzYsNjA4MDg1Miw2MDgwODcwXCIpO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgUmVndWxhcic7XG4gIHNyYzp1cmwoXCIuLi9mb250LzYwODA4MzYvMDlhYjA2MjYtYmI0NS00NjUwLWFjYzgtMDE4MmQ2OTNkZjAyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIuLi9mb250LzYwODA4MzYvMTM5N2U4MTItOTMwNy00MjY3LThhOTktOGEyMmVhN2M2OWM3LndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgSXRhbGljJztcbiAgc3JjOnVybChcIi4uL2ZvbnQvNjA4MDk5NC9iOWM1YjgzOS1kYjU2LTQ0MTktOGZjYi02YWI2NjFiYWJiMWQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gIHVybChcIi4uL2ZvbnQvNjA4MDk5NC85NTBiNTc4OC1jZmRkLTQ4ZDktOWQ4YS01MjM1NjAwNDJjNWIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pciBOZXh0IFdvcmxkIFcwNSBCb2xkJztcbiAgc3JjOnVybChcIi4uL2ZvbnQvNjA4MDg3MC8wNzRkZmM3MC02NDM2LTRmNGItOTMxNC1kMWU2OTI4N2FlYTEud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gIHVybChcIi4uL2ZvbnQvNjA4MDg3MC8wYzRjZWZjYS0zYjc4LTQ0YjktOGIyYi02NjdiYmFiZmZlMzgud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pck5leHRMVFcwMS1SZWd1bGFyJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvMmNkNTU1NDYtZWMwMC00YWY5LWFlY2EtNGEzY2QxODZkYTUzLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC8xZTk4OTJjMC02OTI3LTQ0MTItOTg3NC0xYjgyODAxYmE0N2Eud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbi8vIDcyMTI2NlxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyTmV4dExUVzAxLUl0YWxpYyc7XG4gIHNyYzogdXJsKCcuLi9mb250LzczNzdkYmU2LWYxMWEtNGEwNS1iMzNjLWJjOGNlMWY2MGY4NC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy4uL2ZvbnQvOTJiNjZkYmQtNDIwMS00YWMyLWE2MDUtNGQ0ZmZjODcwNWNjLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG4vLyA3MjEyODFcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0F2ZW5pciBOZXh0IExUIFcwMSBCb2xkJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvMTRjNzM3MTMtZTRkZi00ZGJhLTkzM2ItMDU3ZmVlYWM4ZGQxLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vZm9udC9iOGU5MDZhMS1mNWU4LTRiZjEtOGU4MC04MmM2NDZjYTRkNWYud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dUIEFtZXJpY2EnO1xuICBzcmM6IHVybCgnLi4vZm9udC9HVC1BbWVyaWNhLUNvbXByZXNzZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy4uL2ZvbnQvR1QtQW1lcmljYS1Db21wcmVzc2VkLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQ29uZmlnIC0gVmFyc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbjpyb290IHtcbiAgLy8gQ29sb3Vyc1xuICAtLWMtcHJpbWFyeTogIzBlMzAzNDtcbiAgLS1jLXNlY29uZGFyeTogdmFyKC0tYy1waW5rKTtcbiAgLS1jLXdoaXRlOiAjZmZmZmZmO1xuICAtLWMtZ3JleUxpZ2h0OiAjZjNmMmYxO1xuICAtLWMtZ3JleTogI2QwY2NjNztcbiAgLS1jLXRlYWw6ICMwMGM3YjE7XG4gIC0tYy15ZWxsb3c6ICNmZmI4MWM7XG4gIC0tYy1wdXJwbGU6ICNhZjhlZTA7XG4gIC0tYy1waW5rOiAjZmZhYmJhO1xuICAtLWMtbWFnZW50YTogI2ViNDI2NDtcbiAgLS1jLXJlZDogI0Q1MjM0QTtcbiAgLS1jLWJsdWU6ICNiNGU0ZjU7XG4gIC0tYy1tYXJvb246ICM2NDBhMzI7XG4gIC0tYy1ibGFjazogIzAwMDtcblxuICAvLyBUeXBvZ3JhcGh5XG4gIC0tZm9udEJvZHk6ICdBdmVuaXJOZXh0TFRXMDEtUmVndWxhcicsICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgUmVndWxhcicsXG4gICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LFxuICAgIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udEJvbGQ6ICdBdmVuaXIgTmV4dCBMVCBXMDEgQm9sZCcsICdBdmVuaXIgTmV4dCBXb3JsZCBXMDUgQm9sZCcsXG4gICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LFxuICAgIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udEl0YWxpYzogJ0F2ZW5pck5leHRMVFcwMS1JdGFsaWMnLCAnQXZlbmlyIE5leHQgV29ybGQgVzA1IEl0YWxpYycsXG4gICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LFxuICAgIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udFRpdGxlOiAnR1QgQW1lcmljYScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJyxcbiAgICBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnRTaXplOiAxMTIuNSU7XG4gIC0tZm9udFNtYWxsOiA3MCU7XG4gIC0tbGluZUhlaWdodDogMS41O1xuXG4gIC8vIExheW91dFxuICAtLWNvbnRhaW5lcldpZHRoOiAxODAycHg7XG4gIC0tY29scy0zOiBjYWxjKHZhcigtLWNvbnRhaW5lcldpZHRoKSAqIDAuMjUpO1xuICAtLWNvbHMtNjogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgKiAwLjUpO1xuICAtLWNvbHMtODogY2FsYyh2YXIoLS1jb250YWluZXJXaWR0aCkgKiAwLjY2NjY2NjY2NjcpO1xuICAtLWNvbHMtMTA6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpICogMC44MzMzMzMzMzMzMzMpO1xuICAtLXZhcmlhYmxlSGVpZ2h0TGltaXQ6IGNsYW1wKDIwdmgsIDYwdncsIDYwdmgpO1xuICAtLWhlaWdodExpbWl0OiA3MDBweDtcbiAgLS1ndXR0ZXI6IDE1cHg7XG5cbiAgLy8gQW5pbWF0aW9uc1xuICAtLWVhc2luZzogY3ViaWMtYmV6aWVyKDAuODMsIDAsIDAuMTcsIDEpO1xuICAtLXRyYW5zaXRpb246IDAuM3MgdmFyKC0tZWFzaW5nKTtcblxuICAtLWxpbmVMZW5ndGg6IDYwMHB4O1xufVxuXG4vKipcbiogQnJlYWtwb2ludHMgZm9yIEBpbmNsdWRlLW1lZGlhXG4qL1xuJGJyZWFrcG9pbnRzOiAoXG4gIHh4czogMzYwcHgsXG4gIHhzOiA1NzZweCxcbiAgc206IDc2OHB4LFxuICBtZDogOTkycHgsXG4gIGxnOiAxMjAwcHgsXG4gIHhsZzogMTYwMHB4LFxuKTtcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gRGVmYXVsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4uZ3JpZCB7XG4gIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xufVxuXG4uY29udGFpbmVyLWZ1bGwgPiAuZ3JpZCB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxudWwubWVudSxcbnVsLnBsYWluIHtcbiAgQGluY2x1ZGUgbGktcmVzZXQ7XG59XG5cbmltZyB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgJi5sYXp5IHtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogMC4wMDFkcGNtKSB7XG4gICAgICBAc3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubG9hZGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yZXN0cmljdGVkLWhlaWdodCB7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWhlaWdodExpbWl0KTtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5hW2RhdGEtZ2FsbGVyeV0ge1xuICBjdXJzb3I6IHpvb20taW47XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi8vIEtlZXAgdmlkZW8gcmF0aW8gZm9yIGZsdWlkIHdpZHRoc1xuLnZpZGVvLWNvbnRhaW5lcixcbi5tZWRpYS12aW1lby12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIGhlaWdodDogMDtcblxuICBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLy8gVmlkZW8gQ2FwdGlvbnNcbi52aWRlby13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udmlkZW8tY2FwdGlvbiB7XG4gIG1hcmdpbi10b3A6IC41cmVtO1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG59XG5cbi8vIFNvdW5jbG91ZFxuLm1lZGlhLXNvdW5kY2xvdWQtYXVkaW8gaWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xufVxuXG5maWdjYXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBmb250LXNpemU6IDkwJTtcbiAgLy8gZm9udC1mYW1pbHk6IHZhcigtLWZvbnRJdGFsaWMpO1xufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBUeXBvZ3JhcGh5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqL1xuXG4vKipcbiAqIEhlYWRpbmdcbiAqL1xuaDEsXG4uaDEsXG5oMixcbi5oMixcbmgzLFxuLmgzLFxuaDQsXG4uaDQsXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbmgxLFxuLmgxIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMi41cmVtLCA1dncsIDVyZW0pO1xufVxuXG5oMixcbi5oMiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgMi41dncsIDNyZW0pO1xufVxuXG5oMyxcbi5oMyB7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMS4yNXJlbSwgMi41dncsIDEuNXJlbSk7XG59XG5cbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtc2l6ZTogMXJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxufVxuXG4uY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAmLXBhZGRpbmctYm90dG9tIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIH1cbn1cblxuLmJvcmRlciB7XG4gICYtYm90dG9tIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuICB9XG4gICYtdG9wIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGFyYWdyYXBoc1xuICovXG5wIHtcbiAgbWFyZ2luOiAwIDAgMS41cmVtO1xuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8qKlxuICogTGlzdHNcbiAqL1xudWwsXG5vbCB7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4vKipcbiAqIExpbmtzXG4gKi9cbmEsXG4ubGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vICY6OmFmdGVyIHtcbiAgLy8gICBjb250ZW50OiAnJztcbiAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICAgYm90dG9tOiAwO1xuICAvLyAgIGxlZnQ6IDA7XG4gIC8vICAgZGlzcGxheTogYmxvY2s7XG4gIC8vICAgaGVpZ2h0OiAycHg7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8vICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcbiAgLy8gICB3aWR0aDogMTAwJTtcbiAgLy8gfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcblxuICAgIC8vICY6OmFmdGVyIHtcbiAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAvLyB9XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAzcHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcblxuICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxuXG4gICYubm8tbGluayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLm5vLWNsaWNrIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG4vKipcbiAqIEJ1dHRvbnNcbiAqL1xuYnV0dG9uIHtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogM3B4IGRhc2hlZCBjdXJyZW50Q29sb3I7XG5cbiAgICBAaW5jbHVkZSBmb2N1cy12aXNpYmxlKCkge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJbmxpbmVcbiAqL1xuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbn1cblxuZW0ge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEl0YWxpYyk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbmFkZHJlc3Mge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA5MCU7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcblxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIE1haW5cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxlc1xuICovXG5odG1sLFxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQtc21vb3RoaW5nKHRydWUpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmVIZWlnaHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgLS1mb250U2l6ZTogMTAwJTtcbiAgfVxufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIEFuaW1hdGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQXRvbXMgLSBCdXR0b25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqKi9cblxuQG1peGluIGJ0biB7XG4gIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuQmcpO1xuICBjb2xvcjogdmFyKC0tYnRuQ29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnRuQmcpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIHBhdGgge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gYnRuLWhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tYnRuQ29sb3VyKTtcblxuICBzdmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICB9XG59XG5cbi8qKlxuICogU3R5bGVzXG4gKiovXG5cbi5hLWJ0biB7XG4gIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgQGluY2x1ZGUgYnRuO1xuXG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcbiAgfVxuXG4gICYtLXllbCB7XG4gICAgLS1idG5CZzogdmFyKC0tYy15ZWxsb3cpO1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJi0tYmx1ZSB7XG4gICAgLS1idG5CZzogdmFyKC0tYy1ibHVlKTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLXdoIHtcbiAgICAtLWJ0bkJnOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLXdpZGUge1xuICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gICYtLWZ1bGxXaWR0aCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtLW5hcnJvdyB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICB9XG5cbiAgJi0tc20ge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgLS1idG5CZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG4gIH1cblxuICAmLS1ob2xsb3cge1xuICAgIC0tYnRuQmc6IHRyYW5zcGFyZW50O1xuICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuXG4gICYtLWljb25MZWZ0IHtcbiAgICBzdmcge1xuICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLXdoaXRlIHtcbiAgICAtLWJ0bkJnOiB0cmFuc3BhcmVudDtcbiAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy13aGl0ZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXBpbmspO1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBkYXNoZWQgdmFyKC0tYnRuQmcpO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQXRvbXMgLSBJbWFnZSBjcmVkaXRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLmEtaW1hZ2UtY3JlZGl0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC8vIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gIC8vICAgYm90dG9tOiAwLjVyZW07XG4gIC8vICAgcmlnaHQ6IDFyZW07XG4gIC8vIH1cblxuICAmX19pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICB9XG5cbiAgJl9fY29weSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFyZW0gM3JlbSAxcmVtIDFyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIHdpZHRoOiA5NXZ3O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUsXG4gICY6aG92ZXIge1xuICAgIC5hLWltYWdlLWNyZWRpdF9faWNvbiB7XG4gICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIC5hLWltYWdlLWNyZWRpdF9fY29weSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHotaW5kZXg6IDIxO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQnJlYWRjcnVtYnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1icmVhZGNydW1icyB7XG4gIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMTVweDtcbiAgfVxuXG4gICZfX2RpdmlkZXIge1xuICAgIG1hcmdpbjogMCA1cHg7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gTG9hZGVyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5Aa2V5ZnJhbWVzIGxvYWRlckFuaW1hdGlvbiB7XG4gIDAlLFxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgtMTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKC0xODBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMjUlLFxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgOTAlLFxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDE0MHB4KSByb3RhdGVZKDE4MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG46cm9vdCB7XG4gIC0tbG9hZGVyQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWxvYWRlciB7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7XG5cbiAgJi0td2hpdGUge1xuICAgIC0tbG9hZGVyQ29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIH1cblxuICAmX19jdWJlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogNTAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1sb2FkZXJDb2xvdXIpO1xuICAgICAgYW5pbWF0aW9uOiBsb2FkZXJBbmltYXRpb24gMi40cyBpbmZpbml0ZSBsaW5lYXIgYm90aDtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19jdWJlLTIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGVaKDkwZGVnKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG4gICAgfVxuICB9XG5cbiAgJl9fY3ViZS0zIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWigxODBkZWcpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC42cztcbiAgICB9XG4gIH1cblxuICAmX19jdWJlLTQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGVaKDI3MGRlZyk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjlzO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gRGF0ZSBwaWNrZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1kYXRlLXBpY2tlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5EYXlQaWNrZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHVuc2V0O1xuICB9XG5cbiAgLkRheVBpY2tlci1OYXZCYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEuNXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgdG9wOiAwLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlci1OYXZCdXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE1cHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJi0tcHJldiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9hcnJvdy1oZWFkLWxlZnQuc3ZnJykgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi0tbmV4dCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9hcnJvdy1oZWFkLXJpZ2h0LnN2ZycpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlci1DYXB0aW9uIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgIH1cbiAgfVxuXG4gIGFiYnIge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNvbG9yOiB2YVIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLXNlbGVjdGVkOm5vdCguRGF5UGlja2VyLURheS0tc3RhcnQpOm5vdCguRGF5UGlja2VyLURheS0tZW5kKTpub3QoLkRheVBpY2tlci1EYXktLW91dHNpZGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTcxLCAxODYsIDAuNCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXkge1xuICAgIGJvcmRlci1yYWRpdXM6IDAlICFpbXBvcnRhbnQ7XG5cbiAgICAmLS10b2RheSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXBpbmspICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLXN0YXJ0IHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLWVuZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLkRheVBpY2tlci1EYXktLXNlbGVjdGVkOm5vdCguRGF5UGlja2VyLURheS0tZGlzYWJsZWQpOm5vdCguRGF5UGlja2VyLURheS0tb3V0c2lkZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcGluayk7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gUGFnaW5hdGlvblxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLXBhZ2VyIHtcbiAgQGluY2x1ZGUgbGktcmVzZXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbjogMnJlbSAwO1xuXG4gIC5kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICBzcGFuLFxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgfVxuXG4gIGEge1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3BhbixcbiAgYS51bmRlZmluZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBtYXJnaW46IDAgMC41cmVtO1xuICB9XG5cbiAgcGF0aCB7XG4gICAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQ29sdW1uc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWNvbHMge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAxNXB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgJi0teHMge1xuICAgIG1heC13aWR0aDogdmFyKC0tY29scy0zKTtcbiAgfVxuXG4gICYtLXNtIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbHMtNik7XG4gIH1cblxuICAmLS1tZCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xzLTgpO1xuICB9XG5cbiAgJi0tZnVsbCB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG4gIH1cblxuICAmLS1iZ0NvbG91ciB7XG4gICAgbWFyZ2luOiA0cmVtIGF1dG87XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIEltYWdlIGNhcHRpb25zXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtY2FwdGlvbiB7XG4gIEBpbmNsdWRlIGJnLWltZyg4cHgpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Fycm93LWhlYWQuc3ZnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMTFweDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQXV0byBncmlkXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtYXV0by1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoXG4gICAgYXV0by1maXQsXG4gICAgbWlubWF4KHZhcigtLWF1dG9HcmlkTWluLCAxZnIpLCB2YXIoLS1hdXRvR3JpZE1heCwgMWZyKSlcbiAgKTtcbiAgZ2FwOiB2YXIoLS1hdXRvR3JpZEdhcCwgMXJlbSk7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIExpbmtzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtbGlua3Mge1xuICBtYXJnaW46IDJyZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gIH1cblxuICBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBBdG9tcyAtIFNpZGViYXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1zaWRlYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgJi0tYmxvY2sge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cblxuICAuYS10YWcsXG4gIC5hLWJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTVweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgLnNpbmdsZS1wZW9wbGUgJiB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBUYWdzXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtdGFnIHtcbiAgLS10YWdCZzogdmFyKC0tYy1wcmltYXJ5KTtcbiAgLS10YWdDb2xvdXI6IHZhcigtLWMtd2hpdGUpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWdCZyk7XG4gIGNvbG9yOiB2YXIoLS10YWdDb2xvdXIpO1xuXG4gICYtLXllbCB7XG4gICAgLS10YWdCZzogdmFyKC0tYy15ZWxsb3cpO1xuICAgIC0tdGFnQ29sb3VyOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBTdGlja3lcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cbjpyb290IHtcbiAgLS1zdGlja3lMZWZ0OiAwO1xuICAtLXN0aWNreVdpZHRoOiAwO1xuICAtLXN0aWNreUhlaWdodDogMDtcbn1cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1zdGlja3kge1xuICAmW2RhdGEtc3RpY2t5PSd0cnVlJ10ge1xuICAgIC5hLWJ0biB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiB2YXIoLS1zdGlja3lMZWZ0KTtcbiAgICAgIHdpZHRoOiB2YXIoLS1zdGlja3lXaWR0aCk7XG4gICAgICB6LWluZGV4OiAyMDtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hLXN0aWNreV9fcGxhY2Vob2xkZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJl9fcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogdmFyKC0tc3RpY2t5SGVpZ2h0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gRXZlbnQgY2FuY2VsbGVkIG1lc3NhZ2VcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1jYW5jZWxsZWQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy15ZWxsb3cpO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICBwIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gU2tpcCBsaW5rXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLmEtc2tpcC1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcblxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gTGlzdGluZ1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWxpc3Rpbmcge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICBnYXA6IDJyZW07XG4gIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBnYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAycmVtO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBDaXRhdGlvbnNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1jaXRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgfVxuXG4gICZfX251bWJlciB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXgtd2lkdGg6IDIzMHB4O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmOmZvY3VzLFxuICAmOmhvdmVyIHtcbiAgICAuYS1jaXRlX19udW1iZXIge1xuICAgICAgY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICB9XG4gICAgLmEtY2l0ZV9fZGVzY3JpcHRpb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIEF0b21zIC0gQmFjayB0byB0b3BcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4uYS1iYWNrLXRvcCB7XG4gIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbGVmdDogY2FsYygxMDAlIC0gNnJlbSk7XG4gIGJvdHRvbTogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICBsZWZ0OiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgICBib3R0b206IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSd0cnVlJ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlPSdmYWxzZSddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgYW5pbWF0aW9uOiBmYWRlT3V0IDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcbiAgICB9XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG1heC1oZWlnaHQ6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWF4LWhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBBdG9tcyAtIEdyaWRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFN0eWxpbmdcbiAqL1xuIC5hLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1hdXRvR3JpZEdhcCwgMXJlbSk7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBcbiAgICAmLS0xIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgXG4gICAgJi0tMiB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLS0zIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAmLS00IHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgICAgZ3JpZC1hdXRvLXJvd3M6IDFmcjtcbiAgXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICB9XG4gIFxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBNb2xlY3VsZXMgLSBFbWVyZ2VuY3kgTWVzc2FnZVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ1xyXG4gKiovXHJcbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xyXG4gIH1cclxuICA4MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFN0eWxpbmdcclxuICoqL1xyXG4ubS1lbW1zZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICYucHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXllbGxvdyk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICB9XHJcbiAgJi5zZWNvbmRhcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gIH1cclxuICBwYWRkaW5nOiAwLjI1cmVtIDFyZW07XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDUycHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMXJlbSAwO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgIHBhZGRpbmc6IDFyZW0gMDtcclxuICB9XHJcblxyXG4gICZbZGF0YS1zdGF0ZT0ndmlzaWJsZSddIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG4gICAgd2lkdGg6IDg1JTtcclxuICB9XHJcblxyXG4gIHAge1xyXG4gICAgd2lkdGg6IDg1JTtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xyXG4gICAgICBtYXgtd2lkdGg6IDgwJTtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidG5SZXNldDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMC4yNXJlbTtcclxuICAgIHJpZ2h0OiAycmVtO1xyXG4gICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgd2lkdGg6IDQycHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgcmlnaHQ6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgICAgcmlnaHQ6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xyXG5cclxuICAgICAgcGF0aCB7XHJcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW50aXRpZXNcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuXHJcbmFydGljbGUge1xyXG4gICYgPiAubS1lbnRpdHk6bGFzdC1vZi10eXBlIHtcclxuICAgICYuYmdDb2xvdXIge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAtMzBweDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5tLWVudGl0eSB7XHJcbiAgbWFyZ2luOiAwIDAgY2xhbXAoMnJlbSwgNXZ3LCA1cmVtKTtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgLy8gJl9fdGV4dC5iZ0NvbG91ciB7XHJcbiAgLy8gICBtYXJnaW46IDA7XHJcbiAgLy8gfVxyXG5cclxuICBpbWc6bm90KC5yZXN0cmljdGVkLWhlaWdodCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICYtLXRvcCB7XHJcbiAgICBtYXJnaW4tdG9wOiBjbGFtcCgycmVtLCA1dncsIDVyZW0pO1xyXG4gIH1cclxuXHJcbiAgJl9fYm9keSxcclxuICAmX190ZXh0LFxyXG4gICZfX2FjY29yZGlvbiB7XHJcbiAgICB1bCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIpO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgbGVmdDogLTE1cHg7XHJcbiAgICAgICAgICB0b3A6IDEycHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ludHJvJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3F1b3RlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2FjY29yZGlvbic7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9nYWxsZXJ5JztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlLXRleHQnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svZG93bmxvYWRzJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2VtYmVkJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3RhYmxlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3NpZ25wb3N0JztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3NpZ25wb3N0cyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9saW5rZWQtbG9nb3MnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svdmlkZW8nO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2sveW1hbCc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9iaWctY3RhJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3JlYWRtb3JlJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3F1aWNrbGlua3MnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svc3BlY2lhbC1vcHRpb25zJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL3Blb3BsZS1wcm9maWxlcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9saXN0aW5nJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL21pbmlsaXN0aW5nJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2VuaGFuY2VkZXZlbnRsaXN0aW5nJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ZlYXR1cmVkLWNvbnRlbnQnO1xyXG4gIEBpbXBvcnQgJy4vYmxvY2svY2l0YXRpb25zJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2ltYWdlem9vbSc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9mb3Jtcyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9zZWFyY2gtcmVzdWx0cyc7XHJcbiAgQGltcG9ydCAnLi9ibG9jay9kaXZpZGVyJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2J1eS1ub3ctYnV0dG9uJztcclxuICBAaW1wb3J0ICcuL2Jsb2NrL2N0YW11bHRpcGxlJztcclxuXHJcbn1cclxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEludHJvXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW50cm8ge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAmLWJsb2NrX2ltYWdlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gSW1hZ2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWNhcHRpb25IZWlnaHQpO1xuXG4gIGZpZ3VyZSB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1ndXR0ZXIpO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNhcHRpb25XaWR0aCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IHZhcigtLWNhcHRpb25PZmZzZXQpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNhcHRpb25QYWRkaW5nKTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gUXVvdGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqL1xuXG5AbWl4aW4gcmF0aW5nKCRzdGFycykge1xuICAmOm50aC1jaGlsZCgtbiArICN7JHN0YXJzfSkge1xuICAgIHBhdGgge1xuICAgICAgZmlsbDogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTdHlsZXNcbiAqL1xuXG4mX19xdW90ZSB7XG4gIC0tc3RhclNpemU6IDE3cHg7XG5cbiAgLnNob3J0LXF1b3RlIHtcbiAgICAtLXN0YXJTaXplOiAyNHB4O1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gIH1cblxuICBjaXRlIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICAucmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgLnNob3J0LXF1b3RlICYge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG5cbiAgICAmX19zdGFyIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1zdGFyU2l6ZSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLXN0YXJTaXplKTtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgc3Ryb2tlOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkc3RhcnMgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAmLS0jeyRzdGFyc30ge1xuICAgICAgICAucmF0aW5nX19zdGFyIHtcbiAgICAgICAgICBAaW5jbHVkZSByYXRpbmcoI3skc3RhcnN9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEFjY29yZGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19hY2NvcmRpb24ge1xuICAuYWNjb3JkaW9uIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuICAuYWNjb3JkaW9uX19oZWFkZXIge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC43NXJlbSAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAaW5jbHVkZSBiZy1pbWcoY29udGFpbik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9wbHVzLnN2ZycpO1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgLy8gcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2Nsb3NlLWFjY29yZGlvbi5zdmcnKTtcbiAgICB9XG4gIH1cblxuICAuYWNjb3JkaW9uX190aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmpzLWFjY29yZGlvbl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuYWNjb3JkaW9uX19wYW5lbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgZWFzZSwgbWF4LWhlaWdodCAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIG1heC1oZWlnaHQ6IDEwMDBlbTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuXG4gICAgJlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzLCAwcywgMHM7XG4gICAgfVxuXG4gICAgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEdhbGxlcnlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19nYWxsZXJ5IHtcbiAgLS1hdXRvR3JpZE1pbjogMjAlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMzAlO1xuICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPDUwMHB4Jykge1xuICAgIC0tYXV0b0dyaWRNaW46IDEwMHB4O1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICBhbGlnbi1pdGVtczogZW5kO1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlICYgVGV4dFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5tLWltYWdldGV4dCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgZ2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG5cbiAgJi0tcmV2ZXJzZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIC5tLWltYWdldGV4dF9fY29weSB7XG4gICAgICBvcmRlcjogLTE7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIERvd25sb2Fkc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbiZfX2Rvd25sb2FkcyB7XG4gIGEge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEVtYmVkXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZW1iZWQge1xuICBpZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gVGFibGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fdGFibGUge1xuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDJweDtcbiAgICBib3JkZXItY29sbGFwc2U6IHVuc2V0O1xuXG4gICAgdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBlMzAzNDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E0ZGJlODtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgdmFyKC0tZWFzaW5nKTtcbiAgICB9XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTRkYmU4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0ciB7XG4gICAgICAmOmhvdmVyIHRkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRmxleGlibGUgc2lnbnBvc3RcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zaWducG9zdCB7XG4gICY6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLnNpZ25wb3N0IHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAzcmVtO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBnYXA6IDJyZW07XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbSBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLS1yZXZlcnNlIHtcbiAgICAgIC5zaWducG9zdF9faW1hZ2Uge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgICBpbWcge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpZ3VyZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBnYXA6IDEuNXJlbTtcbiAgICAgIGp1c3RpZnktaXRlbXM6IHN0YXJ0O1xuXG4gICAgICBoMixcbiAgICAgIC5hLWxpbmtzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1saW5lTGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBzaWducG9zdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zaWducG9zdHMge1xuICAtLWF1dG9HcmlkTWluOiAyMCU7XG4gIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgcDpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cblxuICAuYS1hdXRvLWdyaWQge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcbiAgICAtLWF1dG9HcmlkTWluOiAzMCU7XG4gICAgLS1hdXRvR3JpZEdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogNDglO1xuICB9XG59XG5cbiZfX2V4dGVybmFsc2lnbnBvc3RzIHtcbiAgLm8tdGVhc2VyX190aHVtYiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIExpbmtlZCBsb2dvc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2xpbmtlZGxvZ29zIHtcbiAgLS1hdXRvR3JpZE1pbjogMTAwcHg7XG4gIC0tYXV0b0dyaWRNYXg6IDMwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIC0tYXV0b0dyaWRNYXg6IDFmcjtcbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgfVxuXG4gIC5hLWF1dG8tZ3JpZCB7XG4gICAgYWxpZ24taXRlbXM6IGVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICB9XG5cbiAgLnNpbmdsZSB7XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFZpZGVvXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fdmlkZW8ge1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+eHhzJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDIzMHB4O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gWU1BTFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3ltYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEJpZyBDVEFcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19iaWdjdGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAvLyBwYWRkaW5nOiAzcmVtIDA7XG5cbiAgLy8gQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgLy8gICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgLy8gfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGEge1xuICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICAuaDIge1xuICAgIHAge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNVxuICAgIH1cbiAgfVxuXG4gIC5iaWctYnRuIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAzcmVtIDEuNXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1waW5rKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNSUpO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNyUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTmV3cyB0YWdzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fcmVhZG1vcmUge1xuICAudGVybXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBRdWljayBsaW5rc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3F1aWNrbGlua3Mge1xuICBtYXJnaW4tdG9wOiAtNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgbWFyZ2luLXRvcDogLTNyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICB9XG5cbiAgLmEtY29scyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuOHJlbTtcbiAgfVxuXG4gIC5hLWxpbmtzIHtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBTcGVjaWFsIE9wdGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19zcGVjaWFsLW9wdGlvbnMge1xuICBociB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICAtLWF1dG9HcmlkTWluOiAyMyU7XG4gICAgLS1hdXRvR3JpZE1heDogMWZyO1xuICAgIC0tYXV0b0dyaWRHYXA6IDJyZW07XG5cbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDIwMHB4O1xuICAgICAgLS1hdXRvR3JpZE1heDogMWZyO1xuXG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDE1MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFBlb3BsZSBwcm9maWxlc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3Blb3BsZXByb2ZpbGVzIHtcbiAgLnRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi0tYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy10ZWFsKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTGlzdGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2xpc3Rpbmcge1xuICAud2hhdHMtb24ge1xuICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBNaW5pIGxpc3RpbmdcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19taW5pbGlzdGluZyB7XG4gIC0tYXV0b0dyaWRNaW46IDIwJTtcbiAgLS1hdXRvR3JpZEdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIC0tYXV0b0dyaWRNaW46IDMwJTtcbiAgICAtLWF1dG9HcmlkR2FwOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzw9c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogNDglO1xuICB9XG5cbiAgLmxpc3RpbmctaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAxcmVtO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gLmEtYXV0by1ncmlkIHtcbiAgLy8gICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyB9XG59XG4iLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW5oYW5jZWQgRXZlbnQgbGlzdGluZ1xyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuICZfX2VuaGFuY2VkZXZlbnRsaXN0aW5nIHtcclxuICAgIC0tYXV0b0dyaWRNaW46IDIwJTtcclxuICAgIC0tYXV0b0dyaWRHYXA6IDJyZW07XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xyXG4gICAgICAtLWF1dG9HcmlkTWluOiAzMCU7XHJcbiAgICAgIC0tYXV0b0dyaWRHYXA6IDFyZW07XHJcbiAgICB9XHJcbiAgXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1zbScpIHtcclxuICAgICAgLS1hdXRvR3JpZE1pbjogNDglO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLmxpc3RpbmctaGVhZGVyIHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcclxuICAgICAgZ2FwOiAxcmVtO1xyXG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICBcclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBhIHtcclxuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XHJcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgIC8vIC5hLWF1dG8tZ3JpZCB7XHJcbiAgICAvLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gICIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGZWF0dXJlZCBjb250ZW50XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZmVhdHVyZWRjb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAuZmVhdHVyZWQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICB9XG5cbiAgICAmLS1tdWx0aSB7XG4gICAgICBwYWRkaW5nOiAycmVtIDA7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgIH1cblxuICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLy8gcGFkZGluZy1ib3R0b206IDNyZW07XG5cbiAgICAgIC8vICY6OmJlZm9yZSB7XG4gICAgICAvLyAgIGNvbnRlbnQ6ICcnO1xuICAgICAgLy8gICB3aWR0aDogMTAwJTtcbiAgICAgIC8vICAgaGVpZ2h0OiA4MCU7XG4gICAgICAvLyAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAvLyAgIGxlZnQ6IDA7XG4gICAgICAvLyAgIGJvdHRvbTogMDtcbiAgICAgIC8vICAgei1pbmRleDogMDtcbiAgICAgIC8vICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgLy8gICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgLy8gICAgIGhlaWdodDogOTAlO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG5cbiAgICAgIC8vIC5hLWNvbHMge1xuICAgICAgLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgLmEtYXV0by1ncmlkIHtcbiAgICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuICAgIC0tYXV0b0dyaWRNaW46IDIyNXB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIC0tYXV0b0dyaWRNaW46IDFmcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBDaXRhdGlvbnNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19jaXRhdGlvbnMge1xuICBjaXRlIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwcHggMWZyO1xuICAgIGdhcDogMC41cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZSBab29tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW1hZ2V6b29tIHtcbiAgLmRlZXB6b29tQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuICAubmF2aWdhdG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMTBweCAwIDAgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEZvcm1zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZm9ybSB7XG4gIC5nZm9ybV93cmFwcGVyIHtcbiAgICB1bCB7XG4gICAgICBsaS5nZmllbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0Om5vdChbdHlwZT0ncmFkaW8nXSk6bm90KFt0eXBlPSdjaGVja2JveCddKTpub3QoW3R5cGU9J3N1Ym1pdCddKTpub3QoW3R5cGU9J2J1dHRvbiddKTpub3QoW3R5cGU9J2ltYWdlJ10pOm5vdChbdHlwZT0nZmlsZSddKSB7XG4gICAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZF9zdWJsYWJlbF9hYm92ZSAuZ2lucHV0X2NvbXBsZXguZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYWJvdmUgZGl2W2NsYXNzKj0nZ2ZpZWxkX2RhdGVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYWJvdmUgZGl2W2NsYXNzKj0nZ2ZpZWxkX3RpbWVfJ10uZ2lucHV0X2NvbnRhaW5lciBsYWJlbCxcbiAgICAuZmllbGRfc3VibGFiZWxfYmVsb3cgLmdpbnB1dF9jb21wbGV4LmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2JlbG93IGRpdltjbGFzcyo9J2dmaWVsZF9kYXRlXyddLmdpbnB1dF9jb250YWluZXIgbGFiZWwsXG4gICAgLmZpZWxkX3N1YmxhYmVsX2JlbG93IGRpdltjbGFzcyo9J2dmaWVsZF90aW1lXyddLmdpbnB1dF9jb250YWluZXIgbGFiZWwge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgIH1cblxuICAgIHVsLmdmaWVsZF9jaGVja2JveCBsaSBpbnB1dFt0eXBlPSdjaGVja2JveCddLFxuICAgIHVsLmdmaWVsZF9yYWRpbyBsaSBpbnB1dFt0eXBlPSdyYWRpbyddIHtcbiAgICAgIGhlaWdodDogMjVweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDI1cHggIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICB9XG5cbiAgICAuZ2Zvcm1fYnV0dG9uIHtcbiAgICAgIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy13aGl0ZSk7XG4gICAgICBAaW5jbHVkZSBidG47XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBidG4taG92ZXI7XG5cbiAgICAgICAgLS1idG5Db2xvdXI6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIC0tYnRuQmc6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZ2ZpZWxkX3RpbWVfaG91cixcbi5nZmllbGRfdGltZV9taW51dGUgIHtcbiAgbWF4LXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xuICB9XG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFNlYXJjaCByZXN1bHRzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fc2VhcmNoLXJlc3VsdHMge1xuICAuYS1saXN0aW5nIHtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBEaXZpZGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fZGl2aWRlciB7XG5cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBCdXkgTm93IEJ1dHRvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2J1eW5vd2J1dHRvbiB7XG4gIC5wcm9kdWN0LWlkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdyaWQtZ2FwOiAyMHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gICAgJi0taXRlbSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5zaG9waWZ5LWJ1eV9fcHJvZHVjdF9fdmFyaWFudC1zZWxlY3RvcnMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgLnNob3BpZnktYnV5X19vcHRpb24tc2VsZWN0LXdyYXBwZXIge1xuICAgICAgICBzdmcge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnNlZS1jb2xsZWN0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgYSB7XG4gICAgICAgIC0tYnRuQmc6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIC0tYnRuQ29sb3VyOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG59XG5cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBDVEEgTXVsdGlwbGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19jdGFtdWx0aXBsZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdyaWQtZ2FwOiA0MHB4O1xuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gRm9ybXNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbnB1dCxcbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxuaW5wdXRbdHlwZT0nc3VibWl0J10sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICByZXNpemU6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1zZWNvbmRhcnkpO1xuICB9XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddLFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5mb3JtLWFjdGlvbnMgaW5wdXQsXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gLy8gQ2hlY2tib3hlc1xuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCxcbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IC05OTk5cHg7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWwsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWwge1xuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgIHBhZGRpbmctbGVmdDogMjhweDtcbi8vICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gICBsaW5lLWhlaWdodDogMjBweDtcbi8vICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcbi8vIFt0eXBlPSdjaGVja2JveCddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBjb250ZW50OiAnJztcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAwO1xuLy8gICB0b3A6IDA7XG4vLyAgIHdpZHRoOiAyMHB4O1xuLy8gICBoZWlnaHQ6IDIwcHg7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDNweDtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4vLyAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBjb250ZW50OiAnXFwyNzE0XFwwMDIwJztcbi8vICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgdG9wOiAxcHg7XG4vLyAgIGxlZnQ6IDMuNXB4O1xuLy8gICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4vLyB9XG4vLyBbdHlwZT0nY2hlY2tib3gnXTpub3QoOmNoZWNrZWQpICsgbGFiZWw6YWZ0ZXIge1xuLy8gICBvcGFjaXR5OiAwO1xuLy8gICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuLy8gfVxuLy8gW3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMTtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbi8vIH1cblxuLy8gW3R5cGU9J2NoZWNrYm94J106Zm9jdXMgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBib3JkZXItY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbi8vIH1cblxuLy8gLy8gUmFkaW9zXG4vLyBbdHlwZT0ncmFkaW8nXTpjaGVja2VkLFxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgbGVmdDogLTk5OTlweDtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbCxcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbCB7XG4vLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xuLy8gICBjdXJzb3I6IHBvaW50ZXI7XG4vLyAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuLy8gICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcbi8vIFt0eXBlPSdyYWRpbyddOm5vdCg6Y2hlY2tlZCkgKyBsYWJlbDpiZWZvcmUge1xuLy8gICBjb250ZW50OiAnJztcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICBsZWZ0OiAwO1xuLy8gICB0b3A6IDA7XG4vLyAgIHdpZHRoOiAyMHB4O1xuLy8gICBoZWlnaHQ6IDIwcHg7XG4vLyAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4vLyAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgY29udGVudDogJyc7XG4vLyAgIHdpZHRoOiAxMnB4O1xuLy8gICBoZWlnaHQ6IDEycHg7XG4vLyAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHJpbWFyeSk7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgdG9wOiA0cHg7XG4vLyAgIGxlZnQ6IDRweDtcbi8vICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbi8vICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuLy8gfVxuLy8gW3R5cGU9J3JhZGlvJ106bm90KDpjaGVja2VkKSArIGxhYmVsOmFmdGVyIHtcbi8vICAgb3BhY2l0eTogMDtcbi8vICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbi8vIH1cbi8vIFt0eXBlPSdyYWRpbyddOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG4vLyAgIG9wYWNpdHk6IDE7XG4vLyAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4vLyB9XG4vLyBbdHlwZT0ncmFkaW8nXTpmb2N1cyArIGxhYmVsOmJlZm9yZSB7XG4vLyAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuLy8gfVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIE1haW4gbmF2XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm0tbmF2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgZ2FwOiA1dnc7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDA7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gIH1cblxuICAmX19jb2xzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwO1xuICAgICAgcGFkZGluZzogMCA1dnc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgcGFkZGluZzogMCA1dnc7XG4gICAgfVxuXG4gICAgLmNvbHVtbiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ2FwOiAzcmVtO1xuICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICBnYXA6IDA7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgLm0tbmF2X19zb2NpYWwsXG4gICAgICBoMyxcbiAgICAgIHAge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXNtJywgJzxtZCcpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICBnYXA6IDJyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiAwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgfVxuXG4gIGE6bm90KC5hLWJ0bikge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAuYS1idG4ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIG1heC13aWR0aDogMzV2dztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG4gIH1cblxuICBuYXYge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA0dncsIDIuNXJlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA0dncsIDJyZW0pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBCYW5uZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuLm0tbm8tYmFubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDRyZW0gMCA1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgcGFkZGluZzogM3JlbSAwIDRyZW07XG4gIH1cblxuICAmLS1uZXdzIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gICYtLXBhZ2Uge1xuICAgIGgxIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxMTAlO1xuICB9XG5cbiAgLnByZS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cbi5tLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgY2xhbXAoMS41cmVtLCA0dncsIDNyZW0pO1xuICB3aWR0aDogMTAwJTtcblxuICAmX19pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBpY3R1cmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJi0tZGVmYXVsdCxcbiAgJi0tYWx0IHtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICYtLWRlZmF1bHQge1xuICAgIGhlaWdodDogY2xhbXAoMjB2aCwgNjB2dywgNjB2aCk7XG4gIH1cblxuICAmLS1hbHQge1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAuYS1jb2xzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubS1iYW5uZXJfX2lubmVyIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm0tYmFubmVyX19jb3B5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDV2dywgNC43NXJlbSk7XG4gICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgfVxuXG4gICAgLmg0IHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmEtY29scyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWNvbGxlY3Rpb24ge1xuICAgIGhlaWdodDogdmFyKC0tdmFyaWFibGVIZWlnaHRMaW1pdCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgYSxcbiAgICBwaWN0dXJlIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMXJlbTtcbiAgICAgIHJpZ2h0OiAxcmVtO1xuXG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogNDBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi0tbGlzdGluZyB7XG4gICAgbWFyZ2luOiBjbGFtcCgxLjVyZW0sIDV2dywgMnJlbSkgMCBjbGFtcCgxLjVyZW0sIDV2dywgM3JlbSk7XG5cbiAgICBoMSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICB9XG5cbiAgLnByZS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG5cbiAgLmEtaW1hZ2UtY3JlZGl0IHtcbiAgICB6LWluZGV4OiA1O1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU29jaWFsIGxpbmtzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsaW5nXG4gKi9cbi5tLXNvY2lhbC1saW5rcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gIGdhcDogMXJlbTtcbiAgLy8gZGlzcGxheTogZmxleDtcbiAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cblxuICAubS1uYXZfX3NvY2lhbCAmIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgIC8vIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAzNXB4O1xuXG4gICAgLy8gJjpsYXN0LWNoaWxkIHtcbiAgICAvLyAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAvLyB9XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBwYXRoIHtcbiAgICAgIHRyYW5zaXRpb246IDAuMnMgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICBmaWxsOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXBpbmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFN1Ym5hdlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cblxudWwubS1zdWJuYXYge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcblxuICB1bCB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICB9XG5cbiAgLy8gLmN1cnJlbnRfcGFnZV9hbmNlc3RvciA+IGEsXG4gIC8vIC5jdXJyZW50X3BhZ2VfcGFyZW50ID4gYSB7XG4gIC8vICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC8vIH1cbiAgLy8gW2FyaWEtY3VycmVudD0ncGFnZSddIHtcbiAgLy8gICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLy8gfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmW2FyaWEtY3VycmVudF0sXG4gICAgJjpob3ZlciB7XG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiA+IGxpID4gYSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2xkKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBJbnRyb1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWludHJvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyV2lkdGgpO1xuICBkaXNwbGF5OiBncmlkO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgdmFyKC0tY29scy02KSkgbWlubWF4KDAsIHZhcigtLWNvbHMtMykpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICYtLWFsdCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgdmFyKC0tY29scy0zKSkgbWlubWF4KDAsIHZhcigtLWNvbHMtNikpO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIH1cblxuICAmLS1jb2xsZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgLmEtY29scy0tc20ge1xuICAgICAgcGFkZGluZy10b3A6IGNsYW1wKDEuNXJlbSwgNHZ3LCAzcmVtKTtcblxuICAgICAgJiA+IC5hLWNvbHMtLXNtIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcblxuICAgIC5hLWNvbHMtLXhzIHtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tY29scy02KTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBBbmNob3IgbmF2XG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tYW5jaG9yLW5hdiB7XG4gICZfX2xpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmNob3Igc2Nyb2xsIHBvc2l0aW9uIG9mZnNldFxuc3BhbltkYXRhLWFuY2hvcl0ge1xuICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBDb3Vyc2UgZGV0YWlsc1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWNvdXJzZS1kZXRhaWxzIHtcbiAgLS1hdXRvR3JpZE1pbjogMTUlO1xuICAtLWF1dG9HcmlkR2FwOiAycmVtO1xuICBtYXJnaW46IDNyZW0gMCAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgbWFyZ2luOiAycmVtIDAgMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMTUwcHg7XG4gICAgLS1hdXRvR3JpZEdhcDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgLS1hdXRvR3JpZE1pbjogMWZyO1xuICB9XG5cbiAgJl9fZGV0YWlsIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gUGVvcGxlIHNpZGViYXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1wZW9wbGUtc2lkZWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgJl9fbGlua3Mge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXBob3RvT2Zmc2V0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDMzMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzwxNjAwcHgnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBAaW5jbHVkZSBiZy1pbWcoMjBweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwIDAuNXJlbSAzMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2xpbmsuc3ZnJyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbjogMC4yNXJlbTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3BhbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJltocmVmKj0nbWFpbHRvJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvZW1haWwuc3ZnJyk7XG4gICAgfVxuICAgICZbaHJlZio9J3RlbCddIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3Bob25lLnN2ZycpO1xuICAgIH1cbiAgICAmW2hyZWYqPSd0d2l0dGVyJ10ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvdHdpdHRlci5zdmcnKTtcbiAgICB9XG4gICAgJltocmVmKj0nZmFjZWJvb2snXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9mYWNlYm9vay5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMHB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IGNlbnRlcjtcbiAgICB9XG4gICAgJltocmVmKj0nbGlua2VkaW4nXSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9saW5rZWRpbi5zdmcnKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBIb21lcGFnZSBiYW5uZXJcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuQGtleWZyYW1lcyBiYW5uZXJJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG4gIDEwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhbm5lck91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxufVxuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWhvbWVwYWdlLWJhbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNjB2aDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgZmlndXJlIHtcbiAgICAmLmRlZmF1bHQtaW1hZ2Uge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuXG4gICAgICBpbWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gICZfX2Jsb2NrLWltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICAmW2RhdGEtdmlzaWJsZT0ndHJ1ZSddIHtcbiAgICAgIGFuaW1hdGlvbjogYmFubmVySW4gMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgICB9XG4gICAgJltkYXRhLXZpc2libGU9J2ZhbHNlJ10ge1xuICAgICAgYW5pbWF0aW9uOiBiYW5uZXJPdXQgMC4ycyBlYXNlLWluLW91dCBmb3J3YXJkcztcbiAgICB9XG4gIH1cblxuICAmX19ibG9ja3Mge1xuICAgIHBhZGRpbmc6IDAgNXJlbTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAwLjVyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgcGFkZGluZzogMCAzLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAmX19ibG9jayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luLXRvcDogLTE0cmVtO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC01cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5wcmUtdGl0bGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYS1saW5rcyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgYSB7XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmEtYnRuIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gRXZlbnQgc2lkZWJhclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWV2ZW50LXNpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAucHJvbW8tY29weSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5kZXRhaWwge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAmLS1ib2xkIHtcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmLS1jb3B5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIGgyLFxuICAgICAgaDMsXG4gICAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIH1cbiAgICAgICYgPiBwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTVweDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFNlYXJjaCBmb3JtXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm0tc2VhcmNoLWZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJ2hlaWdodDw2MDBweCcpIHtcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG5cbiAgLmEtbGlua3Mge1xuICAgIG1hcmdpbjogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICYtLWJpZyB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgLy8gdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG5cbiAgZm9ybSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNzVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEzMDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA1MHB4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMXJlbTtcbiAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICA6Oi1tb3otcGxhY2Vob2xkZXIsXG4gICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiAgICA6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogIzg3OTc5OTtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICB9XG5cbiAgICAgIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBQZXJmb3JtYW5jZXMgbW9kYWxcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS1wZXJmb3JtYW5jZXMge1xuICAtLW1vZGFsUGFkZGluZzogNHJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC0tbW9kYWxQYWRkaW5nOiAycmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAtLW1vZGFsUGFkZGluZzogMXJlbTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQsIDQ4LCA1MiwgMC45KTtcblxuICAmX19pbm5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5TGlnaHQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lcldpZHRoKTtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19wZXJmb3JtYW5jZXMge1xuICAgIG1hcmdpbjogMnJlbSAwIDA7XG4gICAgcGFkZGluZzogMCB2YXIoLS1tb2RhbFBhZGRpbmcpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fcGVyZm9ybWFuY2Uge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTUwcHgsIGF1dG8pIDFmciBtaW5tYXgoMjAwcHgsIGF1dG8pO1xuICAgIGdhcDogMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMC43NXJlbSAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMTUwcHgsIGF1dG8pIDFmcjtcbiAgICAgIGdhcDogMXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgdGltZSB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPnhzJywgJzxzbScpIHtcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmEtYnRuIHtcbiAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz54cycsICc8c20nKSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IHZhcigtLW1vZGFsUGFkZGluZyk7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiBjYWxjKHZhcigtLW1vZGFsUGFkZGluZykgKiAtMSk7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IGNhbGModmFyKC0tbW9kYWxQYWRkaW5nKSAqIC0xKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMteWVsbG93KTtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gR2FsbGVyeVxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLWdhbGxlcnkge1xuICAucHN3cF9fYnV0dG9uIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgfVxuICAucHN3cF9fYnV0dG9uOmZvY3VzLFxuICAucHN3cF9fYnV0dG9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5wc3dwX19idXR0b246YWN0aXZlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuICAucHN3cF9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8qIHBzd3BfX3VpLS1vdmVyLWNsb3NlIGNsYXNzIGl0IGFkZGVkIHdoZW4gbW91c2UgaXMgb3ZlciBlbGVtZW50IHRoYXQgc2hvdWxkIGNsb3NlIGdhbGxlcnkgKi9cbiAgLnBzd3BfX3VpLS1vdmVyLWNsb3NlIC5wc3dwX19idXR0b24tLWNsb3NlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbixcbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuICAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9kZWZhdWx0LXNraW4ucG5nJykgMCAwIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI2NHB4IDg4cHg7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICB9XG5cbiAgQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMSksXG4gICAgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4wOTM3NSksXG4gICAgKG1pbi1yZXNvbHV0aW9uOiAxMDVkcGkpLFxuICAgIChtaW4tcmVzb2x1dGlvbjogMS4xZHBweCkge1xuICAgIC8qIFNlcnZlIFNWRyBzcHJpdGUgaWYgYnJvd3NlciBzdXBwb3J0cyBTVkcgYW5kIHJlc29sdXRpb24gaXMgbW9yZSB0aGFuIDEwNWRwaSAqL1xuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbixcbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvZGVmYXVsdC1za2luLnN2ZycpO1xuICAgIH1cbiAgICAucHN3cC0tc3ZnIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tY2xvc2Uge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTQ0cHg7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1zaGFyZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ0cHggLTQ0cHg7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS1mcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wc3dwLS1zdXBwb3J0cy1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAucHN3cC0tZnMgLnBzd3BfX2J1dHRvbi0tZnMge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00NHB4IDA7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uLS16b29tIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC04OHB4IDA7XG4gIH1cblxuICAucHN3cC0tem9vbS1hbGxvd2VkIC5wc3dwX19idXR0b24tLXpvb20ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLnBzd3AtLXpvb21lZC1pbiAucHN3cF9fYnV0dG9uLS16b29tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTMycHggMDtcbiAgfVxuXG4gIC8qIG5vIGFycm93cyBvbiB0b3VjaCBzY3JlZW5zICovXG4gIC5wc3dwLS10b3VjaCAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3AtLXRvdWNoIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLypcbiAgICBBcnJvdyBidXR0b25zIGhpdCBhcmVhXG4gICAgKGljb24gaXMgYWRkZWQgdG8gOmJlZm9yZSBwc2V1ZG8tZWxlbWVudClcbiAgKi9cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgdG9wOiAzNXB4O1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlIHtcbiAgICBsZWZ0OiA2cHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzOHB4IC00NHB4O1xuICB9XG5cbiAgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgcmlnaHQ6IDZweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtNDRweDtcbiAgfVxuXG4gIC8qXG4gIFxuICAgIDIuIFNoYXJlIG1vZGFsL3BvcHVwIGFuZCBsaW5rc1xuICBcbiAgICovXG4gIC5wc3dwX19jb3VudGVyLFxuICAucHN3cF9fc2hhcmUtbW9kYWwge1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAucHN3cF9fc2hhcmUtbW9kYWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTYwMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgfVxuXG4gIC5wc3dwX19zaGFyZS1tb2RhbC0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnBzd3BfX3NoYXJlLXRvb2x0aXAge1xuICAgIHotaW5kZXg6IDE2MjA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUpO1xuICAgIHRvcDogNTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcmlnaHQ6IDQ0cHg7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgfVxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgfVxuICAucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmZpcnN0LWNoaWxkIHtcbiAgICAvKiByb3VuZCBjb3JuZXJzIG9uIHRoZSBmaXJzdC9sYXN0IGxpc3QgaXRlbSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuICB9XG4gIC5wc3dwX19zaGFyZS10b29sdGlwIGE6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDJweCAycHg7XG4gIH1cblxuICAucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnBzd3BfX3NoYXJlLW1vZGFsLS1mYWRlLWluIC5wc3dwX19zaGFyZS10b29sdGlwIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIC8qIGluY3JlYXNlIHNpemUgb2Ygc2hhcmUgbGlua3Mgb24gdG91Y2ggZGV2aWNlcyAqL1xuICAucHN3cC0tdG91Y2ggLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7XG4gICAgcGFkZGluZzogMTZweCAxMnB4O1xuICB9XG5cbiAgYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEycHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgLXdlYmtpdC1wb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAtbW96LXBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzZTVjOWE7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG4gIGEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmhvdmVyOmJlZm9yZSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzNlNWM5YTtcbiAgfVxuXG4gIGEucHN3cF9fc2hhcmUtLXR3aXR0ZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM1NWFjZWU7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB9XG5cbiAgYS5wc3dwX19zaGFyZS0tcGludGVyZXN0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIGNvbG9yOiAjY2UyNzJkO1xuICB9XG5cbiAgYS5wc3dwX19zaGFyZS0tZG93bmxvYWQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNkZGQ7XG4gIH1cblxuICAvKlxuICBcbiAgICAzLiBJbmRleCBpbmRpY2F0b3IgKFwiMSBvZiBYXCIgY291bnRlcilcbiAgXG4gICAqL1xuICAucHN3cF9fY291bnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogNDRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ0cHg7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5cbiAgLypcbiAgICBcbiAgICA0LiBDYXB0aW9uXG4gIFxuICAgKi9cbiAgLnBzd3BfX2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICB9XG4gIC5wc3dwX19jYXB0aW9uIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICNiYmI7XG4gIH1cblxuICAucHN3cF9fY2FwdGlvbl9fY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAucHN3cF9fY2FwdGlvbi0tZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBGYWtlIGNhcHRpb24gZWxlbWVudCwgdXNlZCB0byBjYWxjdWxhdGUgaGVpZ2h0IG9mIG5leHQvcHJldiBpbWFnZSAqL1xuICAucHN3cF9fY2FwdGlvbi0tZmFrZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLypcbiAgXG4gICAgNS4gTG9hZGluZyBpbmRpY2F0b3IgKHByZWxvYWRlcilcbiAgXG4gICAgWW91IGNhbiBwbGF5IHdpdGggaXQgaGVyZSAtIGh0dHA6Ly9jb2RlcGVuLmlvL2RpbXNlbWVub3YvcGVuL3l5QldvUlxuICBcbiAgICovXG4gIC5wc3dwX19wcmVsb2FkZXIge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgfVxuXG4gIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMTJweDtcbiAgfVxuXG4gIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcbiAgICAvKiBXZSB1c2UgLmdpZiBpbiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgQ1NTIGFuaW1hdGlvbiAqL1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvcHJlbG9hZGVyLmdpZikgMCAwIG5vLXJlcGVhdDtcbiAgfVxuXG4gIC5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyLS1hY3RpdmUgLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogY2xvY2t3aXNlIDUwMG1zIGxpbmVhciBpbmZpbml0ZTtcbiAgICBhbmltYXRpb246IGNsb2Nrd2lzZSA1MDBtcyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2RvbnV0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogZG9udXQtcm90YXRlIDEwMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKVxuICAgICAgaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uOiBkb251dC1yb3RhdGUgMTAwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpIGluZmluaXRlO1xuICB9XG5cbiAgLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9faWNuIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIHRvcDogMTVweDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19jdXQge1xuICAgIC8qIFxuICAgICAgICBUaGUgaWRlYSBvZiBhbmltYXRpbmcgaW5uZXIgY2lyY2xlIGlzIGJhc2VkIG9uIFBvbHltZXIgKFwibWF0ZXJpYWxcIikgbG9hZGluZyBpbmRpY2F0b3IgXG4gICAgICAgICBieSBLZWFudSBMZWUgaHR0cHM6Ly9ibG9nLmtlYW51bGVlLmNvbS8yMDE0LzEwLzIwL3RoZS10YWxlLW9mLXRocmVlLXNwaW5uZXJzLmh0bWxcbiAgICAgICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiA3cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19kb251dCB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLnBzd3BfX3ByZWxvYWRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIEAtd2Via2l0LWtleWZyYW1lcyBjbG9ja3dpc2Uge1xuICAgIDAlIHtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgY2xvY2t3aXNlIHtcbiAgICAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG4gIH1cblxuICBALXdlYmtpdC1rZXlmcmFtZXMgZG9udXQtcm90YXRlIHtcbiAgICAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgZG9udXQtcm90YXRlIHtcbiAgICAwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgXG4gICAgNi4gQWRkaXRpb25hbCBzdHlsZXNcbiAgXG4gICAqL1xuICAvKiByb290IGVsZW1lbnQgb2YgVUkgKi9cbiAgLnBzd3BfX3VpIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiAxNTUwO1xuICB9XG5cbiAgLyogdG9wIGJsYWNrIGJhciB3aXRoIGJ1dHRvbnMgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yICovXG4gIC5wc3dwX190b3AtYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnBzd3BfX2NhcHRpb24sXG4gIC5wc3dwX190b3AtYmFyLFxuICAucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuICAucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICB9XG5cbiAgLyogcHN3cC0taGFzX21vdXNlIGNsYXNzIGlzIGFkZGVkIG9ubHkgd2hlbiB0d28gc3Vic2VxdWVudCBtb3VzZW1vdmUgZXZlbnRzIG9jY3VyICovXG4gIC5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgLnBzd3BfX3RvcC1iYXIsXG4gIC5wc3dwX19jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIH1cblxuICAvKiBwc3dwX191aS0tZml0IGNsYXNzIGlzIGFkZGVkIHdoZW4gbWFpbiBpbWFnZSBcImZpdHNcIiBiZXR3ZWVuIHRvcCBiYXIgYW5kIGJvdHRvbSBiYXIgKGNhcHRpb24pICovXG4gIC5wc3dwX191aS0tZml0IC5wc3dwX190b3AtYmFyLFxuICAucHN3cF9fdWktLWZpdCAucHN3cF9fY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB9XG5cbiAgLyogcHN3cF9fdWktLWlkbGUgY2xhc3MgaXMgYWRkZWQgd2hlbiBtb3VzZSBpc24ndCBtb3ZpbmcgZm9yIHNldmVyYWwgc2Vjb25kcyAoSlMgb3B0aW9uIHRpbWVUb0lkbGUpICovXG4gIC5wc3dwX191aS0taWRsZSAucHN3cF9fdG9wLWJhciB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5wc3dwX191aS0taWRsZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC8qXG4gICAgcHN3cF9fdWktLWhpZGRlbiBjbGFzcyBpcyBhZGRlZCB3aGVuIGNvbnRyb2xzIGFyZSBoaWRkZW5cbiAgICBlLmcuIHdoZW4gdXNlciB0YXBzIHRvIHRvZ2dsZSB2aXNpYmlsaXR5IG9mIGNvbnRyb2xzXG4gICovXG4gIC5wc3dwX191aS0taGlkZGVuIC5wc3dwX190b3AtYmFyLFxuICAucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fY2FwdGlvbixcbiAgLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gIC5wc3dwX191aS0taGlkZGVuIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgLyogRm9yY2UgcGFpbnQgJiBjcmVhdGUgY29tcG9zaXRpb24gbGF5ZXIgZm9yIGNvbnRyb2xzLiAqL1xuICAgIG9wYWNpdHk6IDAuMDAxO1xuICB9XG5cbiAgLyogcHN3cF9fdWktLW9uZS1zbGlkZSBjbGFzcyBpcyBhZGRlZCB3aGVuIHRoZXJlIGlzIGp1c3Qgb25lIGl0ZW0gaW4gZ2FsbGVyeSAqL1xuICAucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbiAgLnBzd3BfX3VpLS1vbmUtc2xpZGUgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0LFxuICAucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fY291bnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wc3dwX19lbGVtZW50LS1kaXNhYmxlZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBzd3AtLW1pbmltYWwtLWRhcmsgLnBzd3BfX3RvcC1iYXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cblxuICAucHN3cF9fem9vbS13cmFwLFxuICAucHN3cF9fY29udGFpbmVyLFxuICAucHN3cF9faXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIH1cblxuICAucHN3cF9fYnV0dG9uIHtcbiAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICB9XG4gIH1cblxuICAucHN3cF9fY291bnRlciB7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAucHN3cC0tem9vbWVkLWluIHtcbiAgICAucHN3cF9fY2FwdGlvbiB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIE1vbGVjdWxlcyAtIFRvZ2dsZSBzdWJuYXZcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4ubS10b2dnbGUtc3VibmF2IHtcbiAgJltkYXRhLWlzT3Blbj0nZmFsc2UnXSB7XG4gICAgYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICB9XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogTW9sZWN1bGVzIC0gU3VibmF2IGNvbnRhaW5lclxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogQ29uZmlnXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5tLXN1Ym5hdi1jb250YWluZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcblxuICAubS1zdWJuYXYge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIEhlYWRlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLWhlYWRlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8MTEwMHB4Jykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAganVzdGlmeS1pdGVtczogc3RhcnQ7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxNXB4O1xuICB9XG5cbiAgJl9fbmF2IHtcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzwxMTAwcHgnKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIEBpbmNsdWRlIGxpLXJlc2V0O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19sb2dvIHtcbiAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgfVxuXG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtcmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMC41cmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBnYXA6IDA7XG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIGEge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogNDJweDtcbiAgICAgIHdpZHRoOiA0MnB4O1xuICAgICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgICAmLnRpY2tldC1pY29uIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBzdHJva2U6IG5vbmU7XG4gICAgICAgICAgICBmaWxsOiAgdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHBhdGgge1xuICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIEZvb3RlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLWZvb3RlciB7XG4gIC0tY29sTWF4V2lkdGg6IDI1MHB4O1xuICAtLXBhZGRpbmc6IDNyZW07XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAtLWNvbE1heFdpZHRoOiAzNTBweDtcbiAgICAtLXBhZGRpbmc6IDJyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHh4cycpIHtcbiAgICAtLWNvbE1heFdpZHRoOiBub25lO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKSAwO1xuXG4gIC5hLWNvbHMtLWZ1bGwge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICB9XG5cbiAgLmEtbGlua3Mge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIGEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICB9XG5cbiAgJl9fdG9wIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAxcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMnJlbTtcbiAgICB9XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xNYXhXaWR0aCk7XG4gICAgfVxuICB9XG5cbiAgJl9fYWJvdXQge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAxIC8gNTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuXG4gICAgICBwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fbmV3c2xldHRlciB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDEgLyAyO1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IGF1dG87XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDIgLyA1O1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiBhdXRvO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICB9XG5cbiAgJl9fam9pbi1zdXBwb3J0IHtcbiAgICBncmlkLWNvbHVtbjogMztcbiAgICBncmlkLXJvdzogMSAvIDM7XG4gICAganVzdGlmeS1zZWxmOiBlbmQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC5saW5rcyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICBnYXA6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fc29jaWFsIHtcbiAgICBncmlkLWNvbHVtbjogMztcbiAgICBncmlkLXJvdzogMztcbiAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAganVzdGlmeS1zZWxmOiBlbmQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBncmlkLXJvdzogYXV0bztcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgb3JkZXI6IC0yO1xuICAgIH1cbiAgfVxuXG4gICZfX2JvdHRvbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcGFkZGluZyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gIH1cblxuICAmX19wYXJ0bmVycyxcbiAgJl9faGVhZGxpbmUtcGFydG5lciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiB2YXIoLS1jb2xNYXhXaWR0aCk7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGxpbmUtcGFydG5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBwIHtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tY29sTWF4V2lkdGgpO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3BhcnRuZXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1wYWRkaW5nKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19sZWdhbCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcGFkZGluZyk7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBTZWFyY2ggcmVzdWx0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLXNlYXJjaC1yZXN1bHRzLXdyYXBwZXIge1xuICBoMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yZXN1bHRfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIG9sIHtcbiAgICAgIEBpbmNsdWRlIGxpLXJlc2V0O1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gVGVhc2Vyc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLWZlYXR1cmVkLXRlYXNlcixcbi5vLWxpc3RpbmctdGVhc2VyLFxuLm8tdGVhc2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz5zbScpIHtcbiAgICAmLS1zaW5nbGUge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICBnYXA6IDJyZW07XG4gICAgfVxuICB9XG5cbiAgJl9fdGh1bWIge1xuICAgIEBpbmNsdWRlIGxpbmtSZXNldDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBmaWd1cmUge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy10b3A6IDU2LjI1JTtcblxuICAgICAgJi5saXN0aW5nX2ltYWdlX3NxdWFyZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgICAgfVxuICAgICAgJi5saXN0aW5nX2ltYWdlX3BvcnRyYWl0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEzMy4zMzMzJTtcbiAgICAgIH1cblxuICAgICAgcGljdHVyZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5TGlnaHQpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICAgIC5sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0wLjhyZW07XG4gICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuXG4gICAgICAmLnRlYWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlYWwpO1xuICAgICAgfVxuICAgICAgJi52aW9sZXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLW1hcm9vbik7XG4gICAgICB9XG5cbiAgICAgICYueWVsbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy15ZWxsb3cpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICB9XG5cbiAgICBhOm5vdCguYS1idG4pOm5vdCgucmVhZC1tb3JlKSB7XG4gICAgICBAaW5jbHVkZSBsaW5rUmVzZXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnRhZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgICAgLm8tdGVhc2VyLS1zaW5nbGUgJiB7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZzogMCAwIDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYgPiAuYS1idG4ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTbWFsbCk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5uby1saW5rKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+c20nKSB7XG4gICAgICAuby10ZWFzZXItLXNpbmdsZSAmIHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWxpbmVMZW5ndGgpO1xuICB9XG59XG5cbi5vLWxpc3RpbmctdGVhc2VyIHtcbiAgLy8gZGlzcGxheTogZ3JpZDtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIC8vIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjtcbiAgLy8gYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgLy8gQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgLy8gICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgLy8gfVxuXG4gIGgyIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNnJlbSwgMi4ydncsIDIuOHJlbSk7XG4gIH1cblxuICAmX190aHVtYiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAmX19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG5cbi5vLWZlYXR1cmVkLXRlYXNlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMnJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDEuNWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAmLS1zaW5nbGUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLy8gICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAvLyAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvLyAgIEBpbmNsdWRlIG1lZGlhKCc8PXNtJykge1xuICAgIC8vICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAvLyAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgLy8gICB9XG5cbiAgICAvLyAgIC5vLWZlYXR1cmVkLXRlYXNlcl9fdGh1bWIge1xuICAgIC8vICAgICBncmlkLWNvbHVtbjogMSAvIDk7XG4gICAgLy8gICAgIGdyaWQtcm93OiAxO1xuXG4gICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLy8gICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cblxuICAgIC8vICAgLm8tZmVhdHVyZWQtdGVhc2VyX19jb250ZW50IHtcbiAgICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAvLyAgICAgZ3JpZC1jb2x1bW46IDggLyAxMztcbiAgICAvLyAgICAgZ3JpZC1yb3c6IDE7XG4gICAgLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyAgICAgcGFkZGluZzogM3JlbTtcblxuICAgIC8vICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIC8vICAgICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gM3JlbTtcbiAgICAvLyAgICAgfVxuXG4gICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLy8gICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgLy8gICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgLy8gICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuXG4gICAgLy8gICBAaW5jbHVkZSBtZWRpYSgnPnNtJykge1xuICAgIC8vICAgICAuby1mZWF0dXJlZC10ZWFzZXJfX2J1dHRvbnMge1xuICAgIC8vICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgLy8gICAgICAgJiA+IC5hLWJ0biB7XG4gICAgLy8gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICAgICAgICBib3R0b206IC0xLjI1cmVtO1xuICAgIC8vICAgICAgICAgbGVmdDogM3JlbTtcbiAgICAvLyAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAvLyAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgLy8gICAgICAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcblxuICAgICYgPiAuYS1idG4ge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICBib3JkZXI6IDA7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAtLWJ0bkJnOiB2YXIoLS1jLXllbGxvdyk7XG4gICAgICAtLWJ0bkNvbG91cjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuLm8tdGVhc2VyIHtcbiAgJl9fY29udGVudCB7XG4gICAgcCB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbiAgfVxufSIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBPcmdhbmlzbXMgLSBMaXN0aW5nICoqdGVtcCoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm8tbGlzdGluZyB7XG4gICZfX2ZpbHRlcnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAuYnRuIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuXG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHhzJykge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICAgICAgJi0tZHJvcGRvd24ge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYWN0aXZlLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXJlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRpdmlkZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fZHJvcGRvd24ge1xuXG4gICAgei1pbmRleDogMjtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXlMaWdodCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIC5zaG93LXJlc3VsdHMge1xuICAgICAgIG1hcmdpbjogMjBweCAwIDAgMDtcbiAgICB9XG4gICAgLmEtY29scyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNhbGVuZGFyIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgIC5EYXlQaWNrZXItTmF2QmFyIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5hLWNvbHMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgICYtY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRheG9ub215IHtcblxuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgICBncmlkLWdhcDogMjBweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBncmlkLWdhcDogMTVweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBncmlkLWdhcDogMTBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgIH1cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdyaWQtZ2FwOiAxMHB4O1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgYWNjZW50LWNvbG9yOiAjZmZiODFjO1xuICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaDMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi0tZmlsdGVycyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgfVxuICAgICAgICBncmlkLWdhcDogMTBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG4gICAgICAgICAgZ3JpZC1nYXA6IDVweDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxpbmsge1xuICAgICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2FjdGl2ZS1maWx0ZXJzIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleUxpZ2h0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAuYS1idG4ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250U21hbGwpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcmVkKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1yZWQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLkRheVBpY2tlciB7XG4gICAgJi1Nb250aHMge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICBnYXA6IDJyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNtYWxsKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi1Nb250aCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBPcmdhbmlzbXMgLSBQZXJzb24gdGVhc2VyXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBDb25maWdcbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuLm8tcGVvcGxlIHtcbiAgJi0tc20ge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMnJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx4eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAuby1wZW9wbGVfX3BlcnNvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogMDtcblxuICAgICAgZmlndXJlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWxnIHtcbiAgICAuby1wZW9wbGVfX3BlcnNvbiB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjIwcHg7XG4gICAgICBnYXA6IDJyZW07XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE1MHB4O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3BlcnNvbiB7XG4gICAgQGluY2x1ZGUgbGlua1Jlc2V0O1xuXG4gICAgLmxpbmsge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGgzLFxuICAgICAgLmxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cblxuICAgICAgLmxpbms6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogT3JnYW5pc21zIC0gUGVyZm9ybWFuY2VzIG1vZGFsXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG5cbi8qKlxuKiBTdHlsaW5nXG4qL1xuW2RhdGEtbW9kYWxPcGVuPSd0cnVlJ10ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uby1tb2RhbCB7XG4gIGJvcmRlcjogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI1O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAmW2RhdGEtdmlzaWJsZT0ndHJ1ZSddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIH1cblxuICAmW2RhdGEtdmlzaWJsZT0nZmFsc2UnXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLy8gYW5pbWF0aW9uOiBmYWRlT3V0IDAuMnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIC5hLWNvbHMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAmLS1mdWxsc2NyZWVuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgfVxuXG4gICAgLmEtY29scyB7XG4gICAgICBtYXgtaGVpZ2h0OiA5NXZoO1xuICAgICAgcGFkZGluZzogMXJlbSAwIDA7XG4gICAgfVxuXG4gICAgLm8tbW9kYWxfX2Nsb3NlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcmlnaHQ6IDJyZW07XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgICAgICByaWdodDogMTVweDtcbiAgICAgIH1cblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICBzdHJva2U6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogNDJweDtcbiAgICB3aWR0aDogNDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgdG9wOiAxcmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAvLyB0b3A6IDAuNXJlbTtcbiAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICB3aWR0aDogMzVweDtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDIwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24pO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tYy13aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNjY2Mge1xuICAjY2NjIHtcbiAgICAmLWNsb3NlIHtcbiAgICAgICYuY2NjIHtcbiAgICAgICAgJi1jbG9zZSB7XG4gICAgICAgICAgJi0tbGFiZWxsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHNoYWtlIDAuODJzIGN1YmljLWJlemllciguMzYsLjA3LC4xOSwuOTcpIGJvdGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIFxuICAgICYtcmVqZWN0LXNldHRpbmdzIHtcbiAgICAgICYuY2NjIHtcbiAgICAgICAgJi1ub3RpZnktYnV0dG9uIHtcbiAgICAgICAgICAmLmNjYy1yZWplY3QtYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBcbn1cblxuXG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuICAxMCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMXB4LCAwLCAwKTtcbiAgfVxuICAyMCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICB9XG5cbiAgMzAlLCA1MCUsIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMnB4LCAwLCAwKTtcbiAgfVxuICA0MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICB9XG59IiwiLyoqXG4qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogVW4udGl0bGVkXG4qIFRlbXBsYXRlIC0gUG9zdHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG5hcnRpY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAvLyAmOm5vdCguby10ZWFzZXIpOm5vdCguby1saXN0aW5nLXRlYXNlcikge1xuICAvLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gICB6LWluZGV4OiAxO1xuICAvLyB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/