@charset "UTF-8";
/**
 * ----------------------
 * Un.titled
 * Main - Global
 * ----------------------
 */
/**
 * Dependencies
 */
/*!
 * baguetteBox.js
 * @author  feimosi
 * @version %%INJECT_VERSION%%
 * @url https://github.com/feimosi/baguetteBox.js
 */
#baguetteBox-overlay {
  display: none;
  opacity: 0;
  position: fixed;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000000;
  background-color: #222;
  background-color: rgba(0, 0, 0, 0.8);
  transition: opacity 0.5s ease;
}
#baguetteBox-overlay.visible {
  opacity: 1;
}
#baguetteBox-overlay .full-image {
  display: inline-block;
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
}
#baguetteBox-overlay .full-image figure {
  display: inline;
  margin: 0;
  height: 100%;
}
#baguetteBox-overlay .full-image img {
  display: inline-block;
  width: auto;
  height: auto;
  max-height: 100%;
  max-width: 100%;
  vertical-align: middle;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
#baguetteBox-overlay .full-image figcaption {
  display: block;
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  line-height: 1.8;
  white-space: normal;
  color: #ccc;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.6);
  font-family: sans-serif;
}
#baguetteBox-overlay .full-image:before {
  content: "";
  display: inline-block;
  height: 50%;
  width: 1px;
  margin-right: -1px;
}

#baguetteBox-slider {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  white-space: nowrap;
  transition: left 0.4s ease, transform 0.4s ease;
}
#baguetteBox-slider.bounce-from-right {
  animation: bounceFromRight 0.4s ease-out;
}
#baguetteBox-slider.bounce-from-left {
  animation: bounceFromLeft 0.4s ease-out;
}

@keyframes bounceFromRight {
  0% {
    margin-left: 0;
  }
  50% {
    margin-left: -30px;
  }
  100% {
    margin-left: 0;
  }
}
@keyframes bounceFromLeft {
  0% {
    margin-left: 0;
  }
  50% {
    margin-left: 30px;
  }
  100% {
    margin-left: 0;
  }
}
.baguetteBox-button#previous-button, .baguetteBox-button#next-button {
  top: 50%;
  top: calc(50% - 30px);
  width: 44px;
  height: 60px;
}

.baguetteBox-button {
  position: absolute;
  cursor: pointer;
  outline: none;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 15%;
  background-color: #323232;
  background-color: rgba(50, 50, 50, 0.5);
  color: #ddd;
  font: 1.6em sans-serif;
  transition: background-color 0.4s ease;
}
.baguetteBox-button:focus, .baguetteBox-button:hover {
  background-color: rgba(50, 50, 50, 0.9);
}
.baguetteBox-button#next-button {
  right: 2%;
}
.baguetteBox-button#previous-button {
  left: 2%;
}
.baguetteBox-button#close-button {
  top: 20px;
  right: 2%;
  right: calc(2% + 6px);
  width: 30px;
  height: 30px;
}
.baguetteBox-button svg {
  position: absolute;
  left: 0;
  top: 0;
}

/*
    Preloader
    Borrowed from http://tobiasahlin.com/spinkit/
*/
.baguetteBox-spinner {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
}

.baguetteBox-double-bounce1,
.baguetteBox-double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #fff;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  animation: bounce 2s infinite ease-in-out;
}

.baguetteBox-double-bounce2 {
  animation-delay: -1s;
}

@keyframes bounce {
  0%, 100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}
/*! 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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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;
  }
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/**
 * Config
 */
/**
 * ----------------------
 * Un.titled
 * Config - Font
 * ----------------------
 */
@font-face {
  font-family: "openSansRegular";
  src: url("../font/opensans-regular-webfont.woff2") format("woff2"), url("../font/opensans-regular-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "openSansItalic";
  src: url("../font/opensans-italic-webfont.woff2") format("woff2"), url("../font/opensans-italic-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "openSansSemiBold";
  src: url("../font/opensans-semibold-webfont.woff2") format("woff2"), url("../font/opensans-semibold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "poppinsRegular";
  src: url("../font/poppins-regular.woff2") format("woff2"), url("../font/poppins-regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "poppinsSemiBold";
  src: url("../font/poppins-semibold-webfont.woff2") format("woff2"), url("../font/poppins-semibold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "poppinsBold";
  src: url("../font/poppins-bold-webfont.woff2") format("woff2"), url("../font/poppins-bold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "poppinslight";
  src: url("../font/poppins-light-webfont.woff2") format("woff2"), url("../font/poppins-light-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
/**
 * ----------------------
 * Un.titled
 * Config - Vars
 * ----------------------
 */
:root {
  --c-primary: #2f404a;
  --c-secondary: #4f6c7d;
  --c-tertiary: #e5eaed;
  --c-black: #4a4a4a;
  --c-white: #ffffff;
  --c-focus: #80b3ff;
  --fontRegular: "openSansRegular", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --fontSemiBold: "openSansSemiBold", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --fontPoppinsRegular: "poppinsRegular", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --fontPoppinsSemi: "poppinsSemiBold", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue",
    sans-serif;
  --fontBody: var(--fontRegular);
  --fontTitle: var(--fontPoppinsSemi);
  --fontSize: 100%;
  --fontSmall: 70%;
  --lineHeight: 1.5;
  --bump: 30px;
  --bumpUnit: 10px;
  --bumpSmall: 24px;
  --containerWidth: 1112px;
  --easing: cubic-bezier(0.83, 0, 0.17, 1);
  --transition: 0.3s var(--easing);
}

/**
 * Breakpoints
 */
/**
 * 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}
 */
.color--primary {
  color: var(--c-primary) !important;
}
.color--secondary {
  color: var(--c-secondary) !important;
}
.color--tertiary {
  color: var(--c-tertiary) !important;
}
.color--black {
  color: var(--c-black) !important;
}
.color--white {
  color: var(--c-white) !important;
}
.color--focus {
  color: var(--c-focus) !important;
}

.screen-readers {
  text-align: left;
  text-indent: -9999px;
  display: block;
  height: 0;
  width: 0;
}

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

/**
 * 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 {
  backface-visibility: hidden;
  transition: 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;
}

.svg {
  transition: all var(--transition);
}

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

main.wrapper article.o-full > .grid > [class*=col-] .grid > .col-sm-8 section.m-entity {
  margin: calc(var(--bump) * 2) 0;
}

body.member header.o-header {
  position: relative;
}
body.user-logged-in .toolbar .toolbar-bar a, body.user-logged-in .toolbar .toolbar-tray a {
  font-size: 0.8125rem;
}

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

h1,
.h1 {
  line-height: clamp(38px, 4vw, 61px);
  font-size: clamp(30px, 4vw, 44px);
  letter-spacing: clamp(0px, 5vw, 1px);
}

h2,
.h2 {
  font-size: clamp(25px, 4.5vw, 35px);
  line-height: clamp(32px, 5vw, 39px);
  letter-spacing: clamp(0px, 2.5vw, 0.5px);
}

h3,
.h3 {
  font-size: clamp(22px, 4.5vw, 28px);
  line-height: clamp(30px, 5vw, 33px);
  color: var(--c-primary);
}

h4,
.h4 {
  font-size: clamp(18px, 4.5vw, 22px);
  line-height: clamp(28px, 5vw, 31px);
}

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

/**
 * Paragraphs
 */
p, .webform-submission-form textarea, .webform-submission-form label,
.webform-submission-form input,
.webform-submission-form .webform-element-description,
.webform-submission-form select option,
.webform-submission-form legend {
  margin: 1.5em 0;
  font-family: var(--fontBody);
  font-size: 18px;
  line-height: 28px;
  color: var(--c-black);
  overflow-wrap: anywhere;
}
p:first-of-type, .webform-submission-form textarea:first-of-type, .webform-submission-form label:first-of-type,
.webform-submission-form input:first-of-type,
.webform-submission-form .webform-element-description:first-of-type,
.webform-submission-form select option:first-of-type,
.webform-submission-form legend:first-of-type {
  margin-top: 0;
}
p:last-of-type, .webform-submission-form textarea:last-of-type, .webform-submission-form label:last-of-type,
.webform-submission-form input:last-of-type,
.webform-submission-form .webform-element-description:last-of-type,
.webform-submission-form select option:last-of-type,
.webform-submission-form legend:last-of-type {
  margin-bottom: 0;
}
p strong, .webform-submission-form textarea strong, .webform-submission-form label strong,
.webform-submission-form input strong,
.webform-submission-form .webform-element-description strong,
.webform-submission-form select option strong,
.webform-submission-form legend strong {
  font-weight: 900;
}

/**
 * Lists
 */
ul,
ol {
  margin: 1.5rem 0;
  list-style-position: inside;
  padding-left: 0;
}
ul li,
ol li {
  font-family: var(--fontBody);
}
ul li strong,
ol li strong {
  font-weight: 900;
}

/**
* Links
*/
a {
  color: #4f6c7d;
  font-weight: inherit;
  text-decoration: underline;
  transition: all var(--transition);
  color: var(--c-secondary);
  font-size: 18px;
  line-height: 28px;
}
a:hover, a:focus, a:active {
  text-decoration: none;
}
a:focus {
  outline: 3px solid var(--c-focus);
}
.js-focus-visible a:focus:not(.focus-visible) {
  outline: 0;
}
a.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 solid var(--c-focus);
}
.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 - Drupal 8 specific
 * ----------------------
 */
.pager {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: var(--bump);
  flex-wrap: wrap;
}
.pager li {
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 767px) {
  .pager {
    margin-top: calc(var(--bump) / 2);
  }
}
.pager li {
  display: inline-block;
}
.pager li a {
  display: block;
  padding: 0 10px 0 5px;
  color: var(--c-black);
  text-decoration: none;
  line-height: 1;
}
.pager li a:hover {
  color: var(--c-primary);
  text-decoration: none;
}
.pager li:last-child a {
  border-right: 0;
  padding-right: 5px;
}
.pager li.is-active a {
  color: var(--c-primary);
  text-decoration: none;
}

.admin-functions {
  position: sticky;
  top: 0;
  width: 100%;
  background-color: var(--c-primary);
  max-width: 100%;
  z-index: 31;
}
.user-logged-in .admin-functions {
  top: 39px;
}
.toolbar-tray-open .admin-functions {
  top: 79px;
}
.admin-functions [class*=col-] {
  padding: 0 calc(var(--bump) / 2);
}
.admin-functions a {
  font-size: 0.8125rem;
}
.admin-functions ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
  margin: calc(var(--bump) / 2) 0;
  padding: 0;
}
.admin-functions ul li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.admin-functions ul li {
  margin-right: var(--bump);
  display: inline-block;
}
.admin-functions ul li a {
  color: var(--c-white);
}

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

a.skip-main {
  left: -999px;
  position: absolute;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: -999;
}

a.skip-main:focus,
a.skip-main:active {
  font-weight: bold;
  color: var(--c-white);
  background-color: var(--c-primary);
  left: auto;
  top: auto;
  width: 30%;
  height: auto;
  overflow: auto;
  margin: 10px 35%;
  padding: 5px;
  text-align: center;
  font-size: 1.2em;
  z-index: 999;
}

.ajax-progress-throbber {
  display: none;
}

/**
 * ----------------------
 * Un.titled
 * Base - Main
 * ----------------------
 */
/**
 * Styles
 */
html,
body {
  -moz-font-smoothing: grayscale;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: var(--fontSize);
  box-sizing: border-box;
  line-height: var(--lineHeight);
  font-family: var(--fontBody);
}

*,
*:before,
*:after {
  box-sizing: inherit;
  transition: var(--transition);
}

body {
  display: flex;
  flex-direction: column;
}
body.is-frozen {
  overflow: hidden;
}
body[data-nav=open] {
  overflow: hidden;
}

/**
* Atoms
*/
/**
 * ----------------------
 * Un.titled
 * Atoms - Grid
 * ----------------------
 */
/**
 * Styling
 */
.a-grid {
  display: grid;
  gap: calc(var(--bump) / 2);
}
.a-grid--1 {
  grid-template-columns: 1fr;
}
.a-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 767px) {
  .a-grid--2 {
    grid-template-columns: 1fr;
  }
}
.a-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767px) {
  .a-grid--3 {
    grid-template-columns: 1fr;
  }
}
.a-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 575px) {
  .a-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Nav Toggle
 * ----------------------
 */
/**
 * Config
 */
/**
 * Styles
 */
.a-nav-toggle {
  border: 0;
  padding: 0;
  background-color: transparent;
  position: relative;
  display: none;
  outline: none;
}
@media (max-width: 767px) {
  .a-nav-toggle {
    display: block;
  }
}
.a-nav-toggle .close-menu-icon {
  display: none;
}
[data-nav=open] .a-nav-toggle .close-menu-icon {
  display: block;
}
.a-nav-toggle .menu-icon svg {
  width: 47px;
}
[data-nav=open] .a-nav-toggle .menu-icon {
  display: none;
}
.a-nav-toggle:hover, .a-nav-toggle:focus {
  outline: none;
}
.a-nav-toggle__line {
  display: block;
  background: var(--c-primary);
  width: 45px;
  height: 4px;
  position: absolute;
  left: 0;
  border-radius: 2px;
  transition: var(--transition);
}
.a-nav-toggle__line-1 {
  top: 0;
}
:hover > .a-nav-toggle__line-1 {
  transform: translateY(-2px);
}
[data-nav=open] .a-nav-toggle__line-1 {
  transform: translateY(15px) translateX(0) rotate(45deg);
}
.a-nav-toggle__line-2 {
  top: 50%;
}
[data-nav=open] .a-nav-toggle__line-2 {
  opacity: 0;
}
.a-nav-toggle__line-3 {
  top: 100%;
}
:hover > .a-nav-toggle__line-3 {
  transform: translateY(2px);
}
[data-nav=open] .a-nav-toggle__line-3 {
  transform: translateY(-15px) translateX(0) rotate(-45deg);
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Buttons
 * ----------------------
 */
/**
 * Config
 **/
/**
 * Styles
 **/
.a-btn {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
}
@media (max-width: 575px) {
  .a-btn {
    white-space: nowrap;
  }
}
.a-btn:hover {
  background-color: var(--c-primary);
}
.a-btn:focus {
  outline: 3px solid var(--c-focus);
}
.js-focus-visible .a-btn:focus:not(.focus-visible) {
  outline: 0;
}
.a-btn--mail {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  min-width: 165px;
}
@media (max-width: 575px) {
  .a-btn--mail {
    white-space: nowrap;
  }
}
.a-btn--mail::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: calc(var(--bump) / 2);
  width: 20px;
  height: 20px;
  display: block;
  background-image: url("../img/mailing-white.svg");
  background-position: right;
  transition: 0.3s var(--easing);
}
.a-btn--mail:hover {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  min-width: 165px;
}
@media (max-width: 575px) {
  .a-btn--mail:hover {
    white-space: nowrap;
  }
}
.a-btn--mail:hover::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: calc(var(--bump) / 2);
  width: 20px;
  height: 20px;
  display: block;
  background-image: url("../img/mailing-blue.svg");
  background-position: right;
  transition: 0.3s var(--easing);
}
.a-btn--arrow {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  min-width: 165px;
}
@media (max-width: 575px) {
  .a-btn--arrow {
    white-space: nowrap;
  }
}
.a-btn--arrow::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: calc(var(--bump) / 2);
  width: 20px;
  height: 20px;
  display: block;
  background-image: url("../img/shape.svg");
  background-position: right;
  transition: 0.3s var(--easing);
}
.a-btn--arrow:hover {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  min-width: 165px;
}
@media (max-width: 575px) {
  .a-btn--arrow:hover {
    white-space: nowrap;
  }
}
.a-btn--arrow:hover::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: calc(var(--bump) / 2);
  width: 20px;
  height: 20px;
  display: block;
  background-image: url("../img/shape-blue.svg");
  background-position: right;
  transition: 0.3s var(--easing);
}
.a-btn--sold-out {
  color: var(--c-black) !important;
  border: 1px solid var(--c-black) !important;
  background-color: var(--c-white) !important;
  justify-content: center;
  padding-left: 0 !important;
  padding-right: 0 !important;
  pointer-events: none;
}
.a-btn--sold-out:after {
  display: none !important;
}

.a-btn-cta {
  background-color: #4f6c7d;
  padding: 14px;
  text-decoration: none;
  margin-left: 16px;
  color: #ffffff;
  display: grid;
  grid-auto-flow: column;
  justify-content: space-around;
  align-items: center;
}
.a-btn-cta:hover {
  color: var(--c-secondary);
  background-color: #ffffff;
}
.a-btn-cta:hover svg path {
  fill: var(--c-secondary);
}
@media (max-width: 767px) {
  .a-btn-cta {
    margin-left: 0px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 30px 16px 16px;
  }
}
.a-btn-cta:hover {
  color: #4f6c7d;
}
.a-btn-cta svg {
  margin-left: 12px;
}
.a-btn-cta svg:hover path {
  fill: var(--c-primary);
}

/**
 * ----------------------
 * Un.titled
 * Atoms - Image credits
 * ----------------------
 */
.a-image-credit {
  position: absolute;
  bottom: var(--bump);
  right: var(--bump);
  z-index: 4;
  cursor: help !important;
  height: var(--bump);
  width: var(--bump);
  border: 0;
}
@media (max-width: 767px) {
  .a-image-credit {
    bottom: calc(var(--bump) / 2);
    right: calc(var(--bump) / 2);
  }
}
.a-image-credit span {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  text-transform: none;
  line-height: 15px;
  text-align: center;
}
.a-image-credit:before {
  content: attr(data-credit);
  text-indent: 0;
  background: var(--c-primary);
  color: var(--c-white);
  opacity: 0;
  position: absolute;
  right: var(--bump);
  top: 0;
  z-index: -1;
  padding: 0 21px;
  height: var(--bump);
  line-height: var(--bump);
  white-space: nowrap;
  transition: opacity var(--transition);
  pointer-events: none;
  border-radius: 3px;
  letter-spacing: 0;
  word-spacing: 0;
}
.a-image-credit:focus::before, .a-image-credit:active::before, .a-image-credit:hover::before {
  opacity: 1;
}

/**
* ----------------------
* Un.titled
* Atoms - Breadcrumbs
* ----------------------
*/
/**
* Styling
*/
.a-breadcrumb {
  margin-bottom: var(--bump);
  padding: calc(var(--bump) / 2) 0;
}
@media (max-width: 575px) {
  .a-breadcrumb {
    margin-bottom: calc(var(--bump) / 2);
  }
}
.a-breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.a-breadcrumb ol li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.a-breadcrumb ol li {
  margin-right: calc(var(--bump) / 6);
  white-space: nowrap;
}
.a-breadcrumb ol li::after {
  content: "/";
  margin-left: calc(var(--bump) / 10);
}
.a-breadcrumb ol li:last-child::after {
  display: none;
}

.a-booking-cta__cta {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  margin: 0 0 40px;
  color: var(--c-white);
  text-decoration: none;
  display: grid;
  grid-auto-flow: column;
  gap: 16px;
}
@media (max-width: 575px) {
  .a-booking-cta__cta {
    white-space: nowrap;
  }
}
.a-booking-cta__cta:hover {
  background-color: var(--c-primary);
}
.a-booking-cta__cta:focus {
  outline: 3px solid var(--c-focus);
}
.js-focus-visible .a-booking-cta__cta:focus:not(.focus-visible) {
  outline: 0;
}
.a-booking-cta__cta svg {
  max-width: 28px;
}
.a-booking-cta__cta__sold-out {
  color: var(--c-black);
  border: 1px solid var(--c-black);
  background-color: var(--c-white);
}
.a-booking-cta__spektrix-modal {
  background: #fff;
  cursor: default;
  position: relative;
  display: inline-block;
  top: calc(var(--bump) * 2);
  width: 95%;
  max-width: 800px;
  height: auto;
  text-align: left;
  padding: 30px;
  margin-bottom: 30px;
  z-index: 2;
  display: none;
  opacity: 0;
  visibility: hidden;
  animation: fadeOut 0.4s var(--easing) forwards;
}
.a-booking-cta__spektrix-modal.is-active {
  animation: fadeIn 0.4s var(--easing) forwards;
  display: block;
}
.a-booking-cta__spektrix-modal__overlay {
  display: none;
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 1;
  text-align: center;
  cursor: pointer;
  overflow-y: scroll;
}
.a-booking-cta__spektrix-modal__overlay.is-active {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  z-index: 10;
}
.a-booking-cta__spektrix-modal__close {
  position: absolute;
  right: calc(var(--bump) / 2);
  top: calc(var(--bump) / 2);
  background: none;
  border: none;
}
.a-booking-cta__spektrix-modal__close:after {
  content: "";
  display: block;
  background-image: url("../img/close-black.svg");
  padding: 20px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.a-booking-cta__spektrix-modal__button {
  position: relative;
  max-width: 320px;
  width: 100%;
  justify-content: center;
  align-items: center;
  text-align: right;
  margin: auto 0 auto auto;
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  min-width: 165px;
}
@media (max-width: 575px) {
  .a-booking-cta__spektrix-modal__button {
    white-space: nowrap;
  }
}
.a-booking-cta__spektrix-modal__button::after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  margin-left: calc(var(--bump) / 2);
  width: 20px;
  height: 20px;
  display: block;
  background-image: url("../img/ticket-white.svg");
  background-position: right;
  transition: 0.3s var(--easing);
}
@media (max-width: 767px) {
  .a-booking-cta__spektrix-modal__button {
    max-width: 100%;
  }
}

.sold-out__wrapper button.sold-out {
  pointer-events: none;
  color: var(--c-black);
  border: 1px solid var(--c-black);
  background-color: var(--c-white);
}
.sold-out__wrapper button.sold-out:after {
  background-image: none;
}

/**
 * ----------------------
 * Un.titled
 * Base - Animations
 * ----------------------

    Instructions
    -- -- -- 
        animation: fadeOut 0.2s var(--easing) forwards;
        animation: fadeIn 0.2s var(--easing) forwards;
    -- -- --
*/
@keyframes fadeIn {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  100% {
    opacity: 1;
    visibility: visible;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}
@keyframes zoomFadeIn {
  0% {
    transform: translateY(-10%) scale(0.8);
    opacity: 0;
    visibility: hidden;
  }
  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
    visibility: visible;
  }
}
@keyframes zoomFadeOut {
  0% {
    transform: translateY(0) scale(1);
    opacity: 1;
    visibility: visible;
  }
  100% {
    transform: translateY(-10%) scale(0.8);
    opacity: 0;
    visibility: hidden;
  }
}
/**
 * Molecules
 */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

#modal-gallery {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  transition: none;
  z-index: 10;
  align-items: center;
}
#modal-gallery .slick-slide {
  overflow: hidden;
  height: 0px !important;
}
#modal-gallery .slick-slide.slick-active {
  height: 100% !important;
}
#modal-gallery div, #modal-gallery section, #modal-gallery img {
  transition: none;
}
#modal-gallery .modal__overlay {
  width: calc(80% - 120px);
  margin: 0 auto;
  position: relative;
  display: flex;
  background: #fff;
  flex-direction: column;
  max-height: calc(80% - 120px);
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay {
    width: calc(100% - 40px);
    max-height: 100%;
  }
}
#modal-gallery .modal__overlay .modal__header {
  top: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  position: relative;
  right: 0;
}
#modal-gallery .modal__overlay .modal__header .modal__close {
  fill: var(--c-secondary);
  cursor: pointer;
}
#modal-gallery .modal__overlay .gallery__slides {
  overflow-y: scroll;
}
#modal-gallery .modal__overlay .gallery__slides button {
  display: none !important;
}
#modal-gallery .modal__overlay a.slick-arrow {
  z-index: 1;
}
#modal-gallery .modal__overlay a.slick-arrow:first-of-type {
  position: absolute;
  top: 50%;
  left: -60px;
  transform: rotate(90deg);
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay a.slick-arrow:first-of-type {
    left: -15px;
  }
}
#modal-gallery .modal__overlay a.slick-arrow:last-of-type {
  position: absolute;
  top: 50%;
  right: -60px;
  transform: rotate(270deg);
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay a.slick-arrow:last-of-type {
    right: -15px;
  }
}
#modal-gallery .modal__overlay a.slick-arrow svg {
  background: #b3b3b3;
  padding: 10px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
}
#modal-gallery .modal__overlay a.slick-arrow.slick-disabled {
  display: none !important;
}
#modal-gallery .modal__overlay .modal__content {
  position: relative;
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay .modal__content {
    order: 1;
  }
}
#modal-gallery .modal__overlay .modal__content--inner {
  display: grid;
  grid-gap: 20px;
}
#modal-gallery .modal__overlay .modal__content--inner h3 {
  margin-bottom: 0;
}
#modal-gallery .modal__overlay .modal__content--inner video {
  width: 100%;
}
#modal-gallery .modal__overlay .modal__content--inner__cta {
  display: flex;
}
#modal-gallery .modal__overlay .modal__content--inner__cta a {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  white-space: normal;
}
@media (max-width: 575px) {
  #modal-gallery .modal__overlay .modal__content--inner__cta a {
    white-space: nowrap;
  }
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay .modal__content--inner__cta a {
    white-space: normal;
  }
}
#modal-gallery .modal__overlay .modal__content .gallery__item-title {
  color: var(--c-secondary);
}
#modal-gallery .modal__overlay .modal__image {
  display: flex;
  flex-direction: column;
  row-gap: var(--bump);
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay .modal__image {
    order: 2;
  }
}
#modal-gallery .modal__overlay .modal__container {
  padding: 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 20px;
}
@media (max-width: 767px) {
  #modal-gallery .modal__overlay .modal__container {
    grid-template-columns: 1fr;
  }
}

.gallery__items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 40px;
}
@media (max-width: 767px) {
  .gallery__items {
    grid-template-columns: 1fr;
  }
}
.gallery__items .gallery__item {
  cursor: pointer;
  display: grid;
  grid-gap: 50px;
}
.gallery__items .gallery__item .o-teaser__title {
  color: #4F6C7D;
  font-size: 22px;
  line-height: 33px;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Emergency Message
 * ----------------------
 */
/**
 * Config
 **/
@keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  80% {
    transform: scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/**
 * Styling
 **/
.m-emmsg {
  position: relative;
  width: 100%;
  background-color: var(--c-tertiary);
  z-index: 100;
  padding: calc(var(--bump) / 2) 0 calc(var(--bump) / 2);
  max-height: 30vh;
  border-top: 1px solid var(--c-white);
  display: none;
}
.m-emmsg[data-state=visible] {
  opacity: 0;
  display: block;
  transform: translateY(100%);
  animation: slideInUp 0.2s 0.3s cubic-bezier(0.77, 0.29, 0.35, 0.72) 1 forwards;
}
@media (max-width: 767px) {
  .m-emmsg {
    overflow: scroll;
  }
}
@media (max-width: 575px) {
  .m-emmsg {
    padding: 0;
  }
}
.m-emmsg h3, .m-emmsg p, .m-emmsg .webform-submission-form textarea, .webform-submission-form .m-emmsg textarea, .m-emmsg .webform-submission-form label, .webform-submission-form .m-emmsg label,
.m-emmsg .webform-submission-form input,
.webform-submission-form .m-emmsg input,
.m-emmsg .webform-submission-form .webform-element-description,
.webform-submission-form .m-emmsg .webform-element-description,
.m-emmsg .webform-submission-form select option,
.webform-submission-form select .m-emmsg option,
.m-emmsg .webform-submission-form legend,
.webform-submission-form .m-emmsg legend {
  width: 85%;
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
  margin: auto auto 0.5rem auto;
  font-weight: 500;
  color: var(--c-secondary);
}
.m-emmsg button {
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  position: absolute;
  top: calc(var(--bump) / 2);
  right: calc(var(--bump) / 2);
  height: 35px;
  width: 35px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: var(--transition);
}
.m-emmsg button path {
  fill: var(--c-secondary);
  transition: var(--transition);
}
.m-emmsg button:hover {
  background-color: var(--c-white);
}
.m-emmsg button:hover path {
  fill: var(--c-primary);
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Entities
 * ----------------------
 */
.m-entity {
  margin: var(--bump) 0;
  /**
   * ----------------------
   * Un.titled
   * Molecules - Node body copy
   * ----------------------
   */
  /**
   * ----------------------
   * 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 - Testimonials
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Intoduction
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Entity Full-width -image
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Image & Text
   * ----------------------
   */
  /**
   * ----------------------
   * Un.titled
   * Molecules - Spektrix donation
   * ----------------------
   */
}
.m-entity__introduction {
  margin-top: 0px;
  margin-bottom: 0px;
  max-width: 100%;
}
.m-entity__html-embed iframe {
  width: 100%;
}
.m-entity__html-embed h2 {
  margin-bottom: 12px;
}
.m-entity__html-embed form table {
  width: 100%;
  margin-bottom: 30px;
}
.m-entity__html-embed form table td {
  font-family: var(--fontBody);
  color: var(--c-black);
  font-size: 18px;
}
.m-entity__html-embed form table tbody {
  display: grid;
  grid-gap: 30px;
}
.m-entity__html-embed form table tbody tr {
  display: grid;
  grid-template-columns: 100px 1fr;
  grid-gap: 20px;
}
.m-entity__html-embed form table tbody tr input {
  width: 100%;
}
.m-entity__html-embed form input[type=submit] {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  margin-left: auto;
}
@media (max-width: 575px) {
  .m-entity__html-embed form input[type=submit] {
    white-space: nowrap;
  }
}
.m-entity__audio h2 {
  margin-bottom: 12px;
}
.m-entity__cta div {
  letter-spacing: normal;
  word-spacing: normal;
  margin-left: 0 !important;
  width: 100%;
}
.m-entity__cta div a {
  line-height: 28px;
  padding: 10px 24px;
  white-space: break-spaces;
  margin: 17px 0;
}
.m-entity__field_welcome_extra h3,
.m-entity__field_welcome_extra p,
.m-entity__field_welcome_extra .webform-submission-form textarea,
.webform-submission-form .m-entity__field_welcome_extra textarea,
.m-entity__field_welcome_extra .webform-submission-form label,
.webform-submission-form .m-entity__field_welcome_extra label,
.m-entity__field_welcome_extra .webform-submission-form input,
.webform-submission-form .m-entity__field_welcome_extra input,
.m-entity__field_welcome_extra .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__field_welcome_extra .webform-element-description,
.m-entity__field_welcome_extra .webform-submission-form select option,
.webform-submission-form select .m-entity__field_welcome_extra option,
.m-entity__field_welcome_extra .webform-submission-form legend,
.webform-submission-form .m-entity__field_welcome_extra legend {
  display: flex;
  justify-content: center;
}
.m-entity__field_welcome_extra__wrapper {
  background-color: var(--c-tertiary);
}
.m-entity__field_welcome_extra__wrapper h3,
.m-entity__field_welcome_extra__wrapper p,
.m-entity__field_welcome_extra__wrapper .webform-submission-form textarea,
.webform-submission-form .m-entity__field_welcome_extra__wrapper textarea,
.m-entity__field_welcome_extra__wrapper .webform-submission-form label,
.webform-submission-form .m-entity__field_welcome_extra__wrapper label,
.m-entity__field_welcome_extra__wrapper .webform-submission-form input,
.webform-submission-form .m-entity__field_welcome_extra__wrapper input,
.m-entity__field_welcome_extra__wrapper .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__field_welcome_extra__wrapper .webform-element-description,
.m-entity__field_welcome_extra__wrapper .webform-submission-form select option,
.webform-submission-form select .m-entity__field_welcome_extra__wrapper option,
.m-entity__field_welcome_extra__wrapper .webform-submission-form legend,
.webform-submission-form .m-entity__field_welcome_extra__wrapper legend {
  display: flex;
  justify-content: center;
}
.m-entity__downloads {
  background-color: #e5eaed;
  padding: 24px;
  color: var(--c-secondary);
}
.m-entity__downloads a {
  color: var(--c-secondary);
}
.m-entity__downloads span {
  display: inline;
}
.m-entity__body, .m-entity__text {
  color: var(--c-primary);
}
.m-entity img {
  width: 100%;
  height: auto;
  display: block;
}
.m-entity__body p a, .m-entity__body .webform-submission-form textarea a, .webform-submission-form .m-entity__body textarea a, .m-entity__body .webform-submission-form label a, .webform-submission-form .m-entity__body label a,
.m-entity__body .webform-submission-form input a,
.webform-submission-form .m-entity__body input a,
.m-entity__body .webform-submission-form .webform-element-description a,
.webform-submission-form .m-entity__body .webform-element-description a,
.m-entity__body .webform-submission-form select option a,
.webform-submission-form select .m-entity__body option a,
.m-entity__body .webform-submission-form legend a,
.webform-submission-form .m-entity__body legend a, .m-entity__text p a, .m-entity__text .webform-submission-form textarea a, .webform-submission-form .m-entity__text textarea a, .m-entity__text .webform-submission-form label a, .webform-submission-form .m-entity__text label a,
.m-entity__text .webform-submission-form input a,
.webform-submission-form .m-entity__text input a,
.m-entity__text .webform-submission-form .webform-element-description a,
.webform-submission-form .m-entity__text .webform-element-description a,
.m-entity__text .webform-submission-form select option a,
.webform-submission-form select .m-entity__text option a,
.m-entity__text .webform-submission-form legend a,
.webform-submission-form .m-entity__text legend a, .m-entity__accordion p a, .m-entity__accordion .webform-submission-form textarea a, .webform-submission-form .m-entity__accordion textarea a, .m-entity__accordion .webform-submission-form label a, .webform-submission-form .m-entity__accordion label a,
.m-entity__accordion .webform-submission-form input a,
.webform-submission-form .m-entity__accordion input a,
.m-entity__accordion .webform-submission-form .webform-element-description a,
.webform-submission-form .m-entity__accordion .webform-element-description a,
.m-entity__accordion .webform-submission-form select option a,
.webform-submission-form select .m-entity__accordion option a,
.m-entity__accordion .webform-submission-form legend a,
.webform-submission-form .m-entity__accordion legend a, .m-entity__image-text p a, .m-entity__image-text .webform-submission-form textarea a, .webform-submission-form .m-entity__image-text textarea a, .m-entity__image-text .webform-submission-form label a, .webform-submission-form .m-entity__image-text label a,
.m-entity__image-text .webform-submission-form input a,
.webform-submission-form .m-entity__image-text input a,
.m-entity__image-text .webform-submission-form .webform-element-description a,
.webform-submission-form .m-entity__image-text .webform-element-description a,
.m-entity__image-text .webform-submission-form select option a,
.webform-submission-form select .m-entity__image-text option a,
.m-entity__image-text .webform-submission-form legend a,
.webform-submission-form .m-entity__image-text legend a {
  text-decoration: underline;
  color: var(--c-secondary);
  font-size: inherit;
  line-height: inherit;
}
.m-entity__body p a:hover, .m-entity__body .webform-submission-form textarea a:hover, .webform-submission-form .m-entity__body textarea a:hover, .m-entity__body .webform-submission-form label a:hover, .webform-submission-form .m-entity__body label a:hover,
.m-entity__body .webform-submission-form input a:hover,
.webform-submission-form .m-entity__body input a:hover,
.m-entity__body .webform-submission-form .webform-element-description a:hover,
.webform-submission-form .m-entity__body .webform-element-description a:hover,
.m-entity__body .webform-submission-form select option a:hover,
.webform-submission-form select .m-entity__body option a:hover,
.m-entity__body .webform-submission-form legend a:hover,
.webform-submission-form .m-entity__body legend a:hover, .m-entity__text p a:hover, .m-entity__text .webform-submission-form textarea a:hover, .webform-submission-form .m-entity__text textarea a:hover, .m-entity__text .webform-submission-form label a:hover, .webform-submission-form .m-entity__text label a:hover,
.m-entity__text .webform-submission-form input a:hover,
.webform-submission-form .m-entity__text input a:hover,
.m-entity__text .webform-submission-form .webform-element-description a:hover,
.webform-submission-form .m-entity__text .webform-element-description a:hover,
.m-entity__text .webform-submission-form select option a:hover,
.webform-submission-form select .m-entity__text option a:hover,
.m-entity__text .webform-submission-form legend a:hover,
.webform-submission-form .m-entity__text legend a:hover, .m-entity__accordion p a:hover, .m-entity__accordion .webform-submission-form textarea a:hover, .webform-submission-form .m-entity__accordion textarea a:hover, .m-entity__accordion .webform-submission-form label a:hover, .webform-submission-form .m-entity__accordion label a:hover,
.m-entity__accordion .webform-submission-form input a:hover,
.webform-submission-form .m-entity__accordion input a:hover,
.m-entity__accordion .webform-submission-form .webform-element-description a:hover,
.webform-submission-form .m-entity__accordion .webform-element-description a:hover,
.m-entity__accordion .webform-submission-form select option a:hover,
.webform-submission-form select .m-entity__accordion option a:hover,
.m-entity__accordion .webform-submission-form legend a:hover,
.webform-submission-form .m-entity__accordion legend a:hover, .m-entity__image-text p a:hover, .m-entity__image-text .webform-submission-form textarea a:hover, .webform-submission-form .m-entity__image-text textarea a:hover, .m-entity__image-text .webform-submission-form label a:hover, .webform-submission-form .m-entity__image-text label a:hover,
.m-entity__image-text .webform-submission-form input a:hover,
.webform-submission-form .m-entity__image-text input a:hover,
.m-entity__image-text .webform-submission-form .webform-element-description a:hover,
.webform-submission-form .m-entity__image-text .webform-element-description a:hover,
.m-entity__image-text .webform-submission-form select option a:hover,
.webform-submission-form select .m-entity__image-text option a:hover,
.m-entity__image-text .webform-submission-form legend a:hover,
.webform-submission-form .m-entity__image-text legend a:hover {
  text-decoration: none;
}
.m-entity__body h1 > a,
.m-entity__body h2 > a,
.m-entity__body h3 > a,
.m-entity__body h4 > a,
.m-entity__body h5 > a, .m-entity__text h1 > a,
.m-entity__text h2 > a,
.m-entity__text h3 > a,
.m-entity__text h4 > a,
.m-entity__text h5 > a, .m-entity__accordion h1 > a,
.m-entity__accordion h2 > a,
.m-entity__accordion h3 > a,
.m-entity__accordion h4 > a,
.m-entity__accordion h5 > a, .m-entity__image-text h1 > a,
.m-entity__image-text h2 > a,
.m-entity__image-text h3 > a,
.m-entity__image-text h4 > a,
.m-entity__image-text h5 > a {
  font-size: inherit;
  line-height: inherit;
}
.m-entity__body ul, .m-entity__body ol, .m-entity__text ul, .m-entity__text ol, .m-entity__accordion ul, .m-entity__accordion ol {
  margin-left: 15px;
}
.m-entity__body ul li, .m-entity__body ol li, .m-entity__text ul li, .m-entity__text ol li, .m-entity__accordion ul li, .m-entity__accordion ol li {
  list-style: none;
  position: relative;
  margin-bottom: 10px;
  font-size: 18px;
  color: var(--c-black);
}
.m-entity__body ul li::before, .m-entity__body ol li::before, .m-entity__text ul li::before, .m-entity__text ol li::before, .m-entity__accordion ul li::before, .m-entity__accordion ol li::before {
  content: "";
  border-radius: 50%;
  height: 7px;
  width: 7px;
  display: block;
  position: absolute;
  left: -15px;
  top: 9px;
  background-color: var(--c-primary);
}
.m-entity__body ol li, .m-entity__text ol li, .m-entity__accordion ol li {
  list-style: decimal;
}
.m-entity__body ol li::before, .m-entity__text ol li::before, .m-entity__accordion ol li::before {
  display: none;
}
.m-entity__accordion ol {
  margin-left: 23px;
}
.m-entity__event__info, .m-entity__blog__info {
  background-color: var(--c-tertiary);
  padding: var(--bump);
  margin: -15px 0px 60px;
}
.m-entity__event__info h2,
.m-entity__event__info .h2, .m-entity__blog__info h2,
.m-entity__blog__info .h2 {
  margin: 0;
  font-size: clamp(25px, 2.5vw, 28px);
  line-height: clamp(32px, 5vw, 42px);
  letter-spacing: clamp(0px, 2.5vw, 0.5px);
  color: #2f404a;
  flex-direction: row;
}
.m-entity__event__run-date, .m-entity__event__venue, .m-entity__event__prices-times, .m-entity__event__blog-tags, .m-entity__blog__run-date, .m-entity__blog__venue, .m-entity__blog__prices-times, .m-entity__blog__blog-tags {
  display: flex;
  flex-direction: column;
  grid-auto-flow: column;
  font-size: clamp(25px, 2.5vw, 28px);
  line-height: clamp(32px, 5vw, 42px);
}
@media (max-width: 767px) {
  .m-entity__event__run-date, .m-entity__event__venue, .m-entity__event__prices-times, .m-entity__event__blog-tags, .m-entity__blog__run-date, .m-entity__blog__venue, .m-entity__blog__prices-times, .m-entity__blog__blog-tags {
    grid-auto-flow: row;
    display: grid;
  }
}
.m-entity__event__run-date span, .m-entity__event__venue span, .m-entity__event__prices-times span, .m-entity__event__blog-tags span, .m-entity__blog__run-date span, .m-entity__blog__venue span, .m-entity__blog__prices-times span, .m-entity__blog__blog-tags span {
  margin-right: 10px;
  font-weight: 600;
}
.m-entity__event__run-date a,
.m-entity__event__run-date p,
.m-entity__event__run-date .webform-submission-form textarea,
.webform-submission-form .m-entity__event__run-date textarea,
.m-entity__event__run-date .webform-submission-form label,
.webform-submission-form .m-entity__event__run-date label,
.m-entity__event__run-date .webform-submission-form input,
.webform-submission-form .m-entity__event__run-date input,
.m-entity__event__run-date .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__run-date .webform-element-description,
.m-entity__event__run-date .webform-submission-form select option,
.webform-submission-form select .m-entity__event__run-date option,
.m-entity__event__run-date .webform-submission-form legend,
.webform-submission-form .m-entity__event__run-date legend, .m-entity__event__venue a,
.m-entity__event__venue p,
.m-entity__event__venue .webform-submission-form textarea,
.webform-submission-form .m-entity__event__venue textarea,
.m-entity__event__venue .webform-submission-form label,
.webform-submission-form .m-entity__event__venue label,
.m-entity__event__venue .webform-submission-form input,
.webform-submission-form .m-entity__event__venue input,
.m-entity__event__venue .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__venue .webform-element-description,
.m-entity__event__venue .webform-submission-form select option,
.webform-submission-form select .m-entity__event__venue option,
.m-entity__event__venue .webform-submission-form legend,
.webform-submission-form .m-entity__event__venue legend, .m-entity__event__prices-times a,
.m-entity__event__prices-times p,
.m-entity__event__prices-times .webform-submission-form textarea,
.webform-submission-form .m-entity__event__prices-times textarea,
.m-entity__event__prices-times .webform-submission-form label,
.webform-submission-form .m-entity__event__prices-times label,
.m-entity__event__prices-times .webform-submission-form input,
.webform-submission-form .m-entity__event__prices-times input,
.m-entity__event__prices-times .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__prices-times .webform-element-description,
.m-entity__event__prices-times .webform-submission-form select option,
.webform-submission-form select .m-entity__event__prices-times option,
.m-entity__event__prices-times .webform-submission-form legend,
.webform-submission-form .m-entity__event__prices-times legend, .m-entity__event__blog-tags a,
.m-entity__event__blog-tags p,
.m-entity__event__blog-tags .webform-submission-form textarea,
.webform-submission-form .m-entity__event__blog-tags textarea,
.m-entity__event__blog-tags .webform-submission-form label,
.webform-submission-form .m-entity__event__blog-tags label,
.m-entity__event__blog-tags .webform-submission-form input,
.webform-submission-form .m-entity__event__blog-tags input,
.m-entity__event__blog-tags .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__blog-tags .webform-element-description,
.m-entity__event__blog-tags .webform-submission-form select option,
.webform-submission-form select .m-entity__event__blog-tags option,
.m-entity__event__blog-tags .webform-submission-form legend,
.webform-submission-form .m-entity__event__blog-tags legend, .m-entity__blog__run-date a,
.m-entity__blog__run-date p,
.m-entity__blog__run-date .webform-submission-form textarea,
.webform-submission-form .m-entity__blog__run-date textarea,
.m-entity__blog__run-date .webform-submission-form label,
.webform-submission-form .m-entity__blog__run-date label,
.m-entity__blog__run-date .webform-submission-form input,
.webform-submission-form .m-entity__blog__run-date input,
.m-entity__blog__run-date .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__run-date .webform-element-description,
.m-entity__blog__run-date .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__run-date option,
.m-entity__blog__run-date .webform-submission-form legend,
.webform-submission-form .m-entity__blog__run-date legend, .m-entity__blog__venue a,
.m-entity__blog__venue p,
.m-entity__blog__venue .webform-submission-form textarea,
.webform-submission-form .m-entity__blog__venue textarea,
.m-entity__blog__venue .webform-submission-form label,
.webform-submission-form .m-entity__blog__venue label,
.m-entity__blog__venue .webform-submission-form input,
.webform-submission-form .m-entity__blog__venue input,
.m-entity__blog__venue .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__venue .webform-element-description,
.m-entity__blog__venue .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__venue option,
.m-entity__blog__venue .webform-submission-form legend,
.webform-submission-form .m-entity__blog__venue legend, .m-entity__blog__prices-times a,
.m-entity__blog__prices-times p,
.m-entity__blog__prices-times .webform-submission-form textarea,
.webform-submission-form .m-entity__blog__prices-times textarea,
.m-entity__blog__prices-times .webform-submission-form label,
.webform-submission-form .m-entity__blog__prices-times label,
.m-entity__blog__prices-times .webform-submission-form input,
.webform-submission-form .m-entity__blog__prices-times input,
.m-entity__blog__prices-times .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__prices-times .webform-element-description,
.m-entity__blog__prices-times .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__prices-times option,
.m-entity__blog__prices-times .webform-submission-form legend,
.webform-submission-form .m-entity__blog__prices-times legend, .m-entity__blog__blog-tags a,
.m-entity__blog__blog-tags p,
.m-entity__blog__blog-tags .webform-submission-form textarea,
.webform-submission-form .m-entity__blog__blog-tags textarea,
.m-entity__blog__blog-tags .webform-submission-form label,
.webform-submission-form .m-entity__blog__blog-tags label,
.m-entity__blog__blog-tags .webform-submission-form input,
.webform-submission-form .m-entity__blog__blog-tags input,
.m-entity__blog__blog-tags .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__blog-tags .webform-element-description,
.m-entity__blog__blog-tags .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__blog-tags option,
.m-entity__blog__blog-tags .webform-submission-form legend,
.webform-submission-form .m-entity__blog__blog-tags legend {
  font-size: clamp(25px, 2.5vw, 28px);
  line-height: clamp(32px, 5vw, 39px);
  letter-spacing: clamp(0px, 2.5vw, 0.5px);
  margin: 0;
}
.m-entity__event__run-date a span,
.m-entity__event__run-date p span,
.m-entity__event__run-date .webform-submission-form textarea span,
.webform-submission-form .m-entity__event__run-date textarea span,
.m-entity__event__run-date .webform-submission-form label span,
.webform-submission-form .m-entity__event__run-date label span,
.m-entity__event__run-date .webform-submission-form input span,
.webform-submission-form .m-entity__event__run-date input span,
.m-entity__event__run-date .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__event__run-date .webform-element-description span,
.m-entity__event__run-date .webform-submission-form select option span,
.webform-submission-form select .m-entity__event__run-date option span,
.m-entity__event__run-date .webform-submission-form legend span,
.webform-submission-form .m-entity__event__run-date legend span, .m-entity__event__venue a span,
.m-entity__event__venue p span,
.m-entity__event__venue .webform-submission-form textarea span,
.webform-submission-form .m-entity__event__venue textarea span,
.m-entity__event__venue .webform-submission-form label span,
.webform-submission-form .m-entity__event__venue label span,
.m-entity__event__venue .webform-submission-form input span,
.webform-submission-form .m-entity__event__venue input span,
.m-entity__event__venue .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__event__venue .webform-element-description span,
.m-entity__event__venue .webform-submission-form select option span,
.webform-submission-form select .m-entity__event__venue option span,
.m-entity__event__venue .webform-submission-form legend span,
.webform-submission-form .m-entity__event__venue legend span, .m-entity__event__prices-times a span,
.m-entity__event__prices-times p span,
.m-entity__event__prices-times .webform-submission-form textarea span,
.webform-submission-form .m-entity__event__prices-times textarea span,
.m-entity__event__prices-times .webform-submission-form label span,
.webform-submission-form .m-entity__event__prices-times label span,
.m-entity__event__prices-times .webform-submission-form input span,
.webform-submission-form .m-entity__event__prices-times input span,
.m-entity__event__prices-times .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__event__prices-times .webform-element-description span,
.m-entity__event__prices-times .webform-submission-form select option span,
.webform-submission-form select .m-entity__event__prices-times option span,
.m-entity__event__prices-times .webform-submission-form legend span,
.webform-submission-form .m-entity__event__prices-times legend span, .m-entity__event__blog-tags a span,
.m-entity__event__blog-tags p span,
.m-entity__event__blog-tags .webform-submission-form textarea span,
.webform-submission-form .m-entity__event__blog-tags textarea span,
.m-entity__event__blog-tags .webform-submission-form label span,
.webform-submission-form .m-entity__event__blog-tags label span,
.m-entity__event__blog-tags .webform-submission-form input span,
.webform-submission-form .m-entity__event__blog-tags input span,
.m-entity__event__blog-tags .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__event__blog-tags .webform-element-description span,
.m-entity__event__blog-tags .webform-submission-form select option span,
.webform-submission-form select .m-entity__event__blog-tags option span,
.m-entity__event__blog-tags .webform-submission-form legend span,
.webform-submission-form .m-entity__event__blog-tags legend span, .m-entity__blog__run-date a span,
.m-entity__blog__run-date p span,
.m-entity__blog__run-date .webform-submission-form textarea span,
.webform-submission-form .m-entity__blog__run-date textarea span,
.m-entity__blog__run-date .webform-submission-form label span,
.webform-submission-form .m-entity__blog__run-date label span,
.m-entity__blog__run-date .webform-submission-form input span,
.webform-submission-form .m-entity__blog__run-date input span,
.m-entity__blog__run-date .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__blog__run-date .webform-element-description span,
.m-entity__blog__run-date .webform-submission-form select option span,
.webform-submission-form select .m-entity__blog__run-date option span,
.m-entity__blog__run-date .webform-submission-form legend span,
.webform-submission-form .m-entity__blog__run-date legend span, .m-entity__blog__venue a span,
.m-entity__blog__venue p span,
.m-entity__blog__venue .webform-submission-form textarea span,
.webform-submission-form .m-entity__blog__venue textarea span,
.m-entity__blog__venue .webform-submission-form label span,
.webform-submission-form .m-entity__blog__venue label span,
.m-entity__blog__venue .webform-submission-form input span,
.webform-submission-form .m-entity__blog__venue input span,
.m-entity__blog__venue .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__blog__venue .webform-element-description span,
.m-entity__blog__venue .webform-submission-form select option span,
.webform-submission-form select .m-entity__blog__venue option span,
.m-entity__blog__venue .webform-submission-form legend span,
.webform-submission-form .m-entity__blog__venue legend span, .m-entity__blog__prices-times a span,
.m-entity__blog__prices-times p span,
.m-entity__blog__prices-times .webform-submission-form textarea span,
.webform-submission-form .m-entity__blog__prices-times textarea span,
.m-entity__blog__prices-times .webform-submission-form label span,
.webform-submission-form .m-entity__blog__prices-times label span,
.m-entity__blog__prices-times .webform-submission-form input span,
.webform-submission-form .m-entity__blog__prices-times input span,
.m-entity__blog__prices-times .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__blog__prices-times .webform-element-description span,
.m-entity__blog__prices-times .webform-submission-form select option span,
.webform-submission-form select .m-entity__blog__prices-times option span,
.m-entity__blog__prices-times .webform-submission-form legend span,
.webform-submission-form .m-entity__blog__prices-times legend span, .m-entity__blog__blog-tags a span,
.m-entity__blog__blog-tags p span,
.m-entity__blog__blog-tags .webform-submission-form textarea span,
.webform-submission-form .m-entity__blog__blog-tags textarea span,
.m-entity__blog__blog-tags .webform-submission-form label span,
.webform-submission-form .m-entity__blog__blog-tags label span,
.m-entity__blog__blog-tags .webform-submission-form input span,
.webform-submission-form .m-entity__blog__blog-tags input span,
.m-entity__blog__blog-tags .webform-submission-form .webform-element-description span,
.webform-submission-form .m-entity__blog__blog-tags .webform-element-description span,
.m-entity__blog__blog-tags .webform-submission-form select option span,
.webform-submission-form select .m-entity__blog__blog-tags option span,
.m-entity__blog__blog-tags .webform-submission-form legend span,
.webform-submission-form .m-entity__blog__blog-tags legend span {
  white-space: nowrap;
}
.m-entity__event__run-date p, .m-entity__event__run-date .webform-submission-form textarea, .webform-submission-form .m-entity__event__run-date textarea, .m-entity__event__run-date .webform-submission-form label, .webform-submission-form .m-entity__event__run-date label,
.m-entity__event__run-date .webform-submission-form input,
.webform-submission-form .m-entity__event__run-date input,
.m-entity__event__run-date .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__run-date .webform-element-description,
.m-entity__event__run-date .webform-submission-form select option,
.webform-submission-form select .m-entity__event__run-date option,
.m-entity__event__run-date .webform-submission-form legend,
.webform-submission-form .m-entity__event__run-date legend, .m-entity__event__venue p, .m-entity__event__venue .webform-submission-form textarea, .webform-submission-form .m-entity__event__venue textarea, .m-entity__event__venue .webform-submission-form label, .webform-submission-form .m-entity__event__venue label,
.m-entity__event__venue .webform-submission-form input,
.webform-submission-form .m-entity__event__venue input,
.m-entity__event__venue .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__venue .webform-element-description,
.m-entity__event__venue .webform-submission-form select option,
.webform-submission-form select .m-entity__event__venue option,
.m-entity__event__venue .webform-submission-form legend,
.webform-submission-form .m-entity__event__venue legend, .m-entity__event__prices-times p, .m-entity__event__prices-times .webform-submission-form textarea, .webform-submission-form .m-entity__event__prices-times textarea, .m-entity__event__prices-times .webform-submission-form label, .webform-submission-form .m-entity__event__prices-times label,
.m-entity__event__prices-times .webform-submission-form input,
.webform-submission-form .m-entity__event__prices-times input,
.m-entity__event__prices-times .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__prices-times .webform-element-description,
.m-entity__event__prices-times .webform-submission-form select option,
.webform-submission-form select .m-entity__event__prices-times option,
.m-entity__event__prices-times .webform-submission-form legend,
.webform-submission-form .m-entity__event__prices-times legend, .m-entity__event__blog-tags p, .m-entity__event__blog-tags .webform-submission-form textarea, .webform-submission-form .m-entity__event__blog-tags textarea, .m-entity__event__blog-tags .webform-submission-form label, .webform-submission-form .m-entity__event__blog-tags label,
.m-entity__event__blog-tags .webform-submission-form input,
.webform-submission-form .m-entity__event__blog-tags input,
.m-entity__event__blog-tags .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__event__blog-tags .webform-element-description,
.m-entity__event__blog-tags .webform-submission-form select option,
.webform-submission-form select .m-entity__event__blog-tags option,
.m-entity__event__blog-tags .webform-submission-form legend,
.webform-submission-form .m-entity__event__blog-tags legend, .m-entity__blog__run-date p, .m-entity__blog__run-date .webform-submission-form textarea, .webform-submission-form .m-entity__blog__run-date textarea, .m-entity__blog__run-date .webform-submission-form label, .webform-submission-form .m-entity__blog__run-date label,
.m-entity__blog__run-date .webform-submission-form input,
.webform-submission-form .m-entity__blog__run-date input,
.m-entity__blog__run-date .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__run-date .webform-element-description,
.m-entity__blog__run-date .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__run-date option,
.m-entity__blog__run-date .webform-submission-form legend,
.webform-submission-form .m-entity__blog__run-date legend, .m-entity__blog__venue p, .m-entity__blog__venue .webform-submission-form textarea, .webform-submission-form .m-entity__blog__venue textarea, .m-entity__blog__venue .webform-submission-form label, .webform-submission-form .m-entity__blog__venue label,
.m-entity__blog__venue .webform-submission-form input,
.webform-submission-form .m-entity__blog__venue input,
.m-entity__blog__venue .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__venue .webform-element-description,
.m-entity__blog__venue .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__venue option,
.m-entity__blog__venue .webform-submission-form legend,
.webform-submission-form .m-entity__blog__venue legend, .m-entity__blog__prices-times p, .m-entity__blog__prices-times .webform-submission-form textarea, .webform-submission-form .m-entity__blog__prices-times textarea, .m-entity__blog__prices-times .webform-submission-form label, .webform-submission-form .m-entity__blog__prices-times label,
.m-entity__blog__prices-times .webform-submission-form input,
.webform-submission-form .m-entity__blog__prices-times input,
.m-entity__blog__prices-times .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__prices-times .webform-element-description,
.m-entity__blog__prices-times .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__prices-times option,
.m-entity__blog__prices-times .webform-submission-form legend,
.webform-submission-form .m-entity__blog__prices-times legend, .m-entity__blog__blog-tags p, .m-entity__blog__blog-tags .webform-submission-form textarea, .webform-submission-form .m-entity__blog__blog-tags textarea, .m-entity__blog__blog-tags .webform-submission-form label, .webform-submission-form .m-entity__blog__blog-tags label,
.m-entity__blog__blog-tags .webform-submission-form input,
.webform-submission-form .m-entity__blog__blog-tags input,
.m-entity__blog__blog-tags .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__blog__blog-tags .webform-element-description,
.m-entity__blog__blog-tags .webform-submission-form select option,
.webform-submission-form select .m-entity__blog__blog-tags option,
.m-entity__blog__blog-tags .webform-submission-form legend,
.webform-submission-form .m-entity__blog__blog-tags legend {
  color: var(--c-primary);
  font-family: var(--fontRegular);
  font-weight: normal;
}
@media (max-width: 767px) {
  .m-entity__event__run-date p, .m-entity__event__run-date .webform-submission-form textarea, .webform-submission-form .m-entity__event__run-date textarea, .m-entity__event__run-date .webform-submission-form label, .webform-submission-form .m-entity__event__run-date label,
  .m-entity__event__run-date .webform-submission-form input,
  .webform-submission-form .m-entity__event__run-date input,
  .m-entity__event__run-date .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__event__run-date .webform-element-description,
  .m-entity__event__run-date .webform-submission-form select option,
  .webform-submission-form select .m-entity__event__run-date option,
  .m-entity__event__run-date .webform-submission-form legend,
  .webform-submission-form .m-entity__event__run-date legend, .m-entity__event__venue p, .m-entity__event__venue .webform-submission-form textarea, .webform-submission-form .m-entity__event__venue textarea, .m-entity__event__venue .webform-submission-form label, .webform-submission-form .m-entity__event__venue label,
  .m-entity__event__venue .webform-submission-form input,
  .webform-submission-form .m-entity__event__venue input,
  .m-entity__event__venue .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__event__venue .webform-element-description,
  .m-entity__event__venue .webform-submission-form select option,
  .webform-submission-form select .m-entity__event__venue option,
  .m-entity__event__venue .webform-submission-form legend,
  .webform-submission-form .m-entity__event__venue legend, .m-entity__event__prices-times p, .m-entity__event__prices-times .webform-submission-form textarea, .webform-submission-form .m-entity__event__prices-times textarea, .m-entity__event__prices-times .webform-submission-form label, .webform-submission-form .m-entity__event__prices-times label,
  .m-entity__event__prices-times .webform-submission-form input,
  .webform-submission-form .m-entity__event__prices-times input,
  .m-entity__event__prices-times .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__event__prices-times .webform-element-description,
  .m-entity__event__prices-times .webform-submission-form select option,
  .webform-submission-form select .m-entity__event__prices-times option,
  .m-entity__event__prices-times .webform-submission-form legend,
  .webform-submission-form .m-entity__event__prices-times legend, .m-entity__event__blog-tags p, .m-entity__event__blog-tags .webform-submission-form textarea, .webform-submission-form .m-entity__event__blog-tags textarea, .m-entity__event__blog-tags .webform-submission-form label, .webform-submission-form .m-entity__event__blog-tags label,
  .m-entity__event__blog-tags .webform-submission-form input,
  .webform-submission-form .m-entity__event__blog-tags input,
  .m-entity__event__blog-tags .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__event__blog-tags .webform-element-description,
  .m-entity__event__blog-tags .webform-submission-form select option,
  .webform-submission-form select .m-entity__event__blog-tags option,
  .m-entity__event__blog-tags .webform-submission-form legend,
  .webform-submission-form .m-entity__event__blog-tags legend, .m-entity__blog__run-date p, .m-entity__blog__run-date .webform-submission-form textarea, .webform-submission-form .m-entity__blog__run-date textarea, .m-entity__blog__run-date .webform-submission-form label, .webform-submission-form .m-entity__blog__run-date label,
  .m-entity__blog__run-date .webform-submission-form input,
  .webform-submission-form .m-entity__blog__run-date input,
  .m-entity__blog__run-date .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__blog__run-date .webform-element-description,
  .m-entity__blog__run-date .webform-submission-form select option,
  .webform-submission-form select .m-entity__blog__run-date option,
  .m-entity__blog__run-date .webform-submission-form legend,
  .webform-submission-form .m-entity__blog__run-date legend, .m-entity__blog__venue p, .m-entity__blog__venue .webform-submission-form textarea, .webform-submission-form .m-entity__blog__venue textarea, .m-entity__blog__venue .webform-submission-form label, .webform-submission-form .m-entity__blog__venue label,
  .m-entity__blog__venue .webform-submission-form input,
  .webform-submission-form .m-entity__blog__venue input,
  .m-entity__blog__venue .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__blog__venue .webform-element-description,
  .m-entity__blog__venue .webform-submission-form select option,
  .webform-submission-form select .m-entity__blog__venue option,
  .m-entity__blog__venue .webform-submission-form legend,
  .webform-submission-form .m-entity__blog__venue legend, .m-entity__blog__prices-times p, .m-entity__blog__prices-times .webform-submission-form textarea, .webform-submission-form .m-entity__blog__prices-times textarea, .m-entity__blog__prices-times .webform-submission-form label, .webform-submission-form .m-entity__blog__prices-times label,
  .m-entity__blog__prices-times .webform-submission-form input,
  .webform-submission-form .m-entity__blog__prices-times input,
  .m-entity__blog__prices-times .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__blog__prices-times .webform-element-description,
  .m-entity__blog__prices-times .webform-submission-form select option,
  .webform-submission-form select .m-entity__blog__prices-times option,
  .m-entity__blog__prices-times .webform-submission-form legend,
  .webform-submission-form .m-entity__blog__prices-times legend, .m-entity__blog__blog-tags p, .m-entity__blog__blog-tags .webform-submission-form textarea, .webform-submission-form .m-entity__blog__blog-tags textarea, .m-entity__blog__blog-tags .webform-submission-form label, .webform-submission-form .m-entity__blog__blog-tags label,
  .m-entity__blog__blog-tags .webform-submission-form input,
  .webform-submission-form .m-entity__blog__blog-tags input,
  .m-entity__blog__blog-tags .webform-submission-form .webform-element-description,
  .webform-submission-form .m-entity__blog__blog-tags .webform-element-description,
  .m-entity__blog__blog-tags .webform-submission-form select option,
  .webform-submission-form select .m-entity__blog__blog-tags option,
  .m-entity__blog__blog-tags .webform-submission-form legend,
  .webform-submission-form .m-entity__blog__blog-tags legend {
    display: grid;
  }
}
.m-entity__event__run-date a, .m-entity__event__venue a, .m-entity__event__prices-times a, .m-entity__event__blog-tags a, .m-entity__blog__run-date a, .m-entity__blog__venue a, .m-entity__blog__prices-times a, .m-entity__blog__blog-tags a {
  color: var(--c-secondary);
}
.m-entity__event__blog-tags, .m-entity__blog__blog-tags {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-end;
}
.m-entity__event__blog-tags h2,
.m-entity__event__blog-tags .h2, .m-entity__blog__blog-tags h2,
.m-entity__blog__blog-tags .h2 {
  margin: 0;
  font-size: clamp(25px, 2.5vw, 28px);
  line-height: clamp(32px, 5vw, 42px);
  letter-spacing: clamp(0px, 2.5vw, 0.5px);
}
.m-entity__body {
  margin-top: 0;
}
.m-entity__image-wrapper {
  position: relative;
}
.m-entity__quote blockquote {
  font-family: var(--fontTitle);
  margin: 0;
  padding: 0 0 calc(var(--bump) / 2);
}
.m-entity__quote blockquote p, .m-entity__quote blockquote .webform-submission-form textarea, .webform-submission-form .m-entity__quote blockquote textarea, .m-entity__quote blockquote .webform-submission-form label, .webform-submission-form .m-entity__quote blockquote label,
.m-entity__quote blockquote .webform-submission-form input,
.webform-submission-form .m-entity__quote blockquote input,
.m-entity__quote blockquote .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__quote blockquote .webform-element-description,
.m-entity__quote blockquote .webform-submission-form select option,
.webform-submission-form select .m-entity__quote blockquote option,
.m-entity__quote blockquote .webform-submission-form legend,
.webform-submission-form .m-entity__quote blockquote legend {
  margin-bottom: 0;
}
.m-entity__quote-info {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}
.m-entity__quote-info cite {
  color: var(--c-black);
  font-family: var(--fontRegular);
  font-size: 18px;
  line-height: 28px;
  margin-top: 16px;
  font-style: normal;
  padding: 0 var(--bump) 0 0;
}
.m-entity__quote-info cite span {
  font-family: "openSansSemiBold";
}
.m-entity__quote-info svg {
  position: absolute;
  right: 48px;
  margin-bottom: -41px;
}
.m-entity__quote cite {
  font-family: var(--fontBody);
}
.m-entity__quote cite .name {
  font-weight: bold;
}
.m-entity__quote .rating {
  display: inline-flex;
  margin-right: calc(var(--bump) / 2);
}
.m-entity__quote .rating__star {
  width: 24px;
  height: 24px;
  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 {
  /* title opened */
  /* title closed */
}
.m-entity__accordion h2 {
  margin-bottom: 16px;
}
.m-entity__accordion .accordion {
  border-bottom: 1px solid #e5eaed;
}
.m-entity__accordion .accordion__header {
  display: flex;
  width: 100%;
  border: 0;
  background-color: transparent;
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  border-top: 1px solid #e5eaed;
  color: var(--c-primary);
  font-size: 18px;
  font-weight: 600;
  line-height: 27px;
  font-family: var(--fontTitle);
}
.m-entity__accordion .accordion__header::after {
  content: "";
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 18px;
  width: 18px;
  min-width: 18px;
}
.m-entity__accordion .accordion__header:focus, .m-entity__accordion .accordion__header[aria-expanded=true] {
  font-weight: bold;
  outline: none;
}
.m-entity__accordion .accordion__title {
  margin: 0;
  font-size: 22px;
}
.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: 100em;
  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:last-child, .m-entity__accordion .accordion__panel .webform-submission-form textarea:last-child, .webform-submission-form .m-entity__accordion .accordion__panel textarea:last-child, .m-entity__accordion .accordion__panel .webform-submission-form label:last-child, .webform-submission-form .m-entity__accordion .accordion__panel label:last-child,
.m-entity__accordion .accordion__panel .webform-submission-form input:last-child,
.webform-submission-form .m-entity__accordion .accordion__panel input:last-child,
.m-entity__accordion .accordion__panel .webform-submission-form .webform-element-description:last-child,
.webform-submission-form .m-entity__accordion .accordion__panel .webform-element-description:last-child,
.m-entity__accordion .accordion__panel .webform-submission-form select option:last-child,
.webform-submission-form select .m-entity__accordion .accordion__panel option:last-child,
.m-entity__accordion .accordion__panel .webform-submission-form legend:last-child,
.webform-submission-form .m-entity__accordion .accordion__panel legend:last-child {
  margin-bottom: 16px;
}
.m-entity__accordion [aria-expanded=true]:after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cline x1='0' y1='10' x2='20' y2='10' stroke='%23101010'%3E%3C/line%3E%3C/svg%3E");
}
.m-entity__accordion [aria-expanded=false]:after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cline x1='0' y1='10' x2='20' y2='10' stroke='%23101010'%3E%3C/line%3E%3Cline x1='10' y1='0' x2='10' y2='20' stroke='%23101010'%3E%3C/line%3E%3C/svg%3E");
}
.m-entity__gallery a:hover {
  opacity: 0.7;
}
.m-entity .grids--three {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px 22px;
  margin: 12px 0px;
}
@media (max-width: 767px) {
  .m-entity .grids--three {
    grid-template-columns: 1fr 1fr;
  }
}
.m-entity .entity--enchaned-gallery {
  padding-bottom: 40px;
}
.m-entity .entity--enchaned-gallery .gallery__icon {
  width: 40px;
  height: 40px;
  border-radius: 40px;
  background-color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  bottom: 10px;
  left: 10px;
}
.m-entity__image-and-text-elements-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 22px;
}
.m-entity__downloads .file {
  padding-left: 0;
  background-image: none;
  font-family: var(--fontRegular);
  word-wrap: break-word;
}
.m-entity__downloads .a-file {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.m-entity__downloads .a-file__item {
  display: flex;
  gap: 5px;
  align-items: center;
}
.m-entity__embed iframe {
  width: 100%;
}
.m-entity__testimonials__wrapper {
  background-color: #e5eaed;
  padding: 40px 19px;
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: auto 1fr auto;
}
@media (max-width: 767px) {
  .m-entity__testimonials__wrapper {
    display: inherit;
  }
}
.m-entity__testimonials__wrapper p, .m-entity__testimonials__wrapper .webform-submission-form textarea, .webform-submission-form .m-entity__testimonials__wrapper textarea, .m-entity__testimonials__wrapper .webform-submission-form label, .webform-submission-form .m-entity__testimonials__wrapper label,
.m-entity__testimonials__wrapper .webform-submission-form input,
.webform-submission-form .m-entity__testimonials__wrapper input,
.m-entity__testimonials__wrapper .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity__testimonials__wrapper .webform-element-description,
.m-entity__testimonials__wrapper .webform-submission-form select option,
.webform-submission-form select .m-entity__testimonials__wrapper option,
.m-entity__testimonials__wrapper .webform-submission-form legend,
.webform-submission-form .m-entity__testimonials__wrapper legend {
  font-family: var(--fontPoppinsRegular);
  line-height: clamp(24px, 2.5vw, 39px);
  font-size: clamp(22px, 2.5vw, 28px);
  letter-spacing: 0.5px;
  color: var(--c-primary);
}
.m-entity__testimonials__wrapper blockquote:before {
  content: "";
}
.m-entity .m-entity__introduction__content {
  position: absolute;
  grid-template-columns: 3fr 12fr 5fr;
  display: grid;
}
@media (max-width: 1199px) {
  .m-entity .m-entity__introduction__content {
    grid-template-columns: none;
  }
}
.m-entity .m-entity__introduction__content__info {
  z-index: 1;
  letter-spacing: normal;
  word-spacing: normal;
  padding: var(--bump) calc(var(--bump) / 2) var(--bump);
  background-color: rgba(47, 64, 74, 0.8);
  color: #ffffff;
  grid-column-start: 2;
  grid-column-end: 3;
  display: grid;
}
@media (max-width: 767px) {
  .m-entity .m-entity__introduction__content__info {
    background-color: var(--c-secondary);
    width: 100% !important;
    position: initial;
  }
}
@media (max-width: 991px) {
  .m-entity .m-entity__introduction__content__info {
    padding: 15px;
  }
}
.m-entity .m-entity__introduction__content__info h1 {
  text-align: left;
  -moz-text-align-last: auto;
       text-align-last: auto;
  margin-bottom: 12px;
}
@media (max-width: 991px) {
  .m-entity .m-entity__introduction__content__info h1 {
    margin-bottom: 6px;
  }
}
.m-entity .m-entity__introduction__content__info p, .m-entity .m-entity__introduction__content__info .webform-submission-form textarea, .webform-submission-form .m-entity .m-entity__introduction__content__info textarea, .m-entity .m-entity__introduction__content__info .webform-submission-form label, .webform-submission-form .m-entity .m-entity__introduction__content__info label,
.m-entity .m-entity__introduction__content__info .webform-submission-form input,
.webform-submission-form .m-entity .m-entity__introduction__content__info input,
.m-entity .m-entity__introduction__content__info .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity .m-entity__introduction__content__info .webform-element-description,
.m-entity .m-entity__introduction__content__info .webform-submission-form select option,
.webform-submission-form select .m-entity .m-entity__introduction__content__info option,
.m-entity .m-entity__introduction__content__info .webform-submission-form legend,
.webform-submission-form .m-entity .m-entity__introduction__content__info legend {
  color: #ffffff;
  text-align: left;
  -moz-text-align-last: auto;
       text-align-last: auto;
}
.m-entity .m-entity__introduction__content__info p a, .m-entity .m-entity__introduction__content__info .webform-submission-form textarea a, .webform-submission-form .m-entity .m-entity__introduction__content__info textarea a, .m-entity .m-entity__introduction__content__info .webform-submission-form label a, .webform-submission-form .m-entity .m-entity__introduction__content__info label a,
.m-entity .m-entity__introduction__content__info .webform-submission-form input a,
.webform-submission-form .m-entity .m-entity__introduction__content__info input a,
.m-entity .m-entity__introduction__content__info .webform-submission-form .webform-element-description a,
.webform-submission-form .m-entity .m-entity__introduction__content__info .webform-element-description a,
.m-entity .m-entity__introduction__content__info .webform-submission-form select option a,
.webform-submission-form select .m-entity .m-entity__introduction__content__info option a,
.m-entity .m-entity__introduction__content__info .webform-submission-form legend a,
.webform-submission-form .m-entity .m-entity__introduction__content__info legend a {
  color: #ffffff;
  font-family: var(--fontSemiBold);
}
.m-entity .m-entity__introduction__banner {
  position: relative;
  width: 100%;
}
.m-entity .m-entity__image-wrapper {
  background-color: #e5eaed;
}
.m-entity .m-entity__image-wrapper p, .m-entity .m-entity__image-wrapper .webform-submission-form textarea, .webform-submission-form .m-entity .m-entity__image-wrapper textarea, .m-entity .m-entity__image-wrapper .webform-submission-form label, .webform-submission-form .m-entity .m-entity__image-wrapper label,
.m-entity .m-entity__image-wrapper .webform-submission-form input,
.webform-submission-form .m-entity .m-entity__image-wrapper input,
.m-entity .m-entity__image-wrapper .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity .m-entity__image-wrapper .webform-element-description,
.m-entity .m-entity__image-wrapper .webform-submission-form select option,
.webform-submission-form select .m-entity .m-entity__image-wrapper option,
.m-entity .m-entity__image-wrapper .webform-submission-form legend,
.webform-submission-form .m-entity .m-entity__image-wrapper legend {
  padding: 14px;
}
.m-entity__image-and-text-elements--grid {
  display: grid;
  grid-gap: 40px;
}
.m-entity__image-and-text-elements-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 22px;
}
@media (max-width: 767px) {
  .m-entity__image-and-text-elements-item {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .m-entity__image-and-text-elements-item__image {
    order: 1 !important;
  }
}
.align-right .m-entity__image-and-text-elements-item__image {
  order: 2;
}
.m-entity__image-and-text-elements-item__image-caption {
  padding: 14px;
  background: #e5eaed;
}
.m-entity__image-and-text-elements-item__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
@media (max-width: 767px) {
  .m-entity__image-and-text-elements-item__content {
    order: 2 !important;
  }
}
.align-right .m-entity__image-and-text-elements-item__content {
  order: 1;
}
.m-entity__image-and-text-elements-item__content h2 {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 27px;
  margin-bottom: 5px;
  color: #2f404a;
}
.m-entity__related-content {
  background-color: var(--c-tertiary);
  margin: 0;
}
.m-entity__related-content__inner {
  gap: var(--bump);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
  gap: calc(var(--bump) / 2);
}
@media (max-width: 767px) {
  .m-entity__related-content__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__related-content__title {
  color: var(--c-secondary);
  font-size: clamp(25px, 2.5vw, 30px);
  line-height: clamp(27px, 5vw, 46px);
  font-weight: 600;
}
@media (max-width: 767px) {
  .m-entity__related-content__title {
    letter-spacing: 0px;
  }
}
.m-entity__related-content .grid .col-sm-12 {
  padding: calc(var(--bump) * 2) calc(var(--bump) / 2);
}
@media (max-width: 767px) {
  .m-entity__related-content .grid .col-sm-12 {
    padding: calc(var(--bump) * 1.25) calc(var(--bump) / 2);
  }
}
.m-entity__curated-signpost {
  background-color: var(--c-tertiary);
}
.m-entity__curated-signpost__inner {
  gap: var(--bump);
  grid-template-columns: repeat(2, 1fr);
  display: grid;
  gap: calc(var(--bump) / 3 * 2);
}
@media (max-width: 767px) {
  .m-entity__curated-signpost__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__curated-signpost__title {
  color: var(--c-secondary);
  line-height: clamp(27px, 5vw, 43px);
  font-weight: 600;
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .m-entity__curated-signpost__title {
    letter-spacing: 0px;
    margin-bottom: 12px;
  }
}
.m-entity__curated-signpost .grid .col-sm-12 {
  padding: calc(var(--bump) * 2) calc(var(--bump) / 2);
}
@media (max-width: 767px) {
  .m-entity__curated-signpost .grid .col-sm-12 {
    padding: calc(var(--bump) * 1.25) calc(var(--bump) / 2);
  }
}
.m-entity__grouped-signposts__title {
  color: var(--c-secondary);
  font-size: clamp(25px, 2.5vw, 35px);
  line-height: clamp(27px, 5vw, 53px);
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 9px;
}
@media (max-width: 767px) {
  .m-entity__grouped-signposts__title {
    letter-spacing: 0px;
  }
}
.m-entity__grouped-signposts__intro-text {
  margin: 0 0 var(--bump);
}
@media (max-width: 767px) {
  .m-entity__grouped-signposts__intro-text {
    margin-bottom: 24px;
  }
}
.m-entity__grouped-signposts__wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--bump);
}
.m-entity__grouped-signposts__inner {
  grid-template-columns: repeat(3, 1fr);
  display: grid;
  justify-content: space-between;
  gap: calc(var(--bump) / 3 * 2);
}
@media (max-width: 767px) {
  .m-entity__grouped-signposts__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__grouped-signposts__inner--double {
  grid-template-columns: 2fr 1fr;
  grid-template-columns: fit-content(712px) fit-content(345px);
}
@media (max-width: 1129px) {
  .m-entity__grouped-signposts__inner--double {
    grid-template-columns: 2fr 1fr;
  }
}
@media (max-width: 767px) {
  .m-entity__grouped-signposts__inner--double {
    grid-template-columns: repeat(1, 1fr);
  }
}
.m-entity__grouped-signposts .grid .col-sm-12 {
  padding: calc(var(--bump) * 2) calc(var(--bump) / 2);
}
@media (max-width: 767px) {
  .m-entity__grouped-signposts .grid .col-sm-12 {
    padding: calc(var(--bump) * 1.25) calc(var(--bump) / 2);
  }
}
.m-entity .m-entity__field_welcome_extra {
  display: grid;
  justify-content: center;
  margin: 9px 0;
}
.m-entity .m-entity__field_welcome_extra h3, .m-entity .m-entity__field_welcome_extra h3 a {
  font-size: clamp(25px, 2.5vw, 35px);
  line-height: clamp(27px, 5vw, 53px);
  color: var(--c-secondary);
  margin-bottom: 0;
}
.m-entity .m-entity__field_welcome_extra p a, .m-entity .m-entity__field_welcome_extra .webform-submission-form textarea a, .webform-submission-form .m-entity .m-entity__field_welcome_extra textarea a, .m-entity .m-entity__field_welcome_extra .webform-submission-form label a, .webform-submission-form .m-entity .m-entity__field_welcome_extra label a,
.m-entity .m-entity__field_welcome_extra .webform-submission-form input a,
.webform-submission-form .m-entity .m-entity__field_welcome_extra input a,
.m-entity .m-entity__field_welcome_extra .webform-submission-form .webform-element-description a,
.webform-submission-form .m-entity .m-entity__field_welcome_extra .webform-element-description a,
.m-entity .m-entity__field_welcome_extra .webform-submission-form select option a,
.webform-submission-form select .m-entity .m-entity__field_welcome_extra option a,
.m-entity .m-entity__field_welcome_extra .webform-submission-form legend a,
.webform-submission-form .m-entity .m-entity__field_welcome_extra legend a {
  color: #4F6C7D;
  font-size: 18px;
  letter-spacing: 0;
  line-height: 24px;
  font-family: var(--fontBody);
}
.m-entity .m-entity__field_welcome_extra h3, .m-entity .m-entity__field_welcome_extra strong, .m-entity .m-entity__field_welcome_extra a, .m-entity .m-entity__field_welcome_extra p, .m-entity .m-entity__field_welcome_extra .webform-submission-form textarea, .webform-submission-form .m-entity .m-entity__field_welcome_extra textarea, .m-entity .m-entity__field_welcome_extra .webform-submission-form label, .webform-submission-form .m-entity .m-entity__field_welcome_extra label,
.m-entity .m-entity__field_welcome_extra .webform-submission-form input,
.webform-submission-form .m-entity .m-entity__field_welcome_extra input,
.m-entity .m-entity__field_welcome_extra .webform-submission-form .webform-element-description,
.webform-submission-form .m-entity .m-entity__field_welcome_extra .webform-element-description,
.m-entity .m-entity__field_welcome_extra .webform-submission-form select option,
.webform-submission-form select .m-entity .m-entity__field_welcome_extra option,
.m-entity .m-entity__field_welcome_extra .webform-submission-form legend,
.webform-submission-form .m-entity .m-entity__field_welcome_extra legend {
  text-align: center;
  -moz-text-align-last: center;
       text-align-last: center;
}
.m-entity__spektrix-donation {
  background-color: #4f6c7d;
  padding: 30px;
}
.m-entity__spektrix-donation .a-title {
  color: #ffffff;
  line-height: 28px;
  font-family: var(--fontBody);
  /* font-weight: 600; */
  letter-spacing: 0px;
}
.m-entity__spektrix-donation .form__row--details {
  display: flex;
  justify-content: space-between;
}
.m-entity__spektrix-donation .form__row--details input {
  width: 70%;
}
@media (max-width: 991px) {
  .m-entity__spektrix-donation .form__row--details input {
    width: 100%;
    margin-bottom: 16px;
  }
}
.m-entity__spektrix-donation .form__row--details button {
  border: 1px solid #ffffff;
  display: grid;
  grid-auto-flow: column;
  gap: 14px;
}
@media (max-width: 991px) {
  .m-entity__spektrix-donation .form__row--details {
    flex-flow: column;
  }
}
.m-entity__spektrix-donation .form__row {
  margin-bottom: 15px;
}
.m-entity__spektrix-donation .form__row .form__label {
  color: #ffffff;
}
.m-entity__video h2 {
  margin-bottom: 12px;
}
.m-entity__video .m-entity__video__file,
.m-entity__video .m-entity__video__embed {
  position: relative;
  height: 100%;
  padding-bottom: 74%;
  transition: all 1s var(--transition);
}
.m-entity__video video,
.m-entity__video iframe {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 600;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.m-entity .eu-cookie-compliance-secondary-button {
  background: #4f6c7d;
  padding: 4px 8px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 27px;
}
.m-entity .eu-cookie-compliance-default-button {
  background: transparent;
  border: 0;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 27px;
  color: #ffffff;
  box-shadow: none;
  -webkit-box-shadow: none;
  text-shadow: none;
}
.m-entity .eu-cookie-compliance-default-button:hover {
  background: transparent;
}
.m-entity .eu-cookie-compliance-content {
  padding: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  max-width: 1260px;
  margin: 15px auto;
}

/**
 * ----------------------
 * 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: calc(var(--bump) / 2) var(--bump);
  -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-focus);
}

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

.js-form-item {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-bottom: calc(var(--bump) / 2);
  position: relative;
}

.o-webform {
  display: block !important;
}

.webform-submission-form .form-type-checkbox,
.webform-submission-form .form-type-radio {
  display: grid;
  grid-template-columns: auto auto;
  grid-gap: 15px;
  align-items: center;
}
.webform-submission-form .form-type-checkbox input,
.webform-submission-form .form-type-radio input {
  order: 2;
}
.webform-submission-form .form-type-checkbox label,
.webform-submission-form .form-type-radio label {
  order: 1;
}
.webform-submission-form textarea {
  width: 100%;
}
.webform-submission-form select option {
  margin: 0;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Main nav
 * ----------------------
 */
body[data-nav=open] header .o-header__home,
body[data-nav=open] header .nav-wrapper,
body[data-nav=open] header .o-header__account .m-shop-toggle,
body[data-nav=open] header .o-header__account .a-search-button {
  border-bottom: 1px solid #fff;
}

.o-header--nav-desktop nav > ul.menu {
  display: block;
  gap: 15px;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li {
  margin: 0;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab {
  display: block;
  border-bottom: none;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab > .a-nav-menu-title {
  border-bottom: 1px solid #fff;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab .a-nav-menu-title .back-menu {
  transform: rotate(180deg);
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab ul {
  position: absolute;
  z-index: 200;
  left: 0;
  background: #2f404a;
  width: 100%;
  top: 100%;
  display: block;
  border: 1px solid #fff;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab ul > .grid {
  margin: auto;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab ul .menu__dropdown__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: calc(var(--bump) / 3);
       column-gap: calc(var(--bump) / 3);
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab ul li .a-nav-menu-title {
  display: flex;
  justify-content: flex-start;
}
.o-header--nav-desktop nav > ul.menu.active-menu > li.active-tab ul li a {
  margin: 0;
  font-family: "poppinsRegular";
  font-weight: 300;
}
.o-header--nav-desktop nav > ul.menu li {
  transition: none;
}
.o-header--nav-desktop nav > ul.menu li .a-nav-menu-title {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: calc(var(--bump) / 6);
  transition: none;
  padding: 10px 0;
}
.o-header--nav-desktop nav > ul.menu li .a-nav-menu-title a {
  transition: all var(--transition);
  font-size: 18px;
  cursor: pointer;
  line-height: 20px;
  height: 100%;
  display: flex;
  align-items: center;
  text-align: left;
  -moz-text-align-last: left;
       text-align-last: left;
}
@media (max-width: 1199px) {
  .o-header--nav-desktop nav > ul.menu li .a-nav-menu-title a {
    font-size: 16px;
    line-height: 20px;
  }
}
.o-header--nav-desktop nav > ul.menu li ul {
  display: none;
}

.o-header--nav-mobile {
  display: none;
}
@media (min-width: 993px) {
  .o-header--nav-mobile {
    display: none;
  }
}
.user-logged-in .o-header--nav-mobile nav > ul.menu {
  height: 150vh;
}
[data-nav=open] .o-header--nav-mobile {
  display: flex !important;
  background-color: #2f404a;
  justify-content: flex-start;
  flex-direction: column;
  position: absolute;
  top: 69px;
  right: 0;
  bottom: 0;
  z-index: 9;
  width: 70%;
  padding: 30px 0;
  margin: 11px 0 0;
  min-height: 100vh;
  height: 100%;
}
@media (min-width: 993px) {
  [data-nav=open] .o-header--nav-mobile {
    display: none !important;
  }
}
[data-nav=open] .o-header--nav-mobile nav {
  background-color: #2f404a;
  padding: 0 0 var(--bump);
  overflow-y: scroll;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu {
  display: block;
  overflow: hidden;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li {
  margin: 0;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li:not([data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab) {
  display: none;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab {
  display: block;
  border-bottom: none;
  border-top: none;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab > .a-nav-menu-title {
  padding: 0 20px 20px 20px;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab .a-nav-menu-title {
  justify-content: flex-start;
  align-items: center;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab .a-nav-menu-title a:first-of-type {
  order: 2;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab .a-nav-menu-title .back-menu {
  transform: rotate(90deg);
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab ul {
  display: block;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu.active-menu > li.active-tab ul li a {
  font-family: "poppinsRegular";
  font-weight: 300;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li {
  padding: 15px 0;
  margin: 0 20px;
  transition: none;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li:not(.active-tab) .back-menu {
  pointer-events: none;
  position: absolute;
  right: 0;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li:first-of-type {
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li .a-nav-menu-title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  position: relative;
  transition: none;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li .a-nav-menu-title a:first-of-type {
  transition: none;
  font-size: 18px;
  line-height: 20px;
  width: 100%;
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li .a-nav-menu-title .back-menu {
  transform: rotate(270deg);
}
[data-nav=open] .o-header--nav-mobile nav > ul.menu li ul {
  display: none;
}
body[data-nav=open] .o-header--nav-mobile__overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 5;
}

.a-shop-overlay {
  display: none;
}
.a-shop-overlay a {
  font-size: 18px;
  font-weight: 600;
  color: white;
  text-decoration: none;
  line-height: 27px;
  display: grid;
  grid-auto-flow: column;
  gap: 9px;
}
[data-shop=opened] .a-shop-overlay {
  display: grid;
  padding: 20px 20px 30px 20px;
  justify-content: center;
  background-color: #2f404a;
  position: absolute;
  right: 66px;
  grid-gap: 20px;
  z-index: 55;
  outline: 1px solid white;
}
@media (max-width: 1199px) {
  [data-shop=opened] .a-shop-overlay {
    width: -webkit-fill-available;
    right: 0;
    position: unset;
  }
}
@media (max-width: 1199px) {
  [data-shop=opened] .a-shop-overlay {
    justify-content: left;
  }
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Banner
 * ----------------------
 */
.m-no-banner {
  margin-top: calc(var(--bump) * 3);
}
@media (max-width: 575px) {
  .m-no-banner {
    margin-top: var(--bump);
  }
}

.m-banner {
  position: relative;
  display: flex;
  flex-direction: column;
}
@media (max-width: 767px) {
  .m-banner {
    flex-direction: column-reverse;
  }
}
.m-banner img {
  width: 100%;
  height: auto;
  display: block;
}
.m-banner__copy {
  position: absolute;
  bottom: 0;
  width: 100%;
}
@media (max-width: 767px) {
  .m-banner__copy {
    position: relative;
  }
}
.m-banner__copy .grid {
  max-width: calc(var(--containerWidth) - 30px);
}
.m-banner__copy .grid .col-sm-12 {
  position: relative;
  padding: 0;
}
@media (max-width: 767px) {
  .m-banner__copy .grid .col-sm-12 {
    padding: calc(var(--bump) / 2);
  }
}
.m-banner__copy .grid .col-sm-12:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--c-primary);
  opacity: 0.8;
  z-index: 0;
}
@media (max-width: 767px) {
  .m-banner__copy .grid .col-sm-12:after {
    background-color: var(--c-secondary);
    opacity: 1;
  }
}
.m-banner__copy .grid .col-sm-12 h1 {
  color: var(--c-white);
  margin: 0;
  padding: var(--bump);
  position: relative;
  z-index: 1;
}
@media (max-width: 767px) {
  .m-banner__copy .grid .col-sm-12 h1 {
    padding: 0;
  }
}
.m-banner__listing__title {
  margin: 0 0 calc(var(--bump) / 3);
}
.m-banner__listing__body p, .m-banner__listing__body .webform-submission-form label, .webform-submission-form .m-banner__listing__body label,
.m-banner__listing__body .webform-submission-form input,
.webform-submission-form .m-banner__listing__body input,
.m-banner__listing__body .webform-submission-form .webform-element-description,
.webform-submission-form .m-banner__listing__body .webform-element-description,
.m-banner__listing__body .webform-submission-form select option,
.webform-submission-form select .m-banner__listing__body option,
.m-banner__listing__body .webform-submission-form legend,
.webform-submission-form .m-banner__listing__body legend, .m-banner__listing__body .webform-submission-form textarea, .webform-submission-form .m-banner__listing__body textarea {
  color: #333333;
  word-break: break-word;
}

.m-homepage-banner {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.m-homepage-banner.grid {
  max-width: initial;
}
@media (max-width: 767px) {
  .m-homepage-banner {
    grid-template-columns: none;
  }
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Linked logos
 * ----------------------
 */
.m-logos a {
  display: block;
}
.m-logos a:hover {
  opacity: 0.7;
}

.m-entity__linked-logos div {
  -moz-column-gap: 31px;
       column-gap: 31px;
  row-gap: 33px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
}
@media (max-width: 767px) {
  .m-entity__linked-logos div {
    grid-template-columns: 1fr 1fr;
  }
}
.m-entity__linked-logos img {
  min-height: 35px;
  -o-object-fit: contain;
     object-fit: contain;
}
.m-entity__linked-logos .grid {
  letter-spacing: normal;
  word-spacing: normal;
  margin-top: 20px;
  margin-left: 0px;
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Social links
 * ----------------------
 */
/**
 * Styling
 */
.m-social-links {
  display: grid;
  grid-auto-flow: column;
  gap: 8px;
  margin-right: 15.22px;
}
@media (max-width: 991px) {
  .m-social-links {
    justify-content: center;
  }
}
.m-social-links__link {
  border-radius: 50%;
  display: block;
}
.m-social-links__link:last-child {
  margin-right: 0;
}
.m-social-links__link svg {
  -o-object-fit: cover;
     object-fit: cover;
  display: grid;
  justify-content: center;
  align-items: center;
}
.m-social-links__link rect {
  transition: 0.1s var(--easing);
}
.m-social-links__link path {
  fill: var(--c-white);
}
.m-social-links__link:hover rect {
  fill: var(--c-white);
}
.m-social-links__link:hover path {
  fill: var(--c-secondary);
}
.m-social-links__link:hover circle {
  fill: var(--c-white);
}

.m-freepager {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding: calc(var(--bump) * 3.5) 0 0;
  gap: calc(var(--bump) / 2);
}
@media (max-width: 767px) {
  .m-freepager {
    flex-direction: column;
  }
}
.m-freepager:before {
  content: "";
  position: absolute;
  top: 0;
  background-color: var(--c-tertiary);
  width: 100%;
  height: 5px;
}
.m-freepager-next, .m-freepager-previous {
  max-width: 436px;
  width: 100%;
  display: flex;
  text-decoration: none;
}
@media (max-width: 1369px) {
  .m-freepager-next, .m-freepager-previous {
    align-items: flex-end;
  }
}
.m-freepager-next .o-teaser__next-previous, .m-freepager-previous .o-teaser__next-previous {
  text-decoration: none;
  position: absolute;
  top: 50%;
  display: flex;
  gap: 5px;
  color: #000;
}
@media (max-width: 1369px) {
  .m-freepager-next .o-teaser__next-previous, .m-freepager-previous .o-teaser__next-previous {
    position: relative;
    top: auto;
    margin: auto 0 0;
  }
}
.m-freepager-next .o-teaser__next-previous:before, .m-freepager-next .o-teaser__next-previous:after, .m-freepager-previous .o-teaser__next-previous:before, .m-freepager-previous .o-teaser__next-previous:after {
  color: #000000;
  font-size: 16px;
  letter-spacing: 0;
  line-height: 35.8px;
  font-family: var(--fontSemiBold);
}
.m-freepager-next .o-teaser__next-previous {
  right: -115px;
  transform: translateX(15px);
}
@media (max-width: 1369px) {
  .m-freepager-next .o-teaser__next-previous {
    right: auto;
    transform: none;
  }
}
.m-freepager-next .o-teaser__next-previous:before {
  content: "Next";
}
.m-freepager-next .o-teaser__next-previous:after {
  content: "▶";
}
.m-freepager-previous .o-teaser__next-previous {
  left: -115px;
  transform: translateX(-15px);
}
@media (max-width: 1369px) {
  .m-freepager-previous .o-teaser__next-previous {
    left: auto;
    transform: none;
  }
}
.m-freepager-previous .o-teaser__next-previous:before {
  content: "◀";
}
.m-freepager-previous .o-teaser__next-previous:after {
  content: "Previous";
}
.m-freepager__btn {
  align-self: flex-start;
  color: var(--c-white) !important;
  text-decoration: none !important;
}
@media (max-width: 767px) {
  .m-freepager__btn {
    order: 1;
  }
}

/**
 * ----------------------
 * Un.titled
 * Molecules - Stay Up To Date - Prefooter
 * ----------------------
 */
/**
 * Config
 **/
.m-stay-up-to-date {
  letter-spacing: normal;
  word-spacing: normal;
}

/**
 * Organisims
 */
/**
 * ----------------------
 * Un.titled
 * Organisms - Header
 * ----------------------
 */
.o-header__nav {
  display: flex !important;
  justify-content: space-between;
  grid-auto-flow: column;
  flex-flow: wrap;
  position: relative;
}
@media (max-width: 1199px) {
  .o-header__nav {
    justify-content: flex-start;
  }
}
@media (max-width: 767px) {
  .o-header__nav {
    display: none !important;
  }
}

.o-header {
  background-color: #4f6c7d;
  display: grid;
  grid-template-columns: auto 1fr auto;
  position: relative;
  z-index: 6;
  min-height: 80px;
}
.o-header > .grid > .col-md-12 {
  height: 100%;
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop {
  height: 100%;
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop > nav {
  height: 100%;
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop > nav > ul.menu {
  height: 100%;
  align-items: stretch;
  gap: 0;
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop > nav > ul.menu > li {
  display: flex;
  align-items: center;
  padding: 0 !important;
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop > nav > ul.menu > li > .a-nav-menu-title {
  border-top: 3px solid transparent;
  padding: 0 calc(var(--bump) / 2);
  transition: all var(--transition);
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop > nav > ul.menu > li.active-tab > .a-nav-menu-title {
  height: 100%;
  border-top: 3px solid #fff;
  border-left: 1px solid var(--c-white);
  border-right: 1px solid var(--c-white);
  background-color: var(--c-primary);
  border-bottom: none;
}
.o-header > .grid > .col-md-12 .o-header--nav-desktop > nav > ul.menu > li.active-tab > .a-nav-menu-title:after {
  content: "";
  display: block;
  height: 3px;
  background-color: #2f404a;
  width: 100%;
  position: absolute;
  bottom: 0;
  transform: translateY(75%) translateX(-15px);
  z-index: 201;
}
@media (max-width: 767px) {
  .o-header--nav-desktop {
    display: none;
  }
}
.o-header .nav-wrapper {
  display: grid;
  align-items: center;
  position: unset;
}
@media (max-width: 767px) {
  .o-header .nav-wrapper {
    position: unset;
  }
}
@media (max-width: 1199px) {
  .o-header .nav-wrapper {
    padding: 0 15px;
  }
}
.o-header .nav-wrapper > .col-md-12 {
  position: unset;
}
.o-header .a-nav-toggle {
  height: 100%;
  display: flex;
  align-items: center;
  border-left: 1px solid #fff;
  padding: 0 15px;
}
[data-nav=open] .o-header .a-nav-toggle {
  background-color: #2f404a;
}
@media (min-width: 993px) {
  .o-header .a-nav-toggle {
    display: none;
  }
}
.o-header__search-modal {
  padding-top: 70px;
  display: none;
}
@media (max-width: 767px) {
  .o-header__search-modal {
    padding-top: 0;
  }
}
[data-search=open] .o-header__search-modal {
  background-color: #2f404a;
  display: block;
  outline: 1px solid white;
  border: 1px solid white;
  border-top: none;
}
.o-header__search-modal .js-form-wrapper {
  position: absolute;
  right: 0px;
  top: 12px;
}
.o-header__search-modal .js-form-wrapper button {
  background-color: transparent;
  text-indent: -9999px;
}
.o-header__search-modal .js-form-wrapper button:after {
  content: "";
  display: block;
  background-image: url("../img/search-white.svg");
  position: absolute;
  right: 1.5rem;
  padding: 15px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.o-header__search-modal .js-form-item input {
  background-color: #2f404a;
  border: none;
  border-bottom: 1px solid #ffffff;
  color: #ffffff;
}
.o-header__home {
  display: grid;
  align-items: center;
  justify-content: center;
}
@media (min-width: 1081px) {
  .o-header__home a {
    margin-left: 30px;
  }
}
@media (max-width: 1079px) {
  .o-header__home a {
    margin-left: 15px;
  }
}
.o-header__home a svg {
  width: 100%;
  max-width: 197px;
}
@media (max-width: 767px) {
  .o-header__home a svg {
    width: 100%;
    max-width: 116px;
  }
}
.o-header nav ul {
  display: grid;
  margin-top: 0px;
  margin-bottom: 0px;
}
.o-header nav ul.m-main-nav {
  display: none;
}
.o-header nav ul.menu {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
}
@media (max-width: 991px) {
  .o-header nav ul.menu {
    display: none;
  }
}
.o-header nav ul.menu a {
  font-family: "poppinsSemiBold";
}
.o-header nav ul.menu > li.is-active-trail > a {
  font-family: "poppinslight";
  font-weight: 400;
  color: #fff;
  position: relative;
}
.o-header nav ul li {
  text-decoration: none;
  color: #ffffff;
  list-style: none;
}
@media (max-width: 767px) {
  .o-header nav ul li {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    border-left: 0;
    border-right: 0;
  }
}
.o-header nav ul a {
  text-decoration: none;
  letter-spacing: normal;
  word-spacing: initial;
  color: #ffffff;
  font-size: clamp(14px, 1.2vw, 18px);
  font-weight: 600;
  font-family: var(--fontTitle);
}

.m-shop-toggle svg {
  display: inline;
  height: 32px;
}
[data-nav=opened] .m-shop-toggle {
  background-color: #2f404a;
  z-index: 56;
}

.sub-menu {
  width: 100%;
  display: grid;
  justify-content: center;
  padding: 15px 15px 0 15px;
  background-color: #e5eaed;
  grid-template-columns: 1fr;
}
@media (max-width: 767px) {
  .sub-menu {
    display: none;
  }
}
.sub-menu .menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}
.sub-menu .menu li a {
  font-family: "poppinsSemiBold";
  font-weight: 400;
  color: #4f6c7d;
  display: block;
  position: relative;
  text-decoration: none;
  font-size: clamp(14px, 1.2vw, 18px);
  padding-bottom: 20px;
}
.sub-menu .menu li a.back-menu {
  display: none;
}
.sub-menu .menu li a:hover:before, .sub-menu .menu li a.is-active:before {
  width: 100%;
}
.sub-menu .menu li a:before {
  content: "";
  display: block;
  height: 4px;
  width: 0;
  background: #4f6c7d;
  transition: all 0.2s ease-in-out;
  position: absolute;
  bottom: 0;
  left: 0;
}

.o-header__account {
  display: grid;
  grid-auto-flow: column;
  align-items: center;
}
.o-header__account button {
  background-color: transparent;
  border: none;
  border-left: 1px solid white;
  padding: 10px 15px;
  height: 100%;
}
[data-shop=opened] .o-header__account button:first-of-type {
  position: relative;
  height: 100%;
  border-left: 1px solid var(--c-white);
  border-right: 1px solid var(--c-white);
  background-color: var(--c-primary);
  border-bottom: none;
}
[data-shop=opened] .o-header__account button:first-of-type:after {
  content: "";
  display: block;
  height: 3px;
  background-color: #2f404a;
  width: 100%;
  position: absolute;
  bottom: 0;
  transform: translateY(50%) translateX(-15px);
  z-index: 201;
}
.o-header__account button:nth-of-type(2) {
  border-right: 1px solid white;
}
@media (max-width: 767px) {
  .o-header__account button {
    padding: 15px;
  }
}
.o-header__account .a-search-button .close-icon {
  display: none;
}
.o-header__account .a-search-button .close-icon svg {
  height: 32px;
  width: 33px;
}
[data-search=open] .o-header__account .a-search-button .close-icon {
  display: block;
}
[data-search=open] .o-header__account .a-search-button .search-icon {
  display: none;
}
[data-search=open] .o-header__account .a-search-button {
  background-color: #2f404a;
}
.o-header__account a {
  border-left: 1px solid white;
  padding: 38px;
}
@media (max-width: 767px) {
  .o-header__account a {
    padding: 20px 16px;
  }
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Footer
 * ----------------------
 */
.o-footer {
  background-color: #4f6c7d;
  padding: calc(var(--bump) / 2) 0 calc(var(--bump) * 2);
}
@media (max-width: 991px) {
  .o-footer {
    padding: calc(var(--bump) / 2) 0 calc(var(--bump) / 2);
  }
}
.o-footer__seperator {
  display: block;
  height: 1px;
  background-color: var(--c-white);
}
.o-footer p, .o-footer .webform-submission-form label, .webform-submission-form .o-footer label,
.o-footer .webform-submission-form input,
.webform-submission-form .o-footer input,
.o-footer .webform-submission-form .webform-element-description,
.webform-submission-form .o-footer .webform-element-description,
.o-footer .webform-submission-form select option,
.webform-submission-form select .o-footer option,
.o-footer .webform-submission-form legend,
.webform-submission-form .o-footer legend, .o-footer .webform-submission-form textarea, .webform-submission-form .o-footer textarea {
  color: #fff;
  margin: 0;
}
.o-footer h4 {
  color: #ffffff;
  font-family: var(--fontBody);
  font-size: 18px;
  line-height: 28px;
  margin-bottom: -4px;
  margin-top: 22px;
  font-weight: unset;
}
.o-footer h4 strong {
  font-weight: 600;
}
.o-footer h4 a {
  text-decoration: underline;
}
.o-footer h4 a:hover {
  text-decoration: none;
}
.o-footer__info {
  padding: var(--bump) 0;
  background: #2f404a;
}
@media (max-width: 767px) {
  .o-footer__info {
    padding: calc(var(--bump) / 2) 0;
  }
}
.o-footer__info a {
  letter-spacing: 1px;
  line-height: 27px;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}
.o-footer__info a svg {
  width: 100%;
  max-width: 20px;
}
@media (max-width: 1199px) {
  .o-footer__info a svg {
    margin-left: 5px;
  }
}
.o-footer__info a:first-of-type {
  margin: 0;
}
@media (max-width: 767px) {
  .o-footer__info a {
    white-space: normal;
  }
}
@media (max-width: 249px) {
  .o-footer__info a {
    flex-direction: column-reverse;
    gap: 10px;
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.o-footer__info h2 {
  font-size: 22px;
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 28px;
  margin-bottom: 8px;
}
.o-footer__info p, .o-footer__info .webform-submission-form label, .webform-submission-form .o-footer__info label,
.o-footer__info .webform-submission-form input,
.webform-submission-form .o-footer__info input,
.o-footer__info .webform-submission-form .webform-element-description,
.webform-submission-form .o-footer__info .webform-element-description,
.o-footer__info .webform-submission-form select option,
.webform-submission-form select .o-footer__info option,
.o-footer__info .webform-submission-form legend,
.webform-submission-form .o-footer__info legend, .o-footer__info .webform-submission-form textarea, .webform-submission-form .o-footer__info textarea {
  line-height: 24px;
  color: #ffffff;
  margin: 0px;
}
@media (max-width: 299px) {
  .o-footer__info__home {
    text-align: center;
  }
}
.o-footer__info__home a svg {
  width: 100%;
  max-width: 218px;
}
@media (max-width: 767px) {
  .o-footer__info__home a svg {
    max-width: 151px;
  }
}
.o-footer__info__top {
  display: flow-root;
}
.o-footer__info__top__inner {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
  flex-wrap: nowrap;
}
@media (max-width: 299px) {
  .o-footer__info__top__inner {
    flex-direction: column;
    justify-content: center;
  }
}
.o-footer__info .col-md-7 {
  display: grid;
  grid-auto-flow: column;
  align-items: end;
}
@media (max-width: 767px) {
  .o-footer__info .col-md-7 {
    display: grid;
    grid-gap: 10px;
    grid-auto-flow: row;
  }
}
@media (min-width: 769px) {
  .o-footer__info .col-md-7 {
    margin: 0;
  }
}
.o-footer__row__left .m-block a {
  text-decoration: underline;
}
.o-footer__row__left .m-block a:hover {
  text-decoration: none;
}
.o-footer__row__middle {
  padding-left: 40px;
}
@media (max-width: 991px) {
  .o-footer__row__middle {
    padding-left: 15px;
  }
}
.o-footer__row__middle h4 {
  color: #ffffff;
  font-weight: 600;
  font-family: var(--fontBody);
  font-size: 18px;
  line-height: 28px;
  margin-bottom: 0px;
  margin-top: 0;
}
.o-footer__row__middle ul li {
  list-style-type: none;
  line-height: 2.0625rem;
  letter-spacing: 1px;
}
.o-footer__row__middle ul li a {
  list-style-type: none;
  text-decoration: none;
}
.o-footer__row__middle ul:hover {
  text-decoration: underline;
}
.o-footer__row__right h4 {
  color: #ffffff;
  font-weight: 600;
  font-family: var(--fontBody);
  font-size: 18px;
  line-height: 28px;
  margin-bottom: 0px;
  margin-top: 0;
}
.o-footer__row__right ul li {
  list-style-type: none;
  line-height: 2.0625rem;
}
.o-footer__row__right ul li a {
  list-style-type: none;
  text-decoration: none;
}
.o-footer__content a {
  color: #ffffff;
  text-decoration: none;
}
.o-footer__content a:hover {
  text-decoration: underline;
}
.o-footer__content ul {
  margin-top: 5px;
}
.o-footer__credits {
  background-color: #ffffff;
  padding: 11px 0px;
}
@media (max-width: 991px) {
  .o-footer__credits__wrapper {
    display: flex;
    flex-direction: column-reverse;
  }
}
.o-footer__credits__left .m-block {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  gap: calc(var(--bump) / 2);
  width: 100%;
}
.o-footer__credits__left .m-block img {
  height: 50px;
  width: auto;
}
.o-footer__credits__left a {
  text-decoration: none;
  display: inline-table;
}
.o-footer__credits__left a:hover {
  opacity: 0.7;
}
@media (min-width: 769px) {
  .o-footer__credits__left {
    margin: 0;
  }
}
.o-footer__credits .beans {
  letter-spacing: normal;
  word-spacing: initial;
  display: grid;
  align-items: center;
}
.o-footer__credits .beans p, .o-footer__credits .beans .webform-submission-form label, .webform-submission-form .o-footer__credits .beans label,
.o-footer__credits .beans .webform-submission-form input,
.webform-submission-form .o-footer__credits .beans input,
.o-footer__credits .beans .webform-submission-form .webform-element-description,
.webform-submission-form .o-footer__credits .beans .webform-element-description,
.o-footer__credits .beans .webform-submission-form select option,
.webform-submission-form select .o-footer__credits .beans option,
.o-footer__credits .beans .webform-submission-form legend,
.webform-submission-form .o-footer__credits .beans legend, .o-footer__credits .beans .webform-submission-form textarea, .webform-submission-form .o-footer__credits .beans textarea {
  color: #4a4a4a;
}
@media (max-width: 767px) {
  .o-footer__credits .beans {
    justify-content: left;
  }
}
@media (max-width: 991px) {
  .o-footer__credits .beans {
    justify-content: flex-start;
  }
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Views
 * ----------------------
 */
.o-view:first-child {
  margin-top: 0;
}
.o-view:last-child {
  margin-bottom: 0;
}
.o-view__blog form, .o-view__what_s_on form, .o-view__search_site form {
  margin: 0 0 50px;
}
.o-view__blog form .js-form-item .form-select ul, .o-view__what_s_on form .js-form-item .form-select ul, .o-view__search_site form .js-form-item .form-select ul {
  display: flex;
  flex-flow: row wrap;
  gap: 2px;
  row-gap: 8px;
  list-style-type: none;
  margin: 0;
}
@media (max-width: 767px) {
  .o-view__blog form .js-form-item .form-select ul, .o-view__what_s_on form .js-form-item .form-select ul, .o-view__search_site form .js-form-item .form-select ul {
    gap: 4px;
  }
}
.o-view__blog form .js-form-item .form-select ul li a, .o-view__what_s_on form .js-form-item .form-select ul li a, .o-view__search_site form .js-form-item .form-select ul li a {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 600;
  padding: 17px 20px;
  border: 0;
  color: var(--c-white);
  font-family: var(--fontTitle);
  background-color: var(--c-secondary);
  text-decoration: none;
  white-space: nowrap;
  padding: 10px 5px;
  font-size: 16px;
  line-height: 28px;
}
@media (max-width: 575px) {
  .o-view__blog form .js-form-item .form-select ul li a, .o-view__what_s_on form .js-form-item .form-select ul li a, .o-view__search_site form .js-form-item .form-select ul li a {
    white-space: nowrap;
  }
}
.o-view__blog form .js-form-item .form-select ul li a:hover, .o-view__what_s_on form .js-form-item .form-select ul li a:hover, .o-view__search_site form .js-form-item .form-select ul li a:hover {
  background-color: var(--c-primary);
}
.o-view__blog form .js-form-item .form-select ul li a.bef-link--selected, .o-view__what_s_on form .js-form-item .form-select ul li a.bef-link--selected, .o-view__search_site form .js-form-item .form-select ul li a.bef-link--selected {
  background-color: var(--c-tertiary);
  color: var(--c-black);
}
.o-view__blog form .form-submit, .o-view__what_s_on form .form-submit, .o-view__search_site form .form-submit {
  display: none;
}
.o-view__blog__rows, .o-view__what_s_on__rows, .o-view__search_site__rows {
  display: grid;
  gap: 22px;
  row-gap: calc(var(--bump) * 2);
  grid-template-columns: repeat(3, 1fr);
  margin: 40px 0 var(--bump);
}
@media (max-width: 767px) {
  .o-view__blog__rows, .o-view__what_s_on__rows, .o-view__search_site__rows {
    grid-template-columns: 1fr;
    gap: calc(var(--bump) / 2);
    margin: 0;
  }
}
.o-view__blog__rows > div, .o-view__what_s_on__rows > div, .o-view__search_site__rows > div {
  position: relative;
}
.o-view__tapestry_landing__title {
  font-size: clamp(22px, 2.5vw, 28px);
  line-height: clamp(30px, 5vw, 38px);
  color: var(--c-primary);
  margin: 0 0 calc(var(--bump) / 3);
}
@media (max-width: 475px) {
  .o-view__tapestry_landing__title {
    text-align: center;
    -moz-text-align-last: center;
         text-align-last: center;
  }
}
.o-view__tapestry_landing__row {
  display: flex;
  align-items: center;
  gap: var(--bumpSmall);
  flex-flow: row;
  text-decoration: none;
}
.o-view__tapestry_landing__row:hover {
  text-decoration: underline;
}
@media (max-width: 767px) {
  .o-view__tapestry_landing__row {
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
    -moz-text-align-last: left;
         text-align-last: left;
  }
}
.o-view__tapestry_landing__row__wrapper {
  display: grid;
  gap: calc(var(--bump) * 1.5);
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 767px) {
  .o-view__tapestry_landing__row__wrapper {
    grid-template-columns: repeat(1, 1fr);
  }
}
.o-view__tapestry_landing__row__title, .o-view__tapestry_landing__row__body {
  font-size: 18px;
  line-height: 28px;
}
.o-view__tapestry_landing__row__title {
  color: var(--c-primary);
  margin: 0;
}
.o-view__tapestry_landing__row__body {
  color: var(--c-black);
}
.o-view__tapestry_landing__row__thumb {
  display: inline-flex;
  max-width: 145px;
  width: 100%;
}
.o-view__tapestry_landing__row__thumb picture {
  display: inline-flex;
}
.o-view__tapestry_landing__row__thumb picture img {
  width: 100%;
}
.o-view__tapestry_landing__rows {
  position: relative;
  background: var(--c-tertiary);
  margin-bottom: 30px;
  padding: 30px 15px 40px 15px;
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Search results
 * ----------------------
 */
#search-form {
  display: none;
  visibility: hidden;
}

.o-search-results-wrapper h2 {
  display: none;
}
.o-search-results-wrapper .result__title {
  margin-bottom: 0;
}
.o-search-results-wrapper__list {
  margin-bottom: calc(var(--bump) * 2);
}
.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: var(--bump);
}

/**
 * ----------------------
 * Un.titled
 * Organisms - sidebar
 * ----------------------
 */
.o-sidebar {
  background-color: var(--c-quaternary);
  margin: 0 calc(var(--bump) / 2);
}
.o-sidebar ~ picture, .o-sidebar ~ img {
  display: flex;
  margin: 0 0 calc(var(--bump) / 2);
}
.o-sidebar__inner {
  padding: var(--bump);
}
.o-sidebar__inner--info {
  background-color: var(--c-secondary);
}
.o-sidebar__inner > p, .webform-submission-form .o-sidebar__inner > label,
.webform-submission-form .o-sidebar__inner > input,
.webform-submission-form .o-sidebar__inner > .webform-element-description,
.webform-submission-form select .o-sidebar__inner > option,
.webform-submission-form .o-sidebar__inner > legend, .webform-submission-form .o-sidebar__inner > textarea, .o-sidebar__inner > div {
  display: flex;
  justify-content: space-between;
  font-family: var(--fontBold);
}
@media (max-width: 991px) {
  .o-sidebar__inner > p, .webform-submission-form .o-sidebar__inner > label,
  .webform-submission-form .o-sidebar__inner > input,
  .webform-submission-form .o-sidebar__inner > .webform-element-description,
  .webform-submission-form select .o-sidebar__inner > option,
  .webform-submission-form .o-sidebar__inner > legend, .webform-submission-form .o-sidebar__inner > textarea, .o-sidebar__inner > div {
    flex-direction: column;
  }
}
@media (max-width: 767px) {
  .o-sidebar__inner > p, .webform-submission-form .o-sidebar__inner > label,
  .webform-submission-form .o-sidebar__inner > input,
  .webform-submission-form .o-sidebar__inner > .webform-element-description,
  .webform-submission-form select .o-sidebar__inner > option,
  .webform-submission-form .o-sidebar__inner > legend, .webform-submission-form .o-sidebar__inner > textarea, .o-sidebar__inner > div {
    flex-direction: row;
  }
}
@media (max-width: 449px) {
  .o-sidebar__inner > p, .webform-submission-form .o-sidebar__inner > label,
  .webform-submission-form .o-sidebar__inner > input,
  .webform-submission-form .o-sidebar__inner > .webform-element-description,
  .webform-submission-form select .o-sidebar__inner > option,
  .webform-submission-form .o-sidebar__inner > legend, .webform-submission-form .o-sidebar__inner > textarea, .o-sidebar__inner > div {
    flex-direction: column;
  }
}
.o-sidebar__inner > p > a, .webform-submission-form .o-sidebar__inner > label > a,
.webform-submission-form .o-sidebar__inner > input > a,
.webform-submission-form .o-sidebar__inner > .webform-element-description > a,
.webform-submission-form select .o-sidebar__inner > option > a,
.webform-submission-form .o-sidebar__inner > legend > a, .webform-submission-form .o-sidebar__inner > textarea > a, .o-sidebar__inner > p > span, .webform-submission-form .o-sidebar__inner > label > span,
.webform-submission-form .o-sidebar__inner > input > span,
.webform-submission-form .o-sidebar__inner > .webform-element-description > span,
.webform-submission-form select .o-sidebar__inner > option > span,
.webform-submission-form .o-sidebar__inner > legend > span, .webform-submission-form .o-sidebar__inner > textarea > span, .o-sidebar__inner > div > a, .o-sidebar__inner > div > span {
  font-family: var(--fontBook);
}
.o-sidebar__inner > p > a:first-of-type, .webform-submission-form .o-sidebar__inner > label > a:first-of-type,
.webform-submission-form .o-sidebar__inner > input > a:first-of-type,
.webform-submission-form .o-sidebar__inner > .webform-element-description > a:first-of-type,
.webform-submission-form select .o-sidebar__inner > option > a:first-of-type,
.webform-submission-form .o-sidebar__inner > legend > a:first-of-type, .webform-submission-form .o-sidebar__inner > textarea > a:first-of-type, .o-sidebar__inner > p > span:first-of-type, .webform-submission-form .o-sidebar__inner > label > span:first-of-type,
.webform-submission-form .o-sidebar__inner > input > span:first-of-type,
.webform-submission-form .o-sidebar__inner > .webform-element-description > span:first-of-type,
.webform-submission-form select .o-sidebar__inner > option > span:first-of-type,
.webform-submission-form .o-sidebar__inner > legend > span:first-of-type, .webform-submission-form .o-sidebar__inner > textarea > span:first-of-type, .o-sidebar__inner > div > a:first-of-type, .o-sidebar__inner > div > span:first-of-type {
  flex-basis: 30%;
  font-family: var(--fontBold);
}
.o-sidebar__inner > p > a:last-of-type, .webform-submission-form .o-sidebar__inner > label > a:last-of-type,
.webform-submission-form .o-sidebar__inner > input > a:last-of-type,
.webform-submission-form .o-sidebar__inner > .webform-element-description > a:last-of-type,
.webform-submission-form select .o-sidebar__inner > option > a:last-of-type,
.webform-submission-form .o-sidebar__inner > legend > a:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > a:last-of-type, .o-sidebar__inner > p > span:last-of-type, .webform-submission-form .o-sidebar__inner > label > span:last-of-type,
.webform-submission-form .o-sidebar__inner > input > span:last-of-type,
.webform-submission-form .o-sidebar__inner > .webform-element-description > span:last-of-type,
.webform-submission-form select .o-sidebar__inner > option > span:last-of-type,
.webform-submission-form .o-sidebar__inner > legend > span:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > span:last-of-type, .o-sidebar__inner > div > a:last-of-type, .o-sidebar__inner > div > span:last-of-type {
  flex-basis: 70%;
}
@media (max-width: 991px) {
  .o-sidebar__inner > p > a:last-of-type, .webform-submission-form .o-sidebar__inner > label > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > input > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > .webform-element-description > a:last-of-type,
  .webform-submission-form select .o-sidebar__inner > option > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > legend > a:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > a:last-of-type, .o-sidebar__inner > p > span:last-of-type, .webform-submission-form .o-sidebar__inner > label > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > input > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > .webform-element-description > span:last-of-type,
  .webform-submission-form select .o-sidebar__inner > option > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > legend > span:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > span:last-of-type, .o-sidebar__inner > div > a:last-of-type, .o-sidebar__inner > div > span:last-of-type {
    text-align: left;
    flex-basis: auto;
  }
}
@media (max-width: 767px) {
  .o-sidebar__inner > p > a:last-of-type, .webform-submission-form .o-sidebar__inner > label > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > input > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > .webform-element-description > a:last-of-type,
  .webform-submission-form select .o-sidebar__inner > option > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > legend > a:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > a:last-of-type, .o-sidebar__inner > p > span:last-of-type, .webform-submission-form .o-sidebar__inner > label > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > input > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > .webform-element-description > span:last-of-type,
  .webform-submission-form select .o-sidebar__inner > option > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > legend > span:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > span:last-of-type, .o-sidebar__inner > div > a:last-of-type, .o-sidebar__inner > div > span:last-of-type {
    text-align: right;
  }
}
@media (max-width: 449px) {
  .o-sidebar__inner > p > a:last-of-type, .webform-submission-form .o-sidebar__inner > label > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > input > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > .webform-element-description > a:last-of-type,
  .webform-submission-form select .o-sidebar__inner > option > a:last-of-type,
  .webform-submission-form .o-sidebar__inner > legend > a:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > a:last-of-type, .o-sidebar__inner > p > span:last-of-type, .webform-submission-form .o-sidebar__inner > label > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > input > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > .webform-element-description > span:last-of-type,
  .webform-submission-form select .o-sidebar__inner > option > span:last-of-type,
  .webform-submission-form .o-sidebar__inner > legend > span:last-of-type, .webform-submission-form .o-sidebar__inner > textarea > span:last-of-type, .o-sidebar__inner > div > a:last-of-type, .o-sidebar__inner > div > span:last-of-type {
    text-align: left;
  }
}
.o-sidebar__inner > div {
  margin: 1.5em 0 0;
}
.o-sidebar > .a-btn {
  margin: var(--bump) 0 0;
}
.o-sidebar__location {
  display: inline;
}
.o-sidebar__menu {
  padding: calc(var(--bump) / 2);
  background-color: var(--c-tertiary);
}
@media (max-width: 767px) {
  .o-sidebar__menu {
    display: none;
  }
}
.o-sidebar__menu .back-menu {
  display: none !important;
}
.o-sidebar__menu > ul.menu {
  position: relative;
}
.o-sidebar__menu > ul.menu a {
  display: block;
  text-decoration: none;
  margin: 0 0 calc(var(--bump) / 3);
  font-family: var(--fontPoppinsRegular);
  color: #333333;
}
.o-sidebar__menu > ul.menu a.back-menu {
  display: none;
}
.o-sidebar__menu > ul.menu a:hover {
  text-decoration: underline !important;
}
.o-sidebar__menu > ul.menu a.is-active {
  position: relative;
}
.o-sidebar__menu > ul.menu a.is-active:before {
  content: "▸";
  position: absolute;
  left: calc(var(--bump) / -2);
}
.o-sidebar__menu > ul.menu > .menu-item {
  list-style: none;
}
.o-sidebar__menu > ul.menu > li:last-child a {
  margin-bottom: 0;
}
.o-sidebar__menu > ul.menu .m-main-nav__link {
  margin: calc(var(--bump) / 2) 0 0;
}
.o-sidebar__menu > ul.menu > li {
  margin: 0 0 0 calc(var(--bump) / 2);
  display: none;
}
.o-sidebar__menu > ul.menu > li:before {
  content: "▸";
  position: absolute;
  left: 0;
}
.o-sidebar__menu > ul.menu > li.is-active-trail {
  margin: 0;
  display: block;
}
.o-sidebar__menu > ul.menu > li.is-active-trail a {
  display: block;
  text-decoration: none;
  margin: 0 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > a.is-active-trail {
  display: block;
  margin: 0 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
  font-family: var(--fontSemiBold);
  font-weight: 600;
  text-indent: 0px;
  list-style-type: none;
  text-decoration: underline;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu {
  display: block;
  margin: calc(var(--bump) / 3) 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail {
  margin: 0;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu {
  display: block;
  margin: calc(var(--bump) / 3) 0 0 calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu li.is-active-trail > ul.menu {
  display: block !important;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu li > a {
  display: block;
  text-decoration: none;
  margin: 0 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu li > a.is-active-trail {
  font-family: var(--fontSemiBold);
  font-weight: 600;
  text-indent: 0px;
  list-style-type: none;
  text-decoration: underline;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu li > ul.menu {
  margin: calc(var(--bump) / 3) 0 0 calc(var(--bump) / 2);
  display: none;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu li > ul.menu li > a {
  display: block;
  text-decoration: none;
  margin: 0 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li.is-active-trail > ul.menu li > ul.menu li > a.is-active-trail {
  font-family: var(--fontBodyBold);
  text-indent: 0px;
  list-style-type: none;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li > a {
  display: block;
  text-decoration: none;
  margin: 0 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li > a.is-active-trail {
  font-family: var(--fontSemiBold);
  font-weight: 600;
  text-indent: 0px;
  list-style-type: none;
  text-decoration: underline;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li > ul.menu {
  margin: calc(var(--bump) / 3) 0 0 calc(var(--bump) / 2);
  display: none;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li > ul.menu > li.is-active-trail:before {
  content: "▸";
  position: absolute;
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li > ul.menu > li > a {
  display: block;
  text-decoration: none;
  margin: 0 0 calc(var(--bump) / 3) calc(var(--bump) / 2);
}
.o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu li > ul.menu > li > a.is-active-trail {
  font-family: var(--fontBodyBold);
  text-indent: 0px;
  list-style-type: none;
}
.o-sidebar__menu > ul.menu > li > ul.menu {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail {
  display: block;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail:before {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > a.is-active-trail {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu {
  display: block;
  margin: calc(var(--bump) / 3) 0 var(--bump) 0;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li:before {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail {
  display: block;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail > ul.menu {
  margin: calc(var(--bump) / 3) 0 var(--bump) 0;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail {
  display: block;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail > ul.menu {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail > ul.menu > li > a {
  display: block;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li.is-active-trail > ul.menu > li > ul.menu {
  display: none;
}
.ct__session .o-sidebar__menu > ul.menu > li.is-active-trail > ul.menu > li > a.is-active-trail {
  display: block;
  font-family: var(--fontPoppinsSemi);
  text-decoration: none;
  font-size: 22px;
  line-height: 28px;
  color: #333333;
  margin: 0;
}
.ct__session .o-sidebar__menu > ul.menu > li > ul.menu {
  display: none;
}
.o-sidebar__related {
  color: var(--c-grey);
}
.o-sidebar__cta ~ .o-sidebar {
  margin: calc(var(--bump) + 10px) 0 0;
}
@media (max-width: 767px) {
  .o-sidebar__subnav {
    display: none;
  }
}

/**
 * ----------------------
 * Un.titled
 * Organisms - Teasers
 * ----------------------
 */
.o-teaser {
  display: flex;
  flex-direction: column-reverse;
  justify-content: flex-end;
  align-items: flex-start;
  gap: calc(var(--bump) * 2 + 10px);
}
.o-teaser__title {
  color: var(--c-primary);
}
.o-teaser__thumb {
  display: block;
  width: 100%;
  position: relative;
  background-color: var(--c-primary);
}
.o-teaser__thumb .a-image-credit {
  left: calc(var(--bump) / 1.5);
}
.o-teaser__thumb img {
  width: 100%;
  height: auto;
  display: block;
  transition: var(--transition);
}
.o-teaser__thumb:after {
  content: "";
  background-color: var(--c-secondary);
  position: absolute;
  transform: translateY(var(--bump));
  height: 5px;
  width: 107px;
}
.o-teaser__thumb:hover img {
  opacity: 0.6;
}
.o-teaser__thumb:hover:after {
  width: 100%;
}
.o-teaser__thumb__wrapper {
  position: relative;
}
.o-teaser__thumb__wrapper .a-btn {
  display: flex;
  position: absolute;
  margin: 0;
  bottom: 0;
  left: 0;
  color: #fff;
  text-decoration: none;
  width: auto;
}
.o-teaser__thumb__wrapper .a-btn.a-booking-cta__cta__sold-out {
  color: var(--c-black);
  border: 1px solid var(--c-black);
  background-color: var(--c-white);
  pointer-events: none;
}
.o-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 0 0 calc(var(--bump) / 2);
}
.o-teaser__content > p, .webform-submission-form .o-teaser__content > label,
.webform-submission-form .o-teaser__content > input,
.webform-submission-form .o-teaser__content > .webform-element-description,
.webform-submission-form select .o-teaser__content > option,
.webform-submission-form .o-teaser__content > legend, .webform-submission-form .o-teaser__content > textarea {
  font-size: 18px;
  line-height: 28px;
}
.o-teaser__content > p:last-of-type, .webform-submission-form .o-teaser__content > label:last-of-type,
.webform-submission-form .o-teaser__content > input:last-of-type,
.webform-submission-form .o-teaser__content > .webform-element-description:last-of-type,
.webform-submission-form select .o-teaser__content > option:last-of-type,
.webform-submission-form .o-teaser__content > legend:last-of-type, .webform-submission-form .o-teaser__content > textarea:last-of-type {
  margin: 0 0 var(--bump) 0;
}
@media (max-width: 767px) {
  .o-teaser__content > p:last-of-type, .webform-submission-form .o-teaser__content > label:last-of-type,
  .webform-submission-form .o-teaser__content > input:last-of-type,
  .webform-submission-form .o-teaser__content > .webform-element-description:last-of-type,
  .webform-submission-form select .o-teaser__content > option:last-of-type,
  .webform-submission-form .o-teaser__content > legend:last-of-type, .webform-submission-form .o-teaser__content > textarea:last-of-type {
    margin: 0 0 calc(var(--bump) / 2) 0;
  }
}
.o-teaser__content > h2 a {
  font-size: 22px;
  line-height: 33px;
  text-decoration: none;
}
.o-teaser__content__wrapper {
  text-decoration: none !important;
}
.o-teaser__content__wrapper:hover ~ .o-teaser__thumb img {
  opacity: 0.6;
}
.o-teaser__content__wrapper:hover ~ .o-teaser__thumb:after {
  width: 100%;
}
.o-teaser__content__wrapper:hover ~ .o-teaser__thumb__wrapper .o-teaser__thumb img {
  opacity: 0.6;
}
.o-teaser__content__wrapper:hover ~ .o-teaser__thumb__wrapper .o-teaser__thumb:after {
  width: 100%;
}
.o-teaser__buttons {
  margin-top: auto;
  padding: 0 calc(var(--bump) / 1.5) calc(var(--bump) / 1.5);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(var(--bump) / 2);
  align-self: flex-start;
}
.o-teaser__date {
  font-size: 18px;
  line-height: 28px;
  margin: 0;
  color: var(--c-black);
  font-family: var(--fontTitle);
}
.o-teaser-tapestry-scene-pager {
  position: relative;
  justify-content: center;
  height: 100%;
}
@media (max-width: 1369px) {
  .o-teaser-tapestry-scene-pager {
    gap: calc(var(--bump) / 2);
  }
}
.o-teaser-tapestry-scene-pager .o-teaser__content {
  flex-direction: column;
}
@media (max-width: 1369px) {
  .o-teaser-tapestry-scene-pager .o-teaser__content__wrapper {
    margin: calc(var(--bump) * 1.5) 0 0;
  }
}
.o-teaser__tapestry-chapter {
  font-family: var(--fontPoppinsSemi);
  font-weight: 600;
  color: var(--c-primary);
}
.o-teaser__tapestry-scene {
  color: var(--c-black);
}
.o-teaser__next-previous {
  text-decoration: none;
}
.o-teaser__next-previous:hover ~ .o-teaser__thumb__wrapper .o-teaser__thumb img {
  opacity: 0.6;
}
.o-teaser__next-previous:hover ~ .o-teaser__thumb__wrapper .o-teaser__thumb:after {
  width: 100%;
}

.o-signpost__title {
  position: absolute;
  bottom: var(--bump);
  left: var(--bump);
  margin: 0;
  color: var(--c-white);
  z-index: 1;
  font-size: 28px;
  line-height: 42px;
  font-weight: 600;
  max-width: 80%;
}
@media (max-width: 767px) {
  .o-signpost__title {
    line-height: 24px;
    bottom: calc(var(--bump) / 3 * 2);
    left: calc(var(--bump) / 3 * 2);
  }
}
.o-signpost__thumb {
  position: relative;
  display: grid;
}
.o-signpost__thumb picture {
  position: relative;
}
.o-signpost__thumb picture:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  transition-duration: 800ms;
  background: linear-gradient(180deg, rgba(92, 116, 129, 0) 0%, rgba(68, 89, 100, 0.53) 38.89%, #2f404a 100%);
}
.o-signpost__thumb picture:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 1;
  transition-duration: 700ms;
  background: linear-gradient(180deg, rgba(92, 116, 129, 0) 0%, rgba(68, 89, 100, 0.53) 70.94%, #2f404a 100%);
}
.o-signpost__thumb:hover picture:before {
  opacity: 1;
  transition-duration: 700ms;
}
.o-signpost__thumb:hover picture:after {
  opacity: 0;
  transition-duration: 800ms;
}
.o-signpost__thumb:focus {
  outline: 3px solid var(--c-focus);
  outline-offset: calc(var(--bump) / 3);
}
.js-focus-visible .o-signpost__thumb:focus:not(.focus-visible) {
  outline: 0;
}

.o-calender {
  background: #fff;
  cursor: default;
  position: relative;
  width: 95%;
  max-width: 800px;
  text-align: left;
  padding: 30px;
  margin-bottom: 30px;
  height: 80vh;
  display: grid;
  overflow: scroll;
}
.o-calender .close-calendar {
  cursor: pointer;
  float: right;
  display: flex;
  justify-content: flex-end;
}
.o-calender__view .views-element-container .view-id-calender {
  position: relative;
}
.o-calender__view .views-element-container .view-id-calender .calendar-view-pager__reset {
  display: none;
}
.o-calender__view .views-element-container .view-id-calender ul.pager__items {
  position: absolute;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 767px) {
  .o-calender__view .views-element-container .view-id-calender ul.pager__items {
    flex-direction: inherit;
  }
}
.o-calender__view .views-element-container .view-id-calender ul.pager__items li.pager__current {
  display: none;
}
.o-calender__view .views-element-container .view-id-calender ul.pager__items li a {
  text-align: center;
  display: flex;
}
.o-calender__view .views-element-container .view-id-calender ul.pager__items li.pager__previous a {
  justify-content: left;
}
.o-calender__view .views-element-container .view-id-calender ul.pager__items li.pager__next a {
  justify-content: right;
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table {
  max-width: 680px;
  margin: 0 auto;
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table caption {
  width: 100%;
  display: flex;
  justify-content: center;
}
@media (max-width: 767px) {
  .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table thead tr {
    display: flex;
  }
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table thead th {
  background: transparent;
  color: #4a4a4a;
  font-weight: 700;
  border: 0;
  padding: 15px 0;
  text-align: center;
  display: flex;
  justify-content: center;
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td {
  background: none;
  border: none;
  min-height: auto;
  min-width: auto;
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td .calendar-view-day:not(.empty) time {
  cursor: pointer;
  color: #4a4a4a;
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td .calendar-view-day time {
  text-decoration: none;
  align-self: center;
  color: #777;
  text-align: center;
  vertical-align: top;
  margin: 0;
  padding: 0;
  font-size: 18px;
  font-family: "openSansSemiBold";
  background: none;
  justify-content: center;
  display: flex;
  cursor: initial;
}
.o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table .calendar-view-day__rows {
  display: none;
}
.o-calender__listing {
  height: 100%;
}
.o-calender__listing h2 {
  margin: 0;
}
@media (max-width: 767px) {
  .o-calender__listing h2 {
    margin: auto;
  }
}
.o-calender__listing h2 a {
  color: #4a4a4a;
}
.o-calender__listing ul li {
  width: 100%;
  display: grid;
  grid-template-columns: auto 100px 168px;
  align-items: center;
  grid-gap: 20px;
  padding: 10px 15px;
}
@media (max-width: 767px) {
  .o-calender__listing ul li {
    grid-template-columns: 1fr;
  }
}
.o-calender__listing ul li:nth-child(odd) {
  background: #efefef;
}
.o-calender__listing ul li a.book {
  background-color: #4f6c7d;
  font-family: poppinssemibold;
  font-size: 30px;
  letter-spacing: 1px;
  line-height: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  padding: 15px 0 15px 15px;
  font-size: 18px;
  text-decoration: none;
}
@media (max-width: 767px) {
  .o-calender__listing ul li a.book {
    justify-content: center;
  }
}
.o-calender__listing ul li a.book:after {
  content: "";
  background-image: url(../img/ticket-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  right: 14px;
  top: 15px;
  height: 25px;
  width: 25px;
}
.o-calender__listing ul li:hover {
  background: #e0e0e0;
}
.o-calender__listing ul li + .calendar-view-day__row {
  margin-top: 0;
}
@media (max-width: 767px) {
  .o-calender__listing--date {
    display: flex;
    justify-content: center;
  }
}

.o-node > section.m-entity:last-of-type {
  margin-bottom: 0;
}

.o-tapestry__title h2 {
  color: #2F404A;
  font-size: 44px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 61px;
}
.o-tapestry__title h3 {
  color: #4A4A4A;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 39px;
}
.o-tapestry__images img, .o-tapestry__images smart-frame-embed {
  width: 100%;
  height: 468px;
}

.o-whatson-listing__header {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: var(--bump);
}
@media (max-width: 991px) {
  .o-whatson-listing__header {
    grid-gap: calc(var(--bump) / 2);
  }
}
@media (max-width: 767px) {
  .o-whatson-listing__header {
    grid-template-columns: 1fr;
  }
}
.o-whatson-listing__header h2 {
  margin: auto;
  color: var(--c-secondary);
}
@media (max-width: 767px) {
  .o-whatson-listing__header h2 {
    margin: 0 auto 0 0;
  }
}
.o-whatson-listing__header ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.o-whatson-listing__header ul li {
  margin: 0 0 3px;
  display: inline-block;
  padding: 15px 0;
}
.o-whatson-listing__header ul li a {
  background-color: #4f6c7d;
  font-weight: 400;
  border: 1px solid #fff;
  padding: 15px;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
@media (max-width: 991px) {
  .o-whatson-listing__header ul li a {
    padding: 15px 7.5px;
  }
}
@media (max-width: 767px) {
  .o-whatson-listing__header ul li a {
    padding: 15px;
  }
}
.o-whatson-listing__header ul li a.active {
  background-color: #e5eaed;
  color: #4a4a4a;
}
.o-whatson-listing__header ul li a:hover, .o-whatson-listing__header ul li a:focus {
  color: #fff;
  background-color: #4f6c7d;
}
.o-whatson-listing .view__what_s_on .views-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.overlay-wrapper {
  display: none;
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 9999;
  text-align: center;
  cursor: pointer;
  overflow-y: scroll;
  align-items: center;
  justify-content: center;
}
body[data-calender=open] .overlay-wrapper {
  display: flex;
}
.overlay-wrapper .o-calender {
  background: #fff;
  cursor: default;
  position: relative;
  width: 95%;
  max-width: 800px;
  text-align: left;
  padding: 30px;
  margin-bottom: 30px;
  max-height: 80vh;
  height: auto;
}
.overlay-wrapper .o-calender .close-calendar {
  cursor: pointer;
  float: right;
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table {
  max-width: 680px;
  margin: 0 auto;
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table thead th {
  background: transparent;
  color: #4a4a4a;
  font-weight: 700;
  border: 0;
  padding: 15px 0;
  text-align: center;
  display: flex;
  justify-content: center;
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody {
  grid-template-columns: repeat(7, 1fr);
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr {
  grid-template-columns: repeat(7, 1fr) !important;
}
@media (max-width: 991px) {
  .overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr {
    grid-column: inherit;
  }
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td {
  background: none;
  border: none;
  min-height: auto;
  min-width: auto;
}
@media (max-width: 767px) {
  .overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td {
    display: flex;
  }
}
@media (max-width: 767px) {
  .overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td .calendar-view-day {
    padding: 0.1rem;
  }
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td .calendar-view-day:not(.empty) time {
  cursor: pointer;
  color: #4a4a4a;
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table tbody tr td .calendar-view-day time {
  text-decoration: none;
  align-self: center;
  color: #777;
  text-align: center;
  vertical-align: top;
  margin: 0;
  padding: 0;
  font-size: 18px;
  font-family: "openSansSemiBold";
  background: none;
  justify-content: center;
  display: flex;
  cursor: initial;
}
.overlay-wrapper .o-calender__view .views-element-container .view-id-calender .view-content .view-calendar table .calendar-view-day__rows {
  display: none;
}
.overlay-wrapper .o-calender__listing h2 {
  margin: 0;
}
.overlay-wrapper .o-calender__listing h2 a {
  color: #4a4a4a;
}
.overlay-wrapper .o-calender__listing ul li {
  width: 100%;
  display: grid;
  grid-template-columns: auto 100px 168px;
  align-items: center;
  grid-gap: 20px;
  padding: 10px 15px;
}
@media (max-width: 767px) {
  .overlay-wrapper .o-calender__listing ul li {
    grid-template-columns: auto;
    gap: 0;
  }
  .overlay-wrapper .o-calender__listing ul li h2 {
    display: flex;
    justify-content: center;
  }
  .overlay-wrapper .o-calender__listing ul li .o-calender__listing--date {
    grid-column-start: 1;
  }
  .overlay-wrapper .o-calender__listing ul li a {
    grid-column-start: 3;
    grid-row-start: 1;
    grid-row-end: 3;
  }
}
.overlay-wrapper .o-calender__listing ul li:nth-child(odd) {
  background: #efefef;
}
.overlay-wrapper .o-calender__listing ul li a.book {
  background-color: #4f6c7d;
  font-family: poppinssemibold;
  font-size: 30px;
  letter-spacing: 1px;
  line-height: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  padding: 15px 0 15px 15px;
  font-size: 18px;
  text-decoration: none;
}
.overlay-wrapper .o-calender__listing ul li a.book:after {
  content: "";
  background-image: url(../img/ticket-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  right: 14px;
  top: 15px;
  height: 25px;
  width: 25px;
}

.controls {
  position: absolute;
  right: -30%;
  top: 0;
  width: 25%;
  background: #2f404a;
  z-index: 2;
  box-shadow: 0px 0px 12px -2px #4f6c7d;
  overflow: hidden;
  transition: right 0.2s ease-out;
}
@media (max-width: 767px) {
  .controls {
    width: 100%;
    right: 0;
    position: relative;
    box-shadow: none;
    display: block;
    overflow: visible;
  }
}
.controls.active {
  right: 0;
}
.controls.active .inner {
  padding: 2em 2em 1em 1em;
}
@media (max-width: 767px) {
  .controls.active .inner {
    padding: 1em 2em 1em 1em;
  }
}
.controls.active .inner .a-btn {
  display: inline-block;
}
.controls.active .inner .a-btn:hover {
  background-color: #fff;
  border-color: #fff;
  color: #2f404a;
}
.controls.active .inner .a-btn--clear-filters {
  border: 0;
  background: none;
  text-decoration: underline;
}
.controls.active .inner .a-btn--clear-filters.reset-map {
  display: inline-block;
  margin-top: 10px;
  font-size: 16px;
  font-family: var(--fontSemiBold);
  color: var(--c-white);
}
@media (max-width: 767px) {
  .controls.active .inner .a-btn--clear-filters.reset-map {
    margin-top: 6px;
  }
}
.controls.active .inner h3 {
  color: var(--c-white);
}
.controls.active .inner .MuiSlider-rail {
  background: var(--c-primary);
  border-radius: 4px;
  box-shadow: inset 0 0 3px rgba(255, 255, 255, 0.45);
  transition: background 450ms;
  height: 18px;
  border: 1px solid white;
}
.controls.active .inner .MuiSlider-track {
  left: 0%;
  width: 60%;
  background: rgb(255, 255, 255);
  border-radius: 4px;
  box-shadow: rgba(79, 108, 125, 0.85) 0px 0px 3px inset;
  transition: background 450ms ease 0s;
  height: 18px;
  border: 1px solid white;
}
.controls.active .inner .MuiSlider-thumb {
  border: 1px solid #D9D9D9;
  border-radius: 3px;
  background: #FFF;
  cursor: default;
  box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;
  width: 34px;
  height: 28px;
  /* Handle stripes;
  */
}
.controls.active .inner .MuiSlider-thumb:before, .controls.active .inner .MuiSlider-thumb:after {
  content: "";
  display: block;
  position: absolute;
  height: 14px;
  width: 1px;
  background: #E8E7E6;
  left: 14px;
}
.controls.active .inner .MuiSlider-thumb:after {
  left: 17px;
}
.controls.active .inner .MuiSwitch-root {
  width: 60px;
}
.controls.active .inner .MuiSwitch-thumb {
  border: 1px solid #D9D9D9;
  border-radius: 3px;
  background: #FFF;
  cursor: default;
  box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;
  width: 20px;
  height: 20px;
  /* Handle stripes;
  */
}
.controls.active .inner .MuiSwitch-thumb:before, .controls.active .inner .MuiSwitch-thumb:after {
  content: "";
  display: block;
  position: absolute;
  height: 14px;
  width: 1px;
  background: #E8E7E6;
  left: 14px;
}
.controls.active .inner .MuiSwitch-thumb:after {
  left: 17px;
}
.controls.active .inner .MuiSwitch-track {
  left: 0%;
  width: 100%;
  background: rgb(255, 255, 255);
  border-radius: 4px;
  box-shadow: rgba(79, 108, 125, 0.85) 0px 0px 3px inset;
  transition: background 450ms ease 0s;
  height: 18px;
  border: 1px solid white;
}
.controls.active .inner .MuiSwitch-switchBase {
  top: 2px;
}
.controls.active .inner .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track {
  opacity: 1;
}
.controls.active .inner .map-option.first {
  margin-bottom: 1em;
}
.controls.active .inner .map-option .full {
  display: block;
}
.controls.active .inner .map-option .mob {
  display: none;
}
@media (max-width: 767px) {
  .controls.active .inner .map-option {
    margin-bottom: 15px;
  }
  .controls.active .inner .map-option.first {
    display: none;
  }
  .controls.active .inner .map-option .full {
    display: none;
  }
  .controls.active .inner .map-option .mob {
    display: block;
  }
}
.controls.active .inner .map-option h3 {
  margin-bottom: 0;
  color: var(--c-white);
}
.controls.active .inner .map-option p, .controls.active .inner .map-option .webform-submission-form label, .webform-submission-form .controls.active .inner .map-option label,
.controls.active .inner .map-option .webform-submission-form input,
.webform-submission-form .controls.active .inner .map-option input,
.controls.active .inner .map-option .webform-submission-form .webform-element-description,
.webform-submission-form .controls.active .inner .map-option .webform-element-description,
.controls.active .inner .map-option .webform-submission-form select option,
.webform-submission-form select .controls.active .inner .map-option option,
.controls.active .inner .map-option .webform-submission-form legend,
.webform-submission-form .controls.active .inner .map-option legend, .controls.active .inner .map-option .webform-submission-form textarea, .webform-submission-form .controls.active .inner .map-option textarea {
  margin-bottom: 5px;
  color: var(--c-white);
}

.toggle {
  text-indent: -9999px;
  display: block;
  position: absolute;
  z-index: 5;
  top: 0;
  right: 0;
  height: 40px;
  width: 40px;
  line-height: 40px;
  background-color: #4f6c7d;
  text-decoration: none;
  background-image: url("../img/map-chevron.svg");
  background-size: 30px;
  border: 1px solid #4f6c7d;
  background-repeat: no-repeat;
  background-position: center;
}
.toggle:hover {
  background-color: #fff;
  background-image: url("../img/map-chevron-dark.svg");
  border-color: #fff;
}
.toggle.active {
  background-color: #4f6c7d;
  background-image: url("../img/map-close-white.svg");
  background-size: 20px;
  border-color: #4f6c7d;
}
.toggle.active:hover {
  background-color: #fff;
  background-image: url("../img/map-close.svg");
}
@media (max-width: 767px) {
  .toggle {
    display: none;
  }
}
.toggle.toggle--view {
  display: none;
  top: auto;
  bottom: -40px;
  transform: rotate(-90deg);
}
@media (max-width: 767px) {
  .toggle.toggle--view {
    display: block;
  }
}
.toggle.toggle--view.scroll {
  position: relative;
}

#react-marker-map {
  overflow: hidden;
  height: 750px;
}
#react-marker-map .App {
  overflow: hidden;
}

/**
 * Templates
 */

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qkk7RUFqQko7SUFrQlEsaUJERks7RUhzbEJYO0FBQ0Y7O0FJN2tCQTtFQzJYSSw4QkQxWG9CO0VDMlhwQiwyQkQzWG9CO0VDNFhwQixzQkQ1WG9CO0VBQ3BCO0VDcUdBO0VBQ0E7RUFDQTtFQTRDQSxtQkFEb0I7RUFFcEIsdUJBRm9CO0VBR3BCLGVBSG9CO0VEL0lwQjtFQUNBO0VBQ0E7RUNMSTtHQUNBO0VBQ0E7RURhSjtBSmdsQko7QUl2bEJJO0VDaVhBLDhCRC9Xd0I7RUNnWHhCLDJCRGhYd0I7RUNpWHhCLHNCRGpYd0I7RUNGcEI7RUFDQTtFQUNBO0FMNmxCUjs7QUlqbEJBO0VDbVdJLDhCRGxXb0I7RUNtV3BCLDJCRG5Xb0I7RUNvV3BCLHNCRHBXb0I7RUNmaEI7RUFDQTtFQUNBO0VEZUo7RUFDQTtFQUNBO0VBQ0EsYURyQmtCO0VDb0NkO0dBQ0E7RUFDQTtBSjBrQlI7QUl6bEJJO0VDMlZBLDhCRHpWd0I7RUMwVnhCLDJCRDFWd0I7RUMyVnhCLHNCRDNWd0I7RUN4QnBCO0VBQ0E7RUFDQTtBTHFuQlI7QUkxbEJJO0VDNkVJO0VBR0o7RUFDQTtFRC9FSTtBSjhsQlI7O0FLcnFCUTtFQUNJO0dBRUk7QUx1cUJoQjs7QUsxcUJRO0VBQ0k7R0FFSTtBTDRxQmhCOztBSy9xQlE7RUFDSTtHQUVJO0FMaXJCaEI7O0FLcHJCUTtFQUNJO0dBRUk7QUxzckJoQjs7QUt6ckJRO0VBQ0k7R0FFSTtBTDJyQmhCOztBSzlyQlE7RUFDSTtHQUVJO0FMZ3NCaEI7O0FLbnNCUTtFQUNJO0dBRUk7QUxxc0JoQjs7QUt4c0JRO0VBQ0k7R0FFSTtBTDBzQmhCOztBSzdzQlE7RUFDSTtHQUVJO0FMK3NCaEI7O0FLbHRCUTtFQUNJO0dBRUk7QUxvdEJoQjs7QUt2dEJRO0VBQ0k7R0FFSTtBTHl0QmhCOztBSzV0QlE7RUFDSTtHQUVJO0FMOHRCaEI7O0FJMW9CQTtFQ3ZGUTtJQUNJO0tBRUk7RUxvdUJkO0VLdnVCTTtJQUNJO0tBRUk7RUx3dUJkO0VLM3VCTTtJQUNJO0tBRUk7RUw0dUJkO0VLL3VCTTtJQUNJO0tBRUk7RUxndkJkO0VLbnZCTTtJQUNJO0tBRUk7RUxvdkJkO0VLdnZCTTtJQUNJO0tBRUk7RUx3dkJkO0VLM3ZCTTtJQUNJO0tBRUk7RUw0dkJkO0VLL3ZCTTtJQUNJO0tBRUk7RUxnd0JkO0VLbndCTTtJQUNJO0tBRUk7RUxvd0JkO0VLdndCTTtJQUNJO0tBRUk7RUx3d0JkO0VLM3dCTTtJQUNJO0tBRUk7RUw0d0JkO0VLL3dCTTtJQUNJO0tBRUk7RUxneEJkO0FBQ0Y7QUl6ckJBO0VDM0ZRO0lBQ0k7S0FFSTtFTHN4QmQ7RUt6eEJNO0lBQ0k7S0FFSTtFTDB4QmQ7RUs3eEJNO0lBQ0k7S0FFSTtFTDh4QmQ7RUtqeUJNO0lBQ0k7S0FFSTtFTGt5QmQ7RUtyeUJNO0lBQ0k7S0FFSTtFTHN5QmQ7RUt6eUJNO0lBQ0k7S0FFSTtFTDB5QmQ7RUs3eUJNO0lBQ0k7S0FFSTtFTDh5QmQ7RUtqekJNO0lBQ0k7S0FFSTtFTGt6QmQ7RUtyekJNO0lBQ0k7S0FFSTtFTHN6QmQ7RUt6ekJNO0lBQ0k7S0FFSTtFTDB6QmQ7RUs3ekJNO0lBQ0k7S0FFSTtFTDh6QmQ7RUtqMEJNO0lBQ0k7S0FFSTtFTGswQmQ7QUFDRjtBSXZ1QkE7RUMvRlE7SUFDSTtLQUVJO0VMdzBCZDtFSzMwQk07SUFDSTtLQUVJO0VMNDBCZDtFSy8wQk07SUFDSTtLQUVJO0VMZzFCZDtFS24xQk07SUFDSTtLQUVJO0VMbzFCZDtFS3YxQk07SUFDSTtLQUVJO0VMdzFCZDtFSzMxQk07SUFDSTtLQUVJO0VMNDFCZDtFSy8xQk07SUFDSTtLQUVJO0VMZzJCZDtFS24yQk07SUFDSTtLQUVJO0VMbzJCZDtFS3YyQk07SUFDSTtLQUVJO0VMdzJCZDtFSzMyQk07SUFDSTtLQUVJO0VMNDJCZDtFSy8yQk07SUFDSTtLQUVJO0VMZzNCZDtFS24zQk07SUFDSTtLQUVJO0VMbzNCZDtBQUNGO0FJcnhCQTtFQ25HUTtJQUNJO0tBRUk7RUwwM0JkO0VLNzNCTTtJQUNJO0tBRUk7RUw4M0JkO0VLajRCTTtJQUNJO0tBRUk7RUxrNEJkO0VLcjRCTTtJQUNJO0tBRUk7RUxz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QkFGYTtLQUlUO0VMbzVDTjtFS3A0Q007SUFsQkosMkJBRmE7S0FJVDtFTHc1Q047RUt4NENNO0lBbEJKLDJCQUZhO0tBSVQ7RUw0NUNOO0VLNTRDTTtJQWxCSixnQkFGYTtLQUlUO0VMZzZDTjtFS2g1Q007SUFsQkosMkJBRmE7S0FJVDtFTG82Q047RUtwNUNNO0lBbEJKLDBCQUZhO0tBSVQ7RUx3NkNOO0VLeDVDTTtJQWxCSixjQUxTO0tBT0w7RUw0NkNOO0FBQ0Y7QUk1MUNBO0VDakVRO0lBbEJKLDJCQUZhO0tBSVQ7RUxrN0NOO0VLbDZDTTtJQWxCSiwyQkFGYTtLQUlUO0VMczdDTjtFS3Q2Q007SUFsQkosZ0JBRmE7S0FJVDtFTDA3Q047RUsxNkNNO0lBbEJKLDJCQUZhO0tBSVQ7RUw4N0NOO0VLOTZDTTtJQWxCSiwyQkFGYTtLQUlUO0VMazhDTjtFS2w3Q007SUFsQkosZ0JBRmE7S0FJVDtFTHM4Q047RUt0N0NNO0lBbEJKLDJCQUZhO0tBSVQ7RUwwOENOO0VLMTdDTTtJQWxCSiwyQkFGYTtLQUlUO0VMODhDTjtFSzk3Q007SUFsQkosZ0JBRmE7S0FJVDtFTGs5Q047RUtsOENNO0lBbEJKLDJCQUZhO0tBSVQ7RUxzOUNOO0VLdDhDTTtJQWxCSiwwQkFGYTtLQUlUO0VMMDlDTjtFSzE4Q007SUFsQkosY0FMUztLQU9MO0VMODlDTjtBQUNGO0FJMTRDQTtFQ3JFUTtJQWxCSiwyQkFGYTtLQUlUO0VMbytDTjtFS3A5Q007SUFsQkosMkJBRmE7S0FJVDtFTHcrQ047RUt4OUNNO0lBbEJKLGdCQUZhO0tBSVQ7RUw0K0NOO0VLNTlDTTtJQWxCSiwyQkFGYTtLQUlUO0VMZy9DTjtFS2grQ007SUFsQkosMkJBRmE7S0FJVDtFTG8vQ047RUtwK0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUx3L0NOO0VLeCtDTTtJQWxCSiwyQkFGYTtLQUlUO0VMNC9DTjtFSzUrQ007SUFsQkosMkJBRmE7S0FJVDtFTGdnRE47RUtoL0NNO0lBbEJKLGdCQUZhO0tBSVQ7RUxvZ0ROO0VLcC9DTTtJQWxCSiwyQkFGYTtLQUlUO0VMd2dETjtFS3gvQ007SUFsQkosMEJBRmE7S0FJVDtFTDRnRE47RUs1L0NNO0lBbEJKLGNBTFM7S0FPTDtFTGdoRE47QUFDRjtBSXg3Q0E7RUN6RVE7SUFsQkosMkJBRmE7S0FJVDtFTHNoRE47RUt0Z0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUwwaEROO0VLMWdETTtJQWxCSixnQkFGYTtLQUlUO0VMOGhETjtFSzlnRE07SUFsQkosMkJBRmE7S0FJVDtFTGtpRE47RUtsaERNO0lBbEJKLDJCQUZhO0tBSVQ7RUxzaUROO0VLdGhETTtJQWxCSixnQkFGYTtLQUlUO0VMMGlETjtFSzFoRE07SUFsQkosMkJBRmE7S0FJVDtFTDhpRE47RUs5aERNO0lBbEJKLDJCQUZhO0tBSVQ7RUxrakROO0VLbGlETTtJQWxCSixnQkFGYTtLQUlUO0VMc2pETjtFS3RpRE07SUFsQkosMkJBRmE7S0FJVDtFTDBqRE47RUsxaURNO0lBbEJKLDBCQUZhO0tBSVQ7RUw4akROO0VLOWlETTtJQWxCSixjQUxTO0tBT0w7RUxra0ROO0FBQ0Y7QUl0K0NBO0VDN0VRO0lBbEJKLDJCQUZhO0tBSVQ7RUx3a0ROO0VLeGpETTtJQWxCSiwyQkFGYTtLQUlUO0VMNGtETjtFSzVqRE07SUFsQkosZ0JBRmE7S0FJVDtFTGdsRE47RUtoa0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUxvbEROO0VLcGtETTtJQWxCSiwyQkFGYTtLQUlUO0VMd2xETjtFS3hrRE07SUFsQkosZ0JBRmE7S0FJVDtFTDRsRE47RUs1a0RNO0lBbEJKLDJCQUZhO0tBSVQ7RUxnbUROO0VLaGxETTtJQWxCSiwyQkFGYTtLQUlUO0VMb21ETjtFS3BsRE07SUFsQkosZ0JBRmE7S0FJVDtFTHdtRE47RUt4bERNO0lBbEJKLDJCQUZhO0tBSVQ7RUw0bUROO0VLNWxETTtJQWxCSiwwQkFGYTtLQUlUO0VMZ25ETjtFS2htRE07SUFsQkosY0FMUztLQU9MO0VMb25ETjtBQUNGO0FNL3REQTtFRHlMSSxtQkN4TG1CO0VEeUxuQix1QkN6TG1CO0VEMExuQixlQzFMbUI7QU5tdUR2Qjs7QU1odURBO0VEcUxJLHFCQ3BMbUI7RURxTG5CLHlCQ3JMbUI7RURzTG5CLGlCQ3RMbUI7QU5xdUR2QjtBTWh1REk7RUQ0SkEsb0JDM0p5QjtFRDRKekIsc0JDNUp5QjtFRDZKekIsY0M3SnlCO0FOb3VEN0I7O0FNaHVEQTtFRDBLSSwyQkN6S21CO0VEMEtuQiwrQkMxS21CO0VEMktuQix1QkMzS21CO0FOcXVEdkI7O0FNOXREQTtFRHdLSSx1QkN2S3dCO0VEd0t4QiwyQkN4S3dCO0VEeUt4QixtQkN6S3dCO0FObXVENUI7O0FNaHVEQTtFRG9LSSwrQkNuS3dCO0VEb0t4QixtQ0NwS3dCO0VEcUt4QiwyQkNyS3dCO0FOcXVENUI7O0FNbHVEQTtFRGdLSSwwQkMvSndCO0VEZ0t4Qiw4QkNoS3dCO0VEaUt4QixzQkNqS3dCO0FOdXVENUI7O0FNcHVEQTtFRDRKSSxrQ0MzSndCO0VENEp4QixzQ0M1SndCO0VENkp4Qiw4QkM3SndCO0FOeXVENUI7O0FNbHVEQTtFRHFMUTtFQXRCSiwrQkM5SnFCO0VEK0pyQix1QkMvSnFCO0FOdXVEekI7O0FNcHVEQTtFRG1MUTtFQXhCSiw2QkMxSnFCO0VEMkpyQixxQkMzSnFCO0FOeXVEekI7QU1ydURRO0VBQ0k7QU51dURaOztBTWx1REE7RUQwS1Esc0JDektpQjtFRCtJckIsMkJDL0lxQjtFRGdKckIsbUJDaEpxQjtBTnV1RHpCO0FNbnVEUTtFQUNJO0FOcXVEWjs7QU1odURBO0VEK0pRLHdCQzlKaUI7RURvSXJCLDZCQ3BJcUI7RURxSXJCLHFCQ3JJcUI7QU5xdUR6Qjs7QU05dERBO0VEdUtRO0VBOUJKLGlDQ3hJdUI7RUR5SXZCLHlCQ3pJdUI7QU5tdUQzQjs7QU1odURBO0VEcUtRO0VBaENKLCtCQ3BJdUI7RURxSXZCLHVCQ3JJdUI7QU5xdUQzQjtBTWx1REk7RUFDSTtBTm91RFI7O0FNaHVEQTtFRGtLUSwwQkNqS21CO0VEMkh2Qiw2QkMzSHVCO0VENEh2QixxQkM1SHVCO0FOcXVEM0I7O0FNbHVEQTtFRDBKUTtFQWxDSixvQ0N2SHVCO0VEd0h2Qiw0QkN4SHVCO0FOdXVEM0I7O0FNcHVEQTtFRHdKUTtFQXBDSixtQ0NuSHVCO0VEb0h2QiwyQkNwSHVCO0FOeXVEM0I7O0FNbHVEQTtFRG9JUSw0QkNuSWdCO0VEcUdwQiwyQkNyR29CO0VEc0dwQixtQkN0R29CO0FOdXVEeEI7O0FNcHVEQTtFRDRIUTtFQTFCSiw4QkNqR29CO0VEa0dwQixzQkNsR29CO0FOeXVEeEI7O0FNdHVEQTtFRDBIUTtFQTVCSiw0QkM3Rm9CO0VEOEZwQixvQkM5Rm9CO0VBQ3BCO0FOMnVESjs7QU14dURBO0VEdUhRLDJCQ3RIZ0I7RUR3RnBCLDBCQ3hGb0I7RUR5RnBCLGtCQ3pGb0I7RUFDcEI7QU42dURKOztBTTF1REE7RURrSFEsNkJDakhnQjtFRG1GcEIsNEJDbkZvQjtFRG9GcEIsb0JDcEZvQjtFQUNwQjtBTit1REo7O0FNeHVEQTtFRG9JSTtFQUNBO0VBQ0E7QUx3bURKO0FNMXVEUTtFQUNJO0FONHVEWjs7QU12dURBO0VEZ0lJO0VBQ0E7RUFDQTtBTDJtREo7QU16dURRO0VBQ0k7RUFDQTtFQUNBO0FOMnVEWjtBTXp1RFk7RUR6RlI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FMcTBESjs7QU0xdURBO0VEc0hJO0VBQ0E7RUFDQTtBTHduREo7QU01dURRO0VBQ0k7RUFDQTtFQUNBO0FOOHVEWjtBTTV1RFk7RUR6R1I7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FMdzFESjs7QU03dURBO0VENEdJO0VBQ0E7RUFDQTtBTHFvREo7QU0vdURRO0VBQ0k7RUFDQTtFQUNBO0FOaXZEWjtBTS91RFk7RUR6SFI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FMMjJESjs7QU1odkRBO0VEa0dJO0VBQ0E7RUFDQTtBTGtwREo7QU1sdkRRO0VBQ0k7RUFDQTtFQUNBO0FOb3ZEWjtBTWx2RFk7RUR6SVI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FMODNESjs7QU03dURJO0VBQ0k7QU5ndkRSOztBTXZ1REE7RURwRkk7RUFDQTtFQUNBO0VBa0RBLDBCQ2tDd0I7RURqQ3hCLDhCQ2lDd0I7RURoQ3hC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TTtFUG5DSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFT3NCTTtBN0J1N0hSO0FpQjM3R0k7RVk5ZkU7SVBqQkY7RXRCODhIRjtBQUNGO0E2QnY3SEk7RUFDRTtBN0J5N0hOO0E2QnI3SEk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBN0J1N0hOO0E2QnQ3SE07RUFDRTtFQUNBO0VBQ0E7RUFDQTtBN0J3N0hSO0E2Qm43SEk7Ozs7Ozs7Ozs7Ozs7O0VBRUU7RUFDQTtBN0JpOEhOO0E2Qjk3SEU7RUFDRTtBN0JnOEhKO0E2Qi83SEk7Ozs7Ozs7Ozs7Ozs7O0VBRUU7RUFDQTtBN0I2OEhOO0E2Qno4SEU7RUFDRTtFQUNBO0VBQ0E7QTdCMjhISjtBNkIxOEhJO0VBQ0U7QTdCNDhITjtBNkIxOEhJO0VBQ0U7QTdCNDhITjtBNkJ4OEhFO0VBRUU7QTdCeThISjtBNkJ0OEhFO0VBQ0U7RUFDQTtFQUNBO0E3Qnc4SEo7QTZCajhISTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0U7RUFDQTtFQU1BO0VBQ0E7QTdCODlITjtBNkJuK0hNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFDRTtBN0JxZ0lSO0E2QnovSE07Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0U7RUFDQTtBN0IyZ0lSO0E2Qm5nSUk7RUFDRTtBN0JxZ0lOO0E2Qm5nSU07RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3QnFnSVI7QTZCbmdJUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0JxZ0lWO0E2Qi8vSE07RUFDRTtBN0JpZ0lSO0E2QjkvSFE7RUFDRTtBN0JnZ0lWO0E2QnovSEk7RUFDRTtBN0IyL0hOO0E2QnIvSEk7RUFDRTtFQUNBO0VBQ0E7QTdCdS9ITjtBNkJyL0hNOzs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QTdCdS9IUjtBNkJsL0hJO0VBSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0JpL0hOO0FpQnhwSEk7RVlqV0E7SUFVSTtJQUNBO0U3Qm0vSE47QUFDRjtBNkJsL0hNO0VBQ0U7RUFDQTtBN0JvL0hSO0E2QmgvSE07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUVFO0VBQ0E7RUFDQTtFQUNBO0E3QnlsSVI7QTZCeGxJUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0U7QTdCa3NJVjtBNkI3cklNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNFO0VBQ0E7RUFDQTtBN0IrdklSO0FpQmg4SEk7RVlsVUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBTUk7RTdCZzBJUjtBQUNGO0E2Qjd6SU07RUFDRTtBN0IreklSO0E2QjN6SUk7RUFDRTtFQUNBO0VBQ0E7QTdCNnpJTjtBNkIzeklNOzs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtBN0I4eklSO0E4QjNqSkE7RUFDRTtBOUI2akpGO0ErQjlqSkE7RUFDRTtBL0Jna0pGO0FnQy9pSkU7RUFDRTtFQUNBO0VBQ0E7QWhDaWpKSjtBZ0MvaUpJOzs7Ozs7Ozs7RUFDRTtBaEN5akpOO0FnQ3JqSkU7RUFjRTtFQUNBO0VBQ0E7RUFDQTtBaEMwaUpKO0FnQzFqSkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBaEM0akpOO0FnQzFqSk07RUFDRTtBaEM0akpSO0FnQ3JqSkk7RUFDRTtFQUNBO0VBQ0E7QWhDdWpKTjtBZ0NuakpFO0VBQ0U7QWhDcWpKSjtBZ0NsakpJO0VBQ0U7QWhDb2pKTjtBZ0NoakpFO0VBQ0U7RUFDQTtBaENrakpKO0FnQ2hqSkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBaENrakpOO0FnQ2hqSk07RUFDRTtBaENrakpSO0FnQ3JuSkk7RUFDRTtFQUNBO0FoQ3VuSk47QWdDem5KSTtFQUNFO0VBQ0E7QWhDMm5KTjtBZ0M3bkpJO0VBQ0U7RUFDQTtBaEMrbkpOO0FnQ2pvSkk7RUFDRTtFQUNBO0FoQ21vSk47QWdDcm9KSTtFQUNFO0VBQ0E7QWhDdW9KTjtBaUMvb0pBO0VBdUVFO0VBSUE7QWpDd2tKRjtBaUNscEpFO0VBQ0U7QWpDb3BKSjtBaUNscEpFO0VBQ0U7QWpDb3BKSjtBaUNscEpFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO09BQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWpDb3BKSjtBaUNucEpJO0VBQ0U7RXJCSEo7RUFDQTtFQUNBLHNCcUJFb0I7RUFDaEI7RUFDQTtFQUNBO0FqQ3VwSk47QWlDcHBKSTtFQUVFO0VBQ0E7QWpDcXBKTjtBaUNqcEpFO0VBQ0U7RUFDQTtBakNtcEpKO0FpQ2hwSkU7RUFDRTtBakNrcEpKO0FpQy9vSkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBakNpcEpKO0FpQzdvSkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FqQytvSk47QWlDNW9KSTs7Ozs7Ozs7O0VBQ0U7QWpDc3BKTjtBaUNqcEpFO0VBQ0U7QWpDbXBKSjtBaUNocEpFO0VBQ0U7QWpDa3BKSjtBa0M3dEpJO0VBQ0U7QWxDK3RKTjtBa0MzdEpBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWxDNnRKRjtBaUJsc0lJO0VpQi9oQko7SUFNSTtFbEMrdEpGO0FBQ0Y7QWtDN3RKQTtFQUNFO0FsQyt0SkY7QWtDOXRKRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FsQ2d1Sko7QW1DMXZKRTtFQUNFO0VBQ0E7RUFDQTtBbkM0dkpKO0FvQ3p2SkU7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O0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4RDh6TEY7QXdEN3pMRTtFQUNFO0F4RCt6TEo7QXdEOXpMSTtFQUNFO0F4RGcwTE47QXdEL3pMTTtFQUNFO0F4RGkwTFI7QXdEaDBMUTtFQUNFO0VBQ0E7RUFDQTtBeERrMExWO0F3RGgwTFU7RUFDRTtFQUNBO0VBQ0E7QXhEazBMWjtBd0RqMExZO0VBQ0U7RUFDQTtFQUNBO0F4RG0wTGQ7QXdEOXpMWTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeERnMExkO0F3RDl6TGM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhEZzBMaEI7QWlCejFLSTtFdUMvZEY7SUFFSTtFeEQwekxKO0FBQ0Y7QXdEeHpMRTtFQUNFO0VBQ0E7RUFDQTtBeEQwekxKO0FpQm4yS0k7RXVDMWRGO0lBS0k7RXhENHpMSjtBQUNGO0FpQngyS0k7RXVDMWRGO0lBUUk7RXhEOHpMSjtBQUNGO0F3RDd6TEk7RUFDRTtBeEQrekxOO0F3RDV6TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4RDh6TEo7QXdEN3pMSTtFQUNFO0F4RCt6TE47QWlCMTNLSTtFdUM1Y0Y7SUFVSTtFeERnMExKO0FBQ0Y7QXdEOXpMRTtFQUNFO0VBQ0E7QXhEZzBMSjtBaUJuNEtJO0V1Qy9iRjtJQUtJO0V4RGkwTEo7QUFDRjtBd0QvekxJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeERpMExOO0F3RC96TEk7RUFDRTtFQUNBO0VBQ0E7QXhEaTBMTjtBd0RoMExNO0VBQ0U7RUFDQTtBeERrMExSO0F3RGowTFE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7QXhEazBMVjtBd0Q3ekxNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QXhEK3pMUjtBd0QzekxFO0VBQ0U7RUFDQTtFQUNBO0F4RDZ6TEo7QWlCOTZLSTtFdUM5WUE7SUFFSTtFeEQ4ekxOO0FBQ0Y7QWlCbjdLSTtFdUM5WUE7SUFLSTtFeERnMExOO0FBQ0Y7QXdEOXpMTTtFQUNFO0VBQ0E7QXhEZzBMUjtBaUI1N0tJO0V1Q3RZRTtJQUtJO0lBQ0E7RXhEaTBMUjtBQUNGO0F3RDV6TEk7RUFDRTtFQUNBO0VBQ0E7QXhEOHpMTjtBd0Q3ekxNO0VBQ0U7QXhEK3pMUjtBd0Q3ekxNO0VBQ0U7RUFDQTtFQUNBO0F4RCt6TFI7QWlCLzhLSTtFdUNuWEU7SUFLSTtFeERpMExSO0FBQ0Y7QXdEaDBMUTtFQUNFO0F4RGswTFY7QXdEL3pMVTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0F4RGkwTFo7QXdEN3pMTTtFQUNFO0VBQ0E7RUFDQTtBeEQrekxSO0FpQmwrS0k7RXVDaFdFO0lBTUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFeERnMExSO0FBQ0Y7QXdEOXpMTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4RGcwTFI7O0F3RHZ6TEU7RUFDRTtFQUNBO0F4RDB6TEo7QXdEeHpMRTtFQUNFO0VBRUE7QXhEeXpMSjs7QXdEdHpMQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeER5ekxGO0FpQnRnTEk7RXVDelRKO0lBUUk7RXhEMnpMRjtBQUNGO0F3RDF6TEU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBeEQ0ekxKO0F3RDF6TE07RUFJRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4RHl6TFI7QXdEbjBMUTtFQUNFO0F4RHEwTFY7QXdEenpMVTtFQUNFO0F4RDJ6TFo7QXdEeHpMUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeEQwekxWOztBd0RuekxBO0VBQ0U7RUFDQTtFQUNBO0F4RHN6TEY7QXdEcHpMRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXhEc3pMSjtBd0RuekxNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0F4RHF6TFI7QXdEbnpMUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBeERxekxWO0F3RGh6TEk7RUFDRTtBeERrekxO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UjtBMERoN01RO0VBQ0U7QTFEazdNVjtBMERqN01VO0VBQ0U7QTFEbTdNWjtBMEQ3Nk1JO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QTFEKzZNTjs7QTJEM2tOQTs7Ozs7RUFBQTtBQU9BO0VBQ0U7RUFDQTtBM0Q2a05GOztBMkR6a05FO0VBQ0U7QTNENGtOSjtBMkR6a05FO0VBQ0U7QTNEMmtOSjtBMkR4a05FO0VBQ0U7QTNEMGtOSjtBMkR4a05JO0UvQ2ZGO0VBQ0E7RUFDQTtBWjBsTkY7QVl4bE5FO0VBQ0U7RUFDQTtFQUNBO0FaMGxOSjtBMkQva05NO0VBQ0U7QTNEaWxOUjs7QTREN21OQTs7Ozs7RUFBQTtBQU9BO0VBQ0U7RUFDQTtBNUQrbU5GO0E0RDdtTkU7RUFFRTtFQUNBO0E1RDhtTko7QTREM21ORTtFQUNFO0E1RDZtTko7QTREM21OSTtFQUNFO0E1RDZtTk47QTREMW1OSTs7Ozs7RUFFRTtFQUNBO0VBQ0E7QTVEK21OTjtBaUI5bE1JO0UyQ3JoQkE7Ozs7O0lBT0k7RTVEb25OTjtBQUNGO0FpQnZtTUk7RTJDcmhCQTs7Ozs7SUFXSTtFNUR5bk5OO0FBQ0Y7QWlCaG5NSTtFMkNyaEJBOzs7OztJQWVJO0U1RDhuTk47QUFDRjtBNEQ1bk5NOzs7Ozs7Ozs7RUFFRTtBNURxb05SO0E0RG5vTlE7Ozs7Ozs7OztFQUNFO0VBQ0E7QTVENm9OVjtBNEQzb05ROzs7Ozs7Ozs7RUFDRTtBNURxcE5WO0FpQjNwTUk7RTJDM2ZJOzs7Ozs7Ozs7SUFJSTtJQUNBO0U1RDhwTlY7QUFDRjtBaUJ6cU1JO0UyQzNmSTs7Ozs7Ozs7O0lBU0k7RTVEdXFOVjtBQUNGO0FpQnRyTUk7RTJDM2ZJOzs7Ozs7Ozs7SUFhSTtFNURnck5WO0FBQ0Y7QTREM3FOSTtFQUNFO0E1RDZxTk47QTREenFORTtFQUNFO0E1RDJxTko7QTREeHFORTtFQUNFO0E1RDBxTko7QTREdnFORTtFQUNFO0VBQ0E7QTVEeXFOSjtBaUJodE1JO0UyQzNkRjtJQUlJO0U1RDJxTko7QUFDRjtBNEQxcU5JO0VBQ0U7QTVENHFOTjtBNEQxcU5JO0VBQ0U7QTVENHFOTjtBNEQzcU5NO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNUQ2cU5SO0E0RDVxTlE7RUFDRTtBNUQ4cU5WO0E0RDVxTlE7RUFDRTtBNUQ4cU5WO0E0RDVxTlE7RUFDRTtBNUQ4cU5WO0E0RDdxTlU7RUFDRTtFQUNBO0VBQ0E7QTVEK3FOWjtBNEQxcU5NO0VBQ0U7QTVENHFOUjtBNER6cU5NO0VBQ0U7QTVEMnFOUjtBNER4cU5NO0VBQ0U7QTVEMHFOUjtBNER2cU5NO0VBQ0U7RUFDQTtBNUR5cU5SO0E0RHhxTlE7RUFDRTtFQUNBO0VBQ0E7QTVEMHFOVjtBNER2cU5RO0VBQ0U7RUFDQTtBNUR5cU5WO0E0RHZxTlU7RUFDRTtFQUNBO0VBQ0E7QTVEeXFOWjtBNERycU5ZO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVEdXFOZDtBNERucU5VO0VBQ0U7RUFDQTtBNURxcU5aO0E0RGpxTmM7RUFDRTtBNURtcU5oQjtBNERscU5nQjtFQUNFO0VBQ0E7QTVEb3FObEI7QTREaHFOc0I7RUFDRTtBNURrcU54QjtBNEQ5cE5vQjtFQUNFO0VBQ0E7RUFDQTtBNURncU50QjtBNEQ5cE5zQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTVEZ3FOeEI7QTRENXBOb0I7RUFDRTtFQUNBO0E1RDhwTnRCO0E0RDVwTndCO0VBQ0U7RUFDQTtFQUNBO0E1RDhwTjFCO0E0RDNwTjBCO0VBQ0U7RUFDQTtFQUNBO0E1RDZwTjVCO0E0RHBwTmM7RUFDRTtFQUNBO0VBQ0E7QTVEc3BOaEI7QTREcHBOZ0I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RHNwTmxCO0E0RGxwTmM7RUFDRTtFQUNBO0E1RG9wTmhCO0E0RGhwTm9CO0VBQ0U7RUFDQTtBNURrcE50QjtBNEQ5b05rQjtFQUNFO0VBQ0E7RUFDQTtBNURncE5wQjtBNEQ5b05vQjtFQUNFO0VBQ0E7RUFDQTtBNURncE50QjtBNER2b05RO0VBQ0U7QTVEeW9OVjtBNERwb05RO0VBQ0U7QTVEc29OVjtBNERwb05VO0VBQ0U7QTVEc29OWjtBNERwb05ZO0VBQ0U7QTVEc29OZDtBNERsb05jO0VBQ0U7QTVEb29OaEI7QTREaG9OWTtFQUNFO0VBQ0E7QTVEa29OZDtBNERob05jO0VBQ0U7QTVEa29OaEI7QTREaG9OZ0I7RUFDRTtBNURrb05sQjtBNEQvbk5nQjtFQUNFO0E1RGlvTmxCO0E0RC9uTmtCO0VBQ0U7QTVEaW9OcEI7QTREOW5Oc0I7RUFDRTtBNURnb054QjtBNEQvbk53QjtFQUNFO0E1RGlvTjFCO0E0RDduTnNCO0VBQ0U7QTVEK25OeEI7QTRENW5Oc0I7RUFDRTtBNUQ4bk54QjtBNER2bk5rQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E1RHluTnBCO0E0RGxuTlU7RUFDRTtBNURvbk5aO0E0RDdtTkU7RUFDRTtBNUQrbU5KO0E0RDNtTkk7RUFDRTtBNUQ2bU5OO0FpQnY1TUk7RTJDbE5GO0lBRUk7RTVEMm1OSjtBQUNGOztBNkR6OE5BOzs7OztFQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RDI4TkY7QTZEejhORTtFQUNFO0E3RDI4Tko7QTZEeDhORTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E3RDA4Tko7QTZEeDhOSTtFQUNFO0E3RDA4Tk47QTZEdjhOSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E3RHk4Tk47QTZEdDhOSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBN0R3OE5OO0E2RHA4Tk07RUFDRTtBN0RzOE5SO0E2RG44Tk07RUFDRTtBN0RxOE5SO0E2RGo4Tkk7RUFDRTtBN0RtOE5OO0E2RGo4Tk07RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RG04TlI7QTZEajhOUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0E3RG04TlY7QTZENzdORTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdEKzdOSjtBNkQ3N05JOzs7OztFQUNFO0VBQ0E7QTdEbThOTjtBNkRqOE5NOzs7OztFQUNFO0E3RHU4TlI7QWlCbi9NSTtFNENyZEU7Ozs7O0lBSUk7RTdENDhOUjtBQUNGO0E2RHY4Tk07RUFDRTtFQUNBO0VBQ0E7QTdEeThOUjtBNkRyOE5JO0VBQ0U7QTdEdThOTjtBNkRuOE5VO0VBQ0U7QTdEcThOWjtBNkRsOE5VO0VBQ0U7QTdEbzhOWjtBNkQ5N05ZO0VBQ0U7QTdEZzhOZDtBNkQ3N05ZO0VBQ0U7QTdEKzdOZDtBNkR2N05FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E3RHk3Tko7QTZEdDdORTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdEdzdOSjtBNkRyN05FO0VBQ0U7RUFDQTtFQUNBO0E3RHU3Tko7QWlCcGlOSTtFNEN0WkY7SUFNSTtFN0R3N05KO0FBQ0Y7QTZEdDdOSTtFQUNFO0E3RHc3Tk47QWlCNWlOSTtFNEMxWUU7SUFFSTtFN0R3N05SO0FBQ0Y7QTZEbjdORTtFQUNFO0VBQ0E7RUFDQTtBN0RxN05KO0E2RGw3TkU7RUFDRTtBN0RvN05KO0E2RGo3TkU7RUFDRTtBN0RtN05KO0E2RDk2TlU7RUFDRTtBN0RnN05aO0E2RDc2TlU7RUFDRTtBN0QrNk5aOztBOEQ5bU9FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlEaW5PSjtBaUIva05JO0U2QzVpQkY7SUFhSTtJQUNBO0lBQ0E7RTlEa25PSjtBQUNGO0E4RGhuT0U7RUFDRTtFQUNBO0E5RGtuT0o7QThEaG5PSTtFQUNFO0E5RGtuT047QThEam5PTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBOURtbk9SO0E4RDVtT007RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTlEOG1PUjtBOERubU9RO0VBQ0U7RUFDQTtBOURxbU9WO0E4RG5tT1E7RUFDRTtFQUNBO0E5RHFtT1Y7QThEaG1PSTtFQUNFO0VBQ0E7QTlEa21PTjtBVTlwT0k7RW9EK0RJO0E5RGttT1I7O0ErRC9xT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EvRGtyT0Y7QStEaHJPRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0EvRGtyT0o7QStEN3FPTTtFQUNFO0EvRCtxT1I7QStEN3FPUTtFQUNFO0EvRCtxT1Y7QStENXFPUTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QS9EOHFPVjtBaUJucU5JO0U4Q2hoQkk7SUFRSTtFL0QrcU9WO0FBQ0Y7QStENXFPWTtFQUNFO0EvRDhxT2Q7QStEM3FPWTtFQUNFO0VBQ0E7QS9ENnFPZDtBK0R6cU9jO0VBQ0U7QS9EMnFPaEI7QStEdHFPYztFQUNFO0EvRHdxT2hCO0ErRGhxT1k7RUFDRTtFQUNBO0EvRGtxT2Q7QStEaHFPYztFQUNFO0VBQ0E7RUFDQTtBL0RrcU9oQjtBaUI5ck5JO0U4Qy9kYztJQUNFO0UvRGdxT2xCO0FBQ0Y7QStEN3BPZ0I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EvRCtwT2xCO0ErRHpwT2tCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QS9EMnBPcEI7QStEdnBPd0I7RUFDRTtFQUNBO0EvRHlwTzFCO0ErRHJwT3NCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QS9EdXBPeEI7QStEMW9PYztFQUNFO0EvRDRvT2hCO0ErRG5vT0U7RUFDRTtBL0Rxb09KO0ErRG5vT0k7RUFDRTtBL0Rxb09OO0FpQi91Tkk7RThDdlpBO0lBSUk7RS9Ec29PTjtBQUNGO0ErRHBvT007RUFDRTtBL0Rzb09SO0ErRGpvT007RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QS9EbW9PUjtBaUIvdk5JO0U4QzFZRTtJQVNJO0UvRG9vT1I7QUFDRjtBK0Rsb09RO0VBQ0U7QS9Eb29PVjtBK0Rqb09RO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0EvRG1vT1Y7QWlCcnhOSTtFOEMxWEk7SUFlSTtFL0Rvb09WO0FBQ0Y7QStEbG9PVTtFQUNFO0VBQ0E7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aVBWO0FtRWhpUFE7Ozs7Ozs7OztFQUNFO0VBQ0E7QW5FMGlQVjs7QW1FbmlQQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHlCQXRPTztFQXVPUDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5FcWlQRjtBbUVuaVBFO0VBQ0Usc0JBeFBDO0VBeVBEO0VBQ0Esa0JBMVBDO0FuRSt4UEw7QW1FbGlQRTtFQUNFLHlCQXJQSztFQXNQTDtFQUNBO0VBQ0EscUJBeFBLO0FuRTR4UFQ7QW1FbGlQSTtFQUNFLHNCQXBRRDtFQXFRQztBbkVvaVBOO0FpQi92T0k7RWtEdFVKO0lBc0NJO0VuRW1pUEY7QUFDRjtBbUVqaVBFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QW5FbWlQSjtBaUIxd09JO0VrRDdSRjtJQU9JO0VuRW9pUEo7QUFDRjtBbUVuaVBJO0VBQ0U7QW5FcWlQTjs7QW1FaGlQQTtFQUNFO0VBQ0E7QW5FbWlQRjtBbUVqaVBFO0VBQ0U7QW5FbWlQSjs7QUFydlBBOztFQUFBLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi9ub2RlX21vZHVsZXMvYmFndWV0dGVib3guanMvc3JjL2JhZ3VldHRlQm94LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS5zY3NzL25vcm1hbGl6ZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL25vZGVfbW9kdWxlcy9yZWZsZXgtZ3JpZC9zY3NzL2luY2x1ZGVzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi9ub2RlX21vZHVsZXMvcmVmbGV4LWdyaWQvc2Nzcy9pbmNsdWRlcy9faGVscGVycy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2NvbmZpZy9fZm9udHMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9jb25maWcvX3ZhcnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL19mb2N1cy12aXNpYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvaGVscGVycy9fZm9udC1zbW9vdGhpbmcuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9oZWxwZXJzL190YWJsZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2hlbHBlcnMvX2hlbHBlcnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9iYXNlL19kZWZhdWx0cy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYmFzZS9fZHJ1cGFsOC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2Jhc2UvX21haW4uc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL2F0b21zL19uYXYtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9hdG9tcy9faW1hZ2UtY3JlZGl0LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2Jvb2tpbmctY3RhLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvYXRvbXMvX2FuaW1hdGlvbi5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2VtbXNnLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19lbnRpdHkuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2JvZHkuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2ltYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19xdW90ZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fYWNjb3JkaW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19nYWxsZXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19pbWFnZS10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19kb3dubG9hZHMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2VtYmVkLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL190ZXN0aW1vbmlhbHMuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2ludHJvZHVjdGlvbi5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fZnVsbC13aWR0aC1pbWFnZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9faW1hZ2UtYW5kLXRleHQuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX3NwZWt0cml4LWRvbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19yZWxhdGVkLWNvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2N1cmF0ZWQtc2lnbnBvc3Quc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvZW50aXRpZXMvX2dyb3VwZWQtc2lnbnBvc3RzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL19maWVsZF93ZWxjb21lX2V4dHJhLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL2VudGl0aWVzL192aWRlby5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9lbnRpdGllcy9fcG9wLXVwLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19mb3Jtcy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19iYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9tb2xlY3VsZXMvX2xpbmtlZC1sb2dvcy5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc29jaWFsLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3MvbW9sZWN1bGVzL19mcmVlcGFnZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL21vbGVjdWxlcy9fc3RheXVwdG9kYXRlLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fdmlld3Muc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3NlYXJjaC1yZXN1bHRzLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL190ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3NpZ25wb3N0LnNjc3MiLCJ3ZWJwYWNrOi8vc3lkLWQ5Ly4vd2ViL3RoZW1lcy9waXBwaXAvYXNzZXRzL3Nhc3Mvb3JnYW5pc21zL19jYWxlbmRhci5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fbm9kZS5zY3NzIiwid2VicGFjazovL3N5ZC1kOS8uL3dlYi90aGVtZXMvcGlwcGlwL2Fzc2V0cy9zYXNzL29yZ2FuaXNtcy9fdGFwZXN0cnkuc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX3doYXRzb24uc2NzcyIsIndlYnBhY2s6Ly9zeWQtZDkvLi93ZWIvdGhlbWVzL3BpcHBpcC9hc3NldHMvc2Fzcy9vcmdhbmlzbXMvX21hcmtlci1tYXAuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTWFpbiAtIEdsb2JhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogRGVwZW5kZW5jaWVzXG4gKi9cbkBpbXBvcnQgJ35iYWd1ZXR0ZWJveC5qcy9zcmMvYmFndWV0dGVCb3gnO1xuQGltcG9ydCAnfmluY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd+bm9ybWFsaXplLnNjc3Mvbm9ybWFsaXplLnNjc3MnO1xuQGltcG9ydCAnfnJlZmxleC1ncmlkL3Njc3MvcmVmbGV4LnNjc3MnO1xuQGltcG9ydCAnfnNsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrJztcbi8vIEBpbXBvcnQgJ35jaG9pY2VzLmpzL3B1YmxpYy9hc3NldHMvc3R5bGVzL2Nob2ljZXMubWluLmNzcyc7XG5cbi8qKlxuICogQ29uZmlnXG4gKi9cbkBpbXBvcnQgJ2NvbmZpZy9mb250cyc7XG5AaW1wb3J0ICdjb25maWcvdmFycyc7XG5cbi8qKlxuICogSGVscGVyc1xuICovXG5AaW1wb3J0ICdoZWxwZXJzL2ZvY3VzLXZpc2libGUnO1xuQGltcG9ydCAnaGVscGVycy9mb250LXNtb290aGluZyc7XG5AaW1wb3J0ICdoZWxwZXJzL21peGlucyc7XG5AaW1wb3J0ICdoZWxwZXJzL3RhYmxlJztcbkBpbXBvcnQgJ2hlbHBlcnMvaGVscGVycyc7XG5cbi8qKlxuICogQmFzZVxuICovXG5AaW1wb3J0ICdiYXNlL2RlZmF1bHRzJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL2RydXBhbDgnO1xuQGltcG9ydCAnYmFzZS9tYWluJztcblxuLyoqXG4qIEF0b21zXG4qL1xuQGltcG9ydCAnYXRvbXMvZ3JpZCc7XG5AaW1wb3J0ICdhdG9tcy9uYXYtdG9nZ2xlJztcbkBpbXBvcnQgJ2F0b21zL2J1dHRvbnMnO1xuQGltcG9ydCAnYXRvbXMvaW1hZ2UtY3JlZGl0JztcbkBpbXBvcnQgJ2F0b21zL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2F0b21zL2Jvb2tpbmctY3RhJztcbkBpbXBvcnQgJ2F0b21zL2FuaW1hdGlvbic7XG5cbi8qKlxuICogTW9sZWN1bGVzXG4gKi9cbkBpbXBvcnQgJ21vbGVjdWxlcy9tb2RhbCc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZW1tc2cnO1xuQGltcG9ydCAnbW9sZWN1bGVzL2VudGl0eSc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZm9ybXMnO1xuQGltcG9ydCAnbW9sZWN1bGVzL25hdic7XG5AaW1wb3J0ICdtb2xlY3VsZXMvYmFubmVyJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9saW5rZWQtbG9nb3MnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3NvY2lhbC1saW5rcyc7XG5AaW1wb3J0ICdtb2xlY3VsZXMvZnJlZXBhZ2UnO1xuQGltcG9ydCAnbW9sZWN1bGVzL3N0YXl1cHRvZGF0ZSc7XG5cblxuLyoqXG4gKiBPcmdhbmlzaW1zXG4gKi9cbkBpbXBvcnQgJ29yZ2FuaXNtcy9oZWFkZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL2Zvb3Rlcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvdmlld3MnO1xuQGltcG9ydCAnb3JnYW5pc21zL3NlYXJjaC1yZXN1bHRzJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9zaWRlYmFyJztcbkBpbXBvcnQgJ29yZ2FuaXNtcy90ZWFzZXInO1xuQGltcG9ydCAnb3JnYW5pc21zL3NpZ25wb3N0JztcbkBpbXBvcnQgJ29yZ2FuaXNtcy9jYWxlbmRhcic7XG5AaW1wb3J0ICdvcmdhbmlzbXMvbm9kZSc7XG5AaW1wb3J0ICdvcmdhbmlzbXMvdGFwZXN0cnknO1xuQGltcG9ydCAnb3JnYW5pc21zL3doYXRzb24nO1xuQGltcG9ydCAnb3JnYW5pc21zL21hcmtlci1tYXAnO1xuXG4vKipcbiAqIFRlbXBsYXRlc1xuICovXG4iLCIvKiFcbiAqIGJhZ3VldHRlQm94LmpzXG4gKiBAYXV0aG9yICBmZWltb3NpXG4gKiBAdmVyc2lvbiAlJUlOSkVDVF9WRVJTSU9OJSVcbiAqIEB1cmwgaHR0cHM6Ly9naXRodWIuY29tL2ZlaW1vc2kvYmFndWV0dGVCb3guanNcbiAqL1xuXG4jYmFndWV0dGVCb3gtb3ZlcmxheSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwMDAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuOCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZTtcblxuICAgICYudmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmZ1bGwtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGZpZ3VyZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7ICAgICAgLy8gbmVlZGVkIGZvciBtb2JpbGVcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTsgICAvLyBPcGVyYSAxMiBpbWFnZSBzdHJldGNoaW5nIGZpeFxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIC8vIElFOCBmaXhcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLDAsMCwuNik7XG4gICAgICAgIH1cblxuICAgICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjYpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0Oi0xcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNiYWd1ZXR0ZUJveC1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IC40cyBlYXNlLCB0cmFuc2Zvcm0gLjRzIGVhc2U7XG5cbiAgICAmLmJvdW5jZS1mcm9tLXJpZ2h0IHtcbiAgICAgICAgYW5pbWF0aW9uOiBib3VuY2VGcm9tUmlnaHQgLjRzIGVhc2Utb3V0O1xuICAgIH1cblxuICAgICYuYm91bmNlLWZyb20tbGVmdCB7XG4gICAgICAgIGFuaW1hdGlvbjogYm91bmNlRnJvbUxlZnQgLjRzIGVhc2Utb3V0O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VGcm9tUmlnaHR7XG4gICAgMCUgeyBtYXJnaW4tbGVmdDogMDsgfVxuICAgIDUwJSB7IG1hcmdpbi1sZWZ0OiAtMzBweDsgfVxuICAgIDEwMCUgeyBtYXJnaW4tbGVmdDogMDsgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUZyb21MZWZ0e1xuICAgIDAlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICA1MCUgeyBtYXJnaW4tbGVmdDogMzBweDsgfVxuICAgIDEwMCUgeyBtYXJnaW4tbGVmdDogMDsgfVxufVxuXG4lYXJyb3ctYnV0dG9uIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xufVxuXG4uYmFndWV0dGVCb3gtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzIzMjMyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTAsNTAsNTAsLjUpO1xuICAgIGNvbG9yOiAjZGRkO1xuICAgIGZvbnQ6IDEuNmVtIHNhbnMtc2VyaWY7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNHMgZWFzZTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTAsNTAsNTAsLjkpO1xuICAgIH1cblxuICAgICYjbmV4dC1idXR0b24ge1xuICAgICAgICBAZXh0ZW5kICVhcnJvdy1idXR0b247XG4gICAgICAgIHJpZ2h0OiAyJTtcbiAgICB9XG5cbiAgICAmI3ByZXZpb3VzLWJ1dHRvbiB7XG4gICAgICAgIEBleHRlbmQgJWFycm93LWJ1dHRvbjtcbiAgICAgICAgbGVmdDogMiU7XG4gICAgfVxuXG4gICAgJiNjbG9zZS1idXR0b24ge1xuICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgIHJpZ2h0OiAyJTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoMiUgKyA2cHgpO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgIC8vIEZpcmVmb3ggZml4XG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxufVxuXG4vKlxuICAgIFByZWxvYWRlclxuICAgIEJvcnJvd2VkIGZyb20gaHR0cDovL3RvYmlhc2FobGluLmNvbS9zcGlua2l0L1xuKi9cblxuLmJhZ3VldHRlQm94LXNwaW5uZXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG59XG5cbi5iYWd1ZXR0ZUJveC1kb3VibGUtYm91bmNlMSxcbi5iYWd1ZXR0ZUJveC1kb3VibGUtYm91bmNlMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IC42O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBhbmltYXRpb246IGJvdW5jZSAycyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLmJhZ3VldHRlQm94LWRvdWJsZS1ib3VuY2UyIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0xcztcbn1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB9IDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuIiwiLyohIG5vcm1hbGl6ZS5zY3NzIHYwLjEuMCB8IE1JVCBMaWNlbnNlIHwgYmFzZWQgb24gZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IHZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBZb3UgY2FuIG9wdGlvbmFsbHkgbmFtZXNwYWNlIHJlZmxleCBjbGFzc2VzIHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggb3RoZXIgY3NzIGZyYW1ld29ya3Ncbi8vIGUuZy4gc2V0dGluZyAkcmVmbGV4LXByZWZpeCBhcyBcInJlZmxleC1cIiBoZXJlIHdvdWxkIGNhdXNlIGNvbC1zbS02IHRvIGJlY29tZSByZWZsZXgtY29sLXNtLTZcbi8vIEV4YW1wbGU6ICRyZWZsZXgtcHJlZml4OiByZWZsZXgtO1xuLy8gQnkgZGVmYXVsdCB0aGlzIGlzIGFuIGVtcHR5IHN0cmluZ1xuJHJlZmxleC1wcmVmaXg6IG51bGwgIWRlZmF1bHQ7XG5cblxuLy8gTGVnYWN5IHN1cHBvcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBhZGRzIGEgbG90IG9mIGNzcyBwcm9wZXJ0aWUgdG8gc3VwcG9ydCBvbGRlciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgZmxleGJveCBsYXlvdXQuXG4vLyBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGlzIGFzIGEgcHVyZWx5IGZsZXhib3ggZ3JpZCB3aXRob3V0IGxlZ2FjeSBzdXBwb3J0IHRoZW4gc2V0IHRoaXMgdG8gZmFsc2VcbiRsZWdhY3ktc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlZmxleCBoYXMgc29tZSBnZW5lcmljIHZpc2liaWxpdHkgY2xhc3NlcyB0byBoaWRlIGVsZW1lbnRzIGF0IGRpZmZlcmVudCBicmVha3BvaW50cy5cbi8vIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhlc2UgdGhlbiBzZXQgdGhpcyB0byBmYWxzZVxuJHZpc2liaWxpdHktaGVscGVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHJlZmxleC1jb2x1bW5zOiAxMiAhZGVmYXVsdDsgLy8gbnVtYmVyIG9mIGNvbHVtbnNcblxuLy8gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgteHM6IDU3NnB4ICFkZWZhdWx0O1xuJHJlZmxleC1zbTogNzY4cHggIWRlZmF1bHQ7XG4kcmVmbGV4LW1kOiA5OTJweCAhZGVmYXVsdDtcbiRyZWZsZXgtbGc6IDEyMDBweCAhZGVmYXVsdDtcbiRyZWZsZXgteGxnOiAxNjAwcHggIWRlZmF1bHQ7XG5cbiRyZWZsZXgteHhzLW1heDogKCRyZWZsZXgteHMgLSAxKTtcbiRyZWZsZXgteHMtbWF4OiAoJHJlZmxleC1zbSAtIDEpO1xuJHJlZmxleC1zbS1tYXg6ICgkcmVmbGV4LW1kIC0gMSk7XG4kcmVmbGV4LW1kLW1heDogKCRyZWZsZXgtbGcgLSAxKTtcbiRyZWZsZXgtbGctbWF4OiAoJHJlZmxleC14bGcgLSAxKTtcblxuJHJlZmxleC1icmVha3BvaW50czogKFxuICB4eHM6IDBweCxcbiAgeHM6ICRyZWZsZXgteHMsXG4gIHNtOiAkcmVmbGV4LXNtLFxuICBtZDogJHJlZmxleC1tZCxcbiAgbGc6ICRyZWZsZXgtbGcsXG4gIHhsZzogJHJlZmxleC14bGdcbik7XG5cbi8vIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRyZWZsZXgtZ3JpZC1zcGFjaW5nOiAxNXB4ICFkZWZhdWx0O1xuXG4vLyBDdXN0b20gcHJvcGVydGllcyBzbyBvdGhlcnMgY2FuIHJlZmVyZW5jZSB0aGUgdmFyaWFibGVzLlxuOnJvb3Qge1xuICAtLXJlZmxleC1jb2x1bW5zOiAjeyAkcmVmbGV4LWNvbHVtbnMgfTtcbiAgLS1yZWZsZXgtZ3JpZC1zcGFjaW5nOiAjeyAkcmVmbGV4LWdyaWQtc3BhY2luZyB9O1xuICAtLXJlZmxleC14czogI3sgJHJlZmxleC14cyB9O1xuICAtLXJlZmxleC1zbTogI3sgJHJlZmxleC1zbSB9O1xuICAtLXJlZmxleC1tZDogI3sgJHJlZmxleC1tZCB9O1xuICAtLXJlZmxleC1sZzogI3sgJHJlZmxleC1sZyB9O1xuICAtLXJlZmxleC14bGc6ICN7ICRyZWZsZXgteGxnIH07XG4gIC0tcmVmbGV4LXh4cy1tYXg6ICN7ICRyZWZsZXgteHhzLW1heCB9O1xuICAtLXJlZmxleC14cy1tYXg6ICN7ICRyZWZsZXgteHMtbWF4IH07XG4gIC0tcmVmbGV4LXNtLW1heDogI3sgJHJlZmxleC1zbS1tYXggfTtcbiAgLS1yZWZsZXgtbWQtbWF4OiAjeyAkcmVmbGV4LW1kLW1heCB9O1xuICAtLXJlZmxleC1sZy1tYXg6ICN7ICRyZWZsZXgtbGctbWF4IH07XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGNvbnRhaW5lcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lcixcbi4jeyRyZWZsZXgtcHJlZml4fWNvbnRhaW5lci1mdWxsIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJHJlZmxleC1ncmlkLXNwYWNpbmcgKiAyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkcmVmbGV4LWdyaWQtc3BhY2luZyAqIDIpO1xuXG4gICAgLiN7JHJlZmxleC1wcmVmaXh9Z3JpZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgteHM7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtc20pIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmVmbGV4LXNtO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC1tZDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgICAgICBtYXgtd2lkdGg6ICRyZWZsZXgtbGc7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteGxnKSB7XG4gICAgICAgIG1heC13aWR0aDogJHJlZmxleC14bGc7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZGlzcGxheS1mbGV4KCk7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgc2V0dXAtd2hpdGVzcGFjZSgpO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSB3aGVuIGxpc3RzIGFyZSB1c2VkIGFzIGEgZ3JpZFxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wgZGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbltjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6ICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtd2hpdGVzcGFjZSgpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSBncmlkcyBuZXN0ZWQgaW4gY29sdW1uc1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEsIDEsIGF1dG8pO1xuICAgICAgICBtYXJnaW46IC0kcmVmbGV4LWdyaWQtc3BhY2luZztcbiAgICB9XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIHpvb206IDE7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14cy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIG1ha2UtcmVmbGV4LWdyaWQoY29sLXNtLSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LW1kKSB7XG4gICAgQGluY2x1ZGUgbWFrZS1yZWZsZXgtZ3JpZChjb2wtbWQtKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC1sZy0pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJlZmxleC1ncmlkKGNvbC14bGctKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlZmxleCBjb2wtYXV0b1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWF1dG8ge1xuICAgIEBpbmNsdWRlIHNldHVwLWF1dG8tY29scygpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC14cy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1zbS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1tZC1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIC4jeyRyZWZsZXgtcHJlZml4fWNvbC1sZy1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgc2V0dXAtYXV0by1jb2xzKCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICAuI3skcmVmbGV4LXByZWZpeH1jb2wteGxnLWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBzZXR1cC1hdXRvLWNvbHMoKTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb3JkZXIgaGVscGVycyBnZW5lcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBtYWtlLW9yZGVyLWhlbHBlcnMoKTtcblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgteHMpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLXhzJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXNtKSB7XG4gICAgQGluY2x1ZGUgbG9vcC1vcmRlci1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucywgJy1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICctbWQnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRyZWZsZXgtbGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9yZGVyLWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zLCAnLWxnJyk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkcmVmbGV4LXhsZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMsICcteGxnJyk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggb2Zmc2V0IGhlbHBlcnMgZ2VuZXJhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGluY2x1ZGUgbWFrZS1vZmZzZXQtaGVscGVycygpO1xuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14cykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy14cycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1zbSkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1tZCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1tZCcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC1sZykge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSwgJy1sZycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHJlZmxleC14bGcpIHtcbiAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCRyZWZsZXgtY29sdW1ucyAtIDEsICcteGxnJyk7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IG1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVmbGV4IGdyaWQgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBtYWtlLXJlZmxleC1ncmlkKCRjbGFzcykge1xuICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoJHJlZmxleC1jb2x1bW5zLCAkY2xhc3MsIHdpZHRoKTtcbn1cblxuQG1peGluIGNhbGMtcmVmbGV4LWNvbHVtbnMoJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gICAgQGlmICR0eXBlID09IHdpZHRoIGFuZCAkaW5kZXggPiAwIHtcbiAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9I3skY2xhc3N9I3skaW5kZXh9IHtcbiAgICAgICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKG1hdGguZGl2KCRpbmRleCwgJHJlZmxleC1jb2x1bW5zKSk7XG4gICAgICAgICAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAgICAgICAgICp3aWR0aDogcGVyY2VudGFnZShtYXRoLmRpdigkaW5kZXgsICRyZWZsZXgtY29sdW1ucykpIC0gLjE7IC8vIGllNyBjc3MgaGFja1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbG9vcC1yZWZsZXgtY29sdW1ucygkaW5kZXgsICRjbGFzcywgJHR5cGUpIHtcbiAgICBAaWYgJGluZGV4ID49IDAge1xuICAgICAgICBAaW5jbHVkZSBjYWxjLXJlZmxleC1jb2x1bW5zKCRpbmRleCwgJGNsYXNzLCAkdHlwZSk7XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3AtcmVmbGV4LWNvbHVtbnMoKCRpbmRleCAtIDEpLCAkY2xhc3MsICR0eXBlKTtcbiAgICB9XG59XG5cbi8vIGRlZmF1bHRzIGZvciBhdXRvIGNvbHNcbkBtaXhpbiBzZXR1cC1hdXRvLWNvbHMoKSB7XG4gICAgQGluY2x1ZGUgZmxleCgxLCAwLCAwcHgpOyAvLyBhIHVuaXQgb24gbGFzdCB2YWx1ZSBpcyByZXF1aXJlZCBieSBJRTEwLTExXG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBpbmxpbmUtYmxvY2sgc3BlY2lmaWMgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gc2V0dXAtd2hpdGVzcGFjZSgpIHtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLS4zMWVtO1xuICAgICAgICAqbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd29yZC1zcGFjaW5nOiAtLjQzZW07XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtd2hpdGVzcGFjZSgpIHtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG59XG5cbkBtaXhpbiByZXNldC10ZXh0LWFsaWduKCkge1xuICAgIC8vXG4gICAgLy8gV2Ugd2FudCB0byByZXNldCBhbnkgdGV4dC1hbGlnbiBwcm9wZXJ0aWVzIHNldCBieSB0aGUgZ3JpZFxuICAgIC8vIChyZXF1aXJlZCBmb3IgdGhlIGlubGluZS1ibG9jayBmYWxsYmFjaylcbiAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0byBvdmVycmlkZSBhbnkgdGV4dC1hbGlnbiBwcm9wZXJ0aWVzXG4gICAgLy8gc2V0IG9uIHRoZSBpbmRpdmlkdWFsIGNvbC14IGVsZW1lbnRcbiAgICAvLyBvciBvbiBhbnkgb2YgaXQncyBjaGlsZCBlbGVtZW50c1xuICAgIC8vXG4gICAgLy8gMSkgc2V0IHRvIGxlZnQgYnkgZGVmYXVsdCAod29ya3MgZXZlcnl3aGVyZSlcbiAgICAvLyAyKSBzZXQgdG8gc3RhcnQgKHJlc3BlY3RzIHJpZ2h0IHRvIGxlZnQgdGV4dClcbiAgICAvL1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IHN0YXJ0O1xuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduLWxhc3Q6IHN0YXJ0O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb3JkZXIgY2xhc3MgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBvcmRlcigkb3JkZXI6IDApIHtcbiAgICAtbXMtZmxleC1vcmRlcjogJG9yZGVyO1xuICAgIC13ZWJraXQtb3JkZXI6ICRvcmRlcjtcbiAgICBvcmRlcjogJG9yZGVyO1xufVxuXG5AbWl4aW4gbWFrZS1vcmRlci1oZWxwZXJzKCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygkcmVmbGV4LWNvbHVtbnMpO1xufVxuXG5AbWl4aW4gbG9vcC1vcmRlci1oZWxwZXJzKCRpbmRleCwgJGJyZWFrcG9pbnQ6IG51bGwpIHtcbiAgICBAaWYgJGluZGV4ID49IDAge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vcmRlciN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcmRlcigkaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG5leHQgaXRlcmF0aW9uXG4gICAgICAgIEBpbmNsdWRlIGxvb3Atb3JkZXItaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvZmZzZXQgY2xhc3MgZ2VuZXJhdGlvbiBtaXhpbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb2Zmc2V0KCRpbmRleDogMCkge1xuICAgICRvZmZzZXQ6IG1hdGguZGl2KCRpbmRleCwgJHJlZmxleC1jb2x1bW5zKTtcbiAgICAvLyBjb252ZXJ0IHRvIHBlcmNlbnRhZ2Ugb25seSBpZiBub3QgemVyb1xuICAgIEBpZiAkb2Zmc2V0ICE9IDAge1xuICAgICAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRvZmZzZXQpO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJG9mZnNldDtcbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAqbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UobWF0aC5kaXYoJGluZGV4LCAkcmVmbGV4LWNvbHVtbnMpKSAtIC4xOyAvLyBpZTcgY3NzIGhhY2tcbiAgICB9XG59XG5cbkBtaXhpbiBtYWtlLW9mZnNldC1oZWxwZXJzKCkge1xuICAgIEBpbmNsdWRlIGxvb3Atb2Zmc2V0LWhlbHBlcnMoJHJlZmxleC1jb2x1bW5zIC0gMSk7XG59XG5cbkBtaXhpbiBsb29wLW9mZnNldC1oZWxwZXJzKCRpbmRleCwgJGJyZWFrcG9pbnQ6IG51bGwpIHtcbiAgICBAaWYgJGluZGV4ID4gMCBhbmQgJGJyZWFrcG9pbnQgPT0gbnVsbCB7XG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fW9mZnNldCN7JGJyZWFrcG9pbnR9LSN7JGluZGV4fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvZmZzZXQoJGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBuZXh0IGl0ZXJhdGlvblxuICAgICAgICBAaW5jbHVkZSBsb29wLW9mZnNldC1oZWxwZXJzKCgkaW5kZXggLSAxKSwgJGJyZWFrcG9pbnQpO1xuICAgIH0gQGVsc2UgaWYgJGluZGV4ID49IDAgYW5kICRicmVha3BvaW50ICE9IG51bGwge1xuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1vZmZzZXQjeyRicmVha3BvaW50fS0jeyRpbmRleH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgb2Zmc2V0KCRpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbmV4dCBpdGVyYXRpb25cbiAgICAgICAgQGluY2x1ZGUgbG9vcC1vZmZzZXQtaGVscGVycygoJGluZGV4IC0gMSksICRicmVha3BvaW50KTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZWZsZXggbW9kaWZpZXIgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL1xuLy8gZGlzcGxheVxuLy8gLS0tXG5cbkBtaXhpbiBkaXNwbGF5LWZsZXgoKSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vXG4vLyBmbGV4XG4vLyAtLS1cblxuQG1peGluIGZsZXgoJGdyb3c6IDAsICRzaHJpbms6IDEsICRiYXNpczogYXV0bykge1xuICAgIEBpZiAkYmFzaXMgPT0gMCB7XG4gICAgICAgIC1tcy1mbGV4OiAkZ3JvdyAkc2hyaW5rIGF1dG87IC8vaWUxMCBuZWVkcyBhdXRvXG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4OiAkZ3JvdyAkc2hyaW5rICRiYXNpcztcbiAgICB9XG5cbiAgICAtd2Via2l0LWZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xuICAgIGZsZXg6ICRncm93ICRzaHJpbmsgJGJhc2lzO1xufVxuXG5AbWl4aW4gZmxleC1ncm93KCRncm93OjEpIHtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogJGdyb3c7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6ICRncm93O1xuICAgIGZsZXgtZ3JvdzogJGdyb3c7XG59XG5cbkBtaXhpbiBmbGV4LXNocmluaygkc2hyaW5rOjEpIHtcbiAgICAtbXMtZmxleC1uZWdhdGl2ZTogJHNocmluaztcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAkc2hyaW5rO1xuICAgIGZsZXgtc2hyaW5rOiAkc2hyaW5rO1xufVxuXG5AbWl4aW4gZmxleC1iYXNpcygkYmFzaXM6YXV0bykge1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkYmFzaXM7XG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAkYmFzaXM7XG4gICAgZmxleC1iYXNpczogJGJhc2lzO1xufVxuXG5AbWl4aW4gZmxleC1mbG93KCRkaXJlY3Rpb246IHJvdywgJHdyYXA6IG5vd3JhcCkge1xuICAgIC1tcy1mbGV4LXdyYXA6ICR3cmFwO1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogJGRpcmVjdGlvbiAkd3JhcDtcbiAgICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHdyYXA6IHdyYXApIHtcbiAgICAtbXMtZmxleC13cmFwOiAkd3JhcDtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogJHdyYXA7XG4gICAgZmxleC13cmFwOiAkd3JhcDtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuXG4vL1xuLy8gYWxpZ25cbi8vIC0tLVxuXG5AbWl4aW4gYWxpZ24taXRlbXMoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24taXRlbXMoJGFsaWduKTtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkYWxpZ247XG4gICAgYWxpZ24taXRlbXM6ICRhbGlnbjtcbn1cblxuQG1peGluIGFsaWduLXNlbGYoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24tc2VsZigkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogJGFsaWduO1xuICAgIGFsaWduLXNlbGY6ICRhbGlnbjtcbn1cblxuQG1peGluIGFsaWduLWNvbnRlbnQoJGFsaWduOiBzdHJldGNoKSB7XG4gICAgQGluY2x1ZGUgbXMtYWxpZ24tY29udGVudCgkYWxpZ24pO1xuICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogJGFsaWduO1xuICAgIGFsaWduLWNvbnRlbnQ6ICRhbGlnbjtcbn1cblxuLy9cbi8vIGllMTAgc3ludGF4IGZvciBhbGlnblxuLy8gLS0tXG5cbkBtaXhpbiBtcy1hbGlnbi1pdGVtcygkYWxpZ24pIHtcbiAgICBAaWYgJGFsaWduID09ICdmbGV4LXN0YXJ0JyB7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnZmxleC1lbmQnIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjtcbiAgICB9XG59XG5cbkBtaXhpbiBtcy1hbGlnbi1zZWxmKCRhbGlnbikge1xuICAgIEBpZiAkYWxpZ24gPT0gJ2ZsZXgtc3RhcnQnIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ2ZsZXgtZW5kJyB7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJGFsaWduO1xuICAgIH1cbn1cblxuQG1peGluIG1zLWFsaWduLWNvbnRlbnQoJGFsaWduKSB7XG4gICAgQGlmICRhbGlnbiA9PSAnZmxleC1zdGFydCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xuICAgIH0gQGVsc2UgaWYgJGFsaWduID09ICdmbGV4LWVuZCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcbiAgICB9IEBlbHNlIGlmICRhbGlnbiA9PSAnc3BhY2UtYmV0d2Vlbicge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7XG4gICAgfSBAZWxzZSBpZiAkYWxpZ24gPT0gJ3NwYWNlLWFyb3VuZCcge1xuICAgICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC1tcy1mbGV4LWxpbmUtcGFjazogJGFsaWduO1xuICAgIH1cbn1cblxuLy9cbi8vIGp1c3RpZnktY29udGVudFxuLy9cbi8vIFVzZXMgXCJ0ZXh0LWFsaWduXCIgZm9yIHRoZSBmYWxsYmFjayBpbmxpbmUtYmxvY2sgZ3JpZFxuLy8gXCJ0ZXh0LWFsaWduXCIgaXMgZ2xvYmFsbHkgc3VwcG9ydGVkIGFuZCB3b3JrcyBvbiBhbGwgcm93cyBleGNlcHQgdGhlIGxhc3Rcbi8vIFwidGV4dC1hbGlnbi1sYXN0XCIsIHdoZXJlIHN1cHBvcnRlZCwgaGFuZGxlcyB0aGUgbGFzdCBsaW5lIChhbmQsIGhhcHBpbHksIGdyaWRzIHdpdGggb25seSBvbmUgcm93KVxuLy8gLS0tXG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQoKSB7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LWVuZCgpIHtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4oKSB7XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5kKCkge1xuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpYmxlIFZpc2liaWxpdHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiByZXNwb25zaXZlLXZpc2liaWxpdHktaGVscGVycygpIHtcbiAgICBAaWYgJHZpc2liaWxpdHktaGVscGVycyA9PSB0cnVlIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgeHhzIGFuZCB4bGcgYnJlYWtwb2ludHMgZGlmZmVyZW50bHlcbiAgICAgICAgJG1hcC1yZWZsZXgtYnJlYWtwb2ludHM6IG1hcC1yZW1vdmUoJHJlZmxleC1icmVha3BvaW50cywgeHhzLCB4bGcpO1xuXG4gICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi14eHMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1vbmx5KCd4eHMnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRicCBpbiBtYXAta2V5cygkbWFwLXJlZmxleC1icmVha3BvaW50cykge1xuICAgICAgICAgICAgLiN7JHJlZmxleC1wcmVmaXh9aGlkZGVuLSN7JGJwfS11cCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuXG4gICAgICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4tI3skYnB9LWRvd24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRyZWZsZXgtcHJlZml4fWhpZGRlbi0jeyRicH0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkYnApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skcmVmbGV4LXByZWZpeH1oaWRkZW4teGxnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtb25seSgneGxnJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy8gKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkcmVmbGV4LWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSkgLT4gbWRcbi8vID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnRzOiAoeHM6IDU3NnB4LCBzbTogNzY4cHgsIG1kOiA5OTJweCkpIC0+IG1kXG4vLyA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQpKSAtPiBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAgICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vLyA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiA3NjhweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG1pbiAhPTAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjEuXG4vLyA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiA1NzZweCwgc206IDc2OHB4LCBtZDogOTkycHgpKSAtPiA5OTFweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAgIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gMSwgbnVsbCk7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkcmVmbGV4LWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgICBAaWYgJG1pbiB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJHJlZmxleC1icmVha3BvaW50cykge1xuICAgICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtYXgge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRyZWZsZXgtYnJlYWtwb2ludHMpIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb3RoZXIgbWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICAtbW96LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICBib3gtc2l6aW5nOiAkYm94bW9kZWw7XG59XG4iLCJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBncmlkIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZsZXgtd3JhcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9d3JhcCB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1uby13cmFwIHtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAobm93cmFwKTtcblxuICAgIC8vIFRoaXMgaXMgbW9zdGx5IG5lZWRlZCB0byBzdG9wIHRoZSBncmlkIGNvbnRlbnRzIG92ZXJmbG93aW5nIGluIHRoZVxuICAgIC8vIGllMTAgaW1wbGVtZW50YXRpb24gb2YgZmxleGJveCBidXQgaXQgY2FuJ3QgaHVydCBpbiBvdGhlciBicm93c2Vyc1xuICAgIC8vIGFzIGl0IGlzIHRoZSBkZXNpcmVkIGJlaGF2aW91ciBvZiBub24gd3JhcHBpbmcgZmxleCBpdGVtc1xuICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXNocmluaygxKTtcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fXdyYXAtcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXAtcmV2ZXJzZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBmbGV4LWRpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdy1yZXZlcnNlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3ctcmV2ZXJzZSk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWRpcmVjdGlvbi1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uLXJldmVyc2UpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gYWxpZ24gaXRlbXMgKGNyb3NzIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgLy8gZmFsbGJhY2sgdG8gbGVnYWN5IHZlcnRpY2FsLWFsaWduXG4gICAgICAgIFtjbGFzcyo9XCIjeyRyZWZsZXgtcHJlZml4fWNvbC1cIl0ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tYmFzZWxpbmUge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGJhc2VsaW5lKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduIGNvbnRlbnQgKGNyb3NzIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpO1xufVxuXG4uI3skcmVmbGV4LXByZWZpeH1hbGlnbi1jb250ZW50LWVuZCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChmbGV4LWVuZCk7XG5cbiAgICAvLyBmYWxsYmFjayB0byBsZWdhY3kgdmVydGljYWwtYWxpZ25cbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGNlbnRlcik7XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLWNvbnRlbnQtc3BhY2UtYmV0d2VlbiB7XG4gICAgQGluY2x1ZGUgYWxpZ24tY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tY29udGVudC1zcGFjZS1hcm91bmQge1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3BhY2UtYXJvdW5kKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGFsaWduLXNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtc3RyZXRjaCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihzdHJldGNoKTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1zdGFydCB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihmbGV4LXN0YXJ0KTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1lbmQge1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoZmxleC1lbmQpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWFsaWduLXNlbGYtY2VudGVyIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9YWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gICAgQGluY2x1ZGUgYWxpZ24tc2VsZihiYXNlbGluZSk7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8ganVzdGlmeS1jb250ZW50IChtYWluIGF4aXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXN0YXJ0IHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQoKTtcblxuICAgIEBpZiAkbGVnYWN5LXN1cHBvcnQgPT0gdHJ1ZSB7XG4gICAgICAgICYuZ3JpZCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LWVuZCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LWVuZCgpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgLW1vei10ZXh0LWFsaWduLWxhc3Q6IHJpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiByaWdodDtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LWNlbnRlciB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50LWNlbnRlcigpO1xuXG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgJi5ncmlkIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcblxuICAgICAgICAgICAgW2NsYXNzKj1cIiN7JHJlZmxleC1wcmVmaXh9Y29sLVwiXSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzZXQtdGV4dC1hbGlnbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skcmVmbGV4LXByZWZpeH1qdXN0aWZ5LXNwYWNlLWJldHdlZW4ge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRyZWZsZXgtcHJlZml4fWp1c3RpZnktc3BhY2UtYXJvdW5kIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5kKCk7XG5cbiAgICBAaWYgJGxlZ2FjeS1zdXBwb3J0ID09IHRydWUge1xuICAgICAgICAmLmdyaWQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIC1tb3otdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuICAgICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBqdXN0aWZ5O1xuXG4gICAgICAgICAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC10ZXh0LWFsaWduKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb3NtZXRpYyBncmlkIG1vZGlmaWVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gUmVtb3ZlcyBpbnRlcm5hbCBwYWRkaW5nIGZyb20gYWxsIGNvbHVtbnMgaW4gYSBncmlkXG4uI3skcmVmbGV4LXByZWZpeH1ncmlkLWJsZWVkIHtcbiAgICBbY2xhc3MqPVwiI3skcmVmbGV4LXByZWZpeH1jb2wtXCJdIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb2wgbW9kaWZpZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlcyBhIGNvbHVtbiBlbGVtZW50IGludG8gYSBmbGV4Ym94IGNvbHVtblxuLiN7JHJlZmxleC1wcmVmaXh9Y29sLWdyaWQge1xuICAgIEBpbmNsdWRlIGRpc3BsYXktZmxleCgpO1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG5cbiAgICAmLiN7JHJlZmxleC1wcmVmaXh9ZGlyZWN0aW9uLXJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG4gICAgfVxufVxuXG4vLyBSZW1vdmVzIGludGVybmFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gUmVtb3ZlcyBob3Jpem9udGFsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZC14IHtcbiAgICBwYWRkaW5nOiAkcmVmbGV4LWdyaWQtc3BhY2luZyAwO1xufVxuXG4vLyBSZW1vdmVzIHZlcnRpY2FsIHBhZGRpbmcgZnJvbSBhbGwgY29sdW1ucyBpbiBhIGdyaWRcbi4jeyRyZWZsZXgtcHJlZml4fWNvbC1ibGVlZC15IHtcbiAgICBwYWRkaW5nOiAwICRyZWZsZXgtZ3JpZC1zcGFjaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29sLWdyaWQgY29udGVudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRyZWZsZXgtcHJlZml4fWZsZXgtaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBmbGV4KDAsIDAsIGF1dG8pO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydCA9PSB0cnVlIHtcbiAgICAgICAgKndpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLiN7JHJlZmxleC1wcmVmaXh9ZmxleC1mb290ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBtb2RpZmllcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eS1oZWxwZXJzKCk7XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQ29uZmlnIC0gRm9udFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJvcGVuU2Fuc1JlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvb3BlbnNhbnMtcmVndWxhci13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uL2ZvbnQvb3BlbnNhbnMtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ29wZW5TYW5zSXRhbGljJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvb3BlbnNhbnMtaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udC9vcGVuc2Fucy1pdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdvcGVuU2Fuc1NlbWlCb2xkJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvb3BlbnNhbnMtc2VtaWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi9mb250L29wZW5zYW5zLXNlbWlib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAncG9wcGluc1JlZ3VsYXInO1xuICBzcmM6IHVybCgnLi4vZm9udC9wb3BwaW5zLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udC9wb3BwaW5zLXJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAncG9wcGluc1NlbWlCb2xkJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvcG9wcGlucy1zZW1pYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uL2ZvbnQvcG9wcGlucy1zZW1pYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3BvcHBpbnNCb2xkJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnQvcG9wcGlucy1ib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udC9wb3BwaW5zLWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdwb3BwaW5zbGlnaHQnO1xuICBzcmM6IHVybCgnLi4vZm9udC9wb3BwaW5zLWxpZ2h0LXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udC9wb3BwaW5zLWxpZ2h0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQ29uZmlnIC0gVmFyc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbjpyb290IHtcbiAgLS1jLXByaW1hcnk6ICMyZjQwNGE7XG4gIC0tYy1zZWNvbmRhcnk6ICM0ZjZjN2Q7XG4gIC0tYy10ZXJ0aWFyeTogI2U1ZWFlZDtcbiAgLS1jLWJsYWNrOiAjNGE0YTRhO1xuICAtLWMtd2hpdGU6ICNmZmZmZmY7XG4gIC0tYy1mb2N1czogIzgwYjNmZjtcblxuICAtLWZvbnRSZWd1bGFyOiAnb3BlblNhbnNSZWd1bGFyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICAgICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250U2VtaUJvbGQ6ICdvcGVuU2Fuc1NlbWlCb2xkJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICAgICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgLS1mb250UG9wcGluc1JlZ3VsYXI6ICdwb3BwaW5zUmVndWxhcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCxcbiAgICAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gIC0tZm9udFBvcHBpbnNTZW1pOiAncG9wcGluc1NlbWlCb2xkJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICAgICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsXG4gICAgc2Fucy1zZXJpZjtcblxuICAtLWZvbnRCb2R5OiB2YXIoLS1mb250UmVndWxhcik7XG4gIC0tZm9udFRpdGxlOiB2YXIoLS1mb250UG9wcGluc1NlbWkpO1xuXG4gIC0tZm9udFNpemU6IDEwMCU7XG4gIC0tZm9udFNtYWxsOiA3MCU7XG4gIC0tbGluZUhlaWdodDogMS41O1xuICAtLWJ1bXA6IDMwcHg7XG4gIC0tYnVtcFVuaXQ6IDEwcHg7XG4gIC0tYnVtcFNtYWxsOiAyNHB4O1xuXG4gIC8vIExheW91dFxuICAtLWNvbnRhaW5lcldpZHRoOiAxMTEycHg7XG5cbiAgLy8gQW5pbWF0aW9uc1xuICAtLWVhc2luZzogY3ViaWMtYmV6aWVyKDAuODMsIDAsIDAuMTcsIDEpO1xuICAtLXRyYW5zaXRpb246IDAuM3MgdmFyKC0tZWFzaW5nKTtcbn1cblxuLyoqXG4gKiBCcmVha3BvaW50c1xuICovXG4kYnJlYWtwb2ludHM6IChcbiAgeHM6IDU3NnB4LFxuICBzbTogNzY4cHgsXG4gIG1kOiA5OTJweCxcbiAgbGc6IDEyMDBweCxcbiAgeGxnOiAxNjAwcHgsXG4pO1xuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBGb2N1cyBWaXNpYmxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBGb2N1cyBWaXNpYmxlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9mb2N1cy12aXNpYmxlXG4gKiBPdmVycmlkZSBiYXNlIGZvY3VzIHN0eWxlcyBmb3IgbW91c2UgYW5kIHRvdWNoIGludGVyYWN0aW9uc1xuICovXG5AbWl4aW4gZm9jdXMtdmlzaWJsZSgpIHtcbiAgLmpzLWZvY3VzLXZpc2libGUgJiB7XG4gICAgJjpub3QoLmZvY3VzLXZpc2libGUpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEhlbHBlcnMgLSBGb250IFNtb290aGluZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKiBcbiAqIEZvbnQgU21vb3RoaW5nXG4gKiBFbmFibGVzIGZvbnQgc21vb3RoaW5nIGZvciBjYXBhYmxlIGJyb3dzZXJzLlxuICogT3B0aW9uYWxseSBmb3JjZSBmb250LXNtb290aGluZyBvbiBub24tcmV0aW5hIGRldmljZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59ICRmb3JjZSBbZmFsc2VdXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbkBtaXhpbiBmb250LXNtb290aGluZygkZm9yY2U6IGZhbHNlKSB7XG4gIEBpZiAkZm9yY2UgPT0gdHJ1ZSB7XG4gICAgLW1vei1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIH0gQGVsc2Uge1xuICAgIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcbiAgICAgIC1tb3otZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gR2xvYmFsIG1peGluc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8vIFJlc2V0IDxsaT4gZWxlbWVudHNcbkBtaXhpbiBsaS1yZXNldCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLyBSZW1vdmUgdGV4dCBmcm9tIGVsZW1lbnRzXG5AbWl4aW4gcm0tdGV4dCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xufVxuXG4vLyBCYWNrZ3JvdW5kIGltYWdlc1xuQG1peGluIGJnLWltZygkc2l6ZSkge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xufVxuXG4vLyBJRSA5KyBvbmx5XG5AbWl4aW4gaWUoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkgYW5kIChtaW4tcmVzb2x1dGlvbjogKzcyZHBpKSB7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07XG4gIH1cbn1cblxuQG1peGluIGJ0blJlc2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBIZWxwZXJzIC0gVGFibGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFJlc3BvbnNpdmUgVGFibGVcbiAqIENyZWF0ZXMgYSByZXNwb25zaXZlIHRhYmxlXG4gKiBBY2NlcHRzIGEgbGlzdCBvZiBoZWFkZXJzIHRvIHJlcGxhY2UgbWFpbiBcbiAqIHRhYmxlIGhlYWRlcnMgb24gbW9iaWxlLlxuICogQHBhcmFtIHttYXB9ICRoZWFkZXJzXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbkBtaXhpbiByZXNwb25zaXZlLXRhYmxlKCRoZWFkZXJzOiAoKSkge1xuICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRhYmxlLFxuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRoLFxuICB0ZCxcbiAgdHIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIHRyIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTk5OTlweDtcbiAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJsYWNrO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgIHBhZGRpbmc6IHNpemUoMzBweCkgMDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi10b3A6IHNpemUoMTZweCk7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVhZGVyc1xuICAgKi9cbiAgQGVhY2ggJGhlYWRlciBpbiAkaGVhZGVycyB7XG4gICAgJGk6IGluZGV4KCRoZWFkZXJzLCAkaGVhZGVyKTtcblxuICAgIHRkOm50aC1vZi10eXBlKCN7JGl9KTo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBjb250ZW50OiAkaGVhZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNvbG9yIHtcclxuICAgICYtLXByaW1hcnkge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAmLS1zZWNvbmRhcnkge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSkgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICYtLXRlcnRpYXJ5IHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXJ0aWFyeSkgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICYtLWJsYWNrIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy1ibGFjaykgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICYtLXdoaXRlIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSkgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICYtLWZvY3VzIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tYy1mb2N1cykgIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vIHNjcmVlbiByZWFkZXJzXHJcbi5zY3JlZW4tcmVhZGVycyB7XHJcbiAgICBAaW5jbHVkZSBybS10ZXh0O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMDtcclxufVxyXG5cclxuLnRleHQtYWxpZ24tY2VudGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xyXG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEJhc2UgLSBEZWZhdWx0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5ncmlkIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXJXaWR0aCk7XG59XG5cbi5jb250YWluZXItZnVsbCA+IC5ncmlkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG51bC5tZW51LFxudWwucGxhaW4ge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbn1cblxuaW1nIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAmLmxhenkge1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICBAbWVkaWEgbm90IGFsbCBhbmQgKG1pbi1yZXNvbHV0aW9uOiAwLjAwMWRwY20pIHtcbiAgICAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnN2ZyB7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi8vIEtlZXAgdmlkZW8gcmF0aW8gZm9yIGZsdWlkIHdpZHRoc1xuLnZpZGVvLWNvbnRhaW5lcixcbi5tZWRpYS12aW1lby12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIGhlaWdodDogMDtcblxuICBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLy8gbWFpbiB7XG4vLyAgIC5ncmlkIHtcbi8vICAgICAmID4gW2NsYXNzKj0nY29sLSddIHtcbi8vICAgICAgIC5ncmlkIHtcbi8vICAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXSB7XG4vLyAgICAgICAgICAgLmdyaWQge1xuLy8gICAgICAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXSB7XG4vLyAgICAgICAgICAgICAgIHNlY3Rpb24ge1xuLy8gICAgICAgICAgICAgICAgICYubS1lbnRpdHkge1xuLy8gICAgICAgICAgICAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApICogMi41KSAwO1xuLy8gICAgICAgICAgICAgICAgICAgJiA+IC5ncmlkIHt9XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG5cblxubWFpbiB7XG4gICYud3JhcHBlciB7XG4gICAgYXJ0aWNsZSB7XG4gICAgICAmLm8tZnVsbCB7XG4gICAgICAgICYgPiAuZ3JpZCB7XG4gICAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgICAgICAgICAuZ3JpZCB7XG4gICAgICAgICAgICAgICYgPiAuY29sLXNtLTgge1xuICAgICAgICAgICAgICAgIHNlY3Rpb24ge1xuICAgICAgICAgICAgICAgICAgJi5tLWVudGl0eSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1idW1wKSAqIDIpIDA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuICAmLm1lbWJlciB7XG4gICAgaGVhZGVyIHtcbiAgICAgICYuby1oZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi51c2VyLWxvZ2dlZC1pbiB7XG4gICAgaGVhZGVyIHt9XG4gICAgLnRvb2xiYXIgLnRvb2xiYXItYmFyLCAudG9vbGJhciAudG9vbGJhci10cmF5IHtcbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQmFzZSAtIFR5cG9ncmFwaHlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIENvbmZpZ1xuICovXG5cbi8qKlxuICogSGVhZGluZ1xuICovXG5oMSxcbi5oMSxcbmgyLFxuLmgyLFxuaDMsXG4uaDMsXG5oNCxcbi5oNCxcbmg1LFxuLmg1LFxuaDYsXG4uaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuaDEsXG4uaDEge1xuICBsaW5lLWhlaWdodDogY2xhbXAoMzhweCwgNHZ3LCA2MXB4KTtcbiAgZm9udC1zaXplOiBjbGFtcCgzMHB4LCA0dncsIDQ0cHgpO1xuICBsZXR0ZXItc3BhY2luZzogY2xhbXAoMHB4LCA1dncsIDFweCk7XG59XG5cbmgyLFxuLmgyIHtcbiAgZm9udC1zaXplOiBjbGFtcCgyNXB4LCA0LjV2dywgMzVweCk7XG4gIGxpbmUtaGVpZ2h0OiBjbGFtcCgzMnB4LCA1dncsIDM5cHgpO1xuICBsZXR0ZXItc3BhY2luZzogY2xhbXAoMHB4LCAyLjV2dywgMC41cHgpO1xufVxuXG5oMyxcbi5oMyB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjJweCwgNC41dncsIDI4cHgpO1xuICBsaW5lLWhlaWdodDogY2xhbXAoMzBweCwgNXZ3LCAzM3B4KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG59XG5cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiBjbGFtcCgxOHB4LCA0LjV2dywgMjJweCk7XG4gIGxpbmUtaGVpZ2h0OiBjbGFtcCgyOHB4LCA1dncsIDMxcHgpO1xufVxuXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtc2l6ZTogMXJlbTtcblxuICBAaW5jbHVkZSBtZWRpYSgnPHhzJykge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFncmFwaHNcbiAqL1xucCB7XG4gIG1hcmdpbjogMS41ZW0gMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcblxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgfVxufVxuXG4vKipcbiAqIExpc3RzXG4gKi9cbnVsLFxub2wge1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICBsaSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICB9XG4gIH1cbn1cblxuXG4gIC8qKlxuICAqIExpbmtzXG4gICovXG5cbmEge1xuICBjb2xvcjogIzRmNmM3ZDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDNweCBzb2xpZCB2YXIoLS1jLWZvY3VzKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxuXG4gICYubm8tbGluayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLm5vLWNsaWNrIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG4vKipcbiAqIEJ1dHRvbnNcbiAqL1xuYnV0dG9uIHtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogM3B4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXMtdmlzaWJsZSgpIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW5saW5lXG4gKi9cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG59XG5cbmVtIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRJdGFsaWMpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbnNwYW4ge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG5hZGRyZXNzIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG5ociB7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gRHJ1cGFsIDggc3BlY2lmaWNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBQYWdpbmF0aW9uXG4ucGFnZXIge1xuICBAaW5jbHVkZSBsaS1yZXNldDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IHZhcigtLWJ1bXApO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gIH1cblxuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgMTBweCAwIDVweDtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIGEge1xuICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkbW5pbiBzdHlsZXNcbi5hZG1pbi1mdW5jdGlvbnMge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDMxO1xuXG4gIC51c2VyLWxvZ2dlZC1pbiAmIHtcbiAgICB0b3A6IDM5cHg7XG4gIH1cblxuICAudG9vbGJhci10cmF5LW9wZW4gJiB7XG4gICAgdG9wOiA3OXB4O1xuICB9XG5cbiAgW2NsYXNzKj0nY29sLSddIHtcbiAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICB9XG5cbiAgdWwge1xuICAgIEBpbmNsdWRlIGxpLXJlc2V0O1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyAyKSAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1bXApO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udmlzdWFsbHktaGlkZGVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG5hLnNraXAtbWFpbiB7XG4gIGxlZnQ6IC05OTlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAtOTk5O1xufVxuYS5za2lwLW1haW46Zm9jdXMsXG5hLnNraXAtbWFpbjphY3RpdmUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICBsZWZ0OiBhdXRvO1xuICB0b3A6IGF1dG87XG4gIHdpZHRoOiAzMCU7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbjogMTBweCAzNSU7XG4gIHBhZGRpbmc6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuMmVtO1xuICB6LWluZGV4OiA5OTk7XG59XG5cbi5hamF4LXByb2dyZXNzLXRocm9iYmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBCYXNlIC0gTWFpblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogU3R5bGVzXG4gKi9cbmh0bWwsXG5ib2R5IHtcbiAgQGluY2x1ZGUgZm9udC1zbW9vdGhpbmcodHJ1ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemUpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZUhlaWdodCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcbn1cblxuYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJi5pcy1mcm96ZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmW2RhdGEtbmF2PVwib3BlblwiXSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gR3JpZFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogU3R5bGluZ1xuICovXG4uYS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG5cbiAgJi0tMSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAmLS0yIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbiAgfVxuXG4gICYtLTMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi0tNCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gTmF2IFRvZ2dsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi8qKlxuICogQ29uZmlnXG4gKi9cbiRidW1wOiAzMHB4O1xuJGhlaWdodC1pY29uOiAkYnVtcDtcbiR3aWR0aC1saW5lOiAkYnVtcCAqIDEuNTtcbiRoZWlnaHQtbGluZTogNHB4O1xuXG4kcm90YXRpb246IDQ1ZGVnO1xuJHRyYW5zbGF0ZVk6ICgkaGVpZ2h0LWljb24gLyAyKTtcbiR0cmFuc2xhdGVYOiAwO1xuXG4vKipcbiAqIFN0eWxlc1xuICovXG5cbi5hLW5hdi10b2dnbGUge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmNsb3NlLW1lbnUtaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBbZGF0YS1uYXY9J29wZW4nXSAmIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuICAubWVudS1pY29uIHtcbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDQ3cHg7XG4gICAgfVxuICAgIFtkYXRhLW5hdj0nb3BlbiddICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICZfX2xpbmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgd2lkdGg6ICR3aWR0aC1saW5lO1xuICAgIGhlaWdodDogJGhlaWdodC1saW5lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICgkaGVpZ2h0LWxpbmUgLyAyKTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcblxuICAgICYtMSB7XG4gICAgICB0b3A6IDA7XG5cbiAgICAgIDpob3ZlciA+ICYge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGhlaWdodC1saW5lIC8gMiAqIC0xKTtcbiAgICAgIH1cblxuICAgICAgW2RhdGEtbmF2PSdvcGVuJ10gJiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdHJhbnNsYXRlWSkgdHJhbnNsYXRlWCgkdHJhbnNsYXRlWClcbiAgICAgICAgICByb3RhdGUoJHJvdGF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi0yIHtcbiAgICAgIHRvcDogNTAlO1xuXG4gICAgICBbZGF0YS1uYXY9J29wZW4nXSAmIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi0zIHtcbiAgICAgIHRvcDogMTAwJTtcblxuICAgICAgOmhvdmVyID4gJiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkaGVpZ2h0LWxpbmUgLyAyKTtcbiAgICAgIH1cblxuICAgICAgW2RhdGEtbmF2PSdvcGVuJ10gJiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkdHJhbnNsYXRlWSAqIC0xKSB0cmFuc2xhdGVYKCR0cmFuc2xhdGVYKVxuICAgICAgICAgIHJvdGF0ZSgkcm90YXRpb24gKiAtMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogQXRvbXMgLSBCdXR0b25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqKi9cblxuQG1peGluIGJ0biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAxMDBweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogMTdweCAyMHB4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKFwiPHhzXCIpIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbkBtaXhpbiBidG4taG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xufVxuXG5AbWl4aW4gYnRuLW5vLWJnIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRSZWd1bGFyKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6IHZhcigtLWMtZGFya0dyZXkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYXJyb3ctZm9yd2FyZC1zaGFycC1sb25nLnN2ZycpO1xuICAgIHdpZHRoOiAxN3B4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1idW1wKSAvIDMpO1xuICB9XG59XG5cbkBtaXhpbiBidG4tdy1pY29uKCRpbWc6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJ0bjtcbiAgbWluLXdpZHRoOiAxNjVweDtcbiAgLy8gcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDQpIGNhbGModmFyKC0tYnVtcCkgKiAzLjUpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBiZy1pbWcoY29udGFpbik7XG4gICAgY29udGVudDogJyc7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRpbWcpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0O1xuICAgIHRyYW5zaXRpb246IDAuM3MgdmFyKC0tZWFzaW5nKTtcbiAgfVxufVxuXG4vKipcbiAqIFN0eWxlc1xuICoqL1xuXG4uYS1idG4ge1xuICBAaW5jbHVkZSBidG47XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgYnRuLWhvdmVyO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogM3B4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXMtdmlzaWJsZSgpIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG5cbiAgJi0tbWFpbCB7XG4gICAgQGluY2x1ZGUgYnRuLXctaWNvbignLi4vaW1nL21haWxpbmctd2hpdGUuc3ZnJyk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBpbmNsdWRlIGJ0bi13LWljb24oJy4uL2ltZy9tYWlsaW5nLWJsdWUuc3ZnJyk7XG4gICAgfVxuICB9XG5cbiAgJi0tYXJyb3cge1xuICAgIEBpbmNsdWRlIGJ0bi13LWljb24oJy4uL2ltZy9zaGFwZS5zdmcnKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgYnRuLXctaWNvbignLi4vaW1nL3NoYXBlLWJsdWUuc3ZnJyk7XG4gICAgfVxuICB9XG5cblxuICAmLS1zb2xkLW91dCB7XG4gICAgY29sb3I6IHZhcigtLWMtYmxhY2spICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ibGFjaykgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKSAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmEtYnRuLWN0YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjZjN2Q7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHN2ZyB7XG4gICAgICBwYXRoIHtcbiAgICAgICAgZmlsbDogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDE2cHggMzBweCAxNnB4IDE2cHg7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICM0ZjZjN2Q7XG4gIH1cbiAgc3ZnIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIEF0b21zIC0gSW1hZ2UgY3JlZGl0c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5hLWltYWdlLWNyZWRpdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiB2YXIoLS1idW1wKTtcbiAgcmlnaHQ6IHZhcigtLWJ1bXApO1xuICB6LWluZGV4OiA0O1xuICBjdXJzb3I6IGhlbHAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiB2YXIoLS1idW1wKTtcbiAgd2lkdGg6IHZhcigtLWJ1bXApO1xuICBib3JkZXI6IDA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBib3R0b206IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICByaWdodDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWNyZWRpdCk7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IHZhcigtLWJ1bXApO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBwYWRkaW5nOiAwIDIxcHg7XG4gICAgaGVpZ2h0OiB2YXIoLS1idW1wKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tYnVtcCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB3b3JkLXNwYWNpbmc6IDA7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSxcbiAgJjpob3ZlciB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiBVbi50aXRsZWRcbiogQXRvbXMgLSBCcmVhZGNydW1ic1xuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuXG4vKipcbiogU3R5bGluZ1xuKi9cbi5hLWJyZWFkY3J1bWIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1idW1wKTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDIpIDA7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gIH1cblxuICBvbCB7XG4gICAgQGluY2x1ZGUgbGktcmVzZXQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1idW1wKSAvIDYpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnLyc7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWJ1bXApIC8gMTApO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmEtYm9va2luZy1jdGEge1xyXG4gICZfX2N0YSB7XHJcbiAgICBAaW5jbHVkZSBidG47XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIEBpbmNsdWRlIGJ0bi1ob3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgb3V0bGluZTogM3B4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgZm9jdXMtdmlzaWJsZSgpIHtcclxuICAgICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWFyZ2luOiAwIDAgNDBweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gICAgZ2FwOiAxNnB4O1xyXG5cclxuICAgIHN2ZyB7XHJcbiAgICAgIG1heC13aWR0aDogMjhweDtcclxuICAgIH1cclxuXHJcbiAgICAmX19zb2xkLW91dCB7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ibGFjayk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgJl9fc3Bla3RyaXgtbW9kYWwge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHRvcDogY2FsYyh2YXIoLS1idW1wKSAqIDIpO1xyXG4gICAgd2lkdGg6IDk1JTtcclxuICAgIG1heC13aWR0aDogODAwcHg7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBhbmltYXRpb246IGZhZGVPdXQgMC40cyB2YXIoLS1lYXNpbmcpIGZvcndhcmRzO1xyXG5cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC40cyB2YXIoLS1lYXNpbmcpIGZvcndhcmRzO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAmX19vdmVybGF5IHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgICAgei1pbmRleDogMTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuXHJcbiAgICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9fY2xvc2Uge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9jbG9zZS1ibGFjay5zdmcnKTtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19idXR0b24ge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIG1heC13aWR0aDogMzIwcHg7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbjogYXV0byAwIGF1dG8gYXV0bztcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJ0bi13LWljb24oJy4uL2ltZy90aWNrZXQtd2hpdGUuc3ZnJyk7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyAmLnNvbGQtb3V0IHtcclxuICAgICAgLy8gICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgLy8gICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICAvLyAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcclxuICAgICAgLy8gICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJsYWNrKTtcclxuICAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuXHJcblxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc29sZC1vdXRfX3dyYXBwZXIge1xyXG4gIGJ1dHRvbi5zb2xkLW91dCB7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYmxhY2spO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAmOmhvdmVyIHtcclxuICAvLyAgIGJ1dHRvbi5zb2xkLW91dCB7XHJcbiAgLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgLy8gICB9XHJcblxyXG4gIC8vIH1cclxufSIsIi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIFVuLnRpdGxlZFxyXG4gKiBCYXNlIC0gQW5pbWF0aW9uc1xyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgSW5zdHJ1Y3Rpb25zXHJcbiAgICAtLSAtLSAtLSBcclxuICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMC4ycyB2YXIoLS1lYXNpbmcpIGZvcndhcmRzO1xyXG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMnMgdmFyKC0tZWFzaW5nKSBmb3J3YXJkcztcclxuICAgIC0tIC0tIC0tXHJcbiovXHJcblxyXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XHJcbiAgICAwJSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICBcclxuICAgIDEwMCUge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xyXG4gICAgMCUge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgMTAwJSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQGtleWZyYW1lcyB6b29tRmFkZUluIHtcclxuICAgIDAlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMCUpIHNjYWxlKDAuOCk7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICBcclxuICAgIDEwMCUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIEBrZXlmcmFtZXMgem9vbUZhZGVPdXQge1xyXG4gICAgMCUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAxMDAlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMCUpIHNjYWxlKDAuOCk7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICB9XHJcbiAgIiwiQGltcG9ydCBcIn5zbGljay1jYXJvdXNlbC9zbGljay9zbGlja1wiO1xuXG4jbW9kYWwtZ2FsbGVyeSB7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjYpO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB6LWluZGV4OiAxMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAuc2xpY2stc2xpZGUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGhlaWdodDogMHB4IWltcG9ydGFudDtcbiAgICAgICYuc2xpY2stYWN0aXZlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7ICBcbiAgICAgIH1cbiAgICB9XG4gIGRpdiwgc2VjdGlvbiwgaW1nIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5tb2RhbF9fb3ZlcmxheSB7XG4gICAgd2lkdGg6IGNhbGMoODAlIC0gMTIwcHgpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDgwJSAtIDEyMHB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAubW9kYWxfX2hlYWRlciB7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICByaWdodDogMDtcbiAgICAgIC5tb2RhbF9fY2xvc2Uge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLmdhbGxlcnlfX3NsaWRlcyB7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGEuc2xpY2stYXJyb3cge1xuICAgICAgei1pbmRleDogMTtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogLTYwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICBsZWZ0OiAtMTVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogLTYwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjYjNiM2IzO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgICYuc2xpY2stZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5tb2RhbF9fY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgIH1cbiAgICAgICYtLWlubmVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIHZpZGVvIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmX19jdGEge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidG4oKTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5nYWxsZXJ5X19pdGVtLXRpdGxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1vZGFsX19pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHJvdy1nYXA6IHZhcigtLWJ1bXApO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1vZGFsX19jb250YWluZXIge1xuICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIH1cbiAgICAgIGdyaWQtZ2FwOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uZ2FsbGVyeV9faXRlbXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbiAgZ3JpZC1nYXA6IDQwcHg7XG4gIC5nYWxsZXJ5X19pdGVtIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogNTBweDtcblxuICAgIC5vLXRlYXNlcl9fdGl0bGUge1xuICAgICAgY29sb3I6ICM0RjZDN0Q7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBsaW5lLWhlaWdodDogMzNweDtcbiAgICB9XG4gIH1cbn0iLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW1lcmdlbmN5IE1lc3NhZ2VcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBDb25maWdcclxuICoqL1xyXG5Aa2V5ZnJhbWVzIHNsaWRlSW5VcCB7XHJcbiAgMCUge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICB9XHJcbiAgODAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdHlsaW5nXHJcbiAqKi9cclxuLm0tZW1tc2cge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlcnRpYXJ5KTtcclxuICB6LWluZGV4OiAxMDA7XHJcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDIpIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gIG1heC1oZWlnaHQ6IDMwdmg7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICZbZGF0YS1zdGF0ZT0ndmlzaWJsZSddIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuICAgIGFuaW1hdGlvbjogc2xpZGVJblVwIDAuMnMgMC4zcyBjdWJpYy1iZXppZXIoMC43NywgMC4yOSwgMC4zNSwgMC43MikgMVxyXG4gICAgICBmb3J3YXJkcztcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzx4cycpIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICBoMywgcCB7XHJcbiAgICB3aWR0aDogODUlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IGF1dG8gYXV0byAwLjVyZW0gYXV0bztcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ0blJlc2V0O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XHJcbiAgICByaWdodDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgd2lkdGg6IDM1cHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgIGZpbGw6IHZhcigtLWMtc2Vjb25kYXJ5KTtcclxuICAgICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG5cclxuICAgICAgcGF0aCB7XHJcbiAgICAgICAgZmlsbDogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBVbi50aXRsZWRcclxuICogTW9sZWN1bGVzIC0gRW50aXRpZXNcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cclxuXHJcbi5tLWVudGl0eSB7XHJcbiAgbWFyZ2luOiB2YXIoLS1idW1wKSAwO1xyXG5cclxuICAmX19pbnRyb2R1Y3Rpb24ge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgJl9faHRtbC1lbWJlZCB7XHJcbiAgICBpZnJhbWUge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICAgIGgyIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxuICAgIH1cclxuICAgIGZvcm0ge1xyXG4gICAgICB0YWJsZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgICAgICB0ZCB7XHJcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0Ym9keSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgZ3JpZC1nYXA6IDMwcHg7XHJcblxyXG4gICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMHB4IDFmcjtcclxuICAgICAgICAgICAgZ3JpZC1nYXA6IDIwcHg7XHJcblxyXG4gICAgICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXRbdHlwZT0nc3VibWl0J10ge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ0bjtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAmX19hdWRpbyB7XHJcbiAgICBoMiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX2N0YSB7XHJcbiAgICBkaXYge1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjRweDtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xyXG4gICAgICAgIG1hcmdpbjogMTdweCAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX2ZpZWxkX3dlbGNvbWVfZXh0cmEge1xyXG4gICAgaDMsXHJcbiAgICBwIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX2ZpZWxkX3dlbGNvbWVfZXh0cmFfX3dyYXBwZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy10ZXJ0aWFyeSk7XHJcbiAgICBoMyxcclxuICAgIHAge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2Rvd25sb2FkcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlYWVkO1xyXG4gICAgcGFkZGluZzogMjRweDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcclxuICAgIH1cclxuICAgIHNwYW4ge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19ib2R5LFxyXG4gICZfX3RleHQge1xyXG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcblxyXG4gICZfX2JvZHksXHJcbiAgJl9fdGV4dCxcclxuICAmX19hY2NvcmRpb24sXHJcbiAgJl9faW1hZ2UtdGV4dCB7XHJcbiAgICBwIGEge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaDEsXHJcbiAgICBoMixcclxuICAgIGgzLFxyXG4gICAgaDQsXHJcbiAgICBoNSB7XHJcbiAgICAgICYgPiBhIHtcclxuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2JvZHksXHJcbiAgJl9fdGV4dCxcclxuICAmX19hY2NvcmRpb24ge1xyXG4gICAgdWwsIG9sIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgIHdpZHRoOiA3cHg7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIGxlZnQ6IC0xNXB4O1xyXG4gICAgICAgICAgdG9wOiA5cHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9sIHtcclxuICAgICAgbGkge1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XHJcblxyXG4gICAgICAgIFxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYWNjb3JkaW9uIHtcclxuICAgIG9sIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDIzcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19ldmVudCxcclxuICAmX19ibG9nIHtcclxuICAgICZfX2luZm8ge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXRlcnRpYXJ5KTtcclxuICAgICAgcGFkZGluZzogdmFyKC0tYnVtcCk7XHJcbiAgICAgIG1hcmdpbjogLTE1cHggMHB4IDYwcHg7XHJcblxyXG4gICAgICBoMixcclxuICAgICAgLmgyIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyNXB4LCAyLjV2dywgMjhweCk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDMycHgsIDV2dywgNDJweCk7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGNsYW1wKDBweCwgMi41dncsIDAuNXB4KTtcclxuICAgICAgICBjb2xvcjogIzJmNDA0YTtcclxuICAgICAgICAvLyBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX3J1bi1kYXRlLFxyXG4gICAgJl9fdmVudWUsXHJcbiAgICAmX19wcmljZXMtdGltZXMsXHJcbiAgICAmX19ibG9nLXRhZ3Mge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gICAgICBmb250LXNpemU6IGNsYW1wKDI1cHgsIDIuNXZ3LCAyOHB4KTtcclxuICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDMycHgsIDV2dywgNDJweCk7XHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKXtcclxuICAgICAgICBncmlkLWF1dG8tZmxvdzogcm93O1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIH1cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEsXHJcbiAgICAgIHAge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMjVweCwgMi41dncsIDI4cHgpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjbGFtcCgzMnB4LCA1dncsIDM5cHgpO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBjbGFtcCgwcHgsIDIuNXZ3LCAwLjVweCk7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHNwYW57XHJcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfVxyXG5cclxuICAgICAgcCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRSZWd1bGFyKTtcclxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICBcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJyl7XHJcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2Jsb2ctdGFncyB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuXHJcbiAgICAgIGgyLFxyXG4gICAgICAuaDIge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBmb250LXNpemU6IGNsYW1wKDI1cHgsIDIuNXZ3LCAyOHB4KTtcclxuICAgICAgICBsaW5lLWhlaWdodDogY2xhbXAoMzJweCwgNXZ3LCA0MnB4KTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogY2xhbXAoMHB4LCAyLjV2dywgMC41cHgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2JvZHknO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvaW1hZ2UnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvcXVvdGUnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvYWNjb3JkaW9uJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2dhbGxlcnknO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvaW1hZ2UtdGV4dCc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9kb3dubG9hZHMnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvZW1iZWQnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvdGVzdGltb25pYWxzJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2ludHJvZHVjdGlvbic7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9mdWxsLXdpZHRoLWltYWdlJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2ltYWdlLWFuZC10ZXh0JztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL3JlbGF0ZWQtY29udGVudCc7XHJcbiAgQGltcG9ydCAnLi9lbnRpdGllcy9jdXJhdGVkLXNpZ25wb3N0JztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2dyb3VwZWQtc2lnbnBvc3RzJztcclxuICBAaW1wb3J0ICcuL2VudGl0aWVzL2ZpZWxkX3dlbGNvbWVfZXh0cmEnO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvc3Bla3RyaXgtZG9uYXRpb24nO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvdmlkZW8nO1xyXG4gIEBpbXBvcnQgJy4vZW50aXRpZXMvcG9wLXVwJztcclxufVxyXG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTm9kZSBib2R5IGNvcHlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4mX19ib2R5IHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBJbWFnZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ltYWdlLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gUXVvdGVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25maWdcbiAqL1xuXG5AbWl4aW4gcmF0aW5nKCRzdGFycykge1xuICAmOm50aC1jaGlsZCgtbiArICN7JHN0YXJzfSkge1xuICAgIHBhdGgge1xuICAgICAgZmlsbDogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTdHlsZXNcbiAqL1xuXG4mX19xdW90ZSB7XG4gIGJsb2NrcXVvdGUge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250VGl0bGUpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICYtaW5mbyB7XG4gICAgY2l0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tYy1ibGFjayk7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFJlZ3VsYXIpO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgcGFkZGluZzogMCB2YXIoLS1idW1wKSAwIDA7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LWZhbWlseTogJ29wZW5TYW5zU2VtaUJvbGQnO1xuICAgICAgfVxuICAgIH1cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBzdmcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDQ4cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtNDFweDtcbiAgICB9XG4gIH1cblxuICBjaXRlIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuXG5cbiAgICAubmFtZSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAucmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcblxuICAgICZfX3N0YXIge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHN0cm9rZTogdmFyKC0tYy1wcmltYXJ5KTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgJHN0YXJzIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgJi0tI3skc3RhcnN9IHtcbiAgICAgICAgLnJhdGluZ19fc3RhciB7XG4gICAgICAgICAgQGluY2x1ZGUgcmF0aW5nKCN7JHN0YXJzfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBBY2NvcmRpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9fYWNjb3JkaW9uIHtcbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cbiAgLmFjY29yZGlvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWVhZWQ7XG4gIH1cbiAgLmFjY29yZGlvbl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRleHQtYWxpZ24tbGFzdDogbGVmdDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWVhZWQ7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBAaW5jbHVkZSBiZy1pbWcoY292ZXIpO1xuICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBtaW4td2lkdGg6IDE4cHg7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmFjY29yZGlvbl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDIycHg7XG4gIH1cblxuICAuanMtYWNjb3JkaW9uX19wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5hY2NvcmRpb25fX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBlYXNlLCBtYXgtaGVpZ2h0IDAuMnMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgbWF4LWhlaWdodDogMTAwZW07XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICBwIHtcbiAgICB9XG5cbiAgICAmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnMsIDBzLCAwcztcbiAgICB9XG5cbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG4gIH1cblxuICAvKiB0aXRsZSBvcGVuZWQgKi9cbiAgW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyMCAyMCclM0UlM0NsaW5lIHgxPScwJyB5MT0nMTAnIHgyPScyMCcgeTI9JzEwJyBzdHJva2U9JyUyMzEwMTAxMCclM0UlM0MvbGluZSUzRSUzQy9zdmclM0VcIik7XG4gIH1cbiAgLyogdGl0bGUgY2xvc2VkICovXG4gIFthcmlhLWV4cGFuZGVkPSdmYWxzZSddOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIwIDIwJyUzRSUzQ2xpbmUgeDE9JzAnIHkxPScxMCcgeDI9JzIwJyB5Mj0nMTAnIHN0cm9rZT0nJTIzMTAxMDEwJyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMTAnIHkxPScwJyB4Mj0nMTAnIHkyPScyMCcgc3Ryb2tlPSclMjMxMDEwMTAnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFXCIpO1xuICB9XG5cbiAgLy8gLyogdGl0bGUgc2VsZWN0ZWQgKi9cbiAgLy8gW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgLy8gICBjb250ZW50OiBcIiAoc2VsKVwiO1xuICAvLyB9XG4gIC8vIC8qIHRpdGxlIG5vbiBzZWxlY3RlZCAqL1xuICAvLyBbYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJdOmFmdGVyIHtcbiAgLy8gICBjb250ZW50OiBcIiAodW5zZWxjKVwiO1xuICAvLyB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gR2FsbGVyeVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2dhbGxlcnkge1xuICBhIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gIH1cbn1cbi5ncmlkcy0tdGhyZWUge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICBnYXA6IDIwcHggMjJweDtcbiAgbWFyZ2luOiAxMnB4IDBweDtcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbn1cbi5lbnRpdHktLWVuY2hhbmVkLWdhbGxlcnkge1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgLmdhbGxlcnlfX2ljb24ge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gSW1hZ2UgJiBUZXh0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuJl9faW1hZ2UtYW5kLXRleHQtZWxlbWVudHMge1xuXG4gICYtaXRlbSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ3JpZC1nYXA6IDIycHg7XG4gICAgJl9faW1hZ2Uge1xuXG4gICAgfVxuICAgICZfX2NvbnRlbnQge1xuXG4gICAgfVxuXG4gIH1cblxufSIsIi8qKlxuKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qIFVuLnRpdGxlZFxuKiBNb2xlY3VsZXMgLSBEb3dubG9hZHNcbiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuLyoqXG4qIENvbmZpZ1xuKi9cblxuLyoqXG4qIFN0eWxpbmdcbiovXG4mX19kb3dubG9hZHMge1xuICAuZmlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRSZWd1bGFyKTtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cbiAgLmEtZmlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogNXB4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBFbWJlZFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2VtYmVkIHtcbiAgaWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFRlc3RpbW9uaWFsc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX3Rlc3RpbW9uaWFscyB7XG4gICZfX3dyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWVhZWQ7XG4gICAgcGFkZGluZzogNDBweCAxOXB4O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgfVxuICAgIHAge1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRQb3BwaW5zUmVndWxhcik7XG4gICAgICBsaW5lLWhlaWdodDogY2xhbXAoMjRweCwgMi41dncsIDM5cHgpO1xuICAgICAgZm9udC1zaXplOiBjbGFtcCgyMnB4LCAyLjV2dywgMjhweCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgIC8vIHdpZHRoOiA4cmVtO1xuICAgIH1cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL3RoZW1lcy9waXBwaXAvZGlzdC9pbWcvU3BlZWNoIE1hcmvigJjigJkuc3ZnJyk7XG4gICAgICAgIC8vIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAvLyBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIC8vIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gSW50b2R1Y3Rpb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4ubS1lbnRpdHlfX2ludHJvZHVjdGlvbiB7XG4gICZfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDNmciAxMmZyIDVmcjtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG5vbmU7XG4gICAgfVxuICAgICZfX2luZm8ge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWJ1bXApIGNhbGModmFyKC0tYnVtcCkgLyAyKSB2YXIoLS1idW1wKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDcsIDY0LCA3NCwgMC44KTtcblxuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBncmlkLWNvbHVtbi1zdGFydDogMjtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogMztcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgIH1cblxuICAgICAgaDEge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRleHQtYWxpZ24tbGFzdDogYXV0bztcblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFNlbWlCb2xkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19iYW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEVudGl0eSBGdWxsLXdpZHRoIC1pbWFnZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG4ubS1lbnRpdHlfX2ltYWdlLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlYWVkO1xuICBwIHtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICB9XG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIEltYWdlICYgVGV4dFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbiZfX2ltYWdlLWFuZC10ZXh0LWVsZW1lbnRzIHtcbiAgJi0tZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogNDBweDtcbiAgfVxuICAmLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdyaWQtZ2FwOiAyMnB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gICAgJl9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgb3JkZXI6IDEgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5hbGlnbi1yaWdodCAmIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICB9XG4gICAgICAmLWNhcHRpb24ge1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTVlYWVkO1xuICAgICAgfVxuICAgIH1cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIG9yZGVyOiAyICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuYWxpZ24tcmlnaHQgJiB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgfVxuXG4gICAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIGNvbG9yOiAjMmY0MDRhO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIFNwZWt0cml4IGRvbmF0aW9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cbiZfX3NwZWt0cml4LWRvbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmNmM3ZDtcbiAgcGFkZGluZzogMzBweDtcbiAgLmEtdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XG4gICAgLyogZm9udC13ZWlnaHQ6IDYwMDsgKi9cbiAgICBsZXR0ZXItc3BhY2luZzogMHB4O1xuICB9XG4gIC5mb3JtX19yb3ctLWRldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiA3MCU7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgIGdhcDogMTRweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIH1cbiAgfVxuICAuZm9ybV9fcm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gICAgLmZvcm1fX2xhYmVsIHtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cbiAgfVxufVxuIiwiJl9fcmVsYXRlZC1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVydGlhcnkpO1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICZfX2lubmVyIHtcclxuICAgICAgICBnYXA6IHZhcigtLWJ1bXApO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtc2Vjb25kYXJ5KTtcclxuICAgICAgICBmb250LXNpemU6IGNsYW1wKDI1cHgsIDIuNXZ3LCAzMHB4KTtcclxuICAgICAgICBsaW5lLWhlaWdodDogY2xhbXAoMjdweCwgNXZ3LCA0NnB4KTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XHJcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmdyaWQge1xyXG4gICAgICAgIC5jb2wtc20tMTIge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApICogMikgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAqIDEuMjUpIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIiZfX2N1cmF0ZWQtc2lnbnBvc3Qge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVydGlhcnkpO1xyXG5cclxuICAmX19pbm5lciB7XHJcbiAgICBnYXA6IHZhcigtLWJ1bXApO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAzICogMik7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX3RpdGxlIHtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XHJcbiAgICBsaW5lLWhlaWdodDogY2xhbXAoMjdweCwgNXZ3LCA0M3B4KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwcHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5ncmlkIHtcclxuICAgIC5jb2wtc20tMTIge1xyXG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApICogMikgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApICogMS4yNSkgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIiZfX2dyb3VwZWQtc2lnbnBvc3RzIHtcclxuICAmX190aXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xyXG4gICAgZm9udC1zaXplOiBjbGFtcCgyNXB4LCAyLjV2dywgMzVweCk7XHJcbiAgICBsaW5lLWhlaWdodDogY2xhbXAoMjdweCwgNXZ3LCA1M3B4KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2ludHJvLXRleHQge1xyXG4gICAgbWFyZ2luOiAwIDAgdmFyKC0tYnVtcCk7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGdhcDogdmFyKC0tYnVtcCk7XHJcbiAgfVxyXG5cclxuICAmX19pbm5lciB7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDMgKiAyKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xyXG4gICAgfVxyXG5cclxuICAgICYtLWRvdWJsZSB7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBmaXQtY29udGVudCg3MTJweCkgZml0LWNvbnRlbnQoMzQ1cHgpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzwxMTMwcHgnKSB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5ncmlkIHtcclxuICAgIC5jb2wtc20tMTIge1xyXG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApICogMikgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApICogMS4yNSkgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5tLWVudGl0eV9fZmllbGRfd2VsY29tZV9leHRyYSB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtYXJnaW46IDlweCAwO1xyXG4gIGgzLCBoMyBhIHtcclxuICAgIGZvbnQtc2l6ZTogY2xhbXAoMjVweCwgMi41dncsIDM1cHgpO1xyXG4gICAgbGluZS1oZWlnaHQ6IGNsYW1wKDI3cHgsIDV2dywgNTNweCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbiAgcCBhIHtcclxuICAgIGNvbG9yOiAjNEY2QzdEO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMjRweDtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keSk7XHJcbiAgfVxyXG4gIGgzLCBzdHJvbmcsIGEsIHAge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XHJcbiAgfVxyXG59XHJcbiIsIiZfX3ZpZGVvIHtcclxuICAgIFxyXG4gICAgaDIge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLm0tZW50aXR5X192aWRlb19fZmlsZSxcclxuICAgIC5tLWVudGl0eV9fdmlkZW9fX2VtYmVkIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIC8vIHBhZGRpbmctYm90dG9tOiAyNCU7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDc0JTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgdmFyKC0tdHJhbnNpdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgdmlkZW8sXHJcbiAgICBpZnJhbWUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB6LWluZGV4OiA2MDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgfVxyXG59IiwiLmV1LWNvb2tpZS1jb21wbGlhbmNlLXNlY29uZGFyeS1idXR0b24ge1xyXG4gIGJhY2tncm91bmQ6ICM0ZjZjN2Q7XHJcbiAgcGFkZGluZzogNHB4IDhweDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDI3cHg7XHJcbiAgJjpob3ZlciB7XHJcbiAgICAvLyBiYWNrZ3JvdW5kOiAjMmY0MDRhO1xyXG4gIH1cclxufVxyXG4uZXUtY29va2llLWNvbXBsaWFuY2UtZGVmYXVsdC1idXR0b24ge1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgbGluZS1oZWlnaHQ6IDI3cHg7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbn1cclxuLmV1LWNvb2tpZS1jb21wbGlhbmNlLWNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDE1cHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIG1heC13aWR0aDogMTI2MHB4O1xyXG4gIG1hcmdpbjogMTVweCBhdXRvO1xyXG59XHJcbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBNb2xlY3VsZXMgLSBGb3Jtc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmlucHV0LFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIHJlc2l6ZTogbm9uZTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDIpIHZhcigtLWJ1bXApO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWZvY3VzKTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcbmlucHV0W3R5cGU9J3RleHQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4uZm9ybS1hY3Rpb25zIGlucHV0LFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5qcy1mb3JtLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIC8vIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm8td2ViZm9ybSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi53ZWJmb3JtLXN1Ym1pc3Npb24tZm9ybSB7XG4gIC5mb3JtLXR5cGUtY2hlY2tib3gsXG4gIC5mb3JtLXR5cGUtcmFkaW8ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gICAgZ3JpZC1nYXA6IDE1cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGlucHV0IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gIGxhYmVsLFxuICBpbnB1dCxcbiAgLndlYmZvcm0tZWxlbWVudC1kZXNjcmlwdGlvbixcbiAgc2VsZWN0IG9wdGlvbixcbiAgbGVnZW5ke1xuICAgIEBleHRlbmQgcDtcbiAgfVxuICB0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGV4dGVuZCBwO1xuICB9XG5cbiAgc2VsZWN0IG9wdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59IiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE1vbGVjdWxlcyAtIE1haW4gbmF2XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuYm9keVtkYXRhLW5hdj0nb3BlbiddIHtcbiAgaGVhZGVyIHtcbiAgICAuby1oZWFkZXJfX2hvbWUsXG4gICAgLm5hdi13cmFwcGVyLFxuICAgIC5vLWhlYWRlcl9fYWNjb3VudCAubS1zaG9wLXRvZ2dsZSxcbiAgICAuby1oZWFkZXJfX2FjY291bnQgLmEtc2VhcmNoLWJ1dHRvbiB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbiAgICB9XG4gIH1cbn1cbi5vLWhlYWRlci0tbmF2LWRlc2t0b3Age1xuICBuYXYgPiB1bC5tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBnYXA6IDE1cHg7XG4gICAgJi5hY3RpdmUtbWVudSB7XG4gICAgICAmID4gbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICYuYWN0aXZlLXRhYiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAmID4gLmEtbmF2LW1lbnUtdGl0bGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5hLW5hdi1tZW51LXRpdGxlIHtcbiAgICAgICAgICAgIC5iYWNrLW1lbnUge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzJmNDA0YTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuXG4gICAgICAgICAgICAmID4gLmdyaWQge1xuICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZW51X19kcm9wZG93bl9faW5uZXIge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgLmEtbmF2LW1lbnUtdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3BvcHBpbnNSZWd1bGFyJztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGxpIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAuYS1uYXYtbWVudS10aXRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyA2KTtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBhIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbik7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLm8taGVhZGVyLS1uYXYtbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQGluY2x1ZGUgbWVkaWEoJz5tZCcpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnVzZXItbG9nZ2VkLWluICYge1xuICAgIG5hdiB7XG4gICAgICAmID4gdWwubWVudSB7XG4gICAgICAgIGhlaWdodDogMTUwdmg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtbmF2PSdvcGVuJ10gJiB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz5tZCcpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmY0MDRhO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDY5cHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDk7XG4gICAgd2lkdGg6IDcwJTtcbiAgICBwYWRkaW5nOiAzMHB4IDA7XG4gICAgbWFyZ2luOiAxMXB4IDAgMDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBuYXYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJmNDA0YTtcbiAgICAgIHBhZGRpbmc6IDAgMCB2YXIoLS1idW1wKTtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgICAgJiA+IHVsLm1lbnUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLmFjdGl2ZS1tZW51IHtcbiAgICAgICAgICAmID4gbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgJjpub3QoJi5hY3RpdmUtdGFiKSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmFjdGl2ZS10YWIge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgICAgJiA+IC5hLW5hdi1tZW51LXRpdGxlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHggMjBweCAyMHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC5hLW5hdi1tZW51LXRpdGxlIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5iYWNrLW1lbnUge1xuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3BvcHBpbnNSZWd1bGFyJztcbiAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICAgICAgbWFyZ2luOiAwIDIwcHg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICAmOm5vdCguYWN0aXZlLXRhYikge1xuICAgICAgICAgICAgLmJhY2stbWVudSB7XG4gICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5hLW5hdi1tZW51LXRpdGxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuXG4gICAgICAgICAgICBhOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJhY2stbWVudSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fb3ZlcmxheSB7XG4gICAgYm9keVtkYXRhLW5hdj0nb3BlbiddICYge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgei1pbmRleDogNTtcbiAgICB9XG4gIH1cbn1cbi5hLXNob3Atb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGEge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgIGdhcDogOXB4O1xuICB9XG4gIFtkYXRhLXNob3A9J29wZW5lZCddICYge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDMwcHggMjBweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmY0MDRhO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNjZweDtcbiAgICBncmlkLWdhcDogMjBweDtcbiAgICAvLyB0b3A6IDEyLjE4OHJlbTtcbiAgICB6LWluZGV4OiA1NTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgd2hpdGU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsZycpIHtcbiAgICAgIHdpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gQmFubmVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm0tbm8tYmFubmVyIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1idW1wKSAqIDMpO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8eHMnKSB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tYnVtcCk7XG4gIH1cbn1cblxuLm0tYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmX19jb3B5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuZ3JpZCB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGModmFyKC0tY29udGFpbmVyV2lkdGgpIC0gMzBweCk7XG5cbiAgICAgIC5jb2wtc20tMTIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgIHotaW5kZXg6IDA7XG5cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1idW1wKTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2xpc3Rpbmcge1xuICAgICZfX3RpdGxlIHtcbiAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAzKTtcbiAgICB9XG4gICAgJl9fYm9keSB7XG4gICAgICBwIHtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ubS1ob21lcGFnZS1iYW5uZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICYuZ3JpZCB7XG4gICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBub25lO1xuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gTGlua2VkIGxvZ29zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLm0tbG9nb3Mge1xuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgfVxufVxuLm0tZW50aXR5IHtcbiAgJl9fbGlua2VkLWxvZ29zIHtcbiAgICBkaXYge1xuICAgICAgY29sdW1uLWdhcDogMzFweDtcbiAgICAgIHJvdy1nYXA6IDMzcHg7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnI7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAvLyB3aWR0aDogMTUycHg7XG4gICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG4gICAgLmdyaWQge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogTW9sZWN1bGVzIC0gU29jaWFsIGxpbmtzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBTdHlsaW5nXG4gKi9cbi5tLXNvY2lhbC1saW5rcyB7XG4gIC8vIGRpc3BsYXk6IGZsZXg7XG4gIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8vIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYnVtcCkgLyAzKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi1yaWdodDogMTUuMjJweDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJl9fbGluayB7XG4gICAgLy8gbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgLy8gaGVpZ2h0OiBjYWxjKHZhcigtLWJ1bXApICogMS4yNSk7XG4gICAgLy8gd2lkdGg6IGNhbGModmFyKC0tYnVtcCkgKiAxLjI1KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAvLyB3aWR0aDogMTAwJTtcbiAgICAgIC8vIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICByZWN0IHtcbiAgICAgIHRyYW5zaXRpb246IDAuMXMgdmFyKC0tZWFzaW5nKTtcbiAgICAgIC8vIGZpbGw6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiB2YXIoLS1jLXdoaXRlKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHJlY3Qge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cbiAgICAgIHBhdGgge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXNlY29uZGFyeSk7XG4gICAgICB9XG4gICAgICBjaXJjbGUge1xuICAgICAgICBmaWxsOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIH1cbiAgICBcbiAgICB9XG4gIH1cbn1cbiIsIi5tLWZyZWVwYWdlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIHBhZGRpbmc6IGNhbGModmFyKC0tYnVtcCkgKiAzLjUpIDAgMDtcclxuICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVydGlhcnkpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDVweDtcclxuICB9XHJcblxyXG4gICYtbmV4dCxcclxuICAmLXByZXZpb3VzIHtcclxuICAgIG1heC13aWR0aDogNDM2cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzwxMzcwcHgnKSB7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIH1cclxuXHJcbiAgICAuby10ZWFzZXJfX25leHQtcHJldmlvdXMge1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGdhcDogNXB4O1xyXG4gICAgICBjb2xvcjogIzAwMDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8MTM3MHB4Jykge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvIDAgMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzUuOHB4O1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250U2VtaUJvbGQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLW5leHQge1xyXG4gICAgLm8tdGVhc2VyX19uZXh0LXByZXZpb3VzIHtcclxuICAgICAgcmlnaHQ6IC0xMTVweDtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE1cHgpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzwxMzcwcHgnKSB7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ05leHQnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNUI2JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1wcmV2aW91cyB7XHJcbiAgICAuby10ZWFzZXJfX25leHQtcHJldmlvdXMge1xyXG4gICAgICBsZWZ0OiAtMTE1cHg7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTVweCk7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPDEzNzBweCcpIHtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QzAnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnUHJldmlvdXMnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19idG4ge1xyXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcclxuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKSAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICBvcmRlcjogMTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogVW4udGl0bGVkXHJcbiAqIE1vbGVjdWxlcyAtIFN0YXkgVXAgVG8gRGF0ZSAtIFByZWZvb3RlclxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ1xyXG4gKiovXHJcblxyXG4ubS1zdGF5LXVwLXRvLWRhdGUge1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XHJcbn1cclxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIEhlYWRlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG4uby1oZWFkZXJfX25hdiB7XG4gIC8vIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIC8vIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGZsZXgtZmxvdzogd3JhcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSBtZWRpYSgnPGxnJykge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5vLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjZjN2Q7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA2O1xuICBtaW4taGVpZ2h0OiA4MHB4O1xuICAmID4gLmdyaWQgPiAuY29sLW1kLTEyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLm8taGVhZGVyLS1uYXYtZGVza3RvcCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAmID4gbmF2IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAmID4gdWwubWVudSB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgIGdhcDogMDtcblxuICAgICAgICAgICYgPiBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICYgPiAuYS1uYXYtbWVudS10aXRsZSB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmID4gbGkuYWN0aXZlLXRhYiB7XG4gICAgICAgICAgICAmID4gLmEtbmF2LW1lbnUtdGl0bGUge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmY0MDRhO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDc1JSkgdHJhbnNsYXRlWCgtMTVweCk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjAxO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLW5hdi1kZXNrdG9wIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLm5hdi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHVuc2V0O1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGcnKSB7XG4gICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgfVxuICAgICYgPiAuY29sLW1kLTEyIHtcbiAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICB9XG4gIH1cbiAgLmEtbmF2LXRvZ2dsZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmZmY7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIFtkYXRhLW5hdj0nb3BlbiddICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJmNDA0YTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJz5tZCcpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICZfX3NlYXJjaC1tb2RhbCB7XG4gICAgcGFkZGluZy10b3A6IDcwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgIFtkYXRhLXNlYXJjaD0nb3BlbiddICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJmNDA0YTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbiAgICAuanMtZm9ybS13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICB0b3A6IDEycHg7XG4gICAgICBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3NlYXJjaC13aGl0ZS5zdmcnKTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuanMtZm9ybS1pdGVtIHtcbiAgICAgIGlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJmNDA0YTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2hvbWUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+MTA4MHB4Jykge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8MTA4MHB4Jykge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIH1cblxuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTk3cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDExNnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIG5hdiB7XG4gICAgdWwge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICYubS1tYWluLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAmLm1lbnUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBmb250LWZhbWlseTogJ3BvcHBpbnNTZW1pQm9sZCc7XG4gICAgICAgIH1cbiAgICAgICAgJiA+IGxpLmlzLWFjdGl2ZS10cmFpbCB7XG4gICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdwb3BwaW5zbGlnaHQnO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGkge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IGluaXRpYWw7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDE0cHgsIDEuMnZ3LCAxOHB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRUaXRsZSk7XG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIC8vICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ubS1zaG9wLXRvZ2dsZSB7XG4gIHN2ZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGhlaWdodDogMzJweDtcbiAgfVxuICBbZGF0YS1uYXY9J29wZW5lZCddICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZjQwNGE7XG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDU2O1xuICB9XG59XG4uc3ViLW1lbnUge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1cHggMTVweCAwIDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWVhZWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTVweDtcbiAgICBsaSB7XG4gICAgICBhIHtcbiAgICAgICAgJi5iYWNrLW1lbnUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgZm9udC1mYW1pbHk6ICdwb3BwaW5zU2VtaUJvbGQnO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogIzRmNmM3ZDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDE0cHgsIDEuMnZ3LCAxOHB4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICM0ZjZjN2Q7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5vLWhlYWRlcl9fYWNjb3VudCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgW2RhdGEtc2hvcD0nb3BlbmVkJ10gJiB7XG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jLXdoaXRlKTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYy13aGl0ZSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJmNDA0YTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpIHRyYW5zbGF0ZVgoLTE1cHgpO1xuICAgICAgICAgIHotaW5kZXg6IDIwMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLW9mLXR5cGUoMikge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgd2hpdGU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgfVxuXG4gICAgLy8gQGluY2x1ZGUgbWVkaWEoJzxsZycgYW5kICc+bWQnKSB7XG4gICAgLy8gICBwYWRkaW5nOiAzMHB4O1xuICAgIC8vIH1cbiAgfVxuICAuYS1zZWFyY2gtYnV0dG9uIHtcbiAgICAvL2JvcmRlci1yaWdodDogMXB4IHNvbGlkIHdoaXRlO1xuICAgIC5jbG9zZS1pY29uIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMzcHg7XG4gICAgICB9XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgW2RhdGEtc2VhcmNoPSdvcGVuJ10gJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zZWFyY2gtaWNvbiB7XG4gICAgICAvLyBkaXNwbGF5OiBibG9jaztcbiAgICAgIFtkYXRhLXNlYXJjaD0nb3BlbiddICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBbZGF0YS1zZWFyY2g9J29wZW4nXSAmIHtcbiAgICAuYS1zZWFyY2gtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZjQwNGE7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgLy8gcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIGEge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgd2hpdGU7XG4gICAgcGFkZGluZzogMzhweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgcGFkZGluZzogMjBweCAxNnB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVbi50aXRsZWRcbiAqIE9yZ2FuaXNtcyAtIEZvb3RlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjZjN2Q7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tYnVtcCkgLyAyKSAwIGNhbGModmFyKC0tYnVtcCkgKiAyKTtcblxuICBAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1idW1wKSAvIDIpIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICB9XG5cbiAgJl9fc2VwZXJhdG9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgfVxuXG4gIHAge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGg0IHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNHB4O1xuICAgIG1hcmdpbi10b3A6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IHVuc2V0O1xuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1idW1wKSAwO1xuICAgIGJhY2tncm91bmQ6ICMyZjQwNGE7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApLyAyKSAwO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMjBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsZ1wiKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8MjUwcHhcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gICAgcCB7XG4gICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgfVxuXG4gICAgJl9faG9tZSB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjwzMDBweFwiKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAyMThweDtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE1MXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvcCB7XG4gICAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG5cbiAgICAgICZfX2lubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPDMwMHB4XCIpIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2wtbWQtNyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgIC8vIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1nYXA6IDEwcHg7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiByb3c7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPGxnJyBhbmQgJz5zbScpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgJl9fbGVmdCB7XG5cbiAgICAgIC5tLWJsb2NrIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJl9fbWlkZGxlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5KTtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMDYyNXJlbTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICAgIGEge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmX19yaWdodCB7XG4gICAgICBoNCB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvZHkpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgICB1bCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMDYyNXJlbTtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGEge1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG4gIH1cblxuICAmX19jcmVkaXRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDExcHggMHB4O1xuICAgICZfX3dyYXBwZXIge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxtZCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgfVxuICAgIH1cbiAgICAmX19sZWZ0IHsgIFxuICAgICAgLm0tYmxvY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfSAgICBcbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsZycgYW5kICc+c20nKSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmJlYW5zIHtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICB3b3JkLXNwYWNpbmc6IGluaXRpYWw7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHAge1xuICAgICAgICBjb2xvcjogIzRhNGE0YTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVW4udGl0bGVkXG4gKiBPcmdhbmlzbXMgLSBWaWV3c1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLXZpZXcge1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fYmxvZyxcbiAgJl9fd2hhdF9zX29uLFxuICAmX19zZWFyY2hfc2l0ZSB7XG5cbiAgICBmb3JtIHtcbiAgICAgIG1hcmdpbjogMCAwIDUwcHg7XG5cbiAgICAgIC5qcy1mb3JtLWl0ZW0ge1xuICAgICAgICAuZm9ybS1zZWxlY3Qge1xuICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgICAgICByb3ctZ2FwOiA4cHg7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnRuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggNXB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnRuLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuYmVmLWxpbmstLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtdGVydGlhcnkpO1xuICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZm9ybS1zdWJtaXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAmX19yb3dzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBnYXA6IDIycHg7XG4gICAgICByb3ctZ2FwOiBjYWxjKHZhcigtLWJ1bXApICogMik7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgbWFyZ2luOiA0MHB4IDAgdmFyKC0tYnVtcCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBnYXA6IGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAmID4gZGl2IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3RhcGVzdHJ5X2xhbmRpbmcge1xuXG4gICAgJl9fdGl0bGUgeyAgICAgICAgICAgIFxuICAgICAgICBmb250LXNpemU6IGNsYW1wKDIycHgsIDIuNXZ3LCAyOHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNsYW1wKDMwcHgsIDV2dywgMzhweCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw0NzZweFwiKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiB2YXIoLS1idW1wU21hbGwpO1xuICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiBcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAgICAgfSBcblxuICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAqIDEuNSk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJl9fdGl0bGUsXG4gICAgICAmX19ib2R5IHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgIH1cblxuICAgICAgJl9fdGl0bGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAmX19ib2R5IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICAgICAgfVxuXG4gICAgICAmX190aHVtYiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBtYXgtd2lkdGg6IDE0NXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGljdHVyZSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX3Jvd3Mge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXJ0aWFyeSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgcGFkZGluZzogMzBweCAxNXB4IDQwcHggMTVweDtcbiAgICB9XG4gIH1cbn0iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gU2VhcmNoIHJlc3VsdHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4jc2VhcmNoLWZvcm0ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5vLXNlYXJjaC1yZXN1bHRzLXdyYXBwZXIge1xuICBoMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yZXN1bHRfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJl9fbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1idW1wKSAqIDIpO1xuXG4gICAgb2wge1xuICAgICAgQGluY2x1ZGUgbGktcmVzZXQ7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tYnVtcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gc2lkZWJhclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLXNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXF1YXRlcm5hcnkpO1xuICBtYXJnaW46IDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICYgfiBwaWN0dXJlLFxuICAmIH4gaW1nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgfVxuXG4gICZfX2lubmVyIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1idW1wKTtcblxuICAgICYtLWluZm8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgIH1cblxuICAgICYgPiBwLFxuICAgICYgPiBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8NDUwcHgnKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgICYgPiBhLFxuICAgICAgJiA+IHNwYW4ge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udEJvb2spO1xuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgZmxleC1iYXNpczogMzAlO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9sZCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDcwJTtcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bWQnKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw0NTBweCcpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IGRpdiB7XG4gICAgICBtYXJnaW46IDEuNWVtIDAgMDtcbiAgICB9XG4gIH1cblxuICAmID4gLmEtYnRuIHtcbiAgICBtYXJnaW46IHZhcigtLWJ1bXApIDAgMDtcbiAgfVxuXG4gICZfX2xvY2F0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICAmX19tZW51IHtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy10ZXJ0aWFyeSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmJhY2stbWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYgPiB1bC5tZW51IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMyk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250UG9wcGluc1JlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgJi5iYWNrLW1lbnUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICfilrgnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1idW1wKSAvIC0yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IC5tZW51LWl0ZW0ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmID4gbGk6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLm0tbWFpbi1uYXZfX2xpbmsge1xuICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyAyKSAwIDA7XG4gICAgICB9XG5cbiAgICAgICYgPiBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJ+KWuCc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZS10cmFpbCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAzKSBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDMpIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRTZW1pQm9sZCk7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgIHRleHQtaW5kZW50OiAwcHg7XG4gICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiA+IHVsLm1lbnUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyAzKSAwIGNhbGModmFyKC0tYnVtcCkgLyAzKVxuICAgICAgICAgICAgICBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAmID4gdWwubWVudSB7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1idW1wKSAvIDMpIDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG5cbiAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICYgPiB1bC5tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMykgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRTZW1pQm9sZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYgPiB1bC5tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyAzKSAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjKHZhcigtLWJ1bXApIC8gMik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250Qm9keUJvbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCBjYWxjKHZhcigtLWJ1bXApIC8gMykgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRTZW1pQm9sZCk7XG4gICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDBweDtcbiAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYgPiB1bC5tZW51IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGNhbGModmFyKC0tYnVtcCkgLyAzKSAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAmID4gbGkge1xuICAgICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ+KWuCc7XG4gICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDMpIGNhbGModmFyKC0tYnVtcCkgLyAyKTtcblxuICAgICAgICAgICAgICAgICAgICAmLmlzLWFjdGl2ZS10cmFpbCB7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnRCb2R5Qm9sZCk7XG4gICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmID4gdWwubWVudSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY3RfX3Nlc3Npb24gJiB7XG4gICAgICAgICYgPiBsaSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICYuaXMtYWN0aXZlLXRyYWlsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiA+IHVsLm1lbnUge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApIC8gMykgMCB2YXIoLS1idW1wKSAwO1xuXG4gICAgICAgICAgICAgICYgPiBsaSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICYgPiB1bC5tZW51IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApIC8gMykgMCB2YXIoLS1idW1wKSAwO1xuXG4gICAgICAgICAgICAgICAgICAgICYgPiBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgJi5pcy1hY3RpdmUtdHJhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAmID4gdWwubWVudSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgJiA+IHVsLm1lbnUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAmLmlzLWFjdGl2ZS10cmFpbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFBvcHBpbnNTZW1pKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYgPiB1bC5tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fcmVsYXRlZCB7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleSk7XG4gIH1cblxuICAmX19jdGEge1xuICAgICYgfiAuby1zaWRlYmFyIHtcbiAgICAgIG1hcmdpbjogY2FsYyh2YXIoLS1idW1wKSArIDEwcHgpIDAgMDtcbiAgICB9XG4gIH1cblxuICAmX19zdWJuYXYge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFVuLnRpdGxlZFxuICogT3JnYW5pc21zIC0gVGVhc2Vyc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbi5vLXRlYXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogY2FsYyh2YXIoLS1idW1wKSAqIDIgKyAxMHB4KTtcblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gIH1cblxuICAmX190aHVtYiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG5cbiAgICAuYS1pbWFnZS1jcmVkaXQge1xuICAgICAgbGVmdDogY2FsYyh2YXIoLS1idW1wKSAvIDEuNSk7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWJ1bXApKTtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgd2lkdGg6IDEwN3B4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5hLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICYuYS1ib29raW5nLWN0YV9fY3RhX19zb2xkLW91dCB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtYmxhY2spO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYmxhY2spO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAwIDAgY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuXG4gICAgJiA+IHAge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tYnVtcCkgMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAgICAgICAgIG1hcmdpbjogMCAwIGNhbGModmFyKC0tYnVtcCkgLyAyKSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IGgyIHtcbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICYgfiAuby10ZWFzZXJfX3RodW1iIHtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiB+IC5vLXRlYXNlcl9fdGh1bWJfX3dyYXBwZXIge1xuICAgICAgICAgIC5vLXRlYXNlcl9fdGh1bWIge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnVtcCkgLyAxLjUpIGNhbGModmFyKC0tYnVtcCkgLyAxLjUpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmX19kYXRlIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFRpdGxlKTtcbiAgfVxuXG4gICYtdGFwZXN0cnktc2NlbmUtcGFnZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPDEzNzBweCcpIHtcbiAgICAgIGdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xuICAgIH1cblxuICAgIC5vLXRlYXNlcl9fY29udGVudCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzwxMzcwcHgnKSB7XG4gICAgICAgICAgbWFyZ2luOiBjYWxjKHZhcigtLWJ1bXApICogMS41KSAwIDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX190YXBlc3RyeS1jaGFwdGVyIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udFBvcHBpbnNTZW1pKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXByaW1hcnkpO1xuICB9XG5cbiAgJl9fdGFwZXN0cnktc2NlbmUge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJsYWNrKTtcbiAgfVxuXG4gICZfX25leHQtcHJldmlvdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgJiB+IC5vLXRlYXNlcl9fdGh1bWJfX3dyYXBwZXIge1xuICAgICAgICAuby10ZWFzZXJfX3RodW1iIHtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuby1zaWducG9zdCB7XHJcbiAgJl9fdGl0bGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiB2YXIoLS1idW1wKTtcclxuICAgIGxlZnQ6IHZhcigtLWJ1bXApO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIG1heC13aWR0aDogODAlO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gICAgICBib3R0b206IGNhbGModmFyKC0tYnVtcCkgLyAzICogMik7XHJcbiAgICAgIGxlZnQ6IGNhbGModmFyKC0tYnVtcCkgLyAzICogMik7XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX3RodW1iIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcblxyXG4gICAgcGljdHVyZSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA4MDBtcztcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgICAgICAxODBkZWcsXHJcbiAgICAgICAgICByZ2JhKDkyLCAxMTYsIDEyOSwgMCkgMCUsXHJcbiAgICAgICAgICByZ2JhKDY4LCA4OSwgMTAwLCAwLjUzKSAzOC44OSUsXHJcbiAgICAgICAgICAjMmY0MDRhIDEwMCVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3MDBtcztcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgICAgICAxODBkZWcsXHJcbiAgICAgICAgICByZ2JhKDkyLCAxMTYsIDEyOSwgMCkgMCUsXHJcbiAgICAgICAgICByZ2JhKDY4LCA4OSwgMTAwLCAwLjUzKSA3MC45NCUsXHJcbiAgICAgICAgICAjMmY0MDRhIDEwMCVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIHBpY3R1cmUge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3MDBtcztcclxuICAgICAgICB9XHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogODAwbXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIG91dGxpbmU6IDNweCBzb2xpZCB2YXIoLS1jLWZvY3VzKTtcclxuICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tYnVtcCkgLyAzKTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGZvY3VzLXZpc2libGUoKSB7XHJcbiAgICAgICAgb3V0bGluZTogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuby1jYWxlbmRlciB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA5NSU7XHJcbiAgbWF4LXdpZHRoOiA4MDBweDtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIHBhZGRpbmc6IDMwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICBoZWlnaHQ6IDgwdmg7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBvdmVyZmxvdzogc2Nyb2xsO1xyXG5cclxuICAuY2xvc2UtY2FsZW5kYXIge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgfVxyXG5cclxuICAmX192aWV3IHtcclxuICAgIC52aWV3cy1lbGVtZW50LWNvbnRhaW5lciB7XHJcbiAgICAgIC52aWV3LWlkLWNhbGVuZGVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAgIC5jYWxlbmRhci12aWV3LXBhZ2VyX19yZXNldCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdWwucGFnZXJfX2l0ZW1zIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGluaGVyaXQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAmLnBhZ2VyX19jdXJyZW50IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5wYWdlcl9fcHJldmlvdXMge1xyXG4gICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5wYWdlcl9fbmV4dCB7XHJcbiAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnZpZXctY29udGVudCB7XHJcbiAgICAgICAgICAudmlldy1jYWxlbmRhciB7XHJcbiAgICAgICAgICAgIHRhYmxlIHtcclxuICAgICAgICAgICAgICBtYXgtd2lkdGg6IDY4MHB4O1xyXG4gICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAgICAgICAgICAgICBjYXB0aW9uIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdGhlYWQge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aCB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogIzRhNGE0YTtcclxuICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB0Ym9keSB7XHJcbiAgICAgICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogYXV0bztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhbGVuZGFyLXZpZXctZGF5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICY6bm90KC5lbXB0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM0YTRhNGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aW1lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNzc3O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ29wZW5TYW5zU2VtaUJvbGQnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdHIsXHJcbiAgICAgICAgICAgICAgdGhlYWQsXHJcbiAgICAgICAgICAgICAgdGJvZHkge1xyXG4gICAgICAgICAgICAgICAgLy9ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jYWxlbmRhci12aWV3LWNvbHVtbnMpLCAxMDBweCk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAuY2FsZW5kYXItdmlldy1kYXlfX3Jvd3Mge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX2xpc3Rpbmcge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgIGgyIHtcclxuICAgICAgbWFyZ2luOiAwO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGNvbG9yOiAjNGE0YTRhO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMTAwcHggMTY4cHg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBncmlkLWdhcDogMjBweDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGEuYm9vayB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGY2YzdkO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6IHBvcHBpbnNzZW1pYm9sZDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgZ2FwOiAxMHB4O1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMTVweCAxNXB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy90aWNrZXQtd2hpdGUuc3ZnKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICByaWdodDogMTRweDtcclxuICAgICAgICAgICAgdG9wOiAxNXB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJisuY2FsZW5kYXItdmlldy1kYXlfX3JvdyB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLWRhdGUge1xyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIuby1ub2RlIHtcclxuICAgICYgPiBzZWN0aW9uIHtcclxuICAgICAgICAmLm0tZW50aXR5IHtcclxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vICYuby1wYWdlIHtcclxuICAgIC8vICAgICAubS1iYW5uZXIge1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxufVxyXG5cclxuIiwiLm8tdGFwZXN0cnkge1xyXG4gICZfX3RpdGxlIHtcclxuICAgIGgyIHtcclxuICAgICAgY29sb3I6ICMyRjQwNEE7XHJcbiAgICAgIGZvbnQtc2l6ZTogNDRweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA2MXB4O1xyXG4gICAgfVxyXG4gICAgaDMge1xyXG4gICAgICBjb2xvcjogIzRBNEE0QTtcclxuICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDM5cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gICZfX2ltYWdlcyB7XHJcbiAgICBpbWcsIHNtYXJ0LWZyYW1lLWVtYmVkIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogNDY4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLm8td2hhdHNvbi1saXN0aW5nIHtcclxuICAmX19oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XHJcbiAgICBncmlkLWdhcDogdmFyKC0tYnVtcCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xyXG4gICAgICBncmlkLWdhcDogY2FsYyh2YXIoLS1idW1wKSAvIDIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgfVxyXG5cclxuICAgIGgyIHtcclxuICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDAgMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBsaSB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAgM3B4O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGY2YzdkO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bWRcIikge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDcuNXB4O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWVhZWQ7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjNGE0YTRhO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRmNmM3ZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLnZpZXdfX3doYXRfc19vbiB7XHJcbiAgICAudmlld3Mtcm93IHtcclxuICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5vdmVybGF5LXdyYXBwZXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgei1pbmRleDogOTk5OTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuXHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBib2R5W2RhdGEtY2FsZW5kZXI9J29wZW4nXSAmIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIC5vLWNhbGVuZGVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogOTUlO1xyXG4gICAgbWF4LXdpZHRoOiA4MDBweDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgIG1heC1oZWlnaHQ6IDgwdmg7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAuY2xvc2UtY2FsZW5kYXIge1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuICAgICZfX3ZpZXcge1xyXG4gICAgICAudmlld3MtZWxlbWVudC1jb250YWluZXIge1xyXG4gICAgICAgIC52aWV3LWlkLWNhbGVuZGVyIHtcclxuICAgICAgICAgIC52aWV3LWNvbnRlbnQge1xyXG4gICAgICAgICAgICAudmlldy1jYWxlbmRhciB7XHJcbiAgICAgICAgICAgICAgdGFibGUge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2ODBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoZWFkIHtcclxuICAgICAgICAgICAgICAgICAgdGgge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNGE0YTRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMDtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRib2R5IHtcclxuICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcclxuICAgICAgICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcikgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPG1kJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IGluaGVyaXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAuY2FsZW5kYXItdmlldy1kYXkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMXJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCguZW1wdHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNGE0YTRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzc3NztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdvcGVuU2Fuc1NlbWlCb2xkJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdHIsXHJcbiAgICAgICAgICAgICAgICB0aGVhZCxcclxuICAgICAgICAgICAgICAgIHRib2R5IHtcclxuICAgICAgICAgICAgICAgICAgLy9ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jYWxlbmRhci12aWV3LWNvbHVtbnMpLCAxMDBweCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLmNhbGVuZGFyLXZpZXctZGF5X19yb3dzIHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19saXN0aW5nIHtcclxuICAgICAgaDIge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGNvbG9yOiAjNGE0YTRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB1bCB7XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDEwMHB4IDE2OHB4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgIGdyaWQtZ2FwOiAyMHB4O1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xyXG4gICAgICAgICAgICBnYXA6IDA7XHJcbiAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5vLWNhbGVuZGVyX19saXN0aW5nLS1kYXRlIHtcclxuICAgICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMztcclxuICAgICAgICAgICAgICBncmlkLXJvdy1zdGFydDogMTtcclxuICAgICAgICAgICAgICBncmlkLXJvdy1lbmQ6IDM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgICAgICAgIGEuYm9vayB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZjZjN2Q7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBwb3BwaW5zc2VtaWJvbGQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGdhcDogMTBweDtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMCAxNXB4IDE1cHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3RpY2tldC13aGl0ZS5zdmcpO1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgIHJpZ2h0OiAxNHB4O1xyXG4gICAgICAgICAgICAgIHRvcDogMTVweDtcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gTWFwXHJcblxyXG4kdGV4dDogIzRhNGE0YTtcclxuJGJnOiAjZmZmO1xyXG5cclxuJGx0LWdyZXk6ICNlNWVhZWQ7XHJcbiRncmV5OiAjODM4MzhhO1xyXG4kYmx1ZTogIzJmNDA0YTtcclxuXHJcbiRoYWxsOiAjZDEzMjM4O1xyXG4kaGFsbC1hbHQ6ICNiMjFkMjg7XHJcblxyXG4kbXVzZXVtOiAjNGY2YzdkO1xyXG5cclxuJGFiYmV5OiAjZmZjZTAyO1xyXG5cclxuLmNvbnRyb2xzIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IC0zMCU7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAyNSU7XHJcbiAgYmFja2dyb3VuZDogJGJsdWU7XHJcbiAgei1pbmRleDogMjtcclxuICBib3gtc2hhZG93OiAwcHggMHB4IDEycHggLTJweCAkbXVzZXVtO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4ycyBlYXNlLW91dDtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICB9XHJcbiAgJi5hY3RpdmUge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICAuaW5uZXIgeyAgICAgIFxyXG4gICAgICBwYWRkaW5nOiAyZW0gMmVtIDFlbSAxZW07XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPHNtJykge1xyXG4gICAgICAgIHBhZGRpbmc6IDFlbSAyZW0gMWVtIDFlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmEtYnRuIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmc7XHJcbiAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1jbGVhci1maWx0ZXJzIHtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAgICAgJi5yZXNldC1tYXAge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250U2VtaUJvbGQpO1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8c20nKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBoMyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuTXVpU2xpZGVyIHtcclxuICAgICAgICAmLXJvb3Qge1xyXG4gICAgICAgICAgLy8gU3R5bGVzIGZvciB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBNdWlTbGlkZXIgY29tcG9uZW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtcmFpbCB7XHJcbiAgICAgICAgICAvLyBTdHlsZXMgZm9yIHRoZSByYWlsIGVsZW1lbnQgb2YgdGhlIE11aVNsaWRlciBjb21wb25lbnRcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHJpbWFyeSk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQ1MG1zO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICYtdHJhY2sge1xyXG4gICAgICAgICAgLy8gU3R5bGVzIGZvciB0aGUgdHJhY2sgZWxlbWVudCBvZiB0aGUgTXVpU2xpZGVyIGNvbXBvbmVudFxyXG4gICAgICAgICAgbGVmdDogMCU7XHJcbiAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUpO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogcmdiYSg3OSwgMTA4LCAxMjUsIDAuODUpIDBweCAwcHggM3B4IGluc2V0O1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCA0NTBtcyBlYXNlIDBzO1xyXG4gICAgICAgICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICYtdGh1bWIge1xyXG4gICAgICAgICAgLy8gU3R5bGVzIGZvciB0aGUgdGh1bWIgZWxlbWVudCBvZiB0aGUgTXVpU2xpZGVyIGNvbXBvbmVudFxyXG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0Q5RDlEOTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XHJcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4ICNGRkYsIGluc2V0IDAgMXB4IDdweCAjRUJFQkVCLCAwIDNweCA2cHggLTNweCAjQkJCO1xyXG4gICAgICAgICAgd2lkdGg6IDM0cHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICAgICAgICAvKiBIYW5kbGUgc3RyaXBlcztcclxuICAgICAgICAgICovXHJcbiAgICAgICAgICAmOmJlZm9yZSxcclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFOEU3RTY7XHJcbiAgICAgICAgICAgIGxlZnQ6IDE0cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgbGVmdDogMTdweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5NdWlTd2l0Y2gge1xyXG4gICAgICAgICYtcm9vdCB7XHJcbiAgICAgICAgICAvLyBTdHlsZXMgZm9yIHRoZSByb290IGVsZW1lbnQgb2YgdGhlIE11aVN3aXRjaCBjb21wb25lbnRcclxuICAgICAgICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi1pbnB1dCB7XHJcbiAgICAgICAgICAvLyBTdHlsZXMgZm9yIHRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBNdWlTd2l0Y2ggY29tcG9uZW50XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLXRodW1iIHtcclxuICAgICAgICAgIC8vIFN0eWxlcyBmb3IgdGhlIHRodW1iIGVsZW1lbnQgb2YgdGhlIE11aVN3aXRjaCBjb21wb25lbnRcclxuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEOUQ5RDk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCAjRkZGLCBpbnNldCAwIDFweCA3cHggI0VCRUJFQiwgMCAzcHggNnB4IC0zcHggI0JCQjtcclxuICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgLyogSGFuZGxlIHN0cmlwZXM7XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMXB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRThFN0U2O1xyXG4gICAgICAgICAgICBsZWZ0OiAxNHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGxlZnQ6IDE3cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLXRyYWNrIHtcclxuICAgICAgICAgIC8vIFN0eWxlcyBmb3IgdGhlIHRyYWNrIGVsZW1lbnQgb2YgdGhlIE11aVN3aXRjaCBjb21wb25lbnRcclxuICAgICAgICAgIGxlZnQ6IDAlO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiByZ2JhKDc5LCAxMDgsIDEyNSwgMC44NSkgMHB4IDBweCAzcHggaW5zZXQ7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQ1MG1zIGVhc2UgMHM7XHJcbiAgICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtc3dpdGNoQmFzZSB7XHJcbiAgICAgICAgICB0b3A6IDJweDtcclxuXHJcbiAgICAgICAgICAmLk11aS1jaGVja2VkIHtcclxuICAgICAgICAgICAgJiArIC5NdWlTd2l0Y2gtdHJhY2sge1xyXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tYXAtb3B0aW9uIHtcclxuICAgICAgICAmLmZpcnN0IHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5mdWxsIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1vYiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblxyXG4gICAgICAgICAgJi5maXJzdCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLmZ1bGwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5tb2Ige1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbi50b2dnbGUge1xyXG4gIC8vIEBpbmNsdWRlIGJnLWltZztcclxuICB0ZXh0LWluZGVudDogLTk5OTlweDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogNTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRtdXNldW07XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL21hcC1jaGV2cm9uLnN2ZycpO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMzBweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkbXVzZXVtO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL21hcC1jaGV2cm9uLWRhcmsuc3ZnJyk7XHJcbiAgICBib3JkZXItY29sb3I6ICRiZztcclxuICB9XHJcblxyXG4gICYuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRtdXNldW07XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9tYXAtY2xvc2Utd2hpdGUuc3ZnJyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwcHg7XHJcbiAgICBib3JkZXItY29sb3I6ICRtdXNldW07XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbWFwLWNsb3NlLnN2ZycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmLnRvZ2dsZS0tdmlldyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgYm90dG9tOiAtNDBweDtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxzbScpIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICAmLnNjcm9sbCB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgLy8gU3R5bGVzIGZvciB0aGUgdG9nZ2xlIGVsZW1lbnQgd2l0aCBjbGFzc2VzIHRvZ2dsZSBhbmQgdG9nZ2xlLS12aWV3XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiNyZWFjdC1tYXJrZXItbWFwIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGhlaWdodDogNzUwcHg7XHJcblxyXG4gIC5BcHAge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/