/**
 * barbershop.org - 
 * @version v0.0.2
 * @link 
 * @copyright 2015 Annie Pennington
 */
@charset "UTF-8";
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
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; }

/* @function map-deep-get($map, $keys...) {
  @each $key in $keys {
    $map: map-get($map, $key);
  }

  @return $map;
} */
html {
  box-sizing: border-box;
  color: #222;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1em;
  line-height: 1.4; }

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

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  text-rendering: optimizeLegibility; }

p {
  margin: 1em 0; }

ul,
ol {
  margin: 1em 0;
  padding-left: 1em; }

dl {
  margin: 1em 0; }
  dl dt {
    font-weight: bold;
    margin-top: .5em; }
  dl dd {
    margin: 0; }

a {
  transition: color 200ms linear; }

hr {
  border: 0;
  border-top: 1px solid gray;
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0; }

img {
  max-width: 100%; }

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

code,
kbd,
pre,
samp {
  font-family: "Source Code Pro", "Menlo", "Monaco", "Consolas", "Courier New", monospace; }

samp {
  font-size: 90%; }

abbr {
  cursor: help; }

table {
  margin: 1em 0; }

tr,
td,
th {
  vertical-align: middle; }

th {
  padding: 1em;
  text-align: left; }

td {
  padding: 1em; }

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

textarea {
  resize: vertical; }

select {
  max-width: 100%;
  width: auto; }

[type='search'] {
  appearance: none; }

[type='radio'],
[type='checkbox'] {
  line-height: normal;
  margin: 4px 0 0;
  margin-top: 1px \9; }

[type='file'],
[type='range'] {
  display: block;
  width: 100%; }

[multiple],
[size] {
  height: auto; }

button,
[type='submit'] {
  appearance: none;
  border: 0;
  cursor: pointer;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }

address {
  font-style: normal; }

main {
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  outline: 0; }

nav ul {
  list-style: none;
  margin: 0;
  padding: 0; }

@font-face {
  font-family: 'nscc-icons';
  src: url("/assets/dist/fonts/nscc-icons/nscc-icons.eot?46703332");
  src: url("/assets/dist/fonts/nscc-icons/nscc-icons.eot?46703332#iefix") format("embedded-opentype"), url("/assets/dist/fonts/nscc-icons/nscc-icons.woff2?46703332") format("woff2"), url("/assets/dist/fonts/nscc-icons/nscc-icons.woff?46703332") format("woff"), url("/assets/dist/fonts/nscc-icons/nscc-icons.ttf?46703332") format("truetype"), url("/assets/dist/fonts/nscc-icons/nscc-icons.svg?46703332#nscc-icons") format("svg");
  font-weight: normal;
  font-style: normal; }

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'nscc-icons';
    src: url('../font/nscc-icons.svg?46703332#nscc-icons') format('svg');
  }
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
  font-family: "nscc-icons";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: .2em;
  text-align: center;
  /* opacity: .8; */
  /* For safety - reset parent styles, that can break glyph codes*/
  font-variant: normal;
  text-transform: none;
  /* fix buttons height, for twitter bootstrap */
  line-height: 1em;
  /* Animation center compensation - margins should be symmetric */
  /* remove if not needed */
  margin-left: .2em;
  /* you can be more comfortable with increased icons size */
  /* font-size: 120%; */
  /* Font smoothing. That was taken from TWBS */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Uncomment for 3D effect */
  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ }

.icon-cw:before {
  content: '\e800'; }

/* '' */
.icon-plus:before {
  content: '\e801'; }

/* '' */
.icon-minus:before {
  content: '\e802'; }

/* '' */
.icon-down-dir:before {
  content: '\e803'; }

/* '' */
.icon-search:before {
  content: '\e804'; }

/* '' */
.icon-gplus:before {
  content: '\e805'; }

/* '' */
.icon-twitter:before {
  content: '\e806'; }

/* '' */
.icon-facebook:before {
  content: '\e807'; }

/* '' */
.icon-flickr:before {
  content: '\e808'; }

/* '' */
.icon-pinterest:before {
  content: '\e809'; }

/* '' */
.icon-instagram:before {
  content: '\e80a'; }

/* '' */
.icon-youtube:before {
  content: '\e80b'; }

/* '' */
.icon-angle-circled-right:before {
  content: '\e80c'; }

/* '' */
.icon-ok-circled:before {
  content: '\e80d'; }

/* '' */
.icon-left-open-big:before {
  content: '\e80e'; }

/* '' */
.icon-right-open-big:before {
  content: '\e80f'; }

/* '' */
.icon-attention:before {
  content: '\e810'; }

/* '' */
.icon-ok:before {
  content: '\e811'; }

/* '' */
.icon-up-bold:before {
  content: '\e812'; }

/* '' */
.icon-info-circled:before {
  content: '\e813'; }

/* '' */
.icon-bell:before {
  content: '\e814'; }

/* '' */
.icon-cancel:before {
  content: '\e815'; }

/* '' */
.icon-linkedin:before {
  content: '\e816'; }

/* '' */
.button, .e2ma_signup_form_button,
a.button,
a.e2ma_signup_form_button,
p > a.button,
p > a.e2ma_signup_form_button {
  background-color: #F59333;
  background-image: none;
  border: 0;
  border-radius: 2px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 0.938rem;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  letter-spacing: 1px;
  min-width: 180px;
  padding: 0.938rem 1.563rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  touch-action: manipulation;
  transition: all .3s;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  .button:hover, .e2ma_signup_form_button:hover, .button:active, .e2ma_signup_form_button:active, .button:focus, .e2ma_signup_form_button:focus,
  a.button:hover,
  a.e2ma_signup_form_button:hover,
  a.button:active,
  a.e2ma_signup_form_button:active,
  a.button:focus,
  a.e2ma_signup_form_button:focus,
  p > a.button:hover,
  p > a.e2ma_signup_form_button:hover,
  p > a.button:active,
  p > a.e2ma_signup_form_button:active,
  p > a.button:focus,
  p > a.e2ma_signup_form_button:focus {
    color: #fff;
    background-color: #f7ad64; }
  .button:active, .e2ma_signup_form_button:active, .button:active:focus, .e2ma_signup_form_button:active:focus,
  a.button:active,
  a.e2ma_signup_form_button:active,
  a.button:active:focus,
  a.e2ma_signup_form_button:active:focus,
  p > a.button:active,
  p > a.e2ma_signup_form_button:active,
  p > a.button:active:focus,
  p > a.e2ma_signup_form_button:active:focus {
    text-decoration: none; }
  .button:focus, .e2ma_signup_form_button:focus,
  a.button:focus,
  a.e2ma_signup_form_button:focus,
  p > a.button:focus,
  p > a.e2ma_signup_form_button:focus {
    outline: 1px dotted rgba(0, 0, 0, 0.4);
    text-decoration: underline; }
  .button[disabled], .e2ma_signup_form_button[disabled], .button.is-disabled, .is-disabled.e2ma_signup_form_button,
  a.button[disabled],
  a.e2ma_signup_form_button[disabled],
  a.button.is-disabled,
  a.is-disabled.e2ma_signup_form_button,
  p > a.button[disabled],
  p > a.e2ma_signup_form_button[disabled],
  p > a.button.is-disabled,
  p > a.is-disabled.e2ma_signup_form_button {
    box-shadow: none;
    cursor: not-allowed;
    opacity: .65;
    pointer-events: none; }
  .button:before, .e2ma_signup_form_button:before,
  a.button:before,
  a.e2ma_signup_form_button:before,
  p > a.button:before,
  p > a.e2ma_signup_form_button:before {
    content: none; }
  .button.-primary, .e2ma_signup_form_button,
  a.button.-primary,
  a.e2ma_signup_form_button,
  p > a.button.-primary,
  p > a.e2ma_signup_form_button {
    background-color: #F59333;
    transition: background-color .25s ease-out; }
    .button.-primary:hover, .e2ma_signup_form_button:hover, .button.-primary:active, .e2ma_signup_form_button:active, .button.-primary:focus, .e2ma_signup_form_button:focus,
    a.button.-primary:hover,
    a.e2ma_signup_form_button:hover,
    a.button.-primary:active,
    a.e2ma_signup_form_button:active,
    a.button.-primary:focus,
    a.e2ma_signup_form_button:focus,
    p > a.button.-primary:hover,
    p > a.e2ma_signup_form_button:hover,
    p > a.button.-primary:active,
    p > a.e2ma_signup_form_button:active,
    p > a.button.-primary:focus,
    p > a.e2ma_signup_form_button:focus {
      background-color: #f7ad64; }
  .button.-secondary, .-secondary.e2ma_signup_form_button,
  a.button.-secondary,
  a.-secondary.e2ma_signup_form_button,
  p > a.button.-secondary,
  p > a.-secondary.e2ma_signup_form_button {
    background-color: #5C4D9C; }
    .button.-secondary:hover, .-secondary.e2ma_signup_form_button:hover,
    a.button.-secondary:hover,
    a.-secondary.e2ma_signup_form_button:hover,
    p > a.button.-secondary:hover,
    p > a.-secondary.e2ma_signup_form_button:hover {
      background-color: #7668b4; }
  .button.-tertiary, .-tertiary.e2ma_signup_form_button,
  a.button.-tertiary,
  a.-tertiary.e2ma_signup_form_button,
  p > a.button.-tertiary,
  p > a.-tertiary.e2ma_signup_form_button {
    background-color: #03123F; }
    .button.-tertiary:hover, .-tertiary.e2ma_signup_form_button:hover,
    a.button.-tertiary:hover,
    a.-tertiary.e2ma_signup_form_button:hover,
    p > a.button.-tertiary:hover,
    p > a.-tertiary.e2ma_signup_form_button:hover {
      background-color: #052070; }
    .button.-tertiary:focus, .-tertiary.e2ma_signup_form_button:focus,
    a.button.-tertiary:focus,
    a.-tertiary.e2ma_signup_form_button:focus,
    p > a.button.-tertiary:focus,
    p > a.-tertiary.e2ma_signup_form_button:focus {
      text-decoration: none; }
  .button.-large, .-large.e2ma_signup_form_button,
  a.button.-large,
  a.-large.e2ma_signup_form_button,
  p > a.button.-large,
  p > a.-large.e2ma_signup_form_button {
    font-size: 0.938em;
    padding: 0.938em 1.563em; }
  .button.-medium, .-medium.e2ma_signup_form_button,
  a.button.-medium,
  a.-medium.e2ma_signup_form_button,
  p > a.button.-medium,
  p > a.-medium.e2ma_signup_form_button {
    font-size: 0.938em;
    padding: 0.938em 1.563em; }
  .button.-small, .e2ma_signup_form_button,
  a.button.-small,
  a.e2ma_signup_form_button,
  p > a.button.-small,
  p > a.e2ma_signup_form_button {
    font-size: 0.938em;
    min-width: auto;
    padding: 0.563em 2.125em; }
  .button.-block, .-block.e2ma_signup_form_button,
  a.button.-block,
  a.-block.e2ma_signup_form_button,
  p > a.button.-block,
  p > a.-block.e2ma_signup_form_button {
    display: block;
    padding: 2em !important;
    width: 100%; }
  .button.-center, .-center.e2ma_signup_form_button,
  a.button.-center,
  a.-center.e2ma_signup_form_button,
  p > a.button.-center,
  p > a.-center.e2ma_signup_form_button {
    justify-self: center; }
  .button.-full, .-full.e2ma_signup_form_button,
  a.button.-full,
  a.-full.e2ma_signup_form_button,
  p > a.button.-full,
  p > a.-full.e2ma_signup_form_button {
    justify-self: stretch; }
  .button.-left, .-left.e2ma_signup_form_button,
  a.button.-left,
  a.-left.e2ma_signup_form_button,
  p > a.button.-left,
  p > a.-left.e2ma_signup_form_button {
    justify-self: left; }
  .button.-right, .-right.e2ma_signup_form_button,
  a.button.-right,
  a.-right.e2ma_signup_form_button,
  p > a.button.-right,
  p > a.-right.e2ma_signup_form_button {
    justify-self: right; }

.button-container {
  display: grid;
  width: 100%; }

.button-container + .button-container {
  margin-top: 1em; }

.baskerville {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif"; }

.monospace {
  font-family: "Source Code Pro", "Menlo", "Monaco", "Consolas", "Courier New", monospace; }

.visually-hidden {
  display: none; }

li {
  font-weight: 300;
  margin-bottom: 1em; }
  li:last-of-type {
    margin-bottom: 0; }
  .article li a {
    color: #5C4D9C;
    position: relative;
    text-decoration: none; }
    .article li a:before {
      position: absolute;
      margin: 0 auto;
      top: 100%;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #5C4D9C;
      content: '';
      opacity: 0.3;
      transform: scaleX(0.9);
      transition: all .3s; }
    .article li a:hover:before {
      opacity: 1;
      transform: scaleX(1); }

.loader {
  margin: 0px auto;
  position: relative;
  width: 80px; }
  .loader:before {
    content: '';
    display: block;
    padding-top: 100%; }
  .loader.hidden {
    display: none; }

.circular {
  animation: rotate 2s linear infinite;
  height: 100%;
  margin: auto;
  position: absolute;
  transform-origin: center center;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%; }

.path {
  animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
  stroke-dasharray: 1,200;
  stroke-dashoffset: 0;
  stroke-linecap: round; }

@keyframes rotate {
  100% {
    transform: rotate(360deg); } }

@keyframes dash {
  0% {
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0; }
  50% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35px; }
  100% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124px; } }

@keyframes color {
  100%, 0% {
    stroke: #DDDDDD; }
  40% {
    stroke: #DDDDDD; }
  66% {
    stroke: white; }
  80%, 90% {
    stroke: #53565B; } }

h1 {
  color: #03123F;
  font-size: 4.625em;
  text-transform: uppercase; }

h2, h3 {
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  text-transform: uppercase; }

h2 {
  color: #03123F;
  font-size: 1.625em; }
  @media (min-width: 37.5em) {
    h2 {
      font-size: 2.25em; } }
  @media (min-width: 50em) {
    h2 {
      font-size: 2.625em; } }

h3 {
  font-size: 1.375em; }

h2, h3, h4, h5, h6 {
  color: #03123F; }
  .article h2, .article h3, .article h4, .article h5, .article h6 {
    margin-top: 1.250em; }

p {
  color: #03123F;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4; }
  p.lead-paragraph {
    font-size: 1.188rem;
    margin-bottom: 2em;
    margin-top: 1em; }
  p.accent {
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-style: italic; }

hr {
  border: 0;
  border-bottom: 1px solid #F5F5F0;
  height: 0;
  margin: 2em 0; }

ol ol li {
  list-style-type: lower-alpha; }

ol ol ol li {
  list-style-type: lower-roman; }

p > a {
  color: #5C4D9C;
  position: relative;
  text-decoration: none; }
  p > a:before {
    position: absolute;
    margin: 0 auto;
    top: 100%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #5C4D9C;
    content: '';
    opacity: 0.3;
    transform: scaleX(0.9);
    transition: all .3s; }
  p > a:hover:before {
    opacity: 1;
    transform: scaleX(1); }

a {
  transition: color 150ms linear;
  color: #03123F; }
  a.accent {
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-style: italic; }
  a:hover {
    color: #052070; }

fieldset {
  border: 0;
  margin: 0 0 2em;
  min-width: 0;
  padding: 0; }
  fieldset[disabled] .form-control, fieldset[disabled] .e2ma_signup_form_element > input {
    background-color: #eee;
    cursor: not-allowed;
    opacity: 1; }

legend {
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  color: #333;
  display: block;
  font-size: 21px;
  line-height: inherit;
  margin-bottom: 20px;
  padding: 0;
  width: 100%; }

label, .e2ma_signup_form_label {
  display: inline-block;
  font-weight: bold;
  margin-bottom: 5px;
  max-width: 100%; }
  label.required:after, .required.e2ma_signup_form_label:after {
    content: '*'; }
  label[aria-hidden=true], .e2ma_signup_form_label[aria-hidden=true] {
    display: none; }
  label small, .e2ma_signup_form_label small {
    color: #7D7D7D;
    padding-left: 5px; }

.checkbox-inline label:after, .checkbox-inline .e2ma_signup_form_label:after {
  content: ''; }

.form-control, .e2ma_signup_form_element > input {
  background-color: white;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  color: #53565B;
  display: block;
  font-size: .875em;
  height: 46px;
  line-height: 1.33;
  padding: 10px 16px;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  width: 100%; }
  .form-control:focus, .e2ma_signup_form_element > input:focus {
    border-color: #eaeaea;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(234, 234, 234, 0.6);
    outline: 0; }
  .form-control::-webkit-input-placeholder, .e2ma_signup_form_element > input::-webkit-input-placeholder {
    color: #7D7D7D; }
  .form-control::-moz-placeholder, .e2ma_signup_form_element > input::-moz-placeholder {
    color: #7D7D7D; }
  .form-control:-moz-placeholder, .e2ma_signup_form_element > input:-moz-placeholder {
    color: #7D7D7D; }
  .form-control:-ms-input-placeholder, .e2ma_signup_form_element > input:-ms-input-placeholder {
    color: #7D7D7D; }
  .is-submitted .form-control:invalid, .is-submitted .e2ma_signup_form_element > input:invalid, .is-submitted .form-control:required:invalid, .is-submitted .e2ma_signup_form_element > input:required:invalid {
    border-color: #b03535;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #d45252;
    outline: 0; }
  .form-control[disabled], .e2ma_signup_form_element > input[disabled], .form-control[readonly], .e2ma_signup_form_element > input[readonly] {
    background-color: #eee;
    cursor: not-allowed;
    opacity: 1; }

.form-control-group, .e2ma_signup_form_row {
  margin-bottom: 1em;
  margin-top: 1em;
  position: relative; }

.form-control.has-icon, .e2ma_signup_form_element > input.has-icon {
  padding-right: 45px; }

textarea {
  resize: vertical; }
  textarea.form-control {
    height: 150px; }

[type='radio'],
[type='checkbox'] {
  line-height: normal;
  margin: 4px 0 0;
  margin-top: 1px \9; }

[type='file'],
[type='range'] {
  display: block;
  width: 100%; }

[multiple],
[size] {
  height: auto; }

[type='file']:focus,
[type='radio']:focus,
[type='checkbox']:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px; }

select,
select.form-control {
  color: #7D7D7D;
  font-size: .875em;
  padding-right: 45px;
  position: relative;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none; }

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

.form-control-select-wrapper {
  display: block;
  max-width: 100%;
  position: relative;
  width: auto; }

.form-control__instructions {
  color: #7D7D7D;
  display: block;
  font-weight: 300;
  font-size: .85em;
  margin-bottom: .5em; }

.field-icon {
  color: #53565B;
  font-size: 1.1em;
  pointer-events: none;
  position: absolute;
  right: 13px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 1; }

button,
[type='submit'] {
  border: 0;
  cursor: pointer;
  margin-bottom: 30px;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:active, button:focus,
  [type='submit']:active,
  [type='submit']:focus {
    outline: thin dotted;
    outline-offset: -2px; }

.form-group {
  margin-bottom: 15px; }

.radio,
.checkbox {
  display: block;
  margin-bottom: 10px;
  margin-top: 10px;
  min-height: 20px;
  position: relative; }
  .radio label, .radio .e2ma_signup_form_label,
  .checkbox label,
  .checkbox .e2ma_signup_form_label {
    color: #53565B;
    cursor: pointer;
    font-size: .875em;
    font-weight: normal;
    margin-bottom: 0;
    padding-left: 20px; }

.radio [type='radio'],
.radio-inline [type='radio'],
.checkbox [type='checkbox'],
.checkbox-inline [type='checkbox'] {
  margin-left: -20px;
  margin-top: 4px \9;
  position: absolute; }

.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px; }

.radio-inline,
.checkbox-inline {
  cursor: pointer;
  display: inline-block;
  font-weight: normal;
  margin-bottom: 0;
  padding-left: 20px;
  vertical-align: middle; }

.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-left: 10px;
  margin-top: 0; }

[type='radio'][disabled],
[type='checkbox'][disabled],
[type='radio'].disabled,
[type='checkbox'].disabled,
[disabled] [type='radio'],
[disabled] [type='checkbox'] {
  cursor: not-allowed; }

.radio-inline.disabled,
.checkbox-inline.disabled,
[disabled] .radio-inline,
[disabled] .checkbox-inline {
  cursor: not-allowed; }

.radio.disabled label, .radio.disabled .e2ma_signup_form_label,
.checkbox.disabled label,
.checkbox.disabled .e2ma_signup_form_label,
[disabled] .radio label,
[disabled] .radio .e2ma_signup_form_label,
[disabled] .checkbox label,
[disabled] .checkbox .e2ma_signup_form_label {
  cursor: not-allowed; }

/*!
* Pikaday
* Copyright (c) 2014 David Bushell | BSD & MIT license | http://dbushell.com/
*/
.pika-single {
  background-color: white;
  border: 1px solid #ccc;
  border-bottom-color: #bbb;
  color: #7D7D7D;
  display: block;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  position: relative;
  z-index: 9999; }
  .pika-single:after {
    clear: both;
    content: '';
    display: table; }
  .pika-single.is-hidden {
    display: none; }
  .pika-single.is-bound {
    position: absolute;
    box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.5); }
  .pika-single.dark {
    background-color: #53565B;
    border-color: #7D7D7D; }

.pika-lendar {
  float: left;
  margin: 8px;
  width: 240px; }

.pika-title {
  color: #DDDDDD;
  position: relative;
  text-align: center;
  text-transform: uppercase; }
  .dark .pika-title {
    color: white; }
  .pika-title select {
    cursor: pointer;
    filter: alpha(opacity=0);
    left: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 5px;
    z-index: 9998; }

.pika-label {
  background-color: #fff;
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
  line-height: 20px;
  margin: 0;
  overflow: hidden;
  padding: 5px 3px;
  position: relative;
  z-index: 9999; }
  .dark .pika-label {
    background-color: #53565B; }

.pika-prev,
.pika-next {
  background-color: transparent;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 75% 75%;
  border: 0;
  cursor: pointer;
  display: block;
  height: 30px;
  opacity: .5;
  outline: none;
  overflow: hidden;
  padding: 0;
  position: relative;
  text-indent: 20px;
  white-space: nowrap;
  width: 20px; }
  .pika-prev:hover,
  .pika-next:hover {
    opacity: 1; }
  .pika-prev.is-disabled,
  .pika-next.is-disabled {
    cursor: default;
    opacity: .2; }

.pika-prev,
.is-rtl .pika-next {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==");
  float: left; }

.pika-next,
.is-rtl .pika-prev {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=");
  float: right; }

.pika-select {
  display: inline-block; }

.pika-table {
  border: 0;
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%; }
  .pika-table tr {
    border-bottom: none !important; }
  .pika-table th,
  .pika-table td {
    border-right: none !important;
    padding: 0;
    width: 14.285714285714286%; }
    .dark .pika-table th, .dark
    .pika-table td {
      border-bottom-color: #7D7D7D; }
  .pika-table th {
    color: #5C4D9C;
    font-size: 12px;
    font-weight: bold;
    line-height: 25px;
    padding-bottom: 10px;
    text-align: center; }
    .dark .pika-table th {
      color: #6757ac; }
  .pika-table td:first-child {
    padding-top: 0 !important; }
  .pika-table td:last-child {
    padding-bottom: 0 !important; }
  .pika-table abbr {
    border-bottom: none;
    cursor: help; }

.pika-button {
  background-color: white;
  border-radius: 3px;
  box-sizing: border-box;
  color: #7D7D7D;
  cursor: pointer;
  display: block;
  font-size: 12px;
  line-height: 15px;
  margin: 0;
  outline: none;
  padding: 12px 5px 8px;
  text-align: center;
  width: 100%; }
  .dark .pika-button {
    background-color: #53565B;
    color: white; }
  .is-today .pika-button {
    color: #d0d0d0;
    font-weight: bold; }
    .dark .is-today .pika-button {
      color: #eaeaea; }
  .is-selected .pika-button {
    background-color: #DDDDDD;
    box-shadow: none;
    color: #fff;
    font-weight: bold; }
    .dark .is-selected .pika-button {
      background-color: #eaeaea; }
  .is-inrange .pika-button {
    background: white;
    border-radius: 0; }
  .is-startrange .pika-button,
  .is-endrange .pika-button {
    background-color: #DDDDDD;
    box-shadow: none;
    color: #fff;
    font-weight: bold; }
  .is-disabled .pika-button {
    color: #7D7D7D;
    cursor: default;
    opacity: .3;
    pointer-events: none; }
  .pika-button:hover {
    background-color: #F5F5F0 !important;
    box-shadow: none !important;
    border-radius: 0; }
    .dark .pika-button:hover {
      background-color: #DDDDDD !important; }

.pika-week {
  color: #DDDDDD;
  font-size: 11px; }

.datepicker-container {
  position: relative;
  display: block; }

.datepicker-control[readonly] {
  background-color: white;
  border-color: #DDDDDD;
  color: #7D7D7D;
  cursor: pointer; }

.datepicker-control.form-control--dark[readonly] {
  background-color: #7D7D7D;
  border-color: transparent;
  color: white; }

.datepicker-control.has-value {
  background-image: none; }

.remove-button {
  display: none;
  /*
    @include size(auto 37px);
    background-color: transparent;
    background-image: path('icon-close.svg');
    background-position: 0 50%;
    background-repeat: no-repeat;
    color: #a8a8a8;
    display: inline-block;
    font-size: 11px;
    padding: 0;
    padding-left: 22px;
    position: absolute;
    right: 14px;
    text-transform: uppercase;
    top: 18px;
  */ }

table {
  margin: 1em 0;
  max-width: 100%;
  width: 100%; }
  table tr {
    border-bottom: 1px solid #DDDDDD;
    max-width: 100%; }
  table th {
    display: none;
    max-width: 100%; }
  table td {
    display: block;
    padding: 0;
    max-width: 100%;
    vertical-align: top; }
    table td:first-child {
      padding-top: .5em; }
    table td:last-child {
      padding-bottom: .5em; }
    table td:before {
      content: attr(data-th) ": ";
      color: #2F3D47;
      font-size: 11px;
      font-weight: 400;
      text-transform: uppercase;
      line-height: 30px;
      display: inline-block;
      padding-right: 15px; }
      @media (min-width: 900px) {
        table td:before {
          display: none; } }
  @media (min-width: 900px) {
    table th:not(:last-child),
    table td:not(:last-child) {
      border-right: 1px solid #F5F5F0; } }
  table th, table td {
    text-align: left; }
    @media (min-width: 900px) {
      table th, table td {
        display: table-cell;
        padding: .25em .5em; }
        table th:first-child, table td:first-child {
          padding-left: 0; }
        table th:last-child, table td:last-child {
          padding-right: 0; } }

.video-embed {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden; }
  .video-embed::before {
    display: block;
    content: ""; }
  .video-embed .video-embed-item,
  .video-embed iframe,
  .video-embed embed,
  .video-embed object,
  .video-embed video {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

.video-embed-21by9::before {
  padding-top: 42.85714%; }

.video-embed-16by9::before {
  padding-top: 56.25%; }

.video-embed-4by3::before {
  padding-top: 75%; }

.video-embed-1by1::before {
  padding-top: 100%; }

.grid, .callout, .event__list.-grid {
  display: grid;
  position: relative;
  z-index: 1;
  grid-template-columns: 100%;
  grid-template-rows: auto;
  grid-row-gap: 15px;
  grid-column-gap: 40px; }
  .grid.-small, .-small.callout, .callout.e2ma_signup_form_button, .-small.event__list.-grid, .event__list.-grid.e2ma_signup_form_button, .grid.e2ma_signup_form_button {
    grid-row-gap: 20px;
    grid-column-gap: 15px; }
  .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-footer, .-footer.callout, .-footer.event__list.-grid {
        grid-template-columns: auto auto auto 130px; } }
  .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col4, .-col4.callout, .-col4.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr; } }
  .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col5, .-col5.callout, .-col5.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col6, .-col6.callout, .-col6.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col7, .-col7.callout, .-col7.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 50em) {
      .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col8, .-col8.callout, .-col8.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } }
  .grid.-featured-entry-grid, .-featured-entry-grid.callout, .callout.featured-entry__grid, .-featured-entry-grid.event__list.-grid, .event__list.-grid.featured-entry__grid, .grid.featured-entry__grid {
    grid-template-rows: auto auto;
    grid-column-gap: 40px; }
    @media (min-width: 50em) {
      .grid.-featured-entry-grid, .-featured-entry-grid.callout, .callout.featured-entry__grid, .-featured-entry-grid.event__list.-grid, .event__list.-grid.featured-entry__grid, .grid.featured-entry__grid {
        grid-template-columns: 1fr 2fr;
        grid-template-rows: 1fr; } }
  .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 15px;
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 30px;
        grid-template-columns: 18.4% auto 25% 25%; } }
    @media (min-width: 67.1875em) {
      .grid.-listing-grid, .-listing-grid.callout, .event__list:not(.-grid) .callout.event, .schedule__list .callout.schedule, .event__list:not(.-grid) .grid.event, .event__list:not(.-grid) .event.event__list.-grid, .-listing-grid.event__list.-grid, .schedule__list .event__list.-grid.schedule, .schedule__list .grid.schedule {
        grid-column-gap: 40px;
        grid-template-columns: 18.4% auto 27.5% 23%; } }
  .grid.-col3, .-col3.callout, .-col3.event__list.-grid {
    grid-template-columns: 1fr 1fr; }
    @media (min-width: 37.5em) {
      .grid.-col3, .-col3.callout, .-col3.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 37.5em) {
      .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
        grid-template-columns: 1fr 1fr; } }
    @media (min-width: 50em) {
      .grid.-col3-2-1, .-col3-2-1.callout, .-col3-2-1.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
    @media (min-width: 63.75em) {
      .grid.-col3-1, .-col3-1.callout, .event__list.-grid {
        grid-column-gap: calc(40px * 1.5); } }
  .grid.-col2, .callout, .-col2.event__list.-grid, .event__list.-grid.callout {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-col2, .callout, .-col2.event__list.-grid, .event__list.-grid.callout {
        grid-template-columns: 1fr 1fr; } }
  .grid.-detail, .-detail.callout, .-detail.event__list.-grid {
    grid-template-columns: 1fr; }
    @media (min-width: 50em) {
      .grid.-detail, .-detail.callout, .-detail.event__list.-grid {
        grid-template-columns: 1fr 250px; } }

.accordion .accordion__item {
  transition: background-color 150ms linear;
  border-bottom: 1px solid #2F3D47;
  cursor: pointer;
  padding: 2.5em 0; }
  .accordion .accordion__item .accordion__item__details {
    height: 100%;
    max-height: 0;
    margin-left: 40px;
    margin-right: 40px;
    overflow: hidden;
    -webkit-transition: max-height .5s ease-in-out;
    transition: max-height .5s ease-in-out; }
    .accordion .accordion__item .accordion__item__details p {
      margin-bottom: 1.75em; }
    .accordion .accordion__item .accordion__item__details ul {
      padding: 0; }
      .accordion .accordion__item .accordion__item__details ul li {
        list-style: none; }
    .accordion .accordion__item .accordion__item__details p > a {
      color: #5C4D9C;
      position: relative;
      text-decoration: none; }
      .accordion .accordion__item .accordion__item__details p > a:before {
        position: absolute;
        margin: 0 auto;
        top: 100%;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #5C4D9C;
        content: '';
        opacity: 0;
        transform: scaleX(0.8);
        transition: all .3s; }
      .accordion .accordion__item .accordion__item__details p > a:hover:before {
        opacity: 1;
        transform: scaleX(1); }
  .accordion .accordion__item.-expanded .accordion__item__details {
    max-height: 500000px; }
  .accordion .accordion__item:not(.-expanded):hover {
    background-color: #F5F5F0; }

.accordion h4 {
  margin-bottom: 1.250em;
  margin-left: 40px;
  padding-right: 60px; }

.accordion__item__handle {
  color: #03123F;
  font-size: 1.375rem;
  margin-top: 0;
  position: relative;
  transition: color .3s; }
  .accordion__item__handle:hover {
    color: #03123F; }
  .accordion__item.-expanded .accordion__item__handle {
    color: #03123F; }
  .accordion__item__handle:before, .accordion__item__handle:after {
    color: #2F3D47;
    display: block;
    font-family: "nscc-icons";
    line-height: 1;
    position: absolute;
    right: 40px;
    top: 0;
    transition: transform .3s, opacity .3s; }
  .accordion__item__handle:before {
    content: '\e803';
    transform: rotate(0deg);
    z-index: 20; }
    .accordion__item.-expanded .accordion__item__handle:before {
      transform: rotate(180deg); }

.breadcrumb {
  font-size: .75rem;
  font-weight: 500;
  margin: 2.5em 0;
  position: relative; }
  .breadcrumb:after {
    clear: both;
    content: '';
    display: table; }
  .breadcrumb .breadcrumb__item {
    color: #7D7D7D;
    font-weight: 500;
    float: left;
    margin-bottom: 0; }
    .breadcrumb .breadcrumb__item:after {
      content: '/';
      padding: 0 4px; }
    .breadcrumb .breadcrumb__item.-active {
      color: #7D7D7D; }
      .breadcrumb .breadcrumb__item.-active:after {
        content: none; }
    .breadcrumb .breadcrumb__item a {
      color: #5C4D9C;
      text-decoration: none; }
      .breadcrumb .breadcrumb__item a:hover {
        text-decoration: underline; }

.callout {
  transition: background-color 150ms linear;
  color: #03123F;
  position: relative;
  text-decoration: none;
  padding: 20px 20px;
  margin-bottom: 20px; }
  @media (min-width: 63.75em) {
    .callout {
      padding: 20px 40px; } }

a.callout {
  background-color: #F5F5F0; }
  a.callout:hover {
    background-color: #ebebe1; }

.callout__image {
  display: block;
  height: auto;
  float: right;
  width: 100%; }
  @media (min-width: 50em) {
    .callout__image {
      width: auto; } }

.callout-block {
  color: white;
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .callout-block.-image:not(.-grey):before {
    transition: background-color 150ms linear;
    background-image: linear-gradient(to bottom, transparent, transparent, #072973);
    content: '';
    display: block;
    height: 100%;
    opacity: .7;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10; }
  .callout-block.-image:hover .callout-block__content {
    height: 100%; }
  .callout-block.-image.-grey .callout-block__image {
    top: 90px; }
  .callout-block.-image.-grey:hover .callout-block__content {
    height: 100%; }
  .callout-block.-image .callout-block__image {
    display: block;
    height: auto;
    min-width: 100%;
    position: absolute;
    top: 35px;
    z-index: 0; }
  .callout-block.-color.-green {
    background-color: #DDDDDD; }
  .callout-block.-color.-black {
    background-color: #2F3D47; }
  .callout-block.-small, .callout-block.e2ma_signup_form_button {
    height: 200px; }
  .callout-block.-medium {
    height: 250px; }
    .callout-block.-medium p {
      font-weight: 700;
      margin: 0;
      text-transform: uppercase; }
  .callout-block.-large {
    border: 25px solid white;
    height: 360px; }
    @media (min-width: 50em) {
      .callout-block.-large {
        height: 460px; } }
  .callout-block.-horizontal {
    height: 250px;
    margin-bottom: 0; }
    @media (min-width: 57.1875em) {
      .callout-block.-horizontal {
        height: 130px; }
        .callout-block.-horizontal .callout-block__content__label {
          display: block;
          float: left;
          line-height: 1.3;
          margin: 0;
          width: 20%; }
        .callout-block.-horizontal .callout-block__content__headline {
          display: block;
          float: left;
          width: 65%; }
        .callout-block.-horizontal .callout-block__content__button {
          display: block;
          float: right;
          margin-top: 5px;
          width: 15%; } }

.callout-block.-image .callout-block__content {
  transition: height 150ms linear;
  height: 40px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-items: center;
  background-color: #03123F;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 20;
  text-align: center; }
  .callout-block.-image .callout-block__content:after {
    clear: both;
    content: '';
    display: table; }

.callout-block.-image.-grey .callout-block__content {
  background-color: #F5F5F0;
  height: 90px; }

.callout-block.-button .callout-block__content {
  height: 100%;
  background-color: #F5F5F0;
  border-bottom: 14px solid #F59333;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center; }
  .callout-block.-button .callout-block__content .callout-block__content__button {
    margin-top: auto; }
  .callout-block.-button .callout-block__content img {
    max-height: 126px; }

.callout-block.-color .callout-block__content {
  padding: 0 25% 0 15%; }

.callout-block.-horizontal .callout-block__content {
  padding: 0 7%; }

.callout-block__content__headline {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; }
  .callout-block.-image .callout-block__content__headline {
    color: white;
    margin: 10px auto; }
  .callout-block.-image.-grey .callout-block__content__headline {
    color: #03123F;
    font-size: 1.75em;
    margin: 10px auto; }
  .-button .callout-block__content__headline {
    padding-top: 20px; }
  .callout-block.-color .callout-block__content__headline {
    margin-bottom: .25em; }
  .callout-block.-small .callout-block__content__headline, .callout-block.e2ma_signup_form_button .callout-block__content__headline {
    font-size: 0.938em;
    line-height: 1.1; }
  .callout-block.-medium .callout-block__content__headline {
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.75em;
    line-height: 1.2; }
  .callout-block.-large .callout-block__content__headline {
    font-size: 2.75em;
    line-height: 1.1; }
    @media (min-width: 63.75em) {
      .callout-block.-large .callout-block__content__headline {
        font-size: 3.75em; } }
  .callout-block.-horizontal .callout-block__content__headline {
    font-size: 1.75em;
    line-height: 1.2; }
    @media (min-width: 57.1875em) {
      .callout-block.-horizontal .callout-block__content__headline {
        font-size: 2em;
        margin-bottom: 0; } }

.category-select {
  width: 50%; }

.embed {
  background-color: #000;
  cursor: pointer; }
  .embed .photo {
    opacity: .8;
    -webkit-transition: opacity;
    transition: opacity;
    width: 100%; }
    .embed .photo:hover {
      opacity: .4; }
  .embed iframe {
    border: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%; }
  .embed.-modal-overlay[data-loaded=false]::before {
    background-color: transparent;
    background-image: -webkit-linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.6));
    background-image: linear-gradient(-90deg, transparent, rgba(0, 0, 0, 0.6));
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    -webkit-transition: all;
    transition: all;
    width: 100%;
    z-index: 2; }

.embed[data-loaded=false]::before {
  background: url("../../src/images/play.svg") no-repeat;
  content: '';
  height: 70px;
  left: 50%;
  margin: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 70px;
  z-index: 1; }

.embed[data-loaded=false]:hover {
  -webkit-transition: opacity;
  transition: opacity; }
  .embed[data-loaded=false]:hover .photo {
    opacity: .4; }
  .embed[data-loaded=false]:hover::before {
    opacity: .8; }

.embed[data-loaded=true] {
  height: 0;
  padding-bottom: 56.25%; }
  .embed[data-loaded=true] .network-modal-content {
    display: none; }

.event__list:not(.-grid) .event-item:not(:first-child) {
  border-top: 1px solid #979797; }

.event__list:not(.-grid) .event:hover {
  background-color: #ebebe1; }

.event__list:not(.-grid) .event__arrow {
  display: none; }

.event__list.-grid {
  width: 100%; }
  .event__list.-grid .event__description {
    display: none; }
  .event__list.-grid .event {
    margin-top: 20px;
    padding: 0; }
    .event__list.-grid .event:hover .event__arrow {
      right: 10px; }
  .event__list.-grid img {
    width: 100%; }
  .event__list.-grid .button, .event__list.-grid .e2ma_signup_form_button {
    display: none; }
  .event__list.-grid .-promo {
    padding: 0 10px; }
  .event__list.-grid .event__meta {
    padding-right: 50px; }

.event {
  transition: background-color 150ms linear;
  align-items: center;
  color: #03123F;
  padding: 20px 20px;
  position: relative;
  text-decoration: none; }
  @media (min-width: 63.75em) {
    .event {
      padding: 20px 40px; } }
  .event > p {
    font-size: 0.813em; }

.event__image {
  justify-self: center; }
  @media (min-width: 50em) {
    .event__image {
      justify-self: auto; } }

.event__title {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.125em;
  font-weight: 700; }

.event__meta {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-size: .938em;
  font-style: italic;
  position: relative; }
  .event__meta p {
    margin: 0; }

.event__arrow {
  transition: right 150ms linear;
  color: #5C4D9C;
  font-size: 64px;
  position: absolute;
  right: 20px;
  top: -20px; }

.event__cta {
  height: 100%;
  justify-content: center;
  display: flex;
  flex-direction: column;
  border-radius: 2px;
  padding: 20px; }
  .event__cta.-promo {
    background-color: #F59333; }
  .event__cta p {
    color: #F5F5F0;
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-size: 1.125em;
    font-style: italic;
    margin: .5em 0;
    text-align: center; }

.featured-entry {
  color: white;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .featured-entry:after {
    clear: both;
    content: '';
    display: table; }

.featured-entry__grid {
  height: 100%;
  align-items: center;
  padding: 40px 0; }
  @media (min-width: 63.75em) {
    .featured-entry__grid {
      padding: 40px 90px; } }

.featured-entry__content {
  position: relative;
  height: 100%;
  z-index: 20;
  text-align: center; }
  @media (min-width: 50em) {
    .featured-entry__content {
      text-align: right; } }

.featured-entry__content__headline {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-style: italic;
  font-size: 1.188em;
  line-height: 1; }

.featured-entry__image.-svg {
  height: 100%; }

.featured-entry__cta__content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center; }
  @media (min-width: 50em) {
    .featured-entry__cta__content .button, .featured-entry__cta__content .e2ma_signup_form_button {
      align-self: flex-end; } }

.featured-event__container {
  padding: 20px 20px;
  margin: 20px 0; }
  @media (min-width: 63.75em) {
    .featured-event__container {
      padding: 20px 40px; } }
  .featured-event__container h2 {
    text-transform: uppercase; }
  .featured-event__container > p {
    font-size: 1.188em;
    margin-bottom: 20px;
    margin-top: 0; }

.featured-event {
  overflow: hidden;
  position: relative;
  width: 100%; }
  .featured-event:after {
    clear: both;
    content: '';
    display: table; }

.featured-event__content {
  position: relative;
  height: 100%;
  z-index: 20;
  text-align: center; }
  @media (min-width: 50em) {
    .featured-event__content {
      text-align: right; } }

.featured-event__content__headline {
  font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
  font-style: italic;
  font-size: 1.188em;
  line-height: 1; }

.featured-event__image {
  width: 100%; }

.featured-event__cta__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative; }
  @media (min-width: 50em) {
    .featured-event__cta__content {
      flex-direction: row; } }
  @media (min-width: 50em) {
    .featured-event__cta__content .button, .featured-event__cta__content .e2ma_signup_form_button {
      align-self: flex-end; } }

.featured-event__meta {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 600;
  font-size: 1.063em;
  position: relative; }
  .featured-event__meta p {
    margin: 0;
    font-weight: 600; }

.global-footer__contact-info {
  line-height: 1.67em; }
  .global-footer__contact-info a {
    color: white;
    font-weight: 300;
    text-decoration: none;
    transition: color .25s; }
    .global-footer__contact-info a:hover {
      color: #DDDDDD; }

.global-footer__nav ul {
  padding: 0; }
  .global-footer__nav ul li {
    list-style: none; }

.global-footer__nav a {
  color: #DDDDDD;
  text-decoration: none;
  transition: color .25s; }
  .global-footer__nav a:hover {
    color: #7D7D7D; }

.global-footer__partners {
  margin: 0;
  padding: 0; }
  .global-footer__partners li {
    list-style: none;
    display: inline-block;
    margin: 0 .75em; }
  .global-footer__partners img,
  .global-footer__partners svg {
    max-height: 41px;
    width: auto; }
  .global-footer__partners svg path,
  .global-footer__partners svg rect,
  .global-footer__partners svg polygon {
    fill: #7D7D7D; }
  .global-footer__partners #tncc-logo {
    height: 32px; }
  .global-footer__partners #tnecampus-logo {
    height: 28px; }
  .global-footer__partners #pathway-logo {
    height: 20px; }
  .global-footer__partners #workforce-logo {
    height: 30px; }

@media (min-width: 50em) {
  .grid-title {
    display: block;
    float: left;
    position: relative;
    top: .8em;
    width: 30%; } }

.grid-filters {
  display: block; }
  @media (min-width: 50em) {
    .grid-filters {
      float: right;
      width: 70%; } }
  .grid-filters .grid-item {
    margin-bottom: 0; }

@media (min-width: 63.75em) {
  .grid-filters__group {
    border-left: 1px solid #F5F5F0;
    padding-left: gutter(9); } }

.grid-filters__group:first-of-type {
  border-left: none;
  padding-left: 0; }

.icon-links {
  padding-top: 40px;
  padding-bottom: 40px; }
  .icon-links a:not(:first-child):after {
    content: '';
    height: 100%;
    position: absolute;
    top: 0;
    left: -20px;
    border-left: 1px solid #979797; }
  .icon-links a {
    transition: background-color 150ms linear;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    text-align: center;
    position: relative;
    justify-content: space-evenly; }
    .icon-links a:hover {
      background-color: #F5F5F0; }
  .icon-links img {
    width: 60px; }
  .icon-links h4 {
    font-weight: 400;
    margin: 0; }

.label {
  font-size: .8125rem;
  font-weight: 500;
  margin: 1em 0;
  text-transform: uppercase;
  letter-spacing: 5px; }
  .label.-white {
    color: white; }
  .label.-gray {
    color: #7D7D7D; }
  .label.-green {
    color: white; }

.listing-block {
  display: block;
  min-height: 230px;
  outline: none;
  position: relative;
  text-decoration: none;
  width: 100%; }

.listing-block__image {
  opacity: .85;
  transition: opacity .5s;
  width: 100%;
  backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden; }
  .listing-block:hover .listing-block__image {
    opacity: 1;
    backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -webkit-backface-visibility: hidden; }
  .listing-block__image.-no-image {
    background-color: #DDDDDD;
    min-height: 176px; }

.listing-block__caption {
  color: #7D7D7D;
  display: block;
  font-size: 1em;
  margin-top: .5em; }

.listing-container {
  display: grid;
  grid-row-gap: 40px;
  grid-auto-rows: 1fr; }
  @media (min-width: 37.5em) {
    .listing-container {
      grid-row-gap: 60px; } }

.listing-item {
  display: grid;
  grid-column-gap: 40px;
  grid-template-columns: 100%; }
  @media (min-width: 50em) {
    .listing-item {
      grid-template-columns: 35% auto; } }
  .listing-item img {
    width: 100%; }

.listing-item__image {
  grid-column: 1;
  align-self: start; }

.listing-item__heading h1 {
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.188rem; }

.listing-item__heading p {
  margin: 0; }

.listing-item__subhead p {
  font-size: 0.875rem; }

.listing-item__content {
  display: flex;
  flex-direction: column; }
  @media (min-width: 50em) {
    .listing-item__content {
      grid-column: 2; } }
  .listing-item__content a {
    text-decoration: none; }

.listing-item__description {
  font-size: 0.875rem; }

.listing-item__button {
  margin-top: auto; }

.logo {
  display: block;
  height: 103px;
  position: relative;
  z-index: 90;
  height: 85px;
  width: 85px; }
  @media (min-width: 63.75em) {
    .logo {
      height: 100%; } }
  .logo a {
    display: block;
    height: 100%;
    position: relative; }
  .logo img {
    opacity: 1;
    transition: opacity .2s;
    width: 100%;
    display: block;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .logo:hover img {
    opacity: .75; }
  .global-header .logo {
    top: 0;
    width: 77px;
    height: 103px; }
    @media (min-width: 63.75em) {
      .global-header .logo {
        float: left;
        width: 77px; } }
    @media (min-width: 67.1875em) {
      .global-header .logo {
        width: 77px; } }

.media {
  max-width: 868px;
  margin: 40px auto 50px;
  position: relative;
  text-align: center;
  width: 100%; }
  .media:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 50em) {
    .media {
      width: auto; } }
  @media (min-width: 72.75em) {
    .media {
      margin: 50px auto; } }
  @media (min-width: 72.75em) {
    .media.-wide {
      width: 1084px; } }
  @media (min-width: 480px) {
    .media.-left {
      float: left;
      margin-right: 40px; } }
  @media (min-width: 480px) and (max-width: 599px) {
    .media.-left {
      width: 50%; } }
  @media (min-width: 800px) {
    .media.-left {
      margin-left: -80px; } }
  .media .video-embed, .media img {
    width: 100%; }
  @media (min-width: 480px) {
    .media.-right {
      float: right;
      margin-left: 40px; } }
  @media (min-width: 480px) and (max-width: 599px) {
    .media.-right {
      width: 50%; } }
  @media (min-width: 800px) {
    .media.-right {
      margin-right: -80px; } }
  .media .video-embed, .media img {
    width: 100%; }
  .media .media__content {
    margin-top: 30px; }
    @media (min-width: 400px) {
      .media .media__content {
        margin: 28px auto 0;
        width: 75%; } }
    @media (min-width: 72.75em) {
      .media .media__content {
        margin: 48px auto 0;
        width: 69.58525%; } }

.overview {
  padding-bottom: 40px; }
  @media (min-width: 63.75em) {
    .overview {
      padding-bottom: 60px; } }
  .overview.-small, .overview.e2ma_signup_form_button {
    padding-bottom: 20px; }
    @media (min-width: 63.75em) {
      .overview.-small, .overview.e2ma_signup_form_button {
        padding-bottom: 40px; } }
  .overview p {
    font-size: 1em;
    margin: 0; }
    @media (min-width: 37.5em) {
      .overview p {
        font-size: 1.188em; } }

.burger {
  background: none;
  border: none;
  height: 103px;
  outline: none;
  position: absolute;
  right: 0;
  top: 0;
  padding-right: 20px; }
  .burger:after {
    clear: both;
    content: '';
    display: table; }
  .burger:active {
    background-color: transparent; }
  @media (min-width: 50em) {
    .burger {
      padding-right: 40px; } }
  @media (min-width: 63.75em) {
    .burger {
      display: none; } }

.burger__icon {
  display: block;
  float: right;
  margin: 0 auto;
  width: auto; }

.burger__icon__bar {
  background-color: #03123F;
  display: block;
  height: 3px;
  margin: 5px auto;
  transition: background-color .25s, margin .25s ease, transform .5s ease;
  width: 25px; }
  .burger:hover .burger__icon__bar {
    background-color: #0935b9; }
  .burger.is-active .burger__icon__bar.-top {
    -webkit-transform: translateY(8px) rotateZ(45deg);
    -moz-transform: translateY(8px) rotateZ(45deg);
    -ms-transform: translateY(8px) rotateZ(45deg);
    -o-transform: translateY(8px) rotateZ(45deg);
    transform: translateY(8px) rotateZ(45deg); }
  .burger.is-active .burger__icon__bar.-middle {
    width: 0; }
  .burger.is-active .burger__icon__bar.-bottom {
    -webkit-transform: translateY(-8px) rotateZ(-45deg);
    -moz-transform: translateY(-8px) rotateZ(-45deg);
    -ms-transform: translateY(-8px) rotateZ(-45deg);
    -o-transform: translateY(-8px) rotateZ(-45deg);
    transform: translateY(-8px) rotateZ(-45deg); }

.burger__text {
  color: #03123F;
  display: block;
  float: left;
  font-size: .75em;
  letter-spacing: 2px;
  margin-right: .75em;
  padding: .5em 0;
  text-transform: uppercase;
  transition: color .25s; }
  .burger:hover .burger__text {
    color: #0935b9; }

.nav-link {
  transition: color 150ms linear;
  display: block;
  -webkit-font-smoothing: antialiased;
  line-height: 1.4;
  position: relative;
  text-align: left;
  text-decoration: none;
  user-select: none;
  vertical-align: middle; }
  @media (min-width: 63.75em) {
    .nav-link {
      text-align: center; } }
  .nav-link:active, .nav-link:active:focus {
    text-decoration: none; }
  .nav-link:focus {
    text-decoration: none; }
  .nav-link.-primary, .nav-link.e2ma_signup_form_button {
    color: #03123F;
    font-size: 1rem;
    font-weight: 600;
    padding: 15px;
    z-index: 3; }
    @media (min-width: 63.75em) {
      .nav-link.-primary, .nav-link.e2ma_signup_form_button {
        height: 100%;
        padding: 41px 15px;
        font-size: .9rem; } }
    .primary-nav.expanded .nav-link.-primary, .primary-nav.expanded .nav-link.e2ma_signup_form_button {
      color: #03123F; }
      .primary-nav.expanded .nav-link.-primary:hover, .primary-nav.expanded .nav-link.e2ma_signup_form_button:hover {
        color: #041957; }
    .primary-nav > li:hover .nav-link.-primary, .primary-nav > li:hover .nav-link.e2ma_signup_form_button {
      color: #041957; }
    @media (min-width: 63.75em) {
      .primary-nav > .-current .nav-link.-primary:before, .primary-nav > .-current .nav-link.e2ma_signup_form_button:before {
        border-bottom: 4px solid #F59333;
        content: '';
        position: absolute;
        top: calc(41px + 16px + 5px);
        width: calc(100% - 30px); } }
    .nav-link.-primary i, .nav-link.e2ma_signup_form_button i {
      display: none; }
      @media (min-width: 63.75em) {
        .nav-link.-primary i, .nav-link.e2ma_signup_form_button i {
          display: inline; } }
    .primary-nav > li:hover .nav-link.-primary.-active, .primary-nav > li:hover .nav-link.-active.e2ma_signup_form_button,
    .primary-nav > li:hover .nav-link.-primary:hover,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:hover,
    .primary-nav > li:hover .nav-link.-primary:active,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:active,
    .primary-nav > li:hover .nav-link.-primary:focus,
    .primary-nav > li:hover .nav-link.e2ma_signup_form_button:focus {
      color: #0935b9; }
  .nav-link.-dropdown-link {
    color: #03123F;
    font-size: 15px;
    font-weight: 400;
    padding: .4em 1em; }
    @media (min-width: 63.75em) {
      .nav-link.-dropdown-link {
        font-size: 13px;
        padding-left: 13px;
        padding-right: 13px;
        padding-top: 10px; } }
    @media (min-width: 63.75em) {
      .primary-nav .nav-link.-dropdown-link {
        display: block;
        font-size: 15px;
        margin: 0 5% 14px 0;
        min-width: 140px;
        padding: 0;
        text-align: left; } }
    @media (min-width: 63.75em) {
      .nav-link.-dropdown-link.-active, .nav-link.-dropdown-link:hover, .nav-link.-dropdown-link:active, .nav-link.-dropdown-link:focus {
        color: #0935b9; } }
  .nav-link.-secondary {
    color: #DDDDDD;
    font-size: 13px;
    font-weight: 600;
    padding: 0 1em;
    text-transform: uppercase; }
    @media (min-width: 63.75em) {
      .nav-link.-secondary:hover, .nav-link.-secondary:active, .nav-link.-secondary:focus {
        color: white; } }
    .nav-link.-secondary:last-of-type {
      padding-right: 0; }

.nav-link-button {
  height: 52px;
  width: 52px;
  color: #7D7D7D;
  display: block;
  position: absolute;
  right: 0;
  text-align: center;
  top: 0; }
  @media (min-width: 63.75em) {
    .global-header .nav-link-button {
      display: none; } }
  .nav-link-button.is-active, .nav-link-button:hover, .nav-link-button:active, .nav-link-button:focus {
    color: #03123F;
    cursor: pointer; }
  .nav-link-button label, .nav-link-button .e2ma_signup_form_label {
    margin-bottom: 0;
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .nav-link-button i.icon-plus,
  .nav-link-button i.icon-minus {
    display: block; }
  .nav-link-button i.icon-minus {
    display: none; }
  .nav-link-button i.icon-plus {
    display: block; }
  .nav-link-button.is-active i.icon-plus {
    display: none; }
  .nav-link-button.is-active i.icon-minus {
    display: block; }
  .nav-link-button.is-active + .nav-menu nav {
    display: block; }
  .primary-nav .nav-link-button {
    z-index: 3; }

.nav-menu {
  background-color: white;
  border-bottom: 7px solid #F59333;
  padding: 25px 20px;
  min-width: 420px; }
  @media (min-width: 63.75em) {
    .nav-menu {
      border-radius: 3px;
      border-top: 1px solid #DDDDDD;
      border-right: 1px solid #DDDDDD;
      border-left: 1px solid #DDDDDD;
      position: absolute; } }
  @media (min-width: 63.75em) {
    .primary-nav .nav-menu {
      margin-top: -1px;
      position: absolute;
      transition: all 0s;
      transition-delay: .35s;
      -webkit-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16);
      -moz-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16);
      box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.16); }
      .primary-nav .nav-menu:not(.edge):before {
        content: '';
        left: 19px;
        width: 0;
        height: 0;
        border-left: 21px solid transparent;
        border-right: 21px solid transparent;
        border-bottom: 21px solid #DDDDDD;
        top: -21px;
        position: absolute; }
      .primary-nav .nav-menu:not(.edge):after {
        content: '';
        left: 20px;
        width: 0;
        height: 0;
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
        border-bottom: 20px solid white;
        top: -20px;
        position: absolute; }
      .primary-nav .nav-menu.edge {
        right: 0; }
        .primary-nav .nav-menu.edge:before {
          content: '';
          right: 19px;
          width: 0;
          height: 0;
          border-left: 21px solid transparent;
          border-right: 21px solid transparent;
          border-bottom: 21px solid #DDDDDD;
          top: -21px;
          position: absolute; }
        .primary-nav .nav-menu.edge:after {
          content: '';
          right: 20px;
          width: 0;
          height: 0;
          border-left: 20px solid transparent;
          border-right: 20px solid transparent;
          border-bottom: 20px solid white;
          top: -20px;
          position: absolute; } }
  @media (min-width: 63.75em) {
    .primary-nav > li:hover .nav-menu:not(.-docs-tag) {
      display: block; } }
  @media (min-width: 63.75em) {
    .nav-menu .primary-nav > li:hover.-docs {
      display: block;
      position: relative;
      border: none; } }
  .nav-menu .container > nav {
    color: white;
    -webkit-columns: 220px 2;
    -moz-columns: 220px 2;
    columns: 220px 2;
    width: 100%; }
    .nav-menu .container > nav:after {
      clear: both;
      content: '';
      display: table; }
    @media (min-width: 63.75em) {
      .nav-menu .container > nav {
        border-left: 1px solid #53565B;
        float: right;
        margin: 40px 0;
        padding: 10px 55px;
        width: 52%; }
        .nav-menu .container > nav ul {
          float: left;
          width: 50%; } }
    .nav-menu .container > nav div {
      padding-bottom: 1.5em;
      page-break-inside: avoid;
      -webkit-column-break-inside: avoid; }
  .nav-menu h3 {
    color: white; }
  .nav-menu .nav-menu__section-overview {
    display: none; }
    @media (min-width: 63.75em) {
      .nav-menu .nav-menu__section-overview {
        color: white;
        display: block;
        float: left;
        min-height: 325px;
        padding: 50px 5% 0 22%;
        position: absolute;
        width: 48%; }
        .nav-menu .nav-menu__section-overview:after {
          clear: both;
          content: '';
          display: table; } }
    .nav-menu .nav-menu__section-overview h3 {
      font-size: 2.125em;
      line-height: 1;
      margin-top: 11px; }
    .nav-menu .nav-menu__section-overview p {
      color: #DDDDDD;
      font-size: .875em;
      line-height: 1.375;
      margin-bottom: 0;
      margin-top: 14px; }
    .nav-menu .nav-menu__section-overview .photo {
      background-color: #7D7D7D;
      left: 0;
      min-height: 165px;
      position: absolute;
      width: 38%; }
      @media (min-width: 67.1875em) {
        .nav-menu .nav-menu__section-overview .photo {
          min-height: 225px; } }
    .nav-menu .nav-menu__section-overview a {
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .5px;
      padding-right: 20px;
      text-decoration: none; }

.primary-nav:after {
  clear: both;
  content: '';
  display: table; }

.global-header .primary-nav {
  padding-top: 56px;
  position: relative; }
  @media (min-width: 63.75em) {
    .global-header .primary-nav {
      background-color: transparent;
      float: right;
      margin-bottom: 0;
      padding-right: 55px;
      padding-top: 0;
      top: 0; } }

.primary-nav > .primary-nav__item {
  border-bottom: 1px solid #53565B;
  margin-bottom: 0;
  opacity: 1;
  position: relative;
  transition: opacity .3s; }
  .primary-nav > .primary-nav__item.-inactive {
    opacity: 0; }
  @media (min-width: 63.75em) {
    .primary-nav > .primary-nav__item {
      border-bottom: none;
      float: left;
      position: relative; } }

.global-search {
  display: flex;
  position: absolute;
  right: 0;
  top: 1em;
  width: 100%; }
  .global-search:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 63.75em) {
    .global-search {
      height: 100%;
      top: auto;
      width: auto; } }

input.global-search__box {
  align-self: center;
  background: #03123F;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #F5F5F0;
  height: 25px;
  padding: .4em 1em;
  width: 100%;
  -webkit-appearance: none; }
  input.global-search__box::-webkit-input-placeholder {
    color: #DDDDDD; }
  input.global-search__box::-moz-placeholder {
    color: #DDDDDD; }
  input.global-search__box:-moz-placeholder {
    color: #DDDDDD; }
  input.global-search__box:-ms-input-placeholder {
    color: #DDDDDD; }
  @media (min-width: 63.75em) {
    input.global-search__box {
      background: transparent;
      border-bottom: 2px solid #0935b9;
      margin: 0 0.5em 0 0;
      padding: 0 1em 0 0;
      color: #2F3D47; }
      input.global-search__box::-webkit-input-placeholder {
        color: #53565B; }
      input.global-search__box::-moz-placeholder {
        color: #53565B; }
      input.global-search__box:-moz-placeholder {
        color: #53565B; }
      input.global-search__box:-ms-input-placeholder {
        color: #53565B; } }
  input.global-search__box:active, input.global-search__box:focus, input.global-search__box:active:focus {
    box-shadow: none;
    outline: 0; }
  @media (min-width: 63.75em) {
    input.global-search__box {
      margin: 0;
      padding: 0;
      transition: width .3s;
      width: 0; }
      .global-search.-active input.global-search__box {
        width: 500px;
        margin: 0 0.5em 0 0; } }

.global-search__button {
  background-color: transparent;
  color: #03123F;
  display: none;
  font-size: 1.375em;
  line-height: 1;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  transition: color .3s;
  z-index: 90; }
  @media (min-width: 63.75em) {
    .global-search__button {
      display: block;
      padding: 36px 12px; } }
  @media (min-width: 63.75em) {
    .global-search__button {
      padding-right: 0; } }
  .global-search.-active .global-search__button, .global-search__button:hover {
    color: #0935b9; }
  .global-search__button:active, .global-search__button:active:focus, .global-search__button:focus {
    outline: 0;
    text-decoration: none; }

.secondary-nav {
  align-items: center;
  background-color: #03123F;
  display: flex;
  height: 35px;
  justify-content: center;
  margin-top: 0;
  padding-top: 0; }
  .secondary-nav:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 37.5em) {
    .secondary-nav {
      justify-content: flex-end;
      padding-right: 40px; } }

.docs-search {
  margin-top: 15px; }

input.docs-search__box {
  align-self: center;
  background: white;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: #03123F;
  height: 25px;
  padding: .4em 1em; }
  input.docs-search__box::-webkit-input-placeholder {
    color: #03123F; }
  input.docs-search__box::-moz-placeholder {
    color: #03123F; }
  input.docs-search__box:-moz-placeholder {
    color: #03123F; }
  input.docs-search__box:-ms-input-placeholder {
    color: #03123F; }
  input.docs-search__box:active, input.docs-search__box:focus, input.docs-search__box:active:focus {
    box-shadow: none;
    outline: 0; }

.docs-search__button {
  background-color: transparent;
  color: #03123F;
  display: none;
  font-size: 1.375em;
  line-height: 1;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  transition: color .3s;
  z-index: 90; }
  .docs-search.-active .docs-search__button, .docs-search__button:hover {
    color: #0935b9; }
  .docs-search__button:active, .docs-search__button:active:focus, .docs-search__button:focus {
    outline: 0;
    text-decoration: none; }

.hero__content {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  position: relative;
  text-align: center;
  z-index: 20; }

h1.hero__content__headline {
  color: white;
  display: block;
  font-size: 2em;
  text-transform: uppercase;
  line-height: 1em; }
  @media (min-width: 20em) and (max-width: 37.4375em) {
    h1.hero__content__headline {
      font-size: 2.5em; } }
  @media (min-width: 37.5em) {
    h1.hero__content__headline {
      font-size: 3em;
      margin: 0; } }
  @media (min-width: 50em) {
    h1.hero__content__headline {
      font-size: 3.75em; } }
  @media (min-width: 63.75em) {
    h1.hero__content__headline {
      font-size: 4.5em; } }
  @media (min-width: 67.1875em) {
    h1.hero__content__headline {
      font-size: 5.25em; } }

h2.hero__content__headline {
  color: white;
  line-height: 50px;
  font-size: 2.25em;
  position: relative; }
  @media (min-width: 50em) {
    h2.hero__content__headline {
      line-height: 70px;
      font-size: 3.5em; } }

.hero__content__headline {
  display: inline-block;
  font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  margin: 0 25px 0 25px;
  padding: 0 10px; }
  @media (min-width: 50em) {
    .hero__content__headline {
      margin: 0; } }

.page-title {
  color: #2F3D47;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.75em;
  font-weight: 400;
  letter-spacing: .5em;
  text-transform: uppercase; }
  @media (min-width: 50em) {
    .page-title {
      font-size: 2em; } }
  @media (min-width: 63.75em) {
    .page-title {
      font-size: 2.125em; } }
  .page-title.-small, .page-title.e2ma_signup_form_button {
    font-size: 1.625em; }
  .page-title.-white {
    color: white; }
  .page-title.-centered {
    text-align: center; }
  .page-title.-padded {
    margin: 3em 0; }
  .page-title.-padded-top {
    margin: 3em 0 0; }
  .page-title.-padded-bottom {
    margin: 0 0 3em; }

.photo-gallery-ProductNav_Wrapper {
  position: relative;
  padding: 0 11px;
  box-sizing: border-box; }

.photo-gallery-ProductNav {
  /* Make this scrollable when needed */
  overflow-x: auto;
  /* We don't want vertical scrolling */
  overflow-y: hidden;
  /* For WebKit implementations, provide inertia scrolling */
  -webkit-overflow-scrolling: touch;
  /* We don't want internal inline elements to wrap */
  white-space: nowrap;
  /* If JS present, let's hide the default scrollbar */
  /* positioning context for advancers */
  position: relative;
  font-size: 0; }
  .js .photo-gallery-ProductNav {
    /* Make an auto-hiding scroller for the 3 people using a IE */
    -ms-overflow-style: -ms-autohiding-scrollbar;
    /* Remove the default scrollbar for WebKit implementations */ }
    .js .photo-gallery-ProductNav::-webkit-scrollbar {
      display: none; }

.photo-gallery-ProductNav_Contents {
  float: left;
  transition: transform .2s ease-in-out;
  position: relative; }

.photo-gallery-ProductNav_Contents-no-transition {
  transition: none; }

.photo-gallery-ProductNav_Link {
  text-decoration: none;
  color: #888;
  font-size: 1.2rem;
  font-family: -apple-system, sans-serif;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 11px; }
  .photo-gallery-ProductNav_Link[aria-selected="true"] {
    color: #111; }
  .photo-gallery-ProductNav_Link img {
    max-width: initial; }

.photo-gallery-Advancer {
  /* Reset the button */
  appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  width: 80px;
  margin-bottom: 0;
  /* Now style it as needed */
  position: absolute;
  top: 0;
  bottom: 0;
  /* Set the buttons invisible by default */
  opacity: 0;
  transition: opacity .3s; }
  .photo-gallery-Advancer:focus {
    outline: 0; }
  .photo-gallery-Advancer:hover {
    cursor: pointer; }

.photo-gallery-Advancer_Left {
  background-image: linear-gradient(to right, #f5f5f0, transparent, transparent);
  left: 0; }
  [data-overflowing="both"] ~ .photo-gallery-Advancer_Left,
  [data-overflowing="left"] ~ .photo-gallery-Advancer_Left {
    opacity: 1; }

.photo-gallery-Advancer_Right {
  background-image: linear-gradient(to left, #f5f5f0, transparent, transparent);
  right: 0; }
  [data-overflowing="both"] ~ .photo-gallery-Advancer_Right,
  [data-overflowing="right"] ~ .photo-gallery-Advancer_Right {
    opacity: 1; }

.photo-gallery-Advancer_Icon {
  font-size: 50px;
  color: #03123F;
  opacity: .7; }

.photo-gallery-ProductNav_Indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  width: 100px;
  background-color: transparent;
  transform-origin: 0 0;
  transition: transform .2s ease-in-out, background-color .2s ease-in-out; }

@keyframes lum-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes lum-fadeZoom {
  0% {
    transform: scale(0.5);
    opacity: 0; }
  100% {
    transform: scale(1);
    opacity: 1; } }

@keyframes lum-loader-rotate {
  0% {
    transform: translate(-50%, -50%) rotate(0); }
  50% {
    transform: translate(-50%, -50%) rotate(-180deg); }
  100% {
    transform: translate(-50%, -50%) rotate(-360deg); } }

@keyframes lum-loader-before {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.2) translateX(6px); }
  25% {
    transform: scale(1.3) translateX(8px); }
  40% {
    transform: scale(1.2) translateX(6px); }
  50% {
    transform: scale(1); }
  60% {
    transform: scale(0.8) translateX(6px); }
  75% {
    transform: scale(0.7) translateX(8px); }
  90% {
    transform: scale(0.8) translateX(6px); }
  100% {
    transform: scale(1); } }

@keyframes lum-loader-after {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.2) translateX(-6px); }
  25% {
    transform: scale(1.3) translateX(-8px); }
  40% {
    transform: scale(1.2) translateX(-6px); }
  50% {
    transform: scale(1); }
  60% {
    transform: scale(0.8) translateX(-6px); }
  75% {
    transform: scale(0.7) translateX(-8px); }
  90% {
    transform: scale(0.8) translateX(-6px); }
  100% {
    transform: scale(1); } }

.lum-lightbox {
  background: rgba(0, 0, 0, 0.6);
  z-index: 999; }

.lum-lightbox-inner {
  top: 2.5%;
  right: 2.5%;
  bottom: 2.5%;
  left: 2.5%; }

.lum-lightbox-inner img {
  position: relative; }

.lum-lightbox-inner .lum-lightbox-caption {
  margin: 0 auto;
  color: #fff;
  max-width: 700px;
  text-align: center; }

.lum-loading .lum-lightbox-loader {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 66px;
  height: 20px;
  animation: lum-loader-rotate 1800ms infinite linear; }

.lum-lightbox-loader:before, .lum-lightbox-loader:after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  margin-top: -10px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.9); }

.lum-lightbox-loader:before {
  left: 0;
  animation: lum-loader-before 1800ms infinite linear; }

.lum-lightbox-loader:after {
  right: 0;
  animation: lum-loader-after 1800ms infinite linear;
  animation-delay: -900ms; }

.lum-lightbox.lum-opening {
  animation: lum-fade 180ms ease-out; }

.lum-lightbox.lum-opening .lum-lightbox-inner {
  animation: lum-fadeZoom 180ms ease-out; }

.lum-lightbox.lum-closing {
  animation: lum-fade 300ms ease-in;
  animation-direction: reverse; }

.lum-lightbox.lum-closing .lum-lightbox-inner {
  animation: lum-fadeZoom 300ms ease-in;
  animation-direction: reverse; }

.lum-img {
  transition: opacity 120ms ease-out; }

.lum-loading .lum-img {
  opacity: 0; }

.lum-gallery-button {
  overflow: hidden;
  text-indent: 150%;
  white-space: nowrap;
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  outline: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 100px;
  max-height: 100%;
  width: 60px;
  cursor: pointer; }

.lum-previous-button {
  left: 12px; }

.lum-next-button {
  right: 12px; }

.lum-gallery-button:after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  width: 36px;
  height: 36px;
  border-top: 4px solid rgba(255, 255, 255, 0.8); }

.lum-previous-button:after {
  transform: translateY(-50%) rotate(-45deg);
  border-left: 4px solid rgba(255, 255, 255, 0.8);
  box-shadow: -2px 0 rgba(0, 0, 0, 0.2);
  left: 12%;
  border-radius: 3px 0 0 0; }

.lum-next-button:after {
  transform: translateY(-50%) rotate(45deg);
  border-right: 4px solid rgba(255, 255, 255, 0.8);
  box-shadow: 2px 0 rgba(0, 0, 0, 0.2);
  right: 12%;
  border-radius: 0 3px 0 0; }

@media (max-width: 29.9375em) {
  .quote {
    margin-left: 0;
    margin-right: 0; } }

@media (min-width: 30em) {
  .quote.-left {
    float: left;
    margin-left: 0;
    margin-top: -1em;
    max-width: 250px; } }

@media (min-width: 85.25em) {
  .quote.-left {
    margin-left: -100px; } }

@media (min-width: 30em) {
  .quote.-right {
    float: right;
    margin-right: 0;
    margin-top: -1em;
    max-width: 250px; } }

@media (min-width: 85.25em) {
  .quote.-right {
    margin-right: -100px; } }

.sidebar-container {
  background-color: #DDDDDD;
  padding: 20px;
  margin-top: 40px; }
  .sidebar-container h4 {
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.250em;
    font-weight: 700;
    text-transform: uppercase;
    margin-top: 0;
    padding: 20px 0; }

.sidebar-nav {
  background-color: white;
  display: block;
  width: 100%; }
  .sidebar-nav ul {
    font-size: .875rem;
    padding: 12px 20px; }

.sidebar-nav__title {
  background-color: #03123F;
  color: white;
  font-weight: 600;
  margin: 0;
  padding: 7px 15px;
  text-transform: uppercase; }

.sidebar-nav__item {
  font-size: .9375em;
  font-weight: 400;
  list-style: none; }
  .sidebar-nav__item a {
    color: #03123F;
    left: 0;
    position: relative;
    transition: color .2s; }
    .sidebar-nav__item a:hover {
      color: #082ea0; }
  .sidebar-nav__item.-active a {
    font-weight: 600; }

.schedule__list .schedule-item:not(:first-child),
.schedule__list .schedule__heading {
  border-top: 1px solid #979797; }

.schedule__list .schedule__arrow {
  display: none; }

.schedule {
  transition: background-color 150ms linear;
  align-items: center;
  color: #03123F;
  padding: 20px 20px;
  position: relative; }
  @media (min-width: 63.75em) {
    .schedule {
      padding: 20px 40px; } }
  .schedule > p {
    font-size: 0.813em; }

.schedule__title {
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 1.125em;
  font-weight: 700; }

.schedule__meta {
  position: relative; }
  .schedule__meta p {
    margin: 0; }
  .schedule__meta.-date {
    font-weight: 700; }

.schedule__cta {
  height: 100%;
  justify-content: center;
  display: flex;
  flex-direction: column;
  border-radius: 2px;
  padding: 20px; }
  .schedule__cta p {
    color: #F5F5F0;
    font-family: "Baskerville", "Libre Baskerville", "Georgia", "Times", "Times New Roman", "serif";
    font-size: 1.125em;
    font-style: italic;
    margin: .5em 0; }

.schedule__heading {
  padding-top: 0;
  padding-bottom: 0;
  display: none; }
  .schedule__heading p {
    font-weight: 700;
    margin: 0; }
  @media (min-width: 63.75em) {
    .schedule__heading {
      display: grid; } }

.sidebar-callout {
  background-color: #5C4D9C;
  padding: 20px;
  margin: 20px 0;
  text-align: center; }
  .sidebar-callout a {
    font-style: normal;
    color: white; }
  .sidebar-callout .sidebar-callout__heading, .sidebar-callout img {
    color: white;
    font-family: "Open Sans Condensed", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
    font-size: 1.375em;
    margin-bottom: 20px;
    padding: 0; }

.tab-panel {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: opacity .25s; }
  .tab-panel.is-active {
    height: auto;
    opacity: 1; }

.tablist {
  border-top: 1px solid #F5F5F0;
  border-left: none;
  margin-top: 0;
  padding: 4em 7%;
  position: relative; }
  @media (min-width: 50em) {
    .tablist {
      border-top: none;
      border-left: 1px solid #F5F5F0;
      margin-top: 4.5em;
      padding: .5em 0 4em 20%; } }
  .tablist ul {
    margin-bottom: 1.7em; }

.tablist__tab {
  font-size: .875rem;
  list-style: none;
  margin-bottom: 1.7em; }
  .tablist__tab a {
    color: #5C4D9C;
    position: relative;
    text-decoration: none;
    color: #7D7D7D;
    transition: color .25s; }
    .tablist__tab a:before {
      position: absolute;
      margin: 0 auto;
      top: 100%;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: #5C4D9C;
      content: '';
      opacity: 0;
      transform: scaleX(0.8);
      transition: all .3s; }
    .tablist__tab a:hover:before {
      opacity: 1;
      transform: scaleX(1); }
  .tablist__tab.is-selected a {
    color: #53565B;
    cursor: text;
    font-weight: 700; }
    .tablist__tab.is-selected a:hover {
      color: #53565B;
      text-decoration: none; }
      .tablist__tab.is-selected a:hover:before {
        opacity: 0; }

.top-arrow {
  background-color: #DDDDDD;
  bottom: 3rem;
  color: white;
  cursor: pointer;
  display: none;
  font-size: 1.8em;
  margin: 0;
  opacity: 0.4;
  padding: 0;
  position: fixed;
  right: 3rem;
  transition: .25s opacity;
  z-index: 9999; }
  .top-arrow:hover {
    opacity: 0.65; }

.resources-title {
  padding-top: 40px;
  padding-bottom: 20px; }

.event-schedule-callout {
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 30px; }
  .event-schedule-callout h2 {
    text-align: center;
    padding-bottom: 10px; }

.featured-story {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto auto auto; }
  @media (min-width: 37.5em) {
    .featured-story {
      grid-template-columns: 1fr auto;
      grid-template-rows: auto auto; } }
  .featured-story .overview {
    grid-row: 1;
    grid-column: 1;
    padding-bottom: 40px; }
  .featured-story .featured-story-item {
    flex: auto;
    width: 95%;
    grid-row: 2;
    grid-column: 1; }
  .featured-story .social-callout {
    display: grid;
    text-align: center;
    background-color: white;
    padding: 20px 30px;
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: auto;
    grid-template-rows: 1fr 1fr;
    margin-top: 20px;
    grid-column-gap: 40px; }
    @media (min-width: 20em) and (max-width: 37.4375em) {
      .featured-story .social-callout {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto; } }
    @media (min-width: 37.5em) {
      .featured-story .social-callout {
        margin-top: 0;
        grid-template-columns: auto;
        grid-template-rows: 1fr 1fr;
        grid-column: 2;
        grid-row: 2;
        align-self: start; } }
    @media (min-width: 50em) {
      .featured-story .social-callout {
        grid-row: 1 /span 2;
        align-self: stretch; } }
    .featured-story .social-callout .social-callout-top {
      grid-row: 1;
      grid-column: 1; }
    .featured-story .social-callout .social-callout-bottom {
      grid-row: 2;
      grid-column: 1; }
      @media (min-width: 20em) and (max-width: 37.4375em) {
        .featured-story .social-callout .social-callout-bottom {
          grid-row: 1;
          grid-column: 2; } }
      @media (min-width: 37.5em) {
        .featured-story .social-callout .social-callout-bottom {
          grid-column: 1;
          grid-row: 2; } }
      .featured-story .social-callout .social-callout-bottom i {
        min-width: 60px;
        font-size: 2em; }

.paginator {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-top: 60px; }
  .paginator a, .paginator .current, .paginator .first-page, .paginator .last-page {
    padding: 10px; }
  .paginator a {
    border-top: 0.4px solid #DDDDDD;
    border-right: 0.2px solid #DDDDDD;
    border-bottom: 0.4px solid #DDDDDD;
    max-width: 44px;
    min-width: 44px;
    text-decoration: none;
    background-color: #F5F5F0;
    color: #03123F; }
  .paginator .current {
    border-top: 0.4px solid #DDDDDD;
    border-right: 0.2px solid #DDDDDD;
    border-bottom: 0.4px solid #DDDDDD;
    background-color: #DDDDDD;
    color: #7D7D7D;
    max-width: 44px;
    min-width: 44px; }
  .paginator .first-page {
    border: 0.6px solid #DDDDDD;
    border-radius: 8%;
    background-color: #F5F5F0;
    color: #03123F;
    margin-right: 10px;
    min-width: 65px; }
  .paginator .last-page {
    border: 0.6px solid #DDDDDD;
    border-radius: 8%;
    background-color: #F5F5F0;
    color: #03123F;
    margin-left: 10px;
    min-width: 65px; }
  .paginator .previous-page {
    border: 0.6px solid #DDDDDD;
    border-top-left-radius: 8%;
    border-bottom-left-radius: 8%; }
  .paginator .next-page {
    border-top: 0.6px solid #DDDDDD;
    border-right: 0.6px solid #DDDDDD;
    border-bottom: 0.6px solid #DDDDDD;
    border-top-right-radius: 8%;
    border-bottom-right-radius: 8%; }

.paginator-wrapper {
  display: flex;
  align-items: center;
  justify-content: center; }

p.contact-lead-p {
  margin: 2em;
  margin-left: 3em; }

input#phone {
  display: none; }

.judges-directory.-without-images .judge .judge-image {
  display: none !important; }

.judges-directory-filters {
  display: flex;
  flex-wrap: wrap; }
  .judges-directory-filters button,
  .judges-directory-filters select {
    margin-right: 1.25rem; }
  .judges-directory-filters button {
    margin-bottom: 0; }
  .judges-directory-filters select {
    padding-left: 1rem;
    width: auto;
    flex: 1; }
    .judges-directory-filters select:last-of-type {
      margin-right: 0; }
  .judges-directory-filters p {
    width: 100%; }

.judge-group {
  margin-bottom: 2rem; }
  .judge-group h3 {
    font-size: 2rem;
    margin: 0 0 2rem; }

.judge .judge-image {
  display: block;
  margin-bottom: 0.5rem; }
  .judge .judge-image img {
    padding: 5px;
    border: 1px solid #ccc;
    transition: all 0.3s ease-in-out; }
  .judge .judge-image:hover img {
    border-color: #aaa; }

.judge-detail-header {
  display: flex;
  justify-content: space-between; }
  .judge-detail-header > div:first-of-type {
    margin-right: 2rem; }
  .judge-detail-header h2 {
    margin-top: 0; }
  .judge-detail-header .image-wrapper {
    max-width: 40%; }
    @media (min-width: 37.5em) {
      .judge-detail-header .image-wrapper {
        max-width: none; } }

.article {
  padding: 20px; }
  @media (min-width: 50em) {
    .article {
      padding: 20px 40px; } }

.article__title {
  color: #03123F;
  font-size: 1.375rem;
  text-transform: uppercase; }

.article__title-alt {
  font-size: 3rem;
  margin-bottom: 1em; }

.social-post-container .fab {
  font-size: 2em;
  margin-right: .5em; }

.connect-bar {
  padding: 3.875rem 0 !important; }
  .connect-bar .grid-item {
    margin-bottom: 0 !important; }

.connect-bar__title {
  color: white;
  font-size: 1.875rem;
  margin-bottom: .75em;
  text-align: center; }
  @media (min-width: 50em) {
    .connect-bar__title {
      margin-bottom: 0;
      text-align: left; } }

.connect-bar__social-icons {
  text-align: center; }
  @media (min-width: 50em) {
    .connect-bar__social-icons {
      text-align: right; } }

.connect-bar__icon {
  background-color: rgba(0, 0, 0, 0.2);
  color: white;
  display: inline-block;
  font-size: 1.25em;
  height: 50px;
  position: relative;
  text-align: center;
  transition: all .25s;
  width: 50px; }
  .connect-bar__icon:hover {
    background-color: rgba(0, 0, 0, 0.3); }
  .connect-bar__icon .icon {
    display: block;
    position: relative;
    top: 50%;
    transform: translateY(-50%); }

.e2ma_signup_form {
  padding: 0 !important; }

.event-detail-content {
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important; }

.global-footer, .e2ma_signup_form {
  background-color: #03123F;
  color: #F5F5F0;
  font-size: .813rem;
  font-weight: 300;
  padding: 60px 0 25px;
  text-align: center; }
  @media (min-width: 37.5em) {
    .global-footer, .e2ma_signup_form {
      text-align: left; } }
  .global-footer li, .e2ma_signup_form li {
    margin-bottom: 0; }
  .global-footer p, .e2ma_signup_form p {
    color: #F5F5F0;
    margin: 0;
    font-size: .813rem;
    font-weight: 300; }
  .global-footer .form-control, .e2ma_signup_form .form-control, .global-footer .e2ma_signup_form_element > input, .e2ma_signup_form .e2ma_signup_form_element > input {
    height: 31px;
    line-height: 1.33;
    padding: 6px 8px; }
  .global-footer .form-control-group, .e2ma_signup_form .form-control-group, .global-footer .e2ma_signup_form_row, .e2ma_signup_form .e2ma_signup_form_row {
    margin-bottom: 0.625em;
    margin-top: 0.625em; }

.global-footer__heading {
  color: #F5F5F0;
  font-size: .813rem;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-weight: 700;
  text-transform: none; }

.global-footer__social {
  padding-bottom: 20px; }
  .global-footer__social .grid.-col3, .global-footer__social .-col3.callout, .global-footer__social .-col3.event__list.-grid {
    grid-template-columns: 50px 50px 50px; }
    @media (min-width: 63.75em) {
      .global-footer__social .grid.-col3, .global-footer__social .-col3.callout, .global-footer__social .-col3.event__list.-grid {
        grid-template-columns: 1fr 1fr 1fr; } }
  .global-footer__social a {
    color: #DDDDDD;
    text-decoration: none;
    transition: color .25s; }
    .global-footer__social a:hover {
      color: #7D7D7D; }
  .global-footer__social i {
    font-size: 32px; }
  .global-footer__social p {
    text-align: right;
    color: #7D7D7D;
    font-size: .6875rem;
    line-height: 1.3; }
  .global-footer__social #hfi-donate {
    padding-top: 50px; }
  .global-footer__social #hfi-donate-text {
    color: white; }
  .global-footer__social #hfi-donate-img {
    max-width: 150px; }

.global-footer__social-container {
  display: flex;
  justify-content: center; }

.global-footer__legal {
  text-align: center;
  margin-top: 60px; }

.global-header {
  background-color: white;
  max-height: 103px;
  overflow-y: hidden;
  position: relative;
  transition: max-height .5s ease, background-color .5s ease;
  z-index: 50; }
  @media (min-width: 63.75em) {
    .global-header {
      height: 103px;
      max-height: 103px;
      overflow-y: visible; } }
  .global-header.-expanded {
    background-color: white;
    max-height: 1000px;
    position: relative; }
    .primary-nav > li .global-header.-expanded.active {
      display: block; }
    .global-header.-expanded + main {
      opacity: 0.5; }
  .global-header > .container {
    height: 100%; }

.global-navigation {
  display: block;
  margin-bottom: 2.5em;
  margin-top: 2px; }
  .global-navigation:after {
    clear: both;
    content: '';
    display: table; }
  @media (min-width: 63.75em) {
    .global-navigation {
      margin-bottom: 0;
      margin-top: 0; } }

.hero {
  background-color: #2F3D47;
  position: relative; }
  .hero:after {
    clear: both;
    content: '';
    display: table; }
  .hero.-with-image {
    background-position: center center;
    background-size: cover;
    color: #fff;
    height: 360px;
    overflow: hidden; }
    @media (min-width: 50em) {
      .hero.-with-image {
        height: 435px; } }
    @media (min-width: 63.75em) {
      .hero.-with-image {
        height: 490px; } }
    .hero.-with-image:after {
      background-color: rgba(0, 0, 0, 0.3);
      bottom: 0;
      content: '';
      display: block;
      left: 0;
      pointer-events: none;
      position: absolute;
      top: 0;
      right: 0;
      z-index: 10; }
    .hero.-with-image.-top {
      background-position: top; }
  .hero .container {
    align-items: center;
    height: 100%;
    z-index: 20; }
  .hero.-oversized {
    height: 770px !important; }
  .hero.-small, .hero.e2ma_signup_form_button {
    height: 250px; }
    @media (min-width: 50em) {
      .hero.-small, .hero.e2ma_signup_form_button {
        height: 320px; } }
    @media (min-width: 63.75em) {
      .hero.-small, .hero.e2ma_signup_form_button {
        height: 390px; } }
  .hero video {
    height: auto;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1; }

.main-content,
.main-content.container {
  position: relative;
  z-index: 20; }

/* YouTube TV */
/* Base Canvas */
.ytv-canvas {
  display: block;
  background: #282828;
  overflow: hidden;
  font-family: arial, sans-serif; }

.ytv-canvas ::-webkit-scrollbar {
  border-left: 1px solid #000;
  width: 10px; }

.ytv-canvas ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1); }

/* Video */
.ytv-video {
  position: absolute;
  top: 0;
  right: 300px;
  bottom: 0;
  left: 0;
  height: 100%; }

.ytv-video iframe {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  display: block; }

/* List */
.ytv-list {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 300px;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  background-color: #F5F5F0; }

.ytv-list-inner {
  overflow: auto;
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-overflow-scrolling: touch; }

.ytv-list ul {
  margin: 0;
  padding: 0;
  list-style-type: none; }

.ytv-list .ytv-active a {
  border-left: 2px solid #fff;
  background: #DDDDDD !important; }

.ytv-list a {
  display: block;
  text-decoration: none;
  font-size: 11px;
  color: #FEFEFE;
  padding: 10px;
  padding-left: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.5);
  border-left: 2px solid transparent; }

.ytv-list a b {
  max-height: 45px;
  overflow: hidden;
  display: block;
  text-overflow: ellipsis; }

.ytv-list li:first-child a {
  border-top: none; }

.ytv-list li:last-child a {
  border-bottom: none; }

.ytv-list a:hover,
.ytv-list-header .ytv-playlists a:hover {
  background: #DDDDDD !important; }

.ytv-list a:active,
.ytv-list-header .ytv-playlists a:active {
  background: rgba(0, 0, 0, 0.05); }

.ytv-list .ytv-content {
  padding-left: 125px; }

.ytv-list .ytv-thumb-stroke {
  position: absolute;
  top: 1px;
  left: 1px;
  bottom: 1px;
  right: 1px;
  z-index: 2;
  outline: 1px solid rgba(255, 255, 255, 0.1); }

.ytv-list .ytv-thumb {
  float: left;
  position: relative;
  outline: 1px solid rgba(0, 0, 0, 0.5); }

.ytv-list .ytv-thumb img {
  width: 120px;
  display: block; }

.ytv-list .ytv-thumb span {
  position: absolute;
  bottom: 5px;
  right: 5px;
  color: #eee;
  background: rgba(0, 0, 0, 0.7);
  font-size: 11px;
  font-weight: bold;
  padding: 0px 4px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px; }

.ytv-views {
  display: block;
  margin-top: 5px;
  font-size: 10px;
  font-weight: normal;
  opacity: 0.3; }

.ytv-list-header {
  height: 52px;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }

.ytv-list-header a {
  background: rgba(255, 255, 255, 0.05);
  position: relative;
  z-index: 10;
  background-color: #F5F5F0 !important; }

.ytv-list-header img,
.ytv-list .ytv-playlists .ytv-thumb img {
  width: 30px;
  vertical-align: middle; }

.ytv-list-header span {
  padding-left: 10px;
  font-size: 12px;
  font-weight: bold; }

/* Playlists */
.ytv-playlists {
  z-index: 9;
  position: absolute;
  background: #282828;
  top: 52px;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: auto;
  display: none; }

.ytv-playlists img,
.ytv-list-header img {
  float: left; }

.ytv-playlists a span,
.ytv-list-header a span {
  white-space: nowrap;
  padding-left: 10px;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis; }

.ytv-list-header > a span {
  line-height: 30px; }

.ytv-list-header .ytv-playlists a {
  background: none; }

.ytv-playlist-open .ytv-playlists {
  display: block; }

/* Modifiers */
.ytv-relative {
  position: relative;
  width: 100%;
  height: 100%; }

.ytv-full {
  position: fixed;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important; }

.ytv-arrow {
  height: 10px;
  width: 0;
  position: relative;
  top: 10px;
  right: 5px;
  border: 10px solid transparent;
  float: right;
  border-top-color: rgba(0, 0, 0, 0.4);
  display: none; }

.ytv-has-playlists .ytv-arrow {
  display: inline-block; }

.ytv-playlist-open .ytv-arrow {
  border-color: transparent;
  border-bottom-color: rgba(0, 0, 0, 0.4);
  top: -10px; }

.ytv-list-header a:after,
.ytv-clear:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0; }

.-docs {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto auto; }
  @media (min-width: 37.5em) {
    .-docs {
      grid-template-columns: auto 1fr; } }
  .-docs .main {
    grid-row: 3;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .main {
        grid-column: 2; } }
  .-docs .logo-bar {
    background-color: #F5F5F0;
    display: none; }
    @media (min-width: 37.5em) {
      .-docs .logo-bar {
        display: flex;
        text-align: center;
        width: 100%;
        grid-column: 1 /span 2;
        grid-row: 2;
        align-items: center; } }
    .-docs .logo-bar .-docs-head-logo {
      width: 100px;
      padding: 10px;
      height: 100%; }
  .-docs .global-footer, .-docs .e2ma_signup_form {
    grid-row: 4;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .global-footer, .-docs .e2ma_signup_form {
        grid-column: 1 /span 2; } }
  .-docs h1.hero__content__headline {
    font-size: 2em;
    line-height: 1.5em;
    margin: 0.5em;
    display: inline-block; }
    @media (min-width: 50em) {
      .-docs h1.hero__content__headline {
        font-size: 3em;
        padding: .2em; } }
  .-docs .secondary-nav {
    grid-row: 1;
    grid-column: 1; }
    @media (min-width: 37.5em) {
      .-docs .secondary-nav {
        grid-column: 1 /span 2; } }

.docs-header {
  grid-row: 2;
  grid-column: 1 /span 2; }
  @media (min-width: 37.5em) {
    .docs-header {
      grid-row: 3;
      grid-column: 1;
      width: 250px;
      background-color: #03123F; } }
  @media (min-width: 37.5em) {
    .docs-header .docs-nav {
      background-color: #03123F;
      padding: 0; } }
  .docs-header .docs-global-header {
    max-height: 85px;
    overflow-y: hidden;
    position: relative;
    z-index: 50; }
    @media (min-width: 37.5em) {
      .docs-header .docs-global-header {
        overflow-y: visible;
        height: 100vh;
        display: grid;
        grid-template-columns: auto;
        grid-template-rows: auto auto auto; } }
    .docs-header .docs-global-header.-expanded {
      background-color: #F5F5F0;
      max-height: 1000px;
      position: relative; }
      @media (min-width: 37.5em) {
        .docs-header .docs-global-header.-expanded {
          background-color: #03123F; } }
      .primary-nav > li .docs-header .docs-global-header.-expanded.active {
        display: block; }
      .docs-header .docs-global-header.-expanded + main {
        opacity: 0.5; }
    .docs-header .docs-global-header > .container {
      height: 100%; }
  .docs-header .burger {
    position: relative;
    float: right;
    height: 0;
    padding: 25px 10px 10px 10px;
    z-index: 100;
    grid-column: 1;
    align-self: start;
    max-width: 100px;
    display: block;
    color: #F5F5F0; }
    @media (min-width: 37.5em) {
      .docs-header .burger {
        display: none; } }
  @media (min-width: 63.75em) {
    .docs-header .primary-nav {
      padding-top: 20px;
      padding-right: 1em;
      padding-bottom: 1em; } }
  @media (min-width: 63.75em) {
    .docs-header .primary-nav > .primary-nav__item {
      float: none;
      position: relative; } }
  .docs-header .-docs-nav-logo {
    display: block;
    height: 80px; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-nav-logo {
        display: none; } }
  .docs-header .nav-menu {
    background-color: transparent;
    border-bottom: none; }
    @media (min-width: 37.5em) {
      .docs-header .nav-menu {
        min-width: 0; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-menu {
        border: none;
        position: relative; }
        .docs-header .nav-menu:not(.edge):before {
          content: none; }
        .docs-header .nav-menu:not(.edge):after {
          content: none; }
        .docs-header .nav-menu.edge {
          right: 0; }
          .docs-header .nav-menu.edge:before {
            content: none; }
          .docs-header .nav-menu.edge:after {
            content: none; } }
  .primary-nav > li:hover .docs-header {
    color: #041957; }
  @media (min-width: 63.75em) {
    .docs-header .nav-link {
      text-align: left; } }
  .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
    color: #03123F; }
    @media (min-width: 37.5em) {
      .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
        color: #DDDDDD; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-link.-primary, .docs-header .nav-link.e2ma_signup_form_button {
        padding: 1em; } }
    .primary-nav.expanded .docs-header .nav-link.-primary, .primary-nav.expanded .docs-header .nav-link.e2ma_signup_form_button {
      color: #DDDDDD; }
      .primary-nav.expanded .docs-header .nav-link.-primary:hover, .primary-nav.expanded .docs-header .nav-link.e2ma_signup_form_button:hover {
        color: #F5F5F0; }
  .docs-header .nav-link i {
    display: none; }
    @media (min-width: 63.75em) {
      .docs-header .nav-link i {
        display: block; } }
  .primary-nav > li:hover .docs-header .nav-link.-active,
  .primary-nav > li:hover .docs-header .nav-link:hover,
  .primary-nav > li:hover .docs-header .nav-link:active,
  .primary-nav > li:hover .docs-header .nav-link:focus {
    color: #F5F5F0; }
  .docs-header .nav-link.-dropdown-link {
    color: #F5F5F0; }
  @media (min-width: 63.75em) {
    .primary-nav .docs-header .nav-link {
      text-align: left; } }
  @media (min-width: 63.75em) {
    .docs-header .nav-link.-active, .docs-header .nav-link:hover, .docs-header .nav-link:active, .docs-header .nav-link:focus {
      color: #F5F5F0; } }
  .docs-header .nav-link-button {
    color: #03123F;
    cursor: pointer; }
    @media (min-width: 37.5em) {
      .docs-header .nav-link-button {
        color: #DDDDDD; } }
    @media (min-width: 63.75em) {
      .docs-header .nav-link-button {
        display: block; } }
    .docs-header .nav-link-button:hover {
      color: blue; }
      @media (min-width: 37.5em) {
        .docs-header .nav-link-button:hover {
          color: #F5F5F0; } }
  .docs-header .docs-nav h2 {
    font-size: 1.2em;
    padding-top: 2em;
    padding-left: 1em;
    color: #53565B; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav h2 {
        color: #F5F5F0;
        grid-row: 2; } }
  .docs-header .docs-nav li {
    list-style: none;
    text-align: left;
    padding-left: 1.25em; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav li {
        padding-left: 0; } }
  .docs-header .docs-nav a {
    font-size: .9em;
    text-decoration: none;
    color: #53565B; }
    @media (min-width: 37.5em) {
      .docs-header .docs-nav a {
        color: #DDDDDD; } }
  .docs-header ul {
    padding-right: 1em;
    padding-bottom: 1em;
    background-color: #F5F5F0; }
    @media (min-width: 37.5em) {
      .docs-header ul {
        background-color: #03123F;
        grid-row: 3; } }
  .docs-header .-docs-head-logo {
    display: block; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-head-logo {
        height: 85px; } }
  .docs-header .-docs-head-logo a {
    display: block;
    height: 80px; }
    @media (min-width: 37.5em) {
      .docs-header .-docs-head-logo a {
        display: none; } }
  .docs-header .global-header .primary-nav {
    padding-top: 20px; }
    @media (min-width: 63.75em) {
      .docs-header .global-header .primary-nav {
        float: none;
        padding-right: 1em; } }
  .docs-header .primary-nav .primary-nav__item {
    border-bottom: 1px solid #03123F; }
    @media (min-width: 37.5em) {
      .docs-header .primary-nav .primary-nav__item {
        border-bottom: 1px solid #F5F5F0; } }
    @media (min-width: 63.75em) {
      .docs-header .primary-nav .primary-nav__item {
        float: none; } }
  @media (min-width: 37.5em) {
    .docs-header .primary-nav__item:hover a {
      color: #DDDDDD; } }
  @media (min-width: 37.5em) {
    .docs-header .primary-nav > li:hover .nav-link.-primary, .docs-header .primary-nav > li:hover .nav-link.e2ma_signup_form_button {
      color: #F5F5F0; } }
  @media (min-width: 37.5em) {
    .docs-header .nav-menu li:hover a {
      color: #F5F5F0; } }
  .docs-header .primary-nav__item {
    max-width: 100vw; }

.four-o-four-pg .global-search {
  position: relative;
  margin: auto;
  display: grid;
  width: 90%;
  grid-template-rows: 100%;
  grid-template-columns: 1fr auto; }
  @media (min-width: 37.5em) {
    .four-o-four-pg .global-search {
      width: 70%; } }

.four-o-four-pg .button.-primary, .four-o-four-pg .e2ma_signup_form_button {
  grid-row: 1;
  grid-column: 2;
  margin-bottom: 0; }

.four-o-four-pg input#global-search {
  font-size: 1em;
  grid-column: 1;
  grid-row: 1; }

.styleguide__nav {
  background-color: darkgray;
  color: white;
  display: block; }
  .styleguide__nav ul {
    display: block;
    list-style: none; }
  .styleguide__nav li {
    list-style: none;
    display: inline-block; }
    .styleguide__nav li a {
      color: white;
      display: block;
      padding: .25em .5em; }

.sg__item {
  margin-top: 2em;
  margin-bottom: 2em; }

.sg__heading {
  border-bottom: 1px solid #ddd;
  color: gray;
  font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
  font-size: 70%;
  font-weight: normal;
  margin-bottom: 2em;
  padding: 1em 0; }

.sg__color {
  border: 1px solid #ddd;
  display: inline-block;
  padding: .3em;
  width: 5em; }
  .sg__color .sg__color__swatch {
    display: block;
    height: 4em;
    margin-bottom: .2em;
    width: 100%; }
    .sg__color .sg__color__swatch.-color--gray--xlight {
      background-color: #F5F5F0; }
    .sg__color .sg__color__swatch.-color--gray--light {
      background-color: #DDDDDD; }
    .sg__color .sg__color__swatch.-color--gray--base {
      background-color: #7D7D7D; }
    .sg__color .sg__color__swatch.-color--gray--dark {
      background-color: #53565B; }
    .sg__color .sg__color__swatch.-color--gray--xdark {
      background-color: #2F3D47; }
    .sg__color .sg__color__swatch.-color--green--base {
      background-color: #DDDDDD; }
    .sg__color .sg__color__swatch.-color--blue--base {
      background-color: #03123F; }
    .sg__color .sg__color__swatch.-color--orange--base {
      background-color: #F59333; }
    .sg__color .sg__color__swatch.-color--purple--base {
      background-color: #5C4D9C; }
    .sg__color .sg__color__swatch.-color--alert--levelInfo {
      background-color: #A7BF8B; }
    .sg__color .sg__color__swatch.-color--alert--levelNotice {
      background-color: #F59333; }
    .sg__color .sg__color__swatch.-color--alert--levelCritical {
      background-color: #F44336; }
  .sg__color .sg__color__label {
    font-size: 80%; }

.sg__icon {
  display: inline-block; }

.sg__todo {
  background-color: red;
  color: white;
  font-weight: bold;
  padding: .15em; }

.styleguide .section-wrapper {
  padding: 5em 0; }

.styleguide .hero.-with-image {
  margin-bottom: 0; }

.styleguide .logo.-display-only {
  background-color: #fff;
  height: 200px;
  padding: 1.5em;
  width: 205px; }

.container {
  max-width: 1250px; }
  @media (min-width: 1250px) {
    .container {
      margin-left: auto;
      margin-right: auto; } }
  .container.-full {
    max-width: none; }
  .container.-gray {
    background-color: #F5F5F0; }

.section-wrapper {
  background-color: transparent;
  margin-bottom: 20px;
  margin-top: 20px;
  padding: 20px 20px; }
  @media (min-width: 50em) {
    .section-wrapper {
      padding: 20px 40px; } }
  @media (min-width: 63.75em) {
    .global-header .section-wrapper {
      padding: 20px 30px; } }
  .section-wrapper.-white {
    background-color: white; }
  .section-wrapper.-gray {
    background-color: #F5F5F0; }
  .section-wrapper.-green {
    background-color: #DDDDDD; }
  .section-wrapper.-flush-bottom {
    margin-bottom: 0;
    padding-bottom: 0; }
  .section-wrapper.-flush-top {
    margin-top: 0;
    padding-top: 0; }
  .section-wrapper.-flush-left {
    padding-left: 0; }
  .section-wrapper.-flush-right {
    padding-right: 0; }
  .section-wrapper.-flush-all {
    margin: 0;
    padding: 0; }

.upcoming-events {
  background-color: #F5F5F0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 20px 20px;
  margin: 20px 0; }
  @media (min-width: 63.75em) {
    .upcoming-events {
      padding: 20px 40px; } }

.upcoming-events__controls {
  align-self: center; }
  .upcoming-events__controls i {
    transition: color 150ms linear;
    color: #03123F;
    font-size: 40px;
    padding: 5px;
    cursor: pointer; }
    .upcoming-events__controls i:hover {
      color: #979797; }

.fb-comments {
  display: flex;
  justify-content: center; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: .5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2, h3 {
    page-break-after: avoid; }
  /**
   * Add Site-specific styles below
   */ }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIl9ub3JtYWxpemUuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi8uLi92ZW5kb3IvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vdmVuZG9yL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiZnJhbWV3b3JrL19mcmFtZXdvcmsuc2NzcyIsImZyYW1ld29yay9fZnVuY3Rpb25zLnNjc3MiLCJmcmFtZXdvcmsvX21peGlucy5zY3NzIiwiX2NvbmZpZy5zY3NzIiwiX2Jhc2Uuc2NzcyIsImZvbnRzL19mb250cy5zY3NzIiwiZm9udHMvX25zY2MtaWNvbnMuc2NzcyIsImF0b21zL19hdG9tcy5zY3NzIiwiYXRvbXMvX2J1dHRvbi5zY3NzIiwiYXRvbXMvX2dsb2JhbC5zY3NzIiwiYXRvbXMvX2xpc3RzLnNjc3MiLCJhdG9tcy9fbG9hZGVyLnNjc3MiLCJhdG9tcy9fdGV4dC5zY3NzIiwiYXRvbXMvX2Zvcm1zLnNjc3MiLCJhdG9tcy9fZGF0ZXBpY2tlci5zY3NzIiwiYXRvbXMvX3RhYmxlcy5zY3NzIiwiYXRvbXMvX3ZpZGVvLWVtYmVkLnNjc3MiLCJtb2xlY3VsZXMvX21vbGVjdWxlcy5zY3NzIiwibW9sZWN1bGVzL19ncmlkLnNjc3MiLCJtb2xlY3VsZXMvX2FjY29yZGlvbi5zY3NzIiwibW9sZWN1bGVzL19icmVhZGNydW1icy5zY3NzIiwibW9sZWN1bGVzL19jYWxsb3V0LnNjc3MiLCJtb2xlY3VsZXMvX2NhbGxvdXQtYmxvY2suc2NzcyIsIm1vbGVjdWxlcy9fY2F0ZWdvcnktc2VsZWN0LnNjc3MiLCJtb2xlY3VsZXMvX2VtYmVkLnNjc3MiLCJtb2xlY3VsZXMvX2V2ZW50LWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLWVudHJ5LnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLWV2ZW50LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fY29udGFjdC1pbmZvLnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fbmF2LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWZvb3Rlci9fcGFydG5lcnMuc2NzcyIsIm1vbGVjdWxlcy9fZ3JpZC10aXRsZS5zY3NzIiwibW9sZWN1bGVzL19ncmlkLWZpbHRlcnMuc2NzcyIsIm1vbGVjdWxlcy9faWNvbi1saW5rcy5zY3NzIiwibW9sZWN1bGVzL19sYWJlbC5zY3NzIiwibW9sZWN1bGVzL19saXN0aW5nLWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX2xpc3RpbmctaXRlbS5zY3NzIiwibW9sZWN1bGVzL19sb2dvLnNjc3MiLCJtb2xlY3VsZXMvX21lZGlhLnNjc3MiLCJtb2xlY3VsZXMvX292ZXJ2aWV3LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fYnVyZ2VyLnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fbmF2LWxpbmsuc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19uYXYtbGluay1idXR0b24uc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19uYXYtbWVudS5zY3NzIiwibW9sZWN1bGVzL2dsb2JhbC1oZWFkZXIvX3ByaW1hcnktbmF2LnNjc3MiLCJtb2xlY3VsZXMvZ2xvYmFsLWhlYWRlci9fc2VhcmNoLWJ1dHRvbi5zY3NzIiwibW9sZWN1bGVzL2dsb2JhbC1oZWFkZXIvX3NlY29uZGFyeS1uYXYuc2NzcyIsIm1vbGVjdWxlcy9nbG9iYWwtaGVhZGVyL19kb2NzLXNlYXJjaC5zY3NzIiwibW9sZWN1bGVzL19oZXJvLWNvbnRlbnQuc2NzcyIsIm1vbGVjdWxlcy9fcGFnZS10aXRsZS5zY3NzIiwibW9sZWN1bGVzL19waG90by1nYWxsZXJ5LnNjc3MiLCJtb2xlY3VsZXMvX3F1b3RlLnNjc3MiLCJtb2xlY3VsZXMvX3NpZGViYXItbmF2LnNjc3MiLCJtb2xlY3VsZXMvX3NjaGVkdWxlLnNjc3MiLCJtb2xlY3VsZXMvX3NpZGViYXItY2FsbG91dC5zY3NzIiwibW9sZWN1bGVzL190YWItcGFuZWwuc2NzcyIsIm1vbGVjdWxlcy9fdGFibGlzdC5zY3NzIiwibW9sZWN1bGVzL190b3AtYXJyb3cuc2NzcyIsIm1vbGVjdWxlcy9fZXZlbnQtcmVzb3VyY2VzLnNjc3MiLCJtb2xlY3VsZXMvX2ZlYXR1cmVkLXN0b3J5LWJsb2NrLnNjc3MiLCJtb2xlY3VsZXMvX3BhZ2luYXRvci5zY3NzIiwibW9sZWN1bGVzL19jb250YWN0LXBhZ2Uuc2NzcyIsIm1vbGVjdWxlcy9fanVkZ2VzLWRpcmVjdG9yeS5zY3NzIiwib3JnYW5pc21zL19vcmdhbmlzbXMuc2NzcyIsIm9yZ2FuaXNtcy9fYXJ0aWNsZS5zY3NzIiwib3JnYW5pc21zL19jb25uZWN0LWJhci5zY3NzIiwib3JnYW5pc21zL19lbW1hLnNjc3MiLCJvcmdhbmlzbXMvX2V2ZW50LWRldGFpbC1jb250ZW50LnNjc3MiLCJvcmdhbmlzbXMvX2dsb2JhbC1mb290ZXIuc2NzcyIsIm9yZ2FuaXNtcy9fZ2xvYmFsLWhlYWRlci5zY3NzIiwib3JnYW5pc21zL19nbG9iYWwtbmF2LnNjc3MiLCJvcmdhbmlzbXMvX2hlcm8uc2NzcyIsIm9yZ2FuaXNtcy9fbWFpbi1jb250ZW50LnNjc3MiLCJvcmdhbmlzbXMvX3ZpZGVvLXBsYXlsaXN0LnNjc3MiLCJvcmdhbmlzbXMvX2RvY3Muc2NzcyIsIm9yZ2FuaXNtcy9fZG9jcy1oZWFkZXIuc2NzcyIsIm9yZ2FuaXNtcy9fNDA0LnNjc3MiLCJfc3R5bGVndWlkZS5zY3NzIiwib2JqZWN0cy9fb2JqZWN0cy5zY3NzIiwib2JqZWN0cy9fY29udGFpbmVyLnNjc3MiLCJvYmplY3RzL19zZWN0aW9uLXdyYXBwZXIuc2NzcyIsIm9iamVjdHMvX3VwY29taW5nLWV2ZW50cy5zY3NzIiwib2JqZWN0cy9fZmItY29tbWVudHMuc2NzcyIsIl9vdmVycmlkZS5zY3NzIiwiX3ByaW50LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnbm9ybWFsaXplJztcbi8vIGltcG9ydCBhbnkgdmVuZG9yIHBhcnRpYWxzIGhlcmVcbkBpbXBvcnQgJy4uLy4uL3ZlbmRvci9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdmcmFtZXdvcmsvZnJhbWV3b3JrJztcbkBpbXBvcnQgJ2NvbmZpZyc7XG5AaW1wb3J0ICdiYXNlJztcbkBpbXBvcnQgJ2ZvbnRzL2ZvbnRzJztcbkBpbXBvcnQgJ2F0b21zL2F0b21zJztcbkBpbXBvcnQgJ21vbGVjdWxlcy9tb2xlY3VsZXMnO1xuQGltcG9ydCAnb3JnYW5pc21zL29yZ2FuaXNtcyc7XG5AaW1wb3J0ICdzdHlsZWd1aWRlJztcbkBpbXBvcnQgJ29iamVjdHMvb2JqZWN0cyc7XG5AaW1wb3J0ICdvdmVycmlkZSc7XG5AaW1wb3J0ICdwcmludCc7IiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBGZWF0dXJlc1xuJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYTogICAgICBhbGwgIWRlZmF1bHQ7XG4kYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmU6ICAgIG1pbi13aWR0aCAhZGVmYXVsdDtcbiRicmVha3BvaW50LWRlZmF1bHQtcGFpcjogICAgICAgd2lkdGggIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgVHJhbnNmb3Jtc1xuJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsOiAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVha3BvaW50LXRvLWVtczogICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kYnJlYWtwb2ludC1yZXNvbHV0aW9uczogICAgICAgIHRydWUgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgTm8gUXVlcnkgT3B0aW9uc1xuJGJyZWFrcG9pbnQtbm8tcXVlcmllczogICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERlZnRhdWx0IEJhc2UgRm9udCBTaXplXG4kYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZTogICAgIDE2cHggIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeSBTeW50YXggU3VwcG9ydFxuJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheDogICAgICBmYWxzZSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBmYWxzZSBvciAkYnJlYWtwb2ludC1uby1xdWVyaWVzID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XG4kcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgSGFzIENvbnRleHRcbi8vIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkge1xuICBAaWYgbGVuZ3RoKCRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEdldCBDb250ZXh0XG4vLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQtY29udGV4dCgkZmVhdHVyZSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIG9mIG5vLXF1ZXJ5IGZyb20gZ2V0IHNpZGUgc28gL2ZhbHNlLyBwcmVwZW5kcyBhcmVuJ3QgcmV0dXJuZWRcbiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7XG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XG4gICAgICAgICRnZXQ6IG50aCgkZ2V0LCBsZW5ndGgoJGdldCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRnZXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHtcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xuICB9XG5cbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICBAaWYgJGN1cnJlbnQgYW5kIGxlbmd0aCgkY3VycmVudCkgPT0gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZSBhbHJlYWR5IHF1ZXJpZWQgYWdhaW5zdCBgI3skZmVhdHVyZX1gLiBVbmV4cGVjdGVkIHRoaW5ncyBtYXkgaGFwcGVuIGlmIHlvdSBxdWVyeSBhZ2FpbnN0IHRoZSBzYW1lIGZlYXR1cmUgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgYGFuZGAgcXVlcnkuIEJyZWFrcG9pbnQgaXMgb3ZlcndyaXRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCB3aXRoIGAjeyR2YWx1ZX1gXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJHYtaG9sZGVyOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKSB7XG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgLy8gV2lsbCBjb252ZXJ0IHJlbGF0aXZlIEVNcyBpbnRvIHJvb3QgRU1zLlxuICBAaWYgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUgYW5kIHR5cGUtb2YoJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcbiAgICAkYmFzZS11bml0OiB1bml0KCRicmVha3BvaW50LWJhc2UtZm9udC1zaXplKTtcblxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XG4gICAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIC8gYmFzZS1jb252ZXJzaW9uKCRicmVha3BvaW50LWJhc2UtZm9udC1zaXplKSAqIDFlbTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7JGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemV9IGlzIG5vdCBzZXQgaW4gdmFsaWQgdW5pdHMgZm9yIGZvbnQgc2l6ZSEnO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcbiAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxNnB4ICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICclJyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdlbScge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTJwdCAqIDFlbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4vLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgbWluL21heCBwYWlyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIHN0cmluZyB2YWx1ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICAnb3JpZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2x1bWlub3NpdHknO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgYnJlYWtwb2ludC1taW4tbWF4KCRpdGVtKSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgaXMgYSBtZWRpYSB0eXBlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAgJ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdicmFpbGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYm9zc2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRoZWxkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWVjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHYnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xuICBAZWFjaCAkbWVkaWEgaW4gJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXMge1xuICAgIEBpZiAoJGZlYXR1cmUgPT0gJG1lZGlhKSBvciAoJGZlYXR1cmUgPT0gJ25vdCAjeyRtZWRpYX0nKSBvciAoJGZlYXR1cmUgPT0gJ29ubHkgI3skbWVkaWF9Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBzdGFuZCBhbG9uZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XG4gICRyZXNvbHV0aW9uczogJ2RldmljZS1waXhlbC1yYXRpbycsICdkcHInO1xuXG4gIEBpZiAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyB7XG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xuICB9XG5cbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcbiAgICBAaWYgaW5kZXgoJGZlYXR1cmUsICRyZXNvKSBvciBpbmRleCgkZmVhdHVyZSwgJ21pbi0jeyRyZXNvfScpIG9yIGluZGV4KCRmZWF0dXJlLCAnbWF4LSN7JHJlc299Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJwYXJzZXJzL3F1ZXJ5XCI7XG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL2RvdWJsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvdHJpcGxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XG5cbiRNZW1vLUV4aXN0czogZnVuY3Rpb24tZXhpc3RzKG1lbW8tZ2V0KSBhbmQgZnVuY3Rpb24tZXhpc3RzKG1lbW8tc2V0KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50KCRxdWVyeSwgJGNvbnRleHRzLi4uKSB7XG4gICRydW46IHRydWU7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIEdyYWIgdGhlIE1lbW8gT3V0cHV0IGlmIE1lbW9pemF0aW9uIGNhbiBiZSBhIHRoaW5nXG4gIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICRyZXR1cm46IG1lbW8tZ2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cyk7XG5cbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcbiAgICAgICRydW46IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJE1lbW8tRXhpc3RzIG9yICRydW4ge1xuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xuICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICRxdWVyeS1mYWxsYmFjazogZmFsc2U7XG4gICAgJHJldHVybjogKCk7XG5cbiAgICAvLyBSZXNlcnZlIEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcbiAgICAkaG9sZGVyLXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50O1xuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cblxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxuICAgICRvci1saXN0OiBpZihsaXN0LXNlcGFyYXRvcigkcXVlcnkpID09ICdjb21tYScsIHRydWUsIGZhbHNlKTtcblxuXG4gICAgQGlmICgkb3ItbGlzdCA9PSBmYWxzZSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCA9PSBmYWxzZSkge1xuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xuICAgICAgJHF1ZXJ5LWZhbGxiYWNrOiBicmVha3BvaW50LW5vLXF1ZXJ5KCRsYXN0KTtcblxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcbiAgICAgICAgJGxlbmd0aDogJGxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCA9PSB0cnVlKSB7XG4gICAgICAgICRtcTogKCk7XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkbXE6IGFwcGVuZCgkbXEsIG50aCgkcXVlcnksICRpKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkbXEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkcXVlcnktc3RyaW5nOiAkcXVlcnktc3RyaW5nICsgaWYoJGkgPT0gMSwgJycsICcsICcpICsgYnJlYWtwb2ludC1wYXJzZShudGgoJHF1ZXJ5LCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXG4gICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcbiAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcbiAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxuICAgICk7XG4gICAgQGlmIGxlbmd0aCgkY29udGV4dHMpID4gMCBhbmQgbnRoKCRjb250ZXh0cywgMSkgIT0gZmFsc2Uge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xuICAgICAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAgICAgJGNvbnRleHQtbWFwOiBtYXAtbWVyZ2UoJGNvbnRleHQtbWFwLCAoJGNvbnRleHQ6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGNvbnRleHQpKSk7XG4gICAgICB9XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKGNvbnRleHQ6ICRjb250ZXh0LW1hcCkpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG4gICAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmFsIEJyZWFrcG9pbnQgUGFyc2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSkge1xuICAvLyBJbmNyZWFzZSBudW1iZXIgb2YgJ2FuZCcgcXVlcmllc1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xuXG4gIC8vIFNldCB1cCBNZWRpYSBUeXBlXG4gICRxdWVyeS1wcmludDogJyc7XG5cbiAgJGZvcmNlLWFsbDogKCgkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwgPT0gdHJ1ZSkgYW5kICgkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhID09ICdhbGwnKSk7XG4gICRlbXB0eS1tZWRpYTogdHJ1ZTtcbiAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yICgkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhICE9ICdhbGwnKSB7XG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgJHF1ZXJ5LXByaW50OiAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhO1xuICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG4gIH1cblxuXG4gICRxdWVyeS1yZXNvbHV0aW9uOiBmYWxzZTtcblxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XG5cblxuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxuICAkZmlyc3Q6IHRydWU7XG5cbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRmZWF0dXJlKTtcblxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgLy8gRmVhdHVyZSBpcyBjdXJyZW50bHkgYSBsaXN0LCBncmFiIHRoZSBhY3R1YWwgdmFsdWVcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xuXG4gICAgICAvLyBNZWRpYSBUeXBlIG11c3QgYnkgY29udmVudGlvbiBiZSB0aGUgZmlyc3QgaXRlbSwgc28gaXQncyBzYWZlIHRvIGZsYXQgb3ZlcnJpZGUgJHF1ZXJ5LXByaW50LCB3aGljaCByaWdodCBub3cgc2hvdWxkIG9ubHkgYmUgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZVxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xuICAgICAgICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRmZWF0dXJlICE9ICdhbGwnKSB7XG4gICAgICAgICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcbiAgICAgICAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcbiAgICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtZWRpYSwgJHF1ZXJ5LXByaW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgZG91YmxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkgIT0gZmFsc2UpIHtcbiAgICAgICAgJHF1ZXJ5LXJlc29sdXRpb246ICRmZWF0dXJlO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBudWxsO1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxuICAgICAgICAvLyB3ZSBjaGVjayB0byBzZWUgaWYgb25lIGlzIGEgc2luZ2xlLXN0cmluZyB2YWx1ZSxcbiAgICAgICAgLy8gdGhlbiB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xuICAgICAgICAkYmV0YTogbnRoKCRmZWF0dXJlLCAyKTtcbiAgICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYWxwaGEpIG9yIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYmV0YSkge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgdHJpcGxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAoJHF1ZXJ5LXJlc29sdXRpb24gIT0gZmFsc2UpIHtcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBmZWF0dXJlIHRoYXQncyBiZWVuIGRldGVjdGVkIHNvIGZhciBhbmQgYXBwZW5kICdmYWxzZScgdG8gdGhlIHRoZSB2YWx1ZSBsaXN0IHRvIGluY3JlbWVudCB0aGVpciBjb3VudGVyc1xuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XG4gICAgJHYtaG9sZGVyOiAkdjtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgICBAaWYgJGYgPT0gJ21lZGlhJyB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KSB7XG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XG4gICRmZWF0dXJlLWhvbGRlcjogKCk7XG4gICRxdWVyeS1ob2xkZXI6ICgpO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xuICAgIEBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSBvciAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG5cbiAgICAgICRudW1iZXI6ICcnO1xuICAgICAgJHZhbHVlOiAnJztcblxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMik7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxuICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkdmFsdWUpIHtcbiAgICAgICAgQGlmIHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEgbWVkaWEgdHlwZSwgc3BsaXQgdGhlIHF1ZXJ5XG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDIpKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSB7XG4gICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIHN0cmluZ3MgYW5kIG5laXRoZXIgYXJlIHNpbmdsZXMsIHdlIHJvbGwgd2l0aCB0aGF0LlxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XG4gICAgLy8gSWYgd2UndmUgZ290IHRocmVlIGl0ZW1zIGFuZCBub25lIGlzIGEgbGlzdCwgd2UgY2hlY2sgdG8gc2VlXG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDMpKSAhPSAnbGlzdCcge1xuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cbiAgICAgIEBpZiAobm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDMpKSkgYW5kICAoKG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAzKSkpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gbGV0J3MgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBpdGVtIGlzIGEgbWVkaWEgdHlwZVxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAyKSwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGZlYXR1cmUgdGhhdCBjYW4gc3RhbmQgYWxvbmUsIHdlIGxldCBpdFxuICBAaWYgKGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkpIHtcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcbiAgICAvLyBTZXQgQ29udGV4dFxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkZmVhdHVyZSk7XG4gIH1cbiAgLy8gSWYgaXQncyBub3QgYSBzdGFuZCBhbG9uZSBmZWF0dXJlLCB3ZSBwYXNzIGl0IG9mZiB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLlxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICcoJyArICRwYXJzZWQgKyAnKSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XG4gICRkZWZhdWx0OiAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmU7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGRlZmF1bHQsICRmZWF0dXJlKTtcblxuICBAaWYgKCRicmVha3BvaW50LXRvLWVtcyA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7YnJlYWtwb2ludC10by1iYXNlLWVtKCRmZWF0dXJlKX0nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcbkBpbXBvcnQgXCJkb3VibGUvZG91YmxlLXN0cmluZ1wiO1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XG4gICRzZWNvbmQ6IG50aCgkZmVhdHVyZSwgMik7XG5cbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdudW1iZXInIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIHRoZXkgYXJlIGJvdGggc3RyaW5ncywgd2Ugc2VuZCBpdCB0aHJvdWdoIHRoZSBzdHJpbmcgcGFyc2VyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpciwgd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZGVmYXVsdDogJGJyZWFrcG9pbnQtZGVmYXVsdC1wYWlyO1xuICAkbWluOiAnJztcbiAgJG1heDogJyc7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZGVmYXVsdH0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKCRicmVha3BvaW50LXRvLWVtcyA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxuICBAaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmaXJzdCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEBpZiAoJGJyZWFrcG9pbnQtdG8tZW1zID09IHRydWUpIHtcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJ0cmlwbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBzZXBhcmF0ZSB0aGUgc3RyaW5nIGZlYXR1cmVzIGZyb20gdGhlIHZhbHVlIG51bWJlcnNcbiAgJHN0cmluZzogbnVsbDtcbiAgJG51bWJlcnM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJGZlYXR1cmUge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IHN0cmluZyB7XG4gICAgICAkc3RyaW5nOiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgdHlwZS1vZigkbnVtYmVycykgPT0gJ251bGwnIHtcbiAgICAgICAgJG51bWJlcnM6ICR2YWw7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXJzOiBhcHBlbmQoJG51bWJlcnMsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJHN0cmluZywgbnRoKCRudW1iZXJzLCAxKSwgbnRoKCRudW1iZXJzLCAyKSk7XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcblxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGZlYXR1cmV9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGZlYXR1cmV9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmICgkYnJlYWtwb2ludC10by1lbXMgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGZlYXR1cmV9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRmZWF0dXJlfTogI3skbWF4fSknO1xufVxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgYW5kICRxdWVyeS1yZXNvbHV0aW9uIHtcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9ucyk7XG4gICAgJHF1ZXJ5LWhvbGRlcjogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHF1ZXJ5OiAnI3skcXVlcnktcHJpbnR9ICN7JGxlYWRlcn0je250aCgkcmVzb2x1dGlvbnMsICRpKX0nO1xuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAkcXVlcnk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICcjeyRxdWVyeS1ob2xkZXJ9LCAjeyRxdWVyeX0nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmV0dXJuIHdpdGggYXR0YWNoZWQgcmVzb2x1dGlvblxuICAgIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRyZXNvbHV0aW9uKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgJGZlYXR1cmU6ICcnO1xuICAgICR2YWx1ZTogJyc7XG5cbiAgICAvLyBGaW5kIHdoaWNoIGlzIG51bWJlclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDIpO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSBtaW4vbWF4L3N0YW5kYXJkXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21pbi0nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21heC1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtYXgtJztcbiAgICB9XG5cbiAgICAkc3RhbmRhcmQ6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZX0pJztcblxuICAgIC8vIElmIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggZHBweCxcbiAgICBAaWYgdW5pdCgkdmFsdWUpICE9ICdkcHB4JyB7XG4gICAgICAkYmFzZTogOTZkcGk7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdkcGNtJyB7XG4gICAgICAgICRiYXNlOiAyNDMuODRkcGNtO1xuICAgICAgfVxuICAgICAgLy8gV3JpdGUgb3V0IGZlYXR1cmUgdGVzdHNcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRmYWxsYmFjazogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlIC8gMWRwcHggKiA5NmRwaX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRmYWxsYmFjaywgc3BhY2UpO1xuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbm8tcXVlcnkoJHF1ZXJ5KSB7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcbiAgICAka2V5d29yZDogbnRoKCRxdWVyeSwgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xuICAgICAgQHJldHVybiBudGgoJHF1ZXJ5LCAyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXNwb25kLXRvIEFQSSBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcmVzcG9uZC10bygkY29udGV4dCwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpICE9ICdtYXAnIHtcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXG4gICAgQHdhcm4gXCJZb3VyIGJyZWFrcG9pbnRzIGFyZW4ndCBhIG1hcCEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGNvbnRleHQpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkY29udGV4dCksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRjb250ZXh0KSB7XG4gICAgQHdhcm4gXCJgI3skY29udGV4dH1gIGlzbid0IGEgZGVmaW5lZCBicmVha3BvaW50ISBQbGVhc2UgYWRkIGl0IHVzaW5nIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KGAjeyRjb250ZXh0fWAsICR2YWx1ZSk7YFwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIllvdSBoYXZlbid0IGNyZWF0ZWQgYW55IGJyZWFrcG9pbnRzIHlldCEgTWFrZSBzb21lIGFscmVhZHkhIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc251Z3VnL3Jlc3BvbmQtdG8jYXBpIGlmIHlvdSdkIGxpa2UgYSByZW1pbmRlciBvbiBob3cgdG8gdXNlIFJlc3BvbmQtdG9cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPT0gMCB7XG4gICAgQHJldHVybiAkb3V0cHV0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgIEByZXR1cm4gJGJyZWFrcG9pbnRzO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCRicmVha3BvaW50cywgJG91dHB1dCk7XG4gICAgfVxuICB9XG59IiwiLy8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyAgRnVuY3Rpb25zXG4vLy9cbi8vLyAgVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgZWRpdGVkOyBhZGQgY3VzdG9tIGZ1Y3Rpb25zIGFuZCBtaXhpbnMgdG8gdGhlaXJcbi8vLyAgcmVzcGVjdGl2ZSBmaWxlcy5cbi8vL1xuLy8vICBAZ3JvdXAgRnJhbWV3b3JrXG4vLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW1wb3J0ICdmdW5jdGlvbnMnOyAvLyBJbXBvcnQgY3VzdG9tIGZ1bmN0aW9uc1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNwbGl0cyBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYFxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsIDxodHRwczovL2dpdGh1Yi5jb20vSHVnb0dpcmF1ZGVsL1Nhc3N5U3RyaW5ncz5cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRzdHJpbmcgICAgICAgICAtIFN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSAge1N0cmluZ30gJGRlbGltaXRlciBbJyddIC0gU3RyaW5nIHRvIHVzZSBhcyBhIGRlbGltaXRlciB0byBzcGxpdCBgJHN0cmluZ2Bcbi8vLyBAcmV0dXJuIHtMaXN0fVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBzdHItZXhwbG9kZSgkc3RyaW5nLCAkZGVsaW1pdGVyOiAnJykge1xuICBAaWYgdHlwZS1vZigkc3RyaW5nKSAhPSAnc3RyaW5nJyB7XG4gICAgQGVycm9yICdgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLic7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkZGVsaW1pdGVyKSAhPSAnc3RyaW5nJyB7XG4gICAgQGVycm9yICdgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJGRlbGltaXRlcil9IGdpdmVuLic7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcbiAgJGxlbmd0aDogc3RyLWxlbmd0aCgkc3RyaW5nKTtcblxuICBAaWYgc3RyLWxlbmd0aCgkZGVsaW1pdGVyKSA9PSAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG4gIH1cblxuICAkcnVubmluZzogdHJ1ZTtcbiAgJHJlbWFpbmluZzogJHN0cmluZztcblxuICBAd2hpbGUgJHJ1bm5pbmcge1xuICAgICRpbmRleDogc3RyLWluZGV4KCRyZW1haW5pbmcsICRkZWxpbWl0ZXIpO1xuXG4gICAgQGlmICRpbmRleCB7XG4gICAgICAkc2xpY2U6IHN0ci1zbGljZSgkcmVtYWluaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc2xpY2UpO1xuICAgICAgJHJlbWFpbmluZzogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJ1bm5pbmc6IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gYXBwZW5kKCRyZXN1bHQsICRyZW1haW5pbmcpO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFN0cmlwcyB1bml0cyBmcm9tIGdpdmVuIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHsqfSAkdmFsdWUgLSBBbnkgdmFsdWUgd2l0aCB1bml0c1xuLy8vIEByZXR1cm4geyp9ICAgICAgICAtIFZhbHVlIHdpdGhvdXQgdW5pdHNcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEZldGNoZXMgbmVzdGVkIGtleXNcbi8vL1xuLy8vIEBwYXJhbSAge01hcH0gICAgICRtYXAgIC0gTWFwXG4vLy8gQHBhcmFtICB7QXJnbGlzdH0gJGtleXMgLSBLZXlzIHRvIGZldGNoXG4vLy8gQHJldHVybiB7Kn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBAZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gIH1cblxuICBAcmV0dXJuICRtYXA7XG59ICovXG5AZnVuY3Rpb24gbWFwLWdldC1kZWVwKCRtYXAsICRrZXlzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJGtleXMpID09IDEge1xuICAgICRrZXlzOiBudGgoJGtleXMsIDEpO1xuICB9XG4gICR3YXJuOiBcIiN7bnRoKCRrZXlzLCAxKX1cIjtcbiAgJGxlbmd0aDogbGVuZ3RoKCRrZXlzKTtcbiAgJGdldDogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsIDEpKTtcblxuICBAaWYgJGxlbmd0aCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICBAaWYgJGdldCAhPSBudWxsIGFuZCB0eXBlLW9mKCRnZXQpID09ICdtYXAnIHtcbiAgICAgICAgJHdhcm46ICR3YXJuICsgXCItPiN7bnRoKCRrZXlzLCAkaSl9XCI7XG4gICAgICAgICRnZXQ6IG1hcC1nZXQoJGdldCwgbnRoKCRrZXlzLCAkaSkpO1xuXG4gICAgICAgIEBpZiAkZ2V0ID09IG51bGwge1xuICAgICAgICAgIEByZXR1cm4gbWFwLWdldC1kZWVwLXdhcm5pbmcoJHdhcm4sICRnZXQsIG50aCgka2V5cywgJGkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQtZGVlcC13YXJuaW5nKCR3YXJuLCAkZ2V0LCBudGgoJGtleXMsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkZ2V0O1xufVxuXG5AZnVuY3Rpb24gbWFwLWdldC1kZWVwLXdhcm5pbmcoJHdhcm4sICRnZXQsICRrZXkpIHtcbiAgQGlmICRnZXQgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJNYXAgaGFzIG5vIHZhbHVlIGZvciBrZXkgc2VhcmNoIGAjeyR3YXJufWBcIjtcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRnZXQpICE9ICdtYXAnIHtcbiAgICBAd2FybiBcIk5vbi1tYXAgdmFsdWUgZm91bmQgZm9yIGtleSBzZWFyY2ggYCN7JHdhcm59YCwgY2Fubm90IHNlYXJjaCBmb3Iga2V5IGAjeyRrZXl9YFwiO1xuICB9XG4gIEByZXR1cm4gbnVsbDtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDcmVhdGVzIGFuIGFsaWFzIGZvciBuYXRpdmUgYG1hcC1nZXRgIGFuZCBjdXN0b20gYG1hcC1kZWVwLWdldGBcbi8vL1xuLy8vIEBwYXJhbSAge01hcH0gICAgICAkbWFwICAgICAgICAtIE1hcFxuLy8vIEBwYXJhbSAge1N0cmluZ30gICAka2V5ICAgICAgICAtIEtleSB2YWx1ZVxuLy8vIEBwYXJhbSAge1N0cmluZ30gICAkbmVzdGVkLWtleSAtIE5lc3RlZCBrZXkgdmFsdWVcbi8vLyBAcmV0dXJuIHtGdW5jdGlvbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gZ2V0KCRtYXAsICRrZXksICRuZXN0ZWQta2V5OiAnJykge1xuICBAaWYoJG5lc3RlZC1rZXkgPT0gJycpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGtleSk7XG5cbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleSwgJG5lc3RlZC1rZXkpO1xuXG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDcmVhdGVzIGEgc2hvcnRjdXQgdG8gcmV0dXJuIGEgYnJlYWtwb2ludCB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtICB7TGlzdH0gICAgICRicmVhayAtIExpc3Qgb2YgYnJlYWtwb2ludHNcbi8vLyBAcmV0dXJuIHtGdW5jdGlvbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gYnJlYWsoJGJyZWFrLi4uKSB7XG4gIEByZXR1cm4gbWFwLWdldC1kZWVwKCRicmVha3BvaW50cywgJGJyZWFrKTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBDcmVhdGVzIGEgc2hvcnRjdXQgdG8gcmV0dXJuIGEgc2V0dGluZyB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtICB7TGlzdH0gICAgICRwcm9wcyAgICAgICAgICAgICAtIExpc3Qgb2YgcHJvcGVydGllc1xuLy8vIEBwYXJhbSAge01hcH0gICAgICAkbWFwICAgWyRzZXR0aW5nc10gLSBTZXR0aW5ncyBtYXBcbi8vLyBAcmV0dXJuIHtGdW5jdGlvbn1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gc2V0dGluZygkcHJvcHMsICRtYXA6ICRzZXR0aW5ncykge1xuICAkcHJvcHMtbGlzdDogc3RyLWV4cGxvZGUoJHByb3BzLCAkZGVsaW1pdGVyOiAnLicpO1xuXG4gIEBpZiBsZW5ndGgoJHByb3BzLWxpc3QpID4gMSB7XG4gICAgQHJldHVybiBtYXAtZ2V0LWRlZXAoJG1hcCwgJHByb3BzLWxpc3QpO1xuXG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHByb3BzLCAxKSk7XG5cbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFJldHVybnMgdGhlIGB3aWR0aGAgb3IgYGhlaWdodGAgb2YgYW4gaWNvblxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkbmFtZSAgICAgIC0gSWNvbiBuYW1lXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkZGltZW5zaW9uIC0gYHdpZHRoYCBvciBgaGVpZ2h0YFxuLy8vIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgICAgIFZhbHVlIG9mIHNwZWNpZmljZWQgZGltZW5zaW9uXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIGljb24oJG5hbWUsICRkaW1lbnNpb24pIHtcbiAgQHJldHVybiBtYXAtZ2V0LWRlZXAoJGljb25zLCAkbmFtZSwgJGRpbWVuc2lvbik7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gUmV0dXJucyBhIGNvbG9yIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICAgJGNvbG9yICAgICAgICAgLSBDb2xvciBuYW1lOyBrZXkgdmFsdWVcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICAgJHRvbmUgWydiYXNlJ10gLSBDb2xvciB0b25lOyBuZXN0ZWQga2V5IHZhbHVlXG4vLy8gQHJldHVybiB7RnVuY3Rpb259XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvciwgJHRvbmU6ICdiYXNlJykge1xuICBAcmV0dXJuIG1hcC1nZXQtZGVlcCgkY29sb3JzLCAkY29sb3IsICR0b25lKTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBSZXR1cm5zIGEgY29sb3IgdmFsdWVcbi8vL1xuLy8vIEBkZXByZWNhdGVkXG4vLy8gQHNlZSB7RnVuY3Rpb259IGNvbG9yXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAgICRjb2xvciAgICAgICAgIC0gQ29sb3IgbmFtZTsga2V5IHZhbHVlXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAgICR0b25lIFsnYmFzZSddIC0gQ29sb3IgdG9uZTsgbmVzdGVkIGtleSB2YWx1ZVxuLy8vIEByZXR1cm4ge0Z1bmN0aW9ufVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYWxldHRlKCRwYWxldHRlLCAkdG9uZTogJ2Jhc2UnKSB7XG4gIEB3YXJuICdUaGUgYHBhbGV0dGVgIGZ1bmN0aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQ7IHVzZSBgY29sb3JgIGluc3RlYWQuJztcblxuICBAcmV0dXJuIG1hcC1nZXQtZGVlcCgkcGFsZXR0ZXMsICRwYWxldHRlLCAkdG9uZSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQ29udmVydCBhIHBpeGVsIHZhbHVlIHRvIGEgcGVyY2VudGFnZSB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkdGFyZ2V0ICAtIFBpeGVsIHZhbHVlIG9mIGVsZW1lbnQgd2lkdGhcbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRjb250ZXh0IC0gUGl4ZWwgdmFsdWUgb2YgZWxlbWVudCdzIGNvbnRhaW5lciB3aWR0aFxuLy8vIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgLSBQZXJjZW50YWdlIHZhbHVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHBlcmNlbnQoJHRhcmdldCwgJGNvbnRleHQpIHtcbiAgQHJldHVybiAoJHRhcmdldCAvICRjb250ZXh0KSAqIDEwMCU7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQ29udmVydCBhIHBpeGVsIHZhbHVlIHRvIGFuIGVtIHZhbHVlXG4vLy9cbi8vLyBGb3IgYSByZWxhdGlvbmFsIHZhbHVlLCB0aGUgaW5wdXQgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiBhIHBhcmVudCB2YWx1ZS5cbi8vLyBUaGUgZGVmYXVsdCBwYXJlbnQgaXMgMTZweC4gVGhlIHBhcmVudCBjYW4gYmUgY2hhbmdlZCBieSBwYXNzaW5nIGFuXG4vLy8gb3B0aW9uYWwgc2Vjb25kIHZhbHVlLlxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkcGl4ZWwgICAgICAgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0XG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkYmFzZSBbMTZweF0gLSBCYXNlIHBpeGVsIHZhbHVlXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgLSBlbSB2YWx1ZVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBlbSgkcGl4ZWwsICRiYXNlOiAxNnB4KSB7XG4gIEByZXR1cm4gKCRwaXhlbCAvICRiYXNlKSAqIDFlbTtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBTbGlnaHRseSBsaWdodGVuIGEgY29sb3IgKGh0dHA6Ly9jbC5seS8xSzBUM2YzbDBOMkcpXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRjb2xvciAgICAgIC0gQ29sb3IgdG8gdGludFxuLy8vIEBwYXJhbSAge1N0cmluZ30gJHBlcmNlbnRhZ2UgLSBQZXJjZW50YWdlIG9mIGAkY29sb3JgIGluIHJldHVybmVkIGNvbG9yXG4vLy8gQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAtIEhleCB2YWx1ZVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgQHJldHVybiBtaXgoJGNvbG9yLCB3aGl0ZSwgJHBlcmNlbnRhZ2UpO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFNsaWdodGx5IGRhcmtlbiBhIGNvbG9yIChodHRwOi8vY2wubHkvMUswVDNmM2wwTjJHKVxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkY29sb3IgICAgICAtIENvbG9yIHRvIHNoYWRlXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkcGVyY2VudGFnZSAtIFBlcmNlbnRhZ2Ugb2YgYCRjb2xvcmAgaW4gcmV0dXJuZWQgY29sb3Jcbi8vLyBAcmV0dXJuIHtTdHJpbmd9ICAgICAgICAgICAgIC0gSGV4IHZhbHVlXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgQHJldHVybiBtaXgoJGNvbG9yLCBibGFjaywgJHBlcmNlbnRhZ2UpO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIFJldHVybnMgYSBVUkwgcGF0aFxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkc3JjICAgICAgICAgIC0gU291cmNlIGltYWdlIChmaWxlbmFtZSBhbmQgZXh0ZW5zaW9uKVxuLy8vIEBwYXJhbSAge1N0cmluZ30gJGRpciBbaW1hZ2VzXSAtIERpcmVjdG9yeSB3aGVyZSB0aGUgc291cmNlIGltYWdlIGV4aXN0c1xuLy8vIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgICAgICAtIFVSTFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXRoKCRzcmMsICRkaXI6IGltYWdlcykge1xuICAkc3JjOiB1bnF1b3RlKCRzcmMpO1xuXG4gIEByZXR1cm4gdXJsKC4uLyN7JGRpcn0vI3skc3JjfSk7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gRXh0ZW5kcyBTdXN5IGJ5IHJldHVybmluZyBhIHN0YXRpYyBzcGFuIHdpZHRoIGluIHBpeGVscyBhbmQgdGh1cywgcmVxdWlyZXNcbi8vLyBbU3VzeV0oaHR0cDovL3N1c3kub2RkYmlyZC5uZXQvKS5cbi8vL1xuLy8vIEBwYXJhbSAge051bWJlcn0gJGNvbHVtbnMgICAgICAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gc3BhblxuLy8vIEBwYXJhbSAge01hcH0gICAgJGxheW91dCBbJHN1c3ldIC0gTGF5b3V0IG1hcFxuLy8vIEByZXR1cm4ge1N0cmluZ30gICAgICAgICAgICAgICAgIC0gUGl4ZWwgd2lkdGhcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gc3Bhbi1weCgkY29sdW1ucywgJGxheW91dDogJHN1c3kpIHtcbiAgLy8kY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb250YWluZXIsICRsYXlvdXQpIC8gc3VzeS1nZXQoY29sdW1ucywgJGxheW91dCk7XG4gIC8vVE9ETzogQ1NTIEdSSURcbiBAcmV0dXJuIDQ7XG4gIC8vQHJldHVybiAkY29sdW1uLXdpZHRoICogJGNvbHVtbnM7XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gVGhpcyBpcyBhIHNob3J0aGFuZCBmb3IgY29udmVydGluZyBvbmUgdG8gdGhyZWUgZGltZW5zaW9ucyBpbnRvIHRoZWlyXG4vLy8gZm91ci12YWx1ZSBzeW50YXguIEl0J3MgdXNlZCBpbiB0aGUgcG9zaXRpb24gbWl4aW4uXG4vLy9cbi8vLyBAcGFyYW0gIHtTdHJpbmd9ICRzaG9ydGhhbmQgLSBWYWx1ZXMgdG8gdW5wYWNrXG4vLy8gQHJldHVybiB7U3RyaW5nfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMSlcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAxKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDEpO1xuXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMilcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAxKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDIpO1xuXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpXG4gICAgICAgICAgICBudGgoJHNob3J0aGFuZCwgMilcbiAgICAgICAgICAgIG50aCgkc2hvcnRoYW5kLCAzKVxuICAgICAgICAgICAgbnRoKCRzaG9ydGhhbmQsIDIpO1xuXG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcblxuICB9XG59XG5cbi8vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gIE1peGluc1xuLy8vXG4vLy8gIEBncm91cCBGcmFtZXdvcmtcbi8vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJ21peGlucyc7IC8vIEltcG9ydCBjdXN0b20gbWl4aW5zXG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIGFuIGVsZW1lbnQgd2l0aGluIGEgcGFyZW50IGVsZW1lbnQgd2l0aCBhIGRlZmluZWQgaGVpZ2h0LlxuLy8vIEFuIG9wdGlvbmFsIG9mZnNldCBpcyB1c2VkIHRvIHNoaWZ0IHRoZSBlbGVtZW50IHVwIG9yIGRvd24sIGNhdXNpbmcgdGhlXG4vLy8gZWxlbWVudCB0byBsZWF2ZSBpdHMgcG9pbnQgb2YgY2VudGVyLiBBIHBvc2l0aXZlIHZhbHVlIHB1bGxzIHRoZSBlbGVtZW50IHVwXG4vLy8gd2hpbGUgYSBuZWdhdGl2ZSB2YWx1ZSBwdXNoZXMgaXQgZG93bi5cbi8vL1xuLy8vIEBpbmNsdWRlIGNlbnRlcmVkKCk7IC8vIGFic29sdXRlIGNlbnRlciAoMClcbi8vLyBAaW5jbHVkZSBjZW50ZXJlZCgxMHB4KTsgLy8gMTBweCBvZmYgY2VudGVyLCBwdWxsZWQgdXAgKC0xMHB4KVxuLy8vIEBpbmNsdWRlIGNlbnRlcmVkKC0xMHB4KTsgLy8gMTBweCBvZmYgY2VudGVyLCBwdXNoZWQgZG93biAoMTBweClcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gY2VudGVyZWQoJG9mZnNldDogMCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTAlO1xuXG4gIEBpZiAkb2Zmc2V0ID09IDAge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICB9IEBlbHNlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNTAlIC0gI3skb2Zmc2V0fSkpO1xuXG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vIGh0dHA6Ly9jbC5seS80MzBKMFAzZTE4MVFcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEltYWdlIHJlcGxhY2VtZW50IHRlY2huaXF1ZVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBoaWRlLXRleHQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXRcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyc1xuLy8vIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdmlzdWFsbHloaWRkZW4oJGZvY3VzYWJsZTogJycpIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG5cbiAgQGlmICRmb2N1c2FibGUgPT0gJ2ZvY3VzYWJsZScge1xuICAgIC8vIEV4dGVuZHMgdGhlIC52aXN1YWxseWhpZGRlbiBjbGFzcyB0byBhbGxvdyB0aGUgZWxlbWVudCB0byBiZSBmb2N1c2FibGVcbiAgICAvLyB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOiBodHRwczovL3d3dy5kcnVwYWwub3JnL25vZGUvODk3NjM4XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBSZXNldHMgYnJvd3NlciBkZWZhdWx0IHN0eWxpbmcgZm9yIGxpc3QgZWxlbWVudHNcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gbGlzdC1yZXNldCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBPdXRwdXRzIHZlbmRvci1wcmVmaXhlZCBwbGFjZWhvbGRlcnMgZm9yIHN0eWxpbmcuIE11c3QgYmUgbmVzdGVkIGluIGFcbi8vLyBydWxlLXNldC5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiAnOi13ZWJraXQtaW5wdXQnICc6LW1veicgJy1tb3onICctbXMtaW5wdXQnO1xuXG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBTaG9ydGhhbmQgbm90YXRpb24gZm9yIHNldHRpbmcgdGhlIHBvc2l0aW9uIG9mIGVsZW1lbnRzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHBvc2l0aW9uICAgIFtyZWxhdGl2ZV0gICAgICAgICAgICAtIGBwb3NpdGlvbmAgQ1NTIHZhbHVlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF0gLSBTcGFjZSBkZWxpbWl0ZWQgbGlzdFxuLy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgdmFsdWVzIHRoYXQgZm9sbG93XG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc3RhbmRhcmQgQ1NTXG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGhhbmQgbm90YXRpb24uXG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsIHZhbHVlcyB3aWxsIGJlXG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gLmZvbyB7XG4vLy8gICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMTBweCBudWxsIG51bGwgMTBweCk7XG4vLy8gfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwb3NpdGlvbiAoJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSk7XG4gICRyaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpO1xuICAkYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKTtcbiAgJGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNCk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAaWYgKCR0b3AgYW5kICR0b3AgPT0gYXV0bykgb3IgKHR5cGUtb2YoJHRvcCkgPT0gbnVtYmVyKSB7XG4gICAgdG9wOiAkdG9wO1xuICB9XG5cbiAgQGlmICgkcmlnaHQgYW5kICRyaWdodCA9PSBhdXRvKSBvciAodHlwZS1vZigkcmlnaHQpID09IG51bWJlcikge1xuICAgIHJpZ2h0OiAkcmlnaHQ7XG4gIH1cblxuICBAaWYgKCRib3R0b20gYW5kICRib3R0b20gPT0gYXV0bykgb3IgKHR5cGUtb2YoJGJvdHRvbSkgPT0gbnVtYmVyKSB7XG4gICAgYm90dG9tOiAkYm90dG9tO1xuICB9XG5cbiAgQGlmICgkbGVmdCBhbmQgJGxlZnQgPT0gYXV0bykgb3IgKHR5cGUtb2YoJGxlZnQpID09IG51bWJlcikge1xuICAgIGxlZnQ6ICRsZWZ0O1xuICB9XG59XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gU2V0IHdpZHRoIGFuZCBoZWlnaHQgaW4gYSBzaW5nbGUgc3RhdGVtZW50LiBBY2NlcHRzIGFsbCB1bml0cywgaW5jbHVkaW5nXG4vLy8gYGF1dG9gIGFuZCBgaW5oZXJpdGAsIHVuaXRsZXNzIG51bWJlcnMsIGFuZFxuLy8vIFtpbnRyaW5zaWMga2V5d29yZHNdKGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1zaXppbmcvI3dpZHRoLWhlaWdodC1rZXl3b3Jkcylcbi8vLyBsaWtlIGBmaWxsYCwgYG1heC1jb250ZW50YCwgYG1pbi1jb250ZW50YCBhbmQgYGZpdC1jb250ZW50YC4gWW91IGNhbiBhbHNvXG4vLy8gdXNlIHRoaXMgbWl4aW4gd2l0aCB0aGUgYGNhbGMoKWAgQ1NTIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkdmFsdWUgLSBTcGFjZSBkZWxpbWl0ZWQgbGlzdCBvZiB2YWx1ZXM7IGB3aWR0aGAgYW5kXG4vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBgaGVpZ2h0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vIC5mb28ge1xuLy8vICAgQGluY2x1ZGUgc2l6ZSgzMDBweCAxMDBweCk7XG4vLy8gfVxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIE91dHB1dHMgYSBQTkcgZmFsbGJhY2sgd2l0aCBTVkcuIFJlcXVpcmVzIGZlYXR1cmUgZGV0ZWN0aW9uLCBzdWNoIGFzXG4vLy8gTW9kZXJuaXpyLlxuLy8vXG4vLy8gQHBhcmFtICB7U3RyaW5nfSAkaW1hZ2UtbmFtZSAtIEZpbGUgbmFtZSBvZiBTVkcgaW1hZ2UsIHdpdGggZmlsZSBleHRlbnNpb25cbi8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21pdHRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vIC5mb28ge1xuLy8vICAgQGluY2x1ZGUgc3ZnLXdpdGgtcG5nKGxvZ28pO1xuLy8vIH1cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gc3ZnLXdpdGgtcG5nKCRpbWFnZS1uYW1lKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHBhdGgoJyN7JGltYWdlLW5hbWV9LnN2ZycsIHN2Zyk7XG5cbiAgLm5vLXN2ZyAmIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBwYXRoKCcjeyRpbWFnZS1uYW1lfS5wbmcnKTtcbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydHk6ICdhbGwnKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcHJvcGVydHkpO1xuXG4gIC8vIEBlYWNoICRwcm9wIGluICRwcm9wZXJ0eSB7fVxuICAvLyAjeyRwcm9wZXJ0eX0gc2V0dGluZygndHJhbnNpdGlvbi5zcGVlZCcpIHNldHRpbmcoJ3RyYW5zaXRpb24ubWV0aG9kJyk7XG5cbiAgdHJhbnNpdGlvbjogI3skcHJvcGVydHl9XG4gICAgICAgICAgICAgIHNldHRpbmcoJ3RyYW5zaXRpb24uc3BlZWQnKVxuICAgICAgICAgICAgICBzZXR0aW5nKCd0cmFuc2l0aW9uLm1ldGhvZCcpO1xufVxuIiwiLy8gQWRkIGN1c3RvbSBmdW5jdGlvbnMgaGVyZVxuIiwiQG1peGluIGNvbHVtbnMoJGNvbHVtbnMsICRsYXlvdXQsICRicmVha3BvaW50czogKCksICRzcGFuczogKCkpIHtcbiAgJi4tY29sI3skY29sdW1uc30ge1xuICAgIC8vQGluY2x1ZGUgbGF5b3V0KCRsYXlvdXQpIHtcbiAgICAvLyAgQGVhY2ggJGJyZWFrcG9pbnQsICRjb2xzIGluICRicmVha3BvaW50cyB7XG4gICAgLy8gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuJyArICRicmVha3BvaW50KSwgJGNvbHMpIHtcbiAgICAvLyAgICAgID4gLmdyaWQtaXRlbSB7XG4gICAgLy8gICAgICAgIEBpbmNsdWRlIHNwYW4oMSk7XG4gICAgLy8gICAgICAgIG1hcmdpbi1ib3R0b206IGd1dHRlcigkY29sdW1ucyk7XG4gICAgLy9cbiAgICAvLyAgICAgICAgQGVhY2ggJHNwYW4sICRzcGFuTWFwIGluICRzcGFucyB7XG4gICAgLy8gICAgICAgICAgJi4tc3BhbiN7JHNwYW59IHtcbiAgICAvLyAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oc2V0dGluZygkYnJlYWtwb2ludCwgJHNwYW5NYXApKTtcbiAgICAvLyAgICAgICAgICB9XG4gICAgLy8gICAgICAgIH1cbiAgICAvL1xuICAgIC8vICAgICAgICBAaWYgJGNvbHMgPiAxIHtcbiAgICAvLyAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAvLyAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvLyAgICAgICAgICB9XG4gICAgLy9cbiAgICAvLyAgICAgICAgICAmOm50aC1jaGlsZCgjeyRjb2xzfW4pLFxuICAgIC8vICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgLy8gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgLy8gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIC8vICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgfVxuICAgIC8vXG4gICAgLy8gICAgICAgIEBjb250ZW50O1xuICAgIC8vICAgICAgfVxuICAgIC8vICAgIH1cbiAgICAvLyAgfVxuICAgIC8vfVxuICB9XG59XG5cbkBtaXhpbiBsaW5rKCRpbml0aWFsU2NhbGU6IC45LCAkaW5pdGlhbE9wYWNpdHk6IC4zKSB7XG4gIGNvbG9yOiBjb2xvcihwdXJwbGUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gICAgY29udGVudDogJyc7XG4gICAgb3BhY2l0eTogJGluaXRpYWxPcGFjaXR5O1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKCRpbml0aWFsU2NhbGUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gIH1cblxuICAmOmhvdmVyOmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxufVxuIiwiLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBWYXJpYWJsZXNcbi8vL1xuLy8vIERlZmluZSBhbGwgb2YgdGhlIHNpdGUncyBzaW5nbGUgdmFyaWFibGVzIGhlcmUuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGJhc2UtZm9udC1zaXplOiAxZW07XG4kYmFzZS1saW5lLWhlaWdodDogMS40O1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEJyZWFrcG9pbnQgU2V0dGluZ3Ncbi8vL1xuLy8vIElmIHlvdSdyZSB1c2luZyBbQnJlYWtwb2ludF0oaHR0cHM6Ly9naXRodWIuY29tL2F0LWltcG9ydC9icmVha3BvaW50KSwgeW91XG4vLy8gY2FuIGRlZmluZSBpdHMgc2V0dGluZ3MgaGVyZS5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAkYnJlYWtwb2ludC1uby1xdWVyaWVzOiBmYWxzZTsgLy8gdHJ1ZSB0byByZXBsYWNlIGBAbWVkaWFgIHdpdGggYC5uby1tcWAgc3R5bGVzXG4vLyAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3M6IGZhbHNlOyAvLyB0cnVlIHRvIGFkZCBgLm5vLW1xYCBzdHlsZXNcbi8vICRuby1xdWVyeTogJ25vLXF1ZXJ5JyAnLm5vLW1xJztcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBMYXlvdXRzXG4vLy9cbi8vLyBTdXN5IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBtdWx0aXBsZSBncmlkIGxheW91dHMuIFRoZSBgJGRlZmF1bHQtbGF5b3V0YFxuLy8vIGxheW91dCBpcyBtYXBwZWQgdG8gdGhlIGAkc3VzeWAgdmFyaWFibGUsIHdoaWNoIGlzIHRoZSByZXF1aXJlZCBuYW1lc3BhY2Vcbi8vLyB3aXRoaW4gU3VzeS4gVmlld1xuLy8vIFtTdXN5J3MgZG9jdW1lbnRhdGlvbl0oaHR0cDovL3N1c3lkb2NzLm9kZGJpcmQubmV0L2VuL2xhdGVzdC8pIHRvIGxlYXJuIGhvd1xuLy8vIHRvIGNhbGwgb3RoZXIgbGF5b3V0cyBhbmQgZm9yIGFjY2VwdGVkIGtleS92YWx1ZSBwYWlycy5cbi8vL1xuLy8vIElmIHlvdSBoYXZlIG5vIHVzZSBmb3IgZ3JpZHMgb3IgU3VzeSwgeW91IG1heSBpZ25vcmUgdGhlc2Ugc2V0dGluZ3MuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGRlZmF1bHQtbGF5b3V0OiAoXG4gIGNvbnRhaW5lcjogMTI1MHB4LFxuICBjb2x1bW5zOiA2LFxuICBndXR0ZXJzOiAuMjUsXG4gIGd1dHRlci1wb3NpdGlvbjogYWZ0ZXJcbik7XG5cbiRzdXN5OiAkZGVmYXVsdC1sYXlvdXQ7XG5cbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gTmVhdCBPdmVycmlkZXNcbi8vL1xuLy8vIElmIHlvdSd2ZSBjaG9vc2VuIHRvIHVzZSBOZWF0IGluIGZhdm9yIG9mIFN1c3ksIHlvdSBtYXkgb3ZlcnJpZGUgaXRzIGRlZmF1bHRcbi8vLyB2YXJpYWJsZXMgaGVyZS4gTm90ZSB0aGF0IHdpdGggTmVhdCwgeW91IGNhbiBvbmx5IGhhdmUgYSBzaW5nbGUgbGF5b3V0LiBWaWV3XG4vLy8gW05lYXQncyBkb2N1bWVudGF0aW9uXShodHRwOi8vdGhvdWdodGJvdC5naXRodWIuaW8vbmVhdC1kb2NzL2xhdGVzdC8pIHRvXG4vLy8gbGVhcm4gbW9yZS5cbi8vL1xuLy8vIElnbm9yZSB0aGVzZSBzZXR0aW5ncyBpZiB5b3UncmUgbm90IHVzaW5nIE5lYXQuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gJGNvbHVtbjogMTAwcHg7XG4vLyAkZ3V0dGVyOiAxMHB4O1xuLy8gJGdyaWQtY29sdW1uczogMTJweDtcbi8vICRtYXgtd2lkdGg6IDEyMDBweDtcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBTZXR0aW5nc1xuLy8vXG4vLy8gVGhlIHNldHRpbmdzIG1hcCBhbGxvd3MgeW91IHRvIGNvbnZlbmllbnRseSBkZWZpbmUgYWxsIG9mIHlvdXIgdmFyaWFibGVzIGluXG4vLy8gYSBzaW5nbGUgbWFwLlxuLy8vXG4vLy8gWW91IG1heSBoYXZlIGEgbWFwIGxpa2Ugc286XG4vLy8gYGBgXG4vLy8gJHNldHRpbmdzOiAoXG4vLy8gICBib3JkZXI6IDFweCBzb2xpZCBibGFjayxcbi8vLyAgIHotaW5kZXg6IChcbi8vLyAgICAgbmF2OiAyLFxuLy8vICAgICBkZWZhdWx0OiAxXG4vLy8gICApXG4vLy8gKTtcbi8vLyBgYGBcbi8vL1xuLy8vIEFuZCB0aGVuIHlvdSB3b3VsZCBzaW1wbHkgdXNlIHRoZSBgc2V0dGluZ2AgZnVuY3Rpb24gdG8gY2FsbCB5b3VyIGRlZmluZWRcbi8vLyBzZXR0aW5ncywgbGlrZSBzbzpcbi8vLyBgYGBcbi8vLyAuZm9vIHtcbi8vLyAgIGJvcmRlci10b3A6IHNldHRpbmcoYm9yZGVyKTtcbi8vLyAgIHotaW5kZXg6IHNldHRpbmcoei1pbmRleCwgZGVmYXVsdCk7XG4vLy8gfVxuLy8vIGBgYFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRzZXR0aW5nczogKFxuICBjb2xvcjogcmVkLFxuICBidXR0b246IChcbiAgICBwYWRkaW5nOiAxMHB4XG4gICksXG4gIGJyZWFrcG9pbnQ6IChcbiAgICB4c21hbGw6IGVtKDMyMHB4KSBlbSg1OTlweCksXG4gICAgc21hbGw6IGVtKDYwMHB4KSxcbiAgICBzbWFsbE9ubHk6IGVtKDYwMHB4KSBlbSg3OTlweCksXG4gICAgbWVkaXVtOiBlbSg4MDBweCksXG4gICAgbWVkaXVtT25seTogZW0oODAwcHgpIGVtKDEwMTlweCksXG4gICAgbGFyZ2U6IGVtKDEwMjBweCksXG4gICAgbGFyZ2VPbmx5OiBlbSgxMDIwcHgpIGVtKDEwNzRweCksXG4gICAgeGxhcmdlOiBlbSgxMDc1cHgpXG4gICksXG4gIGdsb2JhbDogKFxuICAgIGhlYWRlcjogKFxuICAgICAgYm9yZGVySGVpZ2h0OiAzNXB4LFxuICAgICAgaGVpZ2h0OiAoXG4gICAgICAgIHNtYWxsOiAxMDNweCxcbiAgICAgICAgbWVkaXVtOiAxMDNweCxcbiAgICAgICAgbGFyZ2U6IDEwM3B4XG4gICAgICApLFxuICAgICAgbG9nbzogNzdweFxuICAgIClcbiAgKSxcbiAgdHJhbnNpdGlvbjogKFxuICAgIG1ldGhvZDogbGluZWFyLFxuICAgIHNwZWVkOiAxNTBtc1xuICApLFxuICBndXR0ZXJQYWRkaW5nOiA0MHB4LFxuICBndXR0ZXJQYWRkaW5nTWVkaXVtOiAzMHB4LFxuICBndXR0ZXJQYWRkaW5nU21hbGw6IDIwcHgsXG4gIGd1dHRlclBhZGRpbmdMYXJnZTogNjBweFxuKSAhZ2xvYmFsO1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIEJyZWFrcG9pbnRzXG4vLy9cbi8vLyBEZWZpbmVzIGNvbW1vbmx5IHVzZWQgYnJlYWtwb2ludHMgZm9yIG1lZGlhIHF1ZXJpZXMuIEJyZWFrcG9pbnQgdmFsdWVzXG4vLy8gc2hvdWxkIHVzZSBgZW1gLCB3aGljaCBpcyBjYWxjdWxhdGVkIHVzaW5nIDE2cHggYXMgdGhlIGJhc2UuIENvbnRlbnQgc2hvdWxkXG4vLy8gZGljdGF0ZSB5b3VyIGJyZWFrcG9pbnRzLCBub3Qgc2NyZWVuIHdpZHRocyBvZiBwb3B1bGFyIGRldmljZXMuXG4vLy9cbi8vLyBIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgYSBgJGJyZWFrcG9pbnRzYCBtYXAgY291bGQgbG9vazpcbi8vL1xuLy8vIGBgYFxuLy8vICRicmVha3BvaW50czogKFxuLy8vICAgZm9vOiBlbSg4MzdweCksXG4vLy8gICBjb21wb25lbnRzOiAoXG4vLy8gICAgIG5hdmlnYXRpb246IGVtKDkwMHB4KSxcbi8vLyAgICAgc2lkZWJhcjogZW0oMTA0NHB4KVxuLy8vICAgKSxcbi8vLyAgIHNjcmVlbjogKFxuLy8vICAgICB4bC1taW46IGVtKDEyMDBweCksXG4vLy8gICAgIGxnLW1heDogZW0oMTIwMHB4IC0gMXB4KSxcbi8vLyAgICAgbGctbWluOiBlbSg4MDBweCksXG4vLy8gICAgIG1kLW1heDogZW0oODAwcHggLSAxcHgpXG4vLy8gICApXG4vLy8gKTtcbi8vLyBgYGBcbi8vL1xuLy8vIElmIHlvdSdyZSB1c2luZyBbQnJlYWtwb2ludF0oaHR0cHM6Ly9naXRodWIuY29tL2F0LWltcG9ydC9icmVha3BvaW50KSwgeW91XG4vLy8gbWF5IHdpc2ggdG8gYWRkIGEgbm8tcXVlcnkgZmFsbGJhY2sgdG8geW91ciBicmVha3BvaW50cywgbGlrZSBzbzpcbi8vL1xuLy8vIGBsZy1taW46IChlbSg4NzBweCksICRuby1xdWVyeSlgLlxuLy8vXG4vLy8gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBCcmVha3BvaW50J3Mgbm8tcXVlcnkgZmFsbGJhY2tzIGNhbiBiZSByZWFkXG4vLy8gW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9hdC1pbXBvcnQvYnJlYWtwb2ludC93aWtpL05vLVF1ZXJ5LUZhbGxiYWNrcykuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIENvbG9yc1xuLy8vXG4vLy8gQ29sb3JzIGNhbiBiZSBhZGp1c3RlZCBieSB1c2luZyBTYXNzJ3MgbmF0aXZlIGNvbG9yIGZ1bmN0aW9ucywgc3VjaCBhc1xuLy8vIGBsaWdodGVuYCwgYGRhcmtlbmAgYW5kIGBtaXhgLiBBcyBhIGd1aWRlbGluZSwgYWRqdXN0IGNvbG9ycyBmb3Igc3BlY2lmaWNcbi8vLyBjaXJjdW1zdGFuY2VzIHdoZXJlIHRoZSBjb2xvciBtYXkgb25seSBiZSB1c2VkIG9uY2UsIHN1Y2ggYXMgaG92ZXIgc3RhdGVzXG4vLy8gb3Igc2xpZ2h0IHZhcmlhdGlvbnMgaW4gZm9udCBjb2xvci5cbi8vL1xuLy8vIENvbG9ycyBjYW4gYmUgY29uZmlndXJlZCBsaWtlIHNvOlxuLy8vXG4vLy8gYGBgXG4vLy8gJGNvbG9yczogKFxuLy8vICAgZ3JheTogKFxuLy8vICAgICBsaWdodDogIzk5OSxcbi8vLyAgICAgYmFzZTogIzY2Nixcbi8vLyAgICAgZGFyazogIzMzM1xuLy8vICAgKVxuLy8vICk7XG4vLy8gYGBgXG4vLy9cbi8vLyBhbmQgY2FsbGVkIGxpa2Ugc286XG4vLy9cbi8vLyBgYGBcbi8vLyAuZm9vIHtcbi8vLyAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuLy8vICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuLy8vIH1cbi8vLyBgYGBcbi8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kY29sb3JzOiAoXG4gIGdyYXk6IChcbiAgICB4bGlnaHQgOiAjRjVGNUYwLFxuICAgIGxpZ2h0ICA6ICNEREREREQsXG4gICAgYmFzZSAgIDogIzdEN0Q3RCxcbiAgICBkYXJrICAgOiAjNTM1NjVCLFxuICAgIHhkYXJrICA6ICMyRjNENDdcbiAgKSxcbiAgZ3JlZW46IChcbiAgICBiYXNlICA6ICNEREREREQsXG4gICksXG4gIGJsdWU6IChcbiAgICBiYXNlICA6ICMwMzEyM0YsXG4gICksXG4gIG9yYW5nZTogKFxuICAgIGJhc2UgIDogI0Y1OTMzMyxcbiAgKSxcbiAgcHVycGxlOiAoXG4gICAgYmFzZSAgOiAjNUM0RDlDLFxuICApLFxuICBhbGVydDogKFxuICAgIGxldmVsSW5mbyAgICA6ICNBN0JGOEIsXG4gICAgbGV2ZWxOb3RpY2UgIDogI0Y1OTMzMyxcbiAgICBsZXZlbENyaXRpY2FsOiAjRjQ0MzM2XG4gIClcbikgIWdsb2JhbDtcblxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBGb250IEZhbWlsaWVzXG4vLy9cbi8vLyBEZWZpbmUgY3VzdG9tIGZvbnQgdmFyaWFibGVzIGhlcmUuIGAkaGVsdmV0aWNhYCBhbmQgYCRtb25vc3BhY2VgIGhhdmUgYmVlblxuLy8vIGRlZmluZWQgdG8gc3RhcnQsIGJ1dCB5b3UgbWF5IHJlLWNvbmZpZ3VyZSBhcyBuZWVkZWQuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kb3BlblNhbnM6XG4gICdPcGVuIFNhbnMnLFxuICAnSGVsdmV0aWNhIE5ldWUnLFxuICAnSGVsdmV0aWNhJyxcbiAgJ1JvYm90bycsXG4gICdBcmlhbCcsXG4gIHNhbnMtc2VyaWY7XG5cbiRvcGVuU2Fuc0NvbmRlbnNlZDpcbiAgJ09wZW4gU2FucyBDb25kZW5zZWQnLFxuICAnSGVsdmV0aWNhIE5ldWUnLFxuICAnSGVsdmV0aWNhJyxcbiAgJ1JvYm90bycsXG4gICdBcmlhbCcsXG4gIHNhbnMtc2VyaWY7XG5cbiRiYXNrZXJ2aWxsZTpcbiAgJ0Jhc2tlcnZpbGxlJyxcbiAgJ0xpYnJlIEJhc2tlcnZpbGxlJyxcbiAgJ0dlb3JnaWEnLFxuICAnVGltZXMnLFxuICAnVGltZXMgTmV3IFJvbWFuJyxcbiAgJ3NlcmlmJztcblxuXG4kbW9ub3NwYWNlOlxuICAnU291cmNlIENvZGUgUHJvJyxcbiAgJ01lbmxvJyxcbiAgJ01vbmFjbycsXG4gICdDb25zb2xhcycsXG4gICdDb3VyaWVyIE5ldycsXG4gIG1vbm9zcGFjZTtcblxuJG5zY2NJY29uczogJ25zY2MtaWNvbnMnO1xuIiwiaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjMjIyO1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW46IDA7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IC8vIEZpeCB0aGUgY2hhcmFjdGVyIHNwYWNpbmcgZm9yIGhlYWRpbmdzXG59XG5cbmgxIHt9XG5cbmgyIHt9XG5cbmgzIHt9XG5cbmg0IHt9XG5cbmg1IHt9XG5cbmg2IHt9XG5cbnAge1xuICBtYXJnaW46IDFlbSAwO1xufVxuXG51bCxcbm9sIHtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG5cbmRsIHtcbiAgbWFyZ2luOiAxZW0gMDtcblxuICBkdCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLXRvcDogLjVlbTtcbiAgfVxuXG4gIGRkIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuYSB7XG4gIHRyYW5zaXRpb246IGNvbG9yIDIwMG1zIGxpbmVhcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7fVxufVxuXG5ociB7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGdyYXk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZzogMDtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuYmxvY2txdW90ZSB7fVxuXG5jaXRlIHt9XG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2U7XG59XG5cbnNhbXAge1xuICBmb250LXNpemU6IDkwJTtcbn1cblxuYWJiciB7XG4gIGN1cnNvcjogaGVscDtcbn1cblxudGFibGUge1xuICBtYXJnaW46IDFlbSAwO1xufVxuXG50cixcbnRkLFxudGgge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG50aCB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxudGQge1xuICBwYWRkaW5nOiAxZW07XG59XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmxlZ2VuZCB7fVxuXG5sYWJlbCB7fVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbnNlbGVjdCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblt0eXBlPSdyYWRpbyddLFxuW3R5cGU9J2NoZWNrYm94J10ge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7XG59XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0ncmFuZ2UnXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuW211bHRpcGxlXSxcbltzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuYnV0dG9uLFxuW3R5cGU9J3N1Ym1pdCddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5tYWluIHtcbiAgLW1zLWZsZXg6IDEgMCBhdXRvO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgb3V0bGluZTogMDtcbn1cblxubmF2IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiQGltcG9ydCBcIm5zY2MtaWNvbnNcIjtcblxuIiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbnNjYy1pY29ucyc7XG4gIHNyYzogdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLmVvdD80NjcwMzMzMicpO1xuICBzcmM6IHVybCgnL2Fzc2V0cy9kaXN0L2ZvbnRzL25zY2MtaWNvbnMvbnNjYy1pY29ucy5lb3Q/NDY3MDMzMzIjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLndvZmYyPzQ2NzAzMzMyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9kaXN0L2ZvbnRzL25zY2MtaWNvbnMvbnNjYy1pY29ucy53b2ZmPzQ2NzAzMzMyJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2Rpc3QvZm9udHMvbnNjYy1pY29ucy9uc2NjLWljb25zLnR0Zj80NjcwMzMzMicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZGlzdC9mb250cy9uc2NjLWljb25zL25zY2MtaWNvbnMuc3ZnPzQ2NzAzMzMyI25zY2MtaWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKiBDaHJvbWUgaGFjazogU1ZHIGlzIHJlbmRlcmVkIG1vcmUgc21vb3RoIGluIFdpbmRvenplLiAxMDAlIG1hZ2ljLCB1bmNvbW1lbnQgaWYgeW91IG5lZWQgaXQuICovXG4vKiBOb3RlLCB0aGF0IHdpbGwgYnJlYWsgaGludGluZyEgSW4gb3RoZXIgT1MtZXMgZm9udCB3aWxsIGJlIG5vdCBhcyBzaGFycCBhcyBpdCBjb3VsZCBiZSAqL1xuLypcbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ25zY2MtaWNvbnMnO1xuICAgIHNyYzogdXJsKCcuLi9mb250L25zY2MtaWNvbnMuc3ZnPzQ2NzAzMzMyI25zY2MtaWNvbnMnKSBmb3JtYXQoJ3N2ZycpO1xuICB9XG59XG4qL1xuXG4gW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZSwgW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJuc2NjLWljb25zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3BlYWs6IG5vbmU7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHdpZHRoOiAxZW07XG4gIG1hcmdpbi1yaWdodDogLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKiBvcGFjaXR5OiAuODsgKi9cblxuICAvKiBGb3Igc2FmZXR5IC0gcmVzZXQgcGFyZW50IHN0eWxlcywgdGhhdCBjYW4gYnJlYWsgZ2x5cGggY29kZXMqL1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgLyogZml4IGJ1dHRvbnMgaGVpZ2h0LCBmb3IgdHdpdHRlciBib290c3RyYXAgKi9cbiAgbGluZS1oZWlnaHQ6IDFlbTtcblxuICAvKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpYyAqL1xuICAvKiByZW1vdmUgaWYgbm90IG5lZWRlZCAqL1xuICBtYXJnaW4tbGVmdDogLjJlbTtcblxuICAvKiB5b3UgY2FuIGJlIG1vcmUgY29tZm9ydGFibGUgd2l0aCBpbmNyZWFzZWQgaWNvbnMgc2l6ZSAqL1xuICAvKiBmb250LXNpemU6IDEyMCU7ICovXG5cbiAgLyogRm9udCBzbW9vdGhpbmcuIFRoYXQgd2FzIHRha2VuIGZyb20gVFdCUyAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAvKiB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgxMjcsIDEyNywgMTI3LCAwLjMpOyAqL1xufVxuXG4uaWNvbi1jdzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAwJzsgfSAvKiAn7qCAJyAqL1xuLmljb24tcGx1czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAxJzsgfSAvKiAn7qCBJyAqL1xuLmljb24tbWludXM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IH0gLyogJ+6ggicgKi9cbi5pY29uLWRvd24tZGlyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDMnOyB9IC8qICfuoIMnICovXG4uaWNvbi1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNCc7IH0gLyogJ+6ghCcgKi9cbi5pY29uLWdwbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDUnOyB9IC8qICfuoIUnICovXG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDYnOyB9IC8qICfuoIYnICovXG4uaWNvbi1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA3JzsgfSAvKiAn7qCHJyAqL1xuLmljb24tZmxpY2tyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDgnOyB9IC8qICfuoIgnICovXG4uaWNvbi1waW50ZXJlc3Q6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOSc7IH0gLyogJ+6giScgKi9cbi5pY29uLWluc3RhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBhJzsgfSAvKiAn7qCKJyAqL1xuLmljb24teW91dHViZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBiJzsgfSAvKiAn7qCLJyAqL1xuLmljb24tYW5nbGUtY2lyY2xlZC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBjJzsgfSAvKiAn7qCMJyAqL1xuLmljb24tb2stY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBkJzsgfSAvKiAn7qCNJyAqL1xuLmljb24tbGVmdC1vcGVuLWJpZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBlJzsgfSAvKiAn7qCOJyAqL1xuLmljb24tcmlnaHQtb3Blbi1iaWc6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwZic7IH0gLyogJ+6gjycgKi9cbi5pY29uLWF0dGVudGlvbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEwJzsgfSAvKiAn7qCQJyAqL1xuLmljb24tb2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMSc7IH0gLyogJ+6gkScgKi9cbi5pY29uLXVwLWJvbGQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMic7IH0gLyogJ+6gkicgKi9cbi5pY29uLWluZm8tY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEzJzsgfSAvKiAn7qCTJyAqL1xuLmljb24tYmVsbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE0JzsgfSAvKiAn7qCUJyAqL1xuLmljb24tY2FuY2VsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTUnOyB9IC8qICfuoJUnICovXG4uaWNvbi1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE2JzsgfSAvKiAn7qCWJyAqL1xuIiwiQGltcG9ydCBcImJ1dHRvblwiO1xuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImxpc3RzXCI7XG5AaW1wb3J0IFwibG9hZGVyXCI7XG5AaW1wb3J0IFwidGV4dFwiO1xuQGltcG9ydCBcImZvcm1zXCI7XG5AaW1wb3J0IFwiZGF0ZXBpY2tlclwiO1xuQGltcG9ydCBcInRhYmxlc1wiO1xuQGltcG9ydCBcInZpZGVvLWVtYmVkXCI7XG4iLCIvLyBVc2FnZVxuLy8gPGEgY2xhc3M9XCJidXR0b24gLXByaW1hcnlcIiByb2xlPVwiYnV0dG9uXCIgaHJlZj1cIiNcIiByb2xlPVwiYnV0dG9uXCI+TGluazwvYT5cbi8vIDxidXR0b24gY2xhc3M9XCJidXR0b24gLXByaW1hcnlcIiB0eXBlPVwic3VibWl0XCI+QnV0dG9uPC9idXR0b24+XG4vLyA8aW5wdXQgY2xhc3M9XCJidXR0b24gLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCJJbnB1dFwiPlxuLy8gPGlucHV0IGNsYXNzPVwiYnV0dG9uIC1wcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiU3VibWl0XCI+XG5cbi8vIFNldHRpbmdzXG4kYnV0dG9uOiAoXG4gIGJhY2tncm91bmRDb2xvcjogKFxuICAgIGRlZmF1bHQ6IGNvbG9yKG9yYW5nZSksXG4gICAgaG92ZXI6IGxpZ2h0ZW4oY29sb3Iob3JhbmdlKSwgMTAlKVxuICApLFxuICBjb2xvcjogI2ZmZixcbiAgZm9udFNpemU6IC45MzhyZW0sXG4gIHBhZGRpbmc6IC45MzhyZW0gMS41NjNyZW0sXG4gIHByaW1hcnk6IChcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IChcbiAgICAgIGRlZmF1bHQ6IGNvbG9yKG9yYW5nZSksXG4gICAgICBob3ZlcjogbGlnaHRlbihjb2xvcihvcmFuZ2UpLCAxMCUpXG4gICAgKVxuICApLFxuICBzZWNvbmRhcnk6IChcbiAgICBib3JkZXJDb2xvcjogKFxuICAgICAgZGVmYXVsdDogY29sb3IoZ3JheSwgeGxpZ2h0KSxcbiAgICAgIGhvdmVyOiBjb2xvcihvcmFuZ2UpXG4gICAgKSxcbiAgICBjb2xvcjogKFxuICAgICAgZGVmYXVsdDogY29sb3IoZ3JheSwgZGFyayksXG4gICAgICBob3ZlcjogY29sb3Iob3JhbmdlKVxuICAgIClcbiAgKSxcbiAgbGFyZ2U6IChcbiAgICBmb250U2l6ZTogLjkzOGVtLFxuICAgIHBhZGRpbmc6IC45MzhlbSAxLjU2M2VtXG4gICksXG4gIG1lZGl1bTogKFxuICAgIGZvbnRTaXplOiAuOTM4ZW0sXG4gICAgcGFkZGluZzogLjkzOGVtIDEuNTYzZW1cbiAgKSxcbiAgc21hbGw6IChcbiAgICBmb250U2l6ZTogLjkzOGVtLFxuICAgIHBhZGRpbmc6IC41NjNlbSAyLjEyNWVtXG4gICksXG4pO1xuXG4vLyBEZWZpbml0aW9uc1xuLmJ1dHRvbixcbmEuYnV0dG9uLFxucCA+IGEuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogc2V0dGluZygnYmFja2dyb3VuZENvbG9yLmRlZmF1bHQnLCAkYnV0dG9uKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiBzZXR0aW5nKCdjb2xvcicsICRidXR0b24pO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiBzZXR0aW5nKCdmb250U2l6ZScsICRidXR0b24pO1xuICBmb250LXdlaWdodDogNDAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgcGFkZGluZzogc2V0dGluZygncGFkZGluZycsICRidXR0b24pO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIC8vIFN0YXRlc1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogc2V0dGluZygnY29sb3InLCAkYnV0dG9uKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzZXR0aW5nKCdiYWNrZ3JvdW5kQ29sb3IuaG92ZXInLCAkYnV0dG9uKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCByZ2JhKCMwMDAsIC40KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gICZbZGlzYWJsZWRdLFxuICAmLmlzLWRpc2FibGVkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogLjY1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cblxuICAvLyBUeXBlc1xuXG4gICYuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHNldHRpbmcoJ3ByaW1hcnkuYmFja2dyb3VuZENvbG9yLmRlZmF1bHQnLCAkYnV0dG9uKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2V0dGluZygncHJpbWFyeS5iYWNrZ3JvdW5kQ29sb3IuaG92ZXInLCAkYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAmLi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHB1cnBsZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oY29sb3IocHVycGxlKSwgMTAlKTtcbiAgICB9XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvL2JvcmRlcjogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5kZWZhdWx0JywgJGJ1dHRvbik7XG4gICAgLy9jb2xvcjogc2V0dGluZygnc2Vjb25kYXJ5LmNvbG9yLmRlZmF1bHQnLCAkYnV0dG9uKTtcbiAgICAvL3Bvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvL3RyYW5zaXRpb246IDAuNXM7XG4gICAgLy9cbiAgICAvLyY6YWZ0ZXIsXG4gICAgLy8mOmJlZm9yZSB7XG4gICAgLy8gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC8vICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8vICBjb250ZW50OiAnJztcbiAgICAvLyAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vICBsZWZ0OiAwO1xuICAgIC8vICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gIHRvcDogMDtcbiAgICAvLyAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIC8vICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLy8gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIC8vICAtby10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIC8vICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIC8vICB0cmFuc2l0aW9uOiAwLjNzIGVhc2UtaW47XG4gICAgLy8gIHdpZHRoOiAxMDAlO1xuICAgIC8vICB6LWluZGV4OiAzO1xuICAgIC8vfVxuICAgIC8vXG4gICAgLy8mOmJlZm9yZSB7XG4gICAgLy8gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBzZXR0aW5nKCdzZWNvbmRhcnkuYm9yZGVyQ29sb3IuaG92ZXInLCAkYnV0dG9uKTtcbiAgICAvLyAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCBzZXR0aW5nKCdzZWNvbmRhcnkuYm9yZGVyQ29sb3IuaG92ZXInLCAkYnV0dG9uKTtcbiAgICAvLyAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC8vICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLy8gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC8vICAtby10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC8vICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC8vfVxuICAgIC8vXG4gICAgLy8mOmFmdGVyIHtcbiAgICAvLyAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHNldHRpbmcoJ3NlY29uZGFyeS5ib3JkZXJDb2xvci5ob3ZlcicsICRidXR0b24pO1xuICAgIC8vICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBzZXR0aW5nKCdzZWNvbmRhcnkuYm9yZGVyQ29sb3IuaG92ZXInLCAkYnV0dG9uKTtcbiAgICAvLyAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIC8vICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG4gICAgLy8gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIC8vICAtby10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIC8vICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDAlO1xuICAgIC8vfVxuICAgIC8vXG4gICAgLy8mOmhvdmVyLFxuICAgIC8vJjphY3RpdmUsXG4gICAgLy8mOmZvY3VzIHtcbiAgICAvLyAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAxNjAsIDgwLCAwKTtcbiAgICAvLyAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLy8gIGNvbG9yOiBzZXR0aW5nKCdzZWNvbmRhcnkuY29sb3IuaG92ZXInLCAkYnV0dG9uKTtcbiAgICAvL31cbiAgICAvL1xuICAgIC8vJjpob3ZlcjphZnRlcixcbiAgICAvLyY6aG92ZXI6YmVmb3JlIHtcbiAgICAvLyAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC8vICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLy8gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC8vICAtby10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC8vICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC8vfVxuICAgIC8vXG4gICAgLy8mLi13aGl0ZSB7XG4gICAgLy8gIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgLy8gIGNvbG9yOiB3aGl0ZTtcbiAgICAvLyAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgICAvL1xuICAgIC8vICAmOmJlZm9yZSxcbiAgICAvLyAgJjphZnRlciB7XG4gICAgLy8gICAgY29udGVudDogbm9uZTtcbiAgICAvLyAgfVxuICAgIC8vXG4gICAgLy8gICY6aG92ZXIge1xuICAgIC8vICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLy8gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgIC8vICB9XG4gICAgLy99XG4gIH1cblxuICAmLi10ZXJ0aWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDEwJSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6ZXNcblxuICAmLi1sYXJnZSB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdsYXJnZS5mb250U2l6ZScsICRidXR0b24pO1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2xhcmdlLnBhZGRpbmcnLCAkYnV0dG9uKTtcbiAgfVxuXG4gICYuLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiBzZXR0aW5nKCdtZWRpdW0uZm9udFNpemUnLCAkYnV0dG9uKTtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdtZWRpdW0ucGFkZGluZycsICRidXR0b24pO1xuICB9XG5cbiAgJi4tc21hbGwge1xuICAgIGZvbnQtc2l6ZTogc2V0dGluZygnc21hbGwuZm9udFNpemUnLCAkYnV0dG9uKTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogc2V0dGluZygnc21hbGwucGFkZGluZycsICRidXR0b24pO1xuICB9XG5cbiAgLy8gU3R5bGVzXG5cbiAgJi4tYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDJlbSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJi4tY2VudGVyIHtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgfVxuXG4gICYuLWZ1bGwge1xuICAgIGp1c3RpZnktc2VsZjogc3RyZXRjaDtcbiAgfVxuXG4gICYuLWxlZnQge1xuICAgIGp1c3RpZnktc2VsZjogbGVmdDtcbiAgfVxuXG4gICYuLXJpZ2h0IHtcbiAgICBqdXN0aWZ5LXNlbGY6IHJpZ2h0O1xuICB9XG59XG5cbi5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5idXR0b24tY29udGFpbmVyICsgLmJ1dHRvbi1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxZW07XG59IiwiLy8gRm9udHNcbi5iYXNrZXJ2aWxsZSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFza2VydmlsbGU7XG59XG5cbi5tb25vc3BhY2Uge1xuICBmb250LWZhbWlseTogJG1vbm9zcGFjZTtcbn1cblxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJsaSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5hcnRpY2xlICYge1xuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbGluaygpO1xuICAgIH1cbiAgfVxufVxuIiwiLmxvYWRlciB7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwcHg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6Jyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7XG4gIH1cblxuICAmLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uY2lyY3VsYXIge1xuICBhbmltYXRpb246IHJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gIHRvcDogMDsgYm90dG9tOiAwOyBsZWZ0OiAwOyByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cblxuLnBhdGgge1xuICBhbmltYXRpb246XG4gICAgZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlLFxuICAgIGNvbG9yIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBzdHJva2UtZGFzaGFycmF5OiAxLDIwMDtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGV7XG4gIDEwMCV7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBkYXNoe1xuICAwJXtcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxLDIwMDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxuICA1MCV7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcbiAgfVxuICAxMDAle1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LDIwMDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xuICB9XG59XG5Aa2V5ZnJhbWVzIGNvbG9ye1xuICAxMDAlLCAwJXtcbiAgICBzdHJva2U6IGNvbG9yKGdyZWVuKTtcbiAgfVxuICA0MCV7XG4gICAgc3Ryb2tlOiBjb2xvcihncmF5LCBsaWdodCk7XG4gIH1cbiAgNjYle1xuICAgIHN0cm9rZTogbGlnaHRlbihjb2xvcihncmVlbiksIDI1JSk7XG4gIH1cbiAgODAlLCA5MCV7XG4gICAgc3Ryb2tlOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgfVxufVxuIiwiLy9UT0RPOiByZXNwb25zaXZlIGZvbnQgc2l6ZXMuXG5cbmgxIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBmb250LXNpemU6IDQuNjI1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbmgyLCBoMyB7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbmgyIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBmb250LXNpemU6IDEuNjI1ZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICBmb250LXNpemU6IDIuMjVlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGZvbnQtc2l6ZTogMi42MjVlbTtcbiAgfVxufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4zNzVlbTtcbn1cblxuaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAuYXJ0aWNsZSAmIHtcbiAgICBtYXJnaW4tdG9wOiAxLjI1MGVtO1xuICB9XG59XG5cbnAge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAmLmxlYWQtcGFyYWdyYXBoIHtcbiAgICBmb250LXNpemU6IDEuMTg4cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cblxuICAmLmFjY2VudCB7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbn1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMmVtIDA7XG59XG5cbi8vIE9yZGVyZWQgTGlzdHNcblxub2wgb2wgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG5vbCBvbCBvbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG59XG5cbi8vIElubGluZSBFbGVtZW50c1xuXG5wID4gYSB7XG4gIEBpbmNsdWRlIGxpbmsoKTtcbn1cblxuYSB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IpO1xuXG4gIGNvbG9yOiBjb2xvcihibHVlKTtcblxuICAmLmFjY2VudCB7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgMTAlKTtcbiAgfVxufVxuIiwiQG1peGluIGRpc2FibGVkLWZvcm0tY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbkBtaXhpbiBpbnB1dC1mb2N1cyB7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbihjb2xvcihncmVlbiksIDUlKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSxcbiAgICAwIDAgOHB4IHJnYmEobGlnaHRlbihjb2xvcihncmVlbiksIDUlKSwgLjYpO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMCAwIDJlbTtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gICZbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIGRpc2FibGVkLWZvcm0tY29udHJvbDtcbiAgfVxufVxuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICYucmVxdWlyZWQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcqJztcbiAgfVxuXG4gICZbYXJpYS1oaWRkZW49dHJ1ZV0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBzbWFsbCB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICB9XG59XG5cbi5jaGVja2JveC1pbmxpbmUge1xuICBsYWJlbCB7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cbn1cblxuJWZvcm0tY29udHJvbCB7XG4gIEBpbmNsdWRlIGlucHV0LWZvY3VzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYShibGFjaywgLjA3NSk7XG4gIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogLjg3NWVtO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLFxuICBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIH1cblxuICAuaXMtc3VibWl0dGVkICYge1xuICAgICY6aW52YWxpZCxcbiAgICAmOnJlcXVpcmVkOmludmFsaWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjYjAzNTM1O1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoYmxhY2ssIC4wNzUpLCAwIDAgOHB4ICNkNDUyNTI7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZWQtZm9ybS1jb250cm9sO1xuICB9XG59XG5cbi5mb3JtLWNvbnRyb2wtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgQGV4dGVuZCAlZm9ybS1jb250cm9sO1xuXG4gICYuaGFzLWljb24ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gIH1cbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xuXG4gICYuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG59XG5cblt0eXBlPSdyYWRpbyddLFxuW3R5cGU9J2NoZWNrYm94J10ge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7XG59XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0ncmFuZ2UnXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuW211bHRpcGxlXSxcbltzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdyYWRpbyddLFxuW3R5cGU9J2NoZWNrYm94J10ge1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbn1cblxuc2VsZWN0LFxuc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZm9udC1zaXplOiAuODc1ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5zZWxlY3Q6Oi1tcy1leHBhbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZm9ybS1jb250cm9sLXNlbGVjdC13cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmZvcm0tY29udHJvbF9faW5zdHJ1Y3Rpb25zIHtcbiAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAuODVlbTtcbiAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbn1cblxuLmZpZWxkLWljb24ge1xuICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxM3B4O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTtcbn1cblxuYnV0dG9uLFxuW3R5cGU9J3N1Ym1pdCddIHtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgfVxufVxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgbGFiZWwge1xuICAgIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAuODc1ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgfVxufVxuXG4ucmFkaW8gW3R5cGU9J3JhZGlvJ10sXG4ucmFkaW8taW5saW5lIFt0eXBlPSdyYWRpbyddLFxuLmNoZWNrYm94IFt0eXBlPSdjaGVja2JveCddLFxuLmNoZWNrYm94LWlubGluZSBbdHlwZT0nY2hlY2tib3gnXSB7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgbWFyZ2luLXRvcDogNHB4IFxcOTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ucmFkaW8gKyAucmFkaW8sXG4uY2hlY2tib3ggKyAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAtNXB4O1xufVxuXG4ucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5yYWRpby1pbmxpbmUgKyAucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSArIC5jaGVja2JveC1pbmxpbmUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuW3R5cGU9J3JhZGlvJ11bZGlzYWJsZWRdLFxuW3R5cGU9J2NoZWNrYm94J11bZGlzYWJsZWRdLFxuW3R5cGU9J3JhZGlvJ10uZGlzYWJsZWQsXG5bdHlwZT0nY2hlY2tib3gnXS5kaXNhYmxlZCxcbltkaXNhYmxlZF0gW3R5cGU9J3JhZGlvJ10sXG5bZGlzYWJsZWRdIFt0eXBlPSdjaGVja2JveCddIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnJhZGlvLWlubGluZS5kaXNhYmxlZCxcbi5jaGVja2JveC1pbmxpbmUuZGlzYWJsZWQsXG5bZGlzYWJsZWRdIC5yYWRpby1pbmxpbmUsXG5bZGlzYWJsZWRdIC5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucmFkaW8uZGlzYWJsZWQgbGFiZWwsXG4uY2hlY2tib3guZGlzYWJsZWQgbGFiZWwsXG5bZGlzYWJsZWRdIC5yYWRpbyBsYWJlbCxcbltkaXNhYmxlZF0gLmNoZWNrYm94IGxhYmVsIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbiIsIi8qIVxuKiBQaWthZGF5XG4qIENvcHlyaWdodCAoYykgMjAxNCBEYXZpZCBCdXNoZWxsIHwgQlNEICYgTUlUIGxpY2Vuc2UgfCBodHRwOi8vZGJ1c2hlbGwuY29tL1xuKi9cblxuLnBpa2Etc2luZ2xlIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYmJiO1xuICBjb2xvcjogY29sb3IoZ3JheSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk5O1xuXG4gICYuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi5pcy1ib3VuZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggLTVweCByZ2JhKDAsMCwwLC41KTtcbiAgfVxuXG4gICYuZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvcihncmF5KTtcbiAgfVxufVxuXG4ucGlrYS1sZW5kYXIge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiA4cHg7XG4gIHdpZHRoOiAyNDBweDtcbn1cblxuLnBpa2EtdGl0bGUge1xuICBjb2xvcjogY29sb3IoZ3JlZW4pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAuZGFyayAmIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgei1pbmRleDogOTk5ODtcbiAgfVxufVxuXG4ucGlrYS1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogNXB4IDNweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk5O1xuXG4gIC5kYXJrICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICB9XG59XG5cbi5waWthLXByZXYsXG4ucGlrYS1uZXh0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogNzUlIDc1JTtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDMwcHg7XG4gIG9wYWNpdHk6IC41O1xuICBvdXRsaW5lOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtaW5kZW50OiAyMHB4OyAvLyBoaWRlIHRleHQgdXNpbmcgdGV4dC1pbmRlbnQgdHJpY2ssIHVzaW5nIHdpZHRoIHZhbHVlIChpdCdzIGVub3VnaClcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDIwcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICYuaXMtZGlzYWJsZWQge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBvcGFjaXR5OiAuMjtcbiAgfVxufVxuXG4ucGlrYS1wcmV2LFxuLmlzLXJ0bCAucGlrYS1uZXh0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQWVDQVlBQUFBc0VqNXJBQUFBVWtsRVFWUjQydTNWTVFvQUlCQURRZjhQZ2orT0Q5aEcyQ3RPTkpCMnltUWtLZTBIYndBUDB4dWNEaVFXQVJJVElERUJFbk1nTVE4UzgrQXFCSWw2a0tnSGlYcVFxQWVKZXBCby96MzhKL1UwdUFIbGFCa0JsOUk0R3dBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5waWthLW5leHQsXG4uaXMtcnRsIC5waWthLXByZXYge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBZUNBWUFBQUFzRWo1ckFBQUFVMGxFUVZSNDJ1M1ZPd29BTUFnRTBkd2ZBbk5qVTI2YllrQkNGR3dmaUw5VlZXb08rQko0R2YzZ3RzRUtLb0ZCTlRDb0NBWVZ3YUFpR05RR01VSE1rakdiZ2prMm1JT051WG8wbkM4WG5DZjFKWGdBclZJWkFRaDVUS1lBQUFBQVNVVk9SSzVDWUlJPScpO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5waWthLXNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnBpa2EtdGFibGUge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgdGgsXG4gIHRkIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxNC4yODU3MTQyODU3MTQyODYlO1xuXG4gICAgLmRhcmsgJiB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBjb2xvcihncmF5KTtcbiAgICB9XG4gIH1cblxuICB0aCB7XG4gICAgY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5kYXJrICYge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IocHVycGxlKSwgNSUpO1xuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgYWJiciB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gIH1cbn1cblxuLnBpa2EtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICBtYXJnaW46IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDEycHggNXB4IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcblxuXG4gIC5kYXJrICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5pcy10b2RheSAmIHtcbiAgICBjb2xvcjogZGFya2VuKGNvbG9yKGdyZWVuKSwgNSUpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgLmRhcmsgJiB7XG4gICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihncmVlbiksIDUlKTtcbiAgICB9XG4gIH1cblxuICAuaXMtc2VsZWN0ZWQgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAuZGFyayAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oY29sb3IoZ3JlZW4pLCA1JSk7XG4gICAgfVxuICB9XG5cbiAgLmlzLWlucmFuZ2UgJiB7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbihjb2xvcihncmVlbiksIDU1JSk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuXG4gIC5pcy1zdGFydHJhbmdlICYsXG4gIC5pcy1lbmRyYW5nZSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmVlbik7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5pcy1kaXNhYmxlZCAmIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IC4zO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLmRhcmsgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCBsaWdodCkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLnBpa2Etd2VlayB7XG4gIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuXG4uZGF0ZXBpY2tlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGF0ZXBpY2tlci1jb250cm9sIHtcbiAgJltyZWFkb25seV0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmLmZvcm0tY29udHJvbC0tZGFyayB7XG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSk7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gICYuaGFzLXZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbi5yZW1vdmUtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLypcbiAgICBAaW5jbHVkZSBzaXplKGF1dG8gMzdweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcGF0aCgnaWNvbi1jbG9zZS5zdmcnKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbG9yOiAjYThhOGE4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdG9wOiAxOHB4O1xuICAqL1xufVxuIiwiJGJyZWFrcG9pbnQtYWxwaGE6IDkwMHB4OyAvLyBhZGp1c3QgdG8geW91ciBuZWVkc1xuXG50YWJsZSB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gIH1cblxuICB0aCB7XG4gICAgZGlzcGxheTogbm9uZTsgLy8gZm9yIGFjY2Vzc2liaWxpdHksIHVzZSBhIHZpc3VhbGx5IGhpZGRlbiBtZXRob2QgaGVyZSBpbnN0ZWFkISBUaGFua3MsIHJlZGRpdCFcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogLjVlbTtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aClcIjogXCI7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGRhcmspO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1hbHBoYSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1hbHBoYSkge1xuICAgIHRoOm5vdCg6bGFzdC1jaGlsZCksXG4gICAgdGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIHRoLCB0ZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1hbHBoYSkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHBhZGRpbmc6IC4yNWVtIC41ZW07XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvLyYudGFibGVzb3J0IHtcbiAgLy8gIHRoIHtcbiAgLy8gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2NoZXZyb24tdXAtZ3JleS5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9jaGV2cm9uLWRvd24tZ3JleS5zdmdcIik7XG4gIC8vICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgLy8gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMThweCB0b3AgMjZweCxyaWdodCAxOHB4IGJvdHRvbSAyNnB4O1xuICAvLyAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHggOHB4LCAxMnB4IDhweDtcbiAgLy8gICAgY3Vyc29yOiBwb2ludGVyO1xuICAvLyAgICBjb2xvcjogY29sb3IoZ3JheSwgYmFzZSk7XG4gIC8vICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgLy8gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgLy8gICAgaGVpZ2h0OiA3MHB4O1xuICAvLyAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAvLyAgICBwYWRkaW5nOiAxZW0gNDBweCAuNjhlbSAuNzVlbTtcbiAgLy8gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLy8gIH1cbiAgLy99XG5cbn1cblxuIiwiLy8gQ3JlZGl0OiBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgU1VJVCBDU1MuXG5cbi52aWRlby1lbWJlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuXG4gIC52aWRlby1lbWJlZC1pdGVtLFxuICBpZnJhbWUsXG4gIGVtYmVkLFxuICBvYmplY3QsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLnZpZGVvLWVtYmVkLTIxYnk5IHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSg5IC8gMjEpO1xuICB9XG59XG5cbi52aWRlby1lbWJlZC0xNmJ5OSB7XG4gICY6OmJlZm9yZSB7XG4gICAgcGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoOSAvIDE2KTtcbiAgfVxufVxuXG4udmlkZW8tZW1iZWQtNGJ5MyB7XG4gICY6OmJlZm9yZSB7XG4gICAgcGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoMyAvIDQpO1xuICB9XG59XG5cbi52aWRlby1lbWJlZC0xYnkxIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSgxIC8gMSk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJncmlkXCI7XG5cbkBpbXBvcnQgXCJhY2NvcmRpb25cIjtcbkBpbXBvcnQgXCJicmVhZGNydW1ic1wiO1xuQGltcG9ydCBcImNhbGxvdXRcIjtcbkBpbXBvcnQgXCJjYWxsb3V0LWJsb2NrXCI7XG5AaW1wb3J0IFwiY2F0ZWdvcnktc2VsZWN0XCI7XG5AaW1wb3J0IFwiZW1iZWRcIjtcbkBpbXBvcnQgXCJldmVudC1ibG9ja1wiO1xuQGltcG9ydCBcImZlYXR1cmVkLWVudHJ5XCI7XG5AaW1wb3J0IFwiZmVhdHVyZWQtZXZlbnRcIjtcbkBpbXBvcnQgXCJnbG9iYWwtZm9vdGVyL2NvbnRhY3QtaW5mb1wiO1xuQGltcG9ydCBcImdsb2JhbC1mb290ZXIvbmF2XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWZvb3Rlci9wYXJ0bmVyc1wiO1xuQGltcG9ydCBcImdyaWQtdGl0bGVcIjtcbkBpbXBvcnQgXCJncmlkLWZpbHRlcnNcIjtcbkBpbXBvcnQgXCJpY29uLWxpbmtzXCI7XG5AaW1wb3J0IFwibGFiZWxcIjtcbkBpbXBvcnQgXCJsaXN0aW5nLWJsb2NrXCI7XG5AaW1wb3J0IFwibGlzdGluZy1pdGVtXCI7XG5AaW1wb3J0IFwibG9nb1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwib3ZlcnZpZXdcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL2J1cmdlclwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvbmF2LWxpbmtcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL25hdi1saW5rLWJ1dHRvblwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXIvbmF2LW1lbnVcIjtcbkBpbXBvcnQgXCJnbG9iYWwtaGVhZGVyL3ByaW1hcnktbmF2XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9zZWFyY2gtYnV0dG9uXCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9zZWNvbmRhcnktbmF2XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWhlYWRlci9kb2NzLXNlYXJjaFwiO1xuQGltcG9ydCBcImhlcm8tY29udGVudFwiO1xuQGltcG9ydCBcInBhZ2UtdGl0bGVcIjtcbkBpbXBvcnQgXCJwaG90by1nYWxsZXJ5XCI7XG5AaW1wb3J0IFwicXVvdGVcIjtcbkBpbXBvcnQgXCJzaWRlYmFyLW5hdlwiO1xuQGltcG9ydCBcInNjaGVkdWxlXCI7XG5AaW1wb3J0IFwic2lkZWJhci1jYWxsb3V0XCI7XG5AaW1wb3J0IFwidGFiLXBhbmVsXCI7XG5AaW1wb3J0IFwidGFibGlzdFwiO1xuQGltcG9ydCBcInRvcC1hcnJvd1wiO1xuQGltcG9ydCBcImV2ZW50LXJlc291cmNlc1wiO1xuQGltcG9ydCBcImZlYXR1cmVkLXN0b3J5LWJsb2NrXCI7XG5AaW1wb3J0IFwicGFnaW5hdG9yXCI7XG5AaW1wb3J0IFwiY29udGFjdC1wYWdlXCI7XG5AaW1wb3J0IFwianVkZ2VzLWRpcmVjdG9yeVwiO1xuIiwiJGdyaWRzOiAoXG4gIGNvbDI6IChcbiAgICBsYXlvdXQ6IChcbiAgICAgIGd1dHRlcnM6IDIzLzUwMCxcbiAgICAgIGd1dHRlci1wb3NpdGlvbjogYWZ0ZXJcbiAgICApLFxuICAgIGJyZWFrcG9pbnRzOiAoXG4gICAgICB4c21hbGw6IDEsXG4gICAgICBzbWFsbDogMSxcbiAgICAgIG1lZGl1bTogMixcbiAgICAgIGxhcmdlOiAyXG4gICAgKSxcbiAgICBzcGFuczogKFxuICAgICAgMSBfNTogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsOiBmdWxsLFxuICAgICAgICBtZWRpdW06IDEuNSxcbiAgICAgICAgbGFyZ2U6IDEuNVxuICAgICAgKSxcbiAgICAgIDI6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbDogZnVsbCxcbiAgICAgICAgbWVkaXVtOiBmdWxsLFxuICAgICAgICBsYXJnZTogZnVsbFxuICAgICAgKVxuICAgIClcbiAgKSxcbiAgY29sMzogKFxuICAgIGxheW91dDogKFxuICAgICAgZ3V0dGVyczogNy8xMDAsXG4gICAgICBndXR0ZXItcG9zaXRpb246IGFmdGVyXG4gICAgKSxcbiAgICBicmVha3BvaW50czogKFxuICAgICAgeHNtYWxsOiAxLFxuICAgICAgc21hbGw6IDEsXG4gICAgICBtZWRpdW06IDMsXG4gICAgICBsYXJnZTogM1xuICAgICksXG4gICAgc3BhbnM6IChcbiAgICAgIDI6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbDogZnVsbCxcbiAgICAgICAgbWVkaXVtOiAxLjUsXG4gICAgICAgIGxhcmdlOiAxLjVcbiAgICAgIClcbiAgICApXG4gICksXG4gIGNvbDQ6IChcbiAgICBsYXlvdXQ6IChcbiAgICAgIGd1dHRlcnM6IDE5LzIwMCxcbiAgICAgIGd1dHRlci1wb3NpdGlvbjogYWZ0ZXJcbiAgICApLFxuICAgIGJyZWFrcG9pbnRzOiAoXG4gICAgICB4c21hbGw6IDEsXG4gICAgICBzbWFsbE9ubHk6IDEsXG4gICAgICBtZWRpdW1Pbmx5OiAzLFxuICAgICAgbGFyZ2U6IDRcbiAgICApLFxuICAgIHNwYW5zOiAoXG4gICAgICAxIF81OiAoXG4gICAgICAgIHhzbWFsbDogZnVsbCxcbiAgICAgICAgc21hbGw6IGZ1bGwsXG4gICAgICAgIG1lZGl1bTogMS41LFxuICAgICAgICBsYXJnZTogMS41XG4gICAgICApLFxuICAgICAgMjogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsOiBmdWxsLFxuICAgICAgICBtZWRpdW06IDEsXG4gICAgICAgIGxhcmdlOiAyXG4gICAgICApLFxuICAgICAgMiBfNTogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsOiBmdWxsLFxuICAgICAgICBtZWRpdW06IDIuNSxcbiAgICAgICAgbGFyZ2U6IDIuNVxuICAgICAgKVxuICAgIClcbiAgKSxcbiAgY29sNjogKFxuICAgIGxheW91dDogKFxuICAgICAgZ3V0dGVyczogMTUvMTAwLFxuICAgICAgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlclxuICAgICksXG4gICAgYnJlYWtwb2ludHM6IChcbiAgICAgIHhzbWFsbDogMSxcbiAgICAgIHNtYWxsT25seTogMixcbiAgICAgIG1lZGl1bU9ubHk6IDQsXG4gICAgICBsYXJnZTogNlxuICAgICksXG4gICAgc3BhbnM6IChcbiAgICAgIDU6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbE9ubHk6IGZ1bGwsXG4gICAgICAgIG1lZGl1bU9ubHk6IDMsXG4gICAgICAgIGxhcmdlOiA1XG4gICAgICApLFxuICAgICAgNCBfNTogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsT25seTogMixcbiAgICAgICAgbWVkaXVtT25seTogMi41LFxuICAgICAgICBsYXJnZTogNC41XG4gICAgICApLFxuICAgICAgNDogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsT25seTogMixcbiAgICAgICAgbWVkaXVtT25seTogMi41LFxuICAgICAgICBsYXJnZTogNFxuICAgICAgKSxcbiAgICAgIDM6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbE9ubHk6IDEsXG4gICAgICAgIG1lZGl1bU9ubHk6IDIsXG4gICAgICAgIGxhcmdlOiAzXG4gICAgICApLFxuICAgICAgMjogKFxuICAgICAgICB4c21hbGw6IGZ1bGwsXG4gICAgICAgIHNtYWxsT25seTogMixcbiAgICAgICAgbWVkaXVtT25seTogMS41LFxuICAgICAgICBsYXJnZTogMlxuICAgICAgKSxcbiAgICAgIDEgXzU6IChcbiAgICAgICAgeHNtYWxsOiBmdWxsLFxuICAgICAgICBzbWFsbE9ubHk6IDIsXG4gICAgICAgIG1lZGl1bU9ubHk6IDEuNSxcbiAgICAgICAgbGFyZ2U6IDEuNVxuICAgICAgKVxuICAgIClcbiAgKVxuKTtcblxuLmdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG5cbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gIGdyaWQtcm93LWdhcDogMTVweDtcbiAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4O1xuXG4gICYuLXNtYWxsIHtcbiAgICBncmlkLXJvdy1nYXA6IDIwcHg7XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNXB4O1xuICB9XG5cbiAgJi4tZm9vdGVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byBhdXRvIDEzMHB4O1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1jb2w2IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sNyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmcjtcbiAgICB9XG4gIH1cblxuICAmLi1jb2w4IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmciAxZnIgMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgJi4tZmVhdHVyZWQtZW50cnktZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWxpc3RpbmctZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAzMHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxOC40JSBhdXRvIDI1JSAyNSU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhsYXJnZScpKSB7XG4gICAgICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE4LjQlIGF1dG8gMjcuNSUgMjMlO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDMtMi0xIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWNvbDMtMSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtY29sdW1uLWdhcDogY2FsYyg0MHB4ICogMS41KTtcbiAgICB9XG4gIH1cblxuICAmLi1jb2wyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cbiAgfVxuXG4gICYuLWRldGFpbCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDI1MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmFjY29yZGlvbiB7XG4gIC5hY2NvcmRpb25fX2l0ZW0ge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyYXksIHhkYXJrKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMi41ZW0gMDtcblxuICAgIC5hY2NvcmRpb25fX2l0ZW1fX2RldGFpbHMge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xuICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjc1ZW07XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwID4gYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoLjgsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuLWV4cGFuZGVkIHtcbiAgICAgIC5hY2NvcmRpb25fX2l0ZW1fX2RldGFpbHMge1xuICAgICAgICBtYXgtaGVpZ2h0OiA1MDAwMDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguLWV4cGFuZGVkKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1MGVtO1xuICAgIG1hcmdpbi1sZWZ0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgfVxufVxuXG4uYWNjb3JkaW9uX19pdGVtX19oYW5kbGUge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgfVxuXG4gIC5hY2NvcmRpb25fX2l0ZW0uLWV4cGFuZGVkICYge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgfVxuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgeGRhcmspO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAkbnNjY0ljb25zO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBvcGFjaXR5IC4zcztcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxlODAzJzsgLy8gRG93biBhcnJvd1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHotaW5kZXg6IDIwO1xuXG4gICAgLmFjY29yZGlvbl9faXRlbS4tZXhwYW5kZWQgJiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxufVxuIiwiLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luOiAyLjVlbSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIC8vIENvbXBvbmVudHNcblxuICAuYnJlYWRjcnVtYl9faXRlbSB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJy8nO1xuICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgfVxuXG4gICAgJi4tYWN0aXZlIHtcbiAgICAgIGNvbG9yOiBjb2xvcihncmF5KTtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBjb2xvcjogY29sb3IocHVycGxlKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJGNhbGxvdXQ6IChcbiAgc2l6ZXM6IChcbiAgKVxuKTtcblxuLmNhbGxvdXQge1xuICBAZXh0ZW5kIC5ncmlkO1xuICBAZXh0ZW5kIC4tY29sMjtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIG1hcmdpbi1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG59XG5cbmEuY2FsbG91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKGNvbG9yKGdyZXksIHhsaWdodCksIDUlKTtcbiAgfVxufVxuXG4uY2FsbG91dF9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSl7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn0iLCIkY2FsbG91dEJsb2NrOiAoXG4gIHNpemVzOiAoXG4gICAgc21hbGw6IChcbiAgICAgIGZvbnRTaXplOiAuOTM4ZW0sXG4gICAgICBsaW5lSGVpZ2h0OiAxLjEsXG4gICAgICBoZWlnaHQ6IDIwMHB4XG4gICAgKSxcbiAgICBtZWRpdW06IChcbiAgICAgIGZvbnRTaXplOiAxLjc1ZW0sXG4gICAgICBsaW5lSGVpZ2h0OiAxLjIsXG4gICAgICBoZWlnaHQ6IDI1MHB4XG4gICAgKSxcbiAgICBsYXJnZTogKFxuICAgICAgYm9yZGVyOiAyNXB4IHNvbGlkIHdoaXRlLFxuICAgICAgZm9udFNpemU6IDMuNzVlbSxcbiAgICAgIGxpbmVIZWlnaHQ6IDEuMSxcbiAgICAgIGhlaWdodDogNDYwcHhcbiAgICApLFxuICAgIGhvcml6b250YWw6IChcbiAgICAgIGhlaWdodDogMTMwcHhcbiAgICApXG4gICksXG4gIGJyZWFrcG9pbnQ6IChcbiAgICBtZWRpdW06IGVtKDkxNXB4KVxuICApXG4pO1xuXG4uY2FsbG91dC1ibG9jayB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi4taW1hZ2Uge1xuICAgICY6bm90KC4tZ3JleSk6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQsICMwNzI5NzMpO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5jYWxsb3V0LWJsb2NrX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuLWdyZXkge1xuICAgICAgLmNhbGxvdXQtYmxvY2tfX2ltYWdlIHtcbiAgICAgICAgdG9wOiA5MHB4O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnQge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jYWxsb3V0LWJsb2NrX19pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMzVweDtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgfVxuICB9XG5cbiAgJi4tY29sb3Ige1xuICAgICYuLWdyZWVuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgICB9XG5cbiAgICAmLi1ibGFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4ZGFyayk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6ZXNcbiAgJi4tc21hbGwge1xuICAgIGhlaWdodDogc2V0dGluZygnc2l6ZXMuc21hbGwuaGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG4gIH1cblxuICAmLi1tZWRpdW0ge1xuICAgIGhlaWdodDogc2V0dGluZygnc2l6ZXMubWVkaXVtLmhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuXG4gICAgcCB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cblxuICAmLi1sYXJnZSB7XG4gICAgYm9yZGVyOiAyNXB4IHNvbGlkIHdoaXRlO1xuICAgIGhlaWdodDogc2V0dGluZygnc2l6ZXMubGFyZ2UuaGVpZ2h0JywgJGNhbGxvdXRCbG9jaykgLSAxMDBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5sYXJnZS5oZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcbiAgICB9XG4gIH1cblxuICAmLi1ob3Jpem9udGFsIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ3NpemVzLm1lZGl1bS5oZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScsICRjYWxsb3V0QmxvY2spKSB7XG4gICAgICBoZWlnaHQ6IHNldHRpbmcoJ3NpemVzLmhvcml6b250YWwuaGVpZ2h0JywgJGNhbGxvdXRCbG9jayk7XG5cbiAgICAgIC5jYWxsb3V0LWJsb2NrX19jb250ZW50X19sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgfVxuXG4gICAgICAuY2FsbG91dC1ibG9ja19fY29udGVudF9faGVhZGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICB9XG5cbiAgICAgIC5jYWxsb3V0LWJsb2NrX19jb250ZW50X19idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIHdpZHRoOiAxNSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jYWxsb3V0LWJsb2NrX19jb250ZW50IHtcblxuICAuY2FsbG91dC1ibG9jay4taW1hZ2UgJiB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihoZWlnaHQpO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1pbWFnZS4tZ3JleSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICAgIGhlaWdodDogOTBweDtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1idXR0b24gJiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMTRweCBzb2xpZCBjb2xvcihvcmFuZ2UpO1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAuY2FsbG91dC1ibG9ja19fY29udGVudF9fYnV0dG9uIHtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEyNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1jb2xvciAmIHtcbiAgICBwYWRkaW5nOiAwIDI1JSAwIDE1JTtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1ob3Jpem9udGFsICYge1xuICAgIHBhZGRpbmc6IDAgNyU7XG4gIH1cbn1cblxuLmNhbGxvdXQtYmxvY2tfX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcblxuICAuY2FsbG91dC1ibG9jay4taW1hZ2UgJiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWltYWdlLi1ncmV5ICYge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICBmb250LXNpemU6IDEuNzVlbTtcbiAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgfVxuXG4gIC4tYnV0dG9uICYge1xuICAgIHBhZGRpbmctdG9wOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1jb2xvciAmIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuMjVlbTtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1zbWFsbCAmIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ3NpemVzLnNtYWxsLmZvbnRTaXplJywgJGNhbGxvdXRCbG9jayk7XG4gICAgbGluZS1oZWlnaHQ6IHNldHRpbmcoJ3NpemVzLnNtYWxsLmxpbmVIZWlnaHQnLCAkY2FsbG91dEJsb2NrKTtcbiAgfVxuXG4gIC5jYWxsb3V0LWJsb2NrLi1tZWRpdW0gJiB7XG4gICAgZm9udC1mYW1pbHk6ICRvcGVuU2Fuc0NvbmRlbnNlZDtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ3NpemVzLm1lZGl1bS5mb250U2l6ZScsICRjYWxsb3V0QmxvY2spO1xuICAgIGxpbmUtaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5tZWRpdW0ubGluZUhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuICB9XG5cbiAgLmNhbGxvdXQtYmxvY2suLWxhcmdlICYge1xuICAgIGZvbnQtc2l6ZTogc2V0dGluZygnc2l6ZXMubGFyZ2UuZm9udFNpemUnLCAkY2FsbG91dEJsb2NrKSAtIDFlbTtcbiAgICBsaW5lLWhlaWdodDogc2V0dGluZygnc2l6ZXMubGFyZ2UubGluZUhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGZvbnQtc2l6ZTogc2V0dGluZygnc2l6ZXMubGFyZ2UuZm9udFNpemUnLCAkY2FsbG91dEJsb2NrKTtcbiAgICB9XG4gIH1cblxuICAuY2FsbG91dC1ibG9jay4taG9yaXpvbnRhbCAmIHtcbiAgICBmb250LXNpemU6IHNldHRpbmcoJ3NpemVzLm1lZGl1bS5mb250U2l6ZScsICRjYWxsb3V0QmxvY2spO1xuICAgIGxpbmUtaGVpZ2h0OiBzZXR0aW5nKCdzaXplcy5tZWRpdW0ubGluZUhlaWdodCcsICRjYWxsb3V0QmxvY2spO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScsICRjYWxsb3V0QmxvY2spKSB7XG4gICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59IiwiLmNhdGVnb3J5LXNlbGVjdCB7XG4gIHdpZHRoOiA1MCU7XG59XG4iLCIuZW1iZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLnBob3RvIHtcbiAgICBvcGFjaXR5OiAuODtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogLjQ7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1lIHtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYuLW1vZGFsLW92ZXJsYXlbZGF0YS1sb2FkZWQ9ZmFsc2VdOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgLjYpKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAuNikpO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsO1xuICAgIHRyYW5zaXRpb246IGFsbDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG5cbi5lbWJlZFtkYXRhLWxvYWRlZD1mYWxzZV06OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vc3JjL2ltYWdlcy9wbGF5LnN2ZycpIG5vLXJlcGVhdDtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogNzBweDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogNzBweDtcbiAgei1pbmRleDogMTtcbn1cblxuLmVtYmVkW2RhdGEtbG9hZGVkPWZhbHNlXTpob3ZlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eTtcblxuICAucGhvdG8ge1xuICAgIG9wYWNpdHk6IC40O1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAuODtcbiAgfVxufVxuXG4uZW1iZWRbZGF0YS1sb2FkZWQ9dHJ1ZV0ge1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG5cbiAgLm5ldHdvcmstbW9kYWwtY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiJGV2ZW50OiAoXG4gIGJyZWFrcG9pbnQ6IChcbiAgICB4bGFyZ2U6IGVtKDEyMDBweClcbiAgKSxcbiAgaGVpZ2h0OiAzNTVweCxcbiAgcGFkZGluZzogKFxuICAgIGJvdHRvbTogOC43NSUsXG4gICAgbGVmdDogMTElLFxuICAgIHRvcDogNi4yNSUsXG4gICAgcmlnaHQ6IDExJVxuICApXG4pO1xuXG4uZXZlbnRfX2xpc3Qge1xuICAmOm5vdCguLWdyaWQpIHtcbiAgICAuZXZlbnQtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcbiAgICB9XG5cbiAgICAuZXZlbnQge1xuICAgICAgQGV4dGVuZCAuLWxpc3RpbmctZ3JpZDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihjb2xvcihncmV5LCB4bGlnaHQpLCA1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmV2ZW50X19hcnJvdyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYuLWdyaWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBleHRlbmQgLmdyaWQ7XG4gICAgQGV4dGVuZCAuLWNvbDMtMTtcblxuICAgIC5ldmVudF9fZGVzY3JpcHRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuZXZlbnQge1xuICAgICAgbWFyZ2luLXRvcDogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLmV2ZW50X19hcnJvdyB7XG4gICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC4tcHJvbW8ge1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgIH1cblxuICAgIC5ldmVudF9fbWV0YSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xuICAgIH1cbiAgfVxufVxuXG4uZXZlbnQge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxuXG4gID4gcCB7XG4gICAgZm9udC1zaXplOiAwLjgxM2VtO1xuICB9XG5cbn1cblxuLmV2ZW50X19pbWFnZSB7XG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGp1c3RpZnktc2VsZjogYXV0bztcbiAgfVxufVxuXG4uZXZlbnRfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC1zaXplOiAxLjEyNWVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICAvL2xpbmUtaGVpZ2h0OiAxLjE1O1xuXG4gIC8vQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gIC8vICBmb250LXNpemU6IDEuNzVlbTtcbiAgLy8gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIC8vfVxuICAvL1xuICAvL0BpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gIC8vICBmb250LXNpemU6IDEuODc1ZW07XG4gIC8vfVxuICAvL1xuICAvL0BpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC54bGFyZ2UnLCAkZXZlbnQpKSB7XG4gIC8vICBmb250LXNpemU6IDIuMTI1ZW07XG4gIC8vICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLy99XG59XG5cbi5ldmVudF9fbWV0YSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFza2VydmlsbGU7XG4gIGZvbnQtc2l6ZTogLjkzOGVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLmV2ZW50X19idXR0b24ge1xuXG59XG5cbi5ldmVudF9fYXJyb3cge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHJpZ2h0KTtcbiAgY29sb3I6IGNvbG9yKHB1cnBsZSk7XG4gIGZvbnQtc2l6ZTogNjRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMjBweDtcbiAgdG9wOiAtMjBweDtcbn1cblxuLmV2ZW50X19jdGEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuXG4gICYuLXByb21vIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihvcmFuZ2UpO1xuXG4gIH1cblxuICBwIHtcbiAgICBjb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbWFyZ2luOiAuNWVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4iLCIuZmVhdHVyZWQtZW50cnkge1xuICBjb2xvcjogd2hpdGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4uZmVhdHVyZWQtZW50cnlfX2dyaWQge1xuICBAZXh0ZW5kIC4tZmVhdHVyZWQtZW50cnktZ3JpZDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSA5MHB4O1xuICB9XG59XG5cbi5mZWF0dXJlZC1lbnRyeV9fY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAyMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5mZWF0dXJlZC1lbnRyeV9fY29udGVudF9faGVhZGxpbmUge1xuICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS4xODhlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mZWF0dXJlZC1lbnRyeV9faW1hZ2UuLXN2ZyB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZlYXR1cmVkLWVudHJ5X19jdGFfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgfVxuICB9XG59IiwiLmZlYXR1cmVkLWV2ZW50X19jb250YWluZXIge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICAgIG1hcmdpbjogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gICAgfVxuXG4gIGgyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgPiBwIHtcbiAgICBmb250LXNpemU6IDEuMTg4ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4uZmVhdHVyZWQtZXZlbnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8uZmVhdHVyZWQtZXZlbnRfX2dyaWQge1xuLy8gIEBleHRlbmQgLi1mZWF0dXJlZC1ldmVudC1ncmlkO1xuLy8gIGhlaWdodDogMTAwJTtcbi8vICBhbGlnbi1pdGVtczogY2VudGVyO1xuLy8gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSAwO1xuLy9cbi8vICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuLy8gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpIDkwcHg7XG4vLyAgfVxuLy99XG5cbi5mZWF0dXJlZC1ldmVudF9fY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAyMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5mZWF0dXJlZC1ldmVudF9fY29udGVudF9faGVhZGxpbmUge1xuICBmb250LWZhbWlseTogJGJhc2tlcnZpbGxlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS4xODhlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mZWF0dXJlZC1ldmVudF9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZlYXR1cmVkLWV2ZW50X19jdGFfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxufVxuXG4uZmVhdHVyZWQtZXZlbnRfX21ldGEge1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEuMDYzZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufSIsIi5nbG9iYWwtZm9vdGVyX19jb250YWN0LWluZm8ge1xuICBsaW5lLWhlaWdodDogMS42N2VtO1xuXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgIH1cbiAgfVxufVxuIiwiLmdsb2JhbC1mb290ZXJfX25hdiB7XG4gIHVsIHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgfVxuICB9XG59XG4iLCIuZ2xvYmFsLWZvb3Rlcl9fcGFydG5lcnMge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMCAuNzVlbTtcbiAgfVxuXG4gIGltZyxcbiAgc3ZnIHtcbiAgICBtYXgtaGVpZ2h0OiA0MXB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgc3ZnIHBhdGgsXG4gIHN2ZyByZWN0LFxuICBzdmcgcG9seWdvbiB7XG4gICAgZmlsbDogY29sb3IoZ3JheSk7XG4gIH1cblxuICAjdG5jYy1sb2dvIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAjdG5lY2FtcHVzLWxvZ28ge1xuICAgIGhlaWdodDogMjhweDtcbiAgfVxuXG4gICNwYXRod2F5LWxvZ28ge1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuXG4gICN3b3JrZm9yY2UtbG9nbyB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICB9XG59XG4iLCIuZ3JpZC10aXRsZSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC44ZW07XG4gICAgd2lkdGg6IDMwJTtcbiAgfVxufVxuIiwiLmdyaWQtZmlsdGVycyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNzAlO1xuICB9XG5cbiAgLmdyaWQtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4uZ3JpZC1maWx0ZXJzX19ncm91cCB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgIHBhZGRpbmctbGVmdDogZ3V0dGVyKDkpO1xuICB9XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbiIsIi5pY29uLWxpbmtzIHtcbiAgcGFkZGluZy10b3A6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgcGFkZGluZy1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcblxuICBhOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAmOmFmdGVye1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAtMjBweDtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk3OTc5NztcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiA2MHB4O1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59IiwiLmxhYmVsIHtcbiAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDVweDtcblxuICAmLi13aGl0ZSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgJi4tZ3JheSB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICB9XG5cbiAgJi4tZ3JlZW4ge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGdyZWVuKSwgMjAlKTtcbiAgfVxufVxuIiwiLmxpc3RpbmctYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMjMwcHg7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxpc3RpbmctYmxvY2tfX2ltYWdlIHtcbiAgb3BhY2l0eTogLjg1O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC5saXN0aW5nLWJsb2NrOmhvdmVyICYge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJi4tbm8taW1hZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICBtaW4taGVpZ2h0OiAxNzZweDtcbiAgfVxufVxuXG4ubGlzdGluZy1ibG9ja19fY2FwdGlvbiB7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBtYXJnaW4tdG9wOiAuNWVtO1xufVxuIiwiLmxpc3RpbmctY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1yb3ctZ2FwOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIGdyaWQtYXV0by1yb3dzOiAxZnI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgZ3JpZC1yb3ctZ2FwOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nTGFyZ2UnKTtcbiAgICB9XG4gIH1cblxuLmxpc3RpbmctaXRlbSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtY29sdW1uLWdhcDogNDBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzUlIGF1dG87XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5saXN0aW5nLWl0ZW1fX2ltYWdlIHtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xufVxuXG4ubGlzdGluZy1pdGVtX19oZWFkaW5nIHtcbiAgaDEge1xuICAgIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gICAgZm9udC1zaXplOiAxLjE4OHJlbTtcbiAgfVxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLmxpc3RpbmctaXRlbV9fc3ViaGVhZCBwIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmxpc3RpbmctaXRlbV9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gIH1cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5saXN0aW5nLWl0ZW1fX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLmxpc3RpbmctaXRlbV9fYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn0iLCIubG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0Lm1lZGl1bScpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDkwO1xuICBoZWlnaHQ6IDg1cHg7XG4gIHdpZHRoOiA4NXB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIGltZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJjpob3ZlciBpbWcge1xuICAgIG9wYWNpdHk6IC43NTtcbiAgfVxuXG4gIC5nbG9iYWwtaGVhZGVyICYge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNzdweDtcbiAgICBoZWlnaHQ6IDEwM3B4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDc3cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhsYXJnZScpKSB7XG4gICAgICB3aWR0aDogNzdweDtcbiAgICB9XG4gIH1cbn0iLCIkbWVkaWE6IChcbiAgZmxvYXRzOiBsZWZ0IHJpZ2h0LFxuICB3aWRlOiAoXG4gICAgYnJlYWtwb2ludDogZW0oMTA4NHB4ICsgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpICsgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpKSxcbiAgICB3aWR0aDogMTA4NHB4XG4gIClcbik7XG5cbi5tZWRpYSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6IDg2OHB4O1xuICBtYXJnaW46IDQwcHggYXV0byA1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ3dpZGUuYnJlYWtwb2ludCcsICRtZWRpYSkpIHtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcbiAgfVxuXG4gIC8vIE1vZGlmaWVyc1xuXG4gICYuLXdpZGUge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnd2lkZS5icmVha3BvaW50JywgJG1lZGlhKSkge1xuICAgICAgd2lkdGg6IHNldHRpbmcoJ3dpZGUud2lkdGgnLCAkbWVkaWEpO1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRkaXJlY3Rpb24gaW4gc2V0dGluZygnZmxvYXRzJywgJG1lZGlhKSB7XG4gICAgJGNsYXNzbmFtZTogLSN7JGRpcmVjdGlvbn07XG4gICAgJG9wcG9zaXRlOiBpZigkZGlyZWN0aW9uID09ICdsZWZ0JywgcmlnaHQsIGxlZnQpO1xuXG4gICAgJi4jeyRjbGFzc25hbWV9IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoNDgwcHgpIHtcbiAgICAgICAgZmxvYXQ6ICRkaXJlY3Rpb247XG4gICAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZX06IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh3aWR0aCA0ODBweCA1OTlweCkge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KDgwMHB4KSB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAtI3tzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJykgKiAyfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudmlkZW8tZW1iZWQsIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvLyBDb21wb25lbnRzXG5cbiAgLm1lZGlhX19jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCg0MDBweCkge1xuICAgICAgbWFyZ2luOiAyOHB4IGF1dG8gMDtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCd3aWRlLmJyZWFrcG9pbnQnLCAkbWVkaWEpKSB7XG4gICAgICBtYXJnaW46IDQ4cHggYXV0byAwO1xuICAgICAgd2lkdGg6IHBlcmNlbnQoNjA0cHgsIDg2OHB4KTtcbiAgICB9XG4gIH1cbn0iLCIub3ZlcnZpZXcgIHtcbiAgcGFkZGluZy1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIHBhZGRpbmctYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nTGFyZ2UnKTtcbiAgfVxuXG4gICYuLXNtYWxse1xuICAgIHBhZGRpbmctYm90dG9tOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG1hcmdpbjogMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICBmb250LXNpemU6IDEuMTg4ZW07XG4gICAgfVxuICB9XG59IiwiLmJ1cmdlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiBzZXR0aW5nKCdnbG9iYWwuaGVhZGVyLmhlaWdodC5tZWRpdW0nKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXJpZ2h0OiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgcGFkZGluZy1yaWdodDogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5idXJnZXJfX2ljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5idXJnZXJfX2ljb25fX2JhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzcHg7XG4gIG1hcmdpbjogNXB4IGF1dG87XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjI1cywgbWFyZ2luIC4yNXMgZWFzZSwgdHJhbnNmb3JtIC41cyBlYXNlO1xuICB3aWR0aDogMjVweDtcblxuICAuYnVyZ2VyOmhvdmVyICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gIH1cblxuICAuYnVyZ2VyLmlzLWFjdGl2ZSAmLi10b3Age1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgcm90YXRlWig0NWRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGVaKDQ1ZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgcm90YXRlWig0NWRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgcm90YXRlWig0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgcm90YXRlWig0NWRlZyk7XG4gIH1cblxuICAuYnVyZ2VyLmlzLWFjdGl2ZSAmLi1taWRkbGUge1xuICAgIHdpZHRoOiAwO1xuICB9XG5cbiAgLmJ1cmdlci5pcy1hY3RpdmUgJi4tYm90dG9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGVaKC00NWRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtNDVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlWigtNDVkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGVaKC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHJvdGF0ZVooLTQ1ZGVnKTtcbiAgfVxufVxuXG4uYnVyZ2VyX190ZXh0IHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtc2l6ZTogLjc1ZW07XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIG1hcmdpbi1yaWdodDogLjc1ZW07XG4gIHBhZGRpbmc6IC41ZW0gMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjI1cztcblxuICAuYnVyZ2VyOmhvdmVyICYge1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICB9XG59XG4iLCIubmF2LWxpbmsge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyBTdGF0ZXNcblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFR5cGVzXG5cbiAgJi4tcHJpbWFyeSB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlcicpIHNldHRpbmcoJ2d1dHRlcicpIDE1cHg7XG4gICAgei1pbmRleDogMztcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwYWRkaW5nOiA0MXB4IDE1cHg7XG4gICAgICBmb250LXNpemU6IC45cmVtO1xuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdi5leHBhbmRlZCAmIHtcbiAgICAgIGNvbG9yOiBjb2xvcihibHVlKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCA1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJiB7XG4gICAgICBjb2xvcjogbGlnaHRlbihjb2xvcihibHVlKSwgNSUpO1xuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiA+IC4tY3VycmVudCAmIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgY29sb3Iob3JhbmdlKTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiBjYWxjKDQxcHggKyAxNnB4ICsgNXB4KTtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmLi1hY3RpdmUsXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjpob3ZlcixcbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmFjdGl2ZSxcbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICAgIH1cbiAgfVxuXG4gICYuLWRyb3Bkb3duLWxpbmsge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nOiAuNGVtIDFlbTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxM3B4O1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2ICYge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbWFyZ2luOiAwIDUlIDE0cHggMDtcbiAgICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLi1hY3RpdmUsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGJsdWUpLCAyNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuLXNlY29uZGFyeSB7XG4gICAgY29sb3I6IGNvbG9yKGdyZXksIGxpZ2h0KTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGdyZXksIGxpZ2h0KSwgMjUlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLm5hdi1saW5rLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIHNpemUoNTJweCk7XG4gIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwO1xuXG4gIC5nbG9iYWwtaGVhZGVyICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYuaXMtYWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cblxuICBpLmljb24tcGx1cyxcbiAgaS5pY29uLW1pbnVzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGkuaWNvbi1taW51cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGkuaWNvbi1wbHVzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYuaXMtYWN0aXZlIHtcbiAgICBpLmljb24tcGx1cyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGkuaWNvbi1taW51cyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICArIC5uYXYtbWVudSBuYXYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLnByaW1hcnktbmF2ICYge1xuICAgIHotaW5kZXg6IDM7XG4gIH1cbn1cbiIsIi5uYXYtbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgY29sb3Iob3JhbmdlKTtcbiAgcGFkZGluZzogMjVweCAyMHB4O1xuICBtaW4td2lkdGg6IDQyMHB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcihncmV5LCBsaWdodCk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgY29sb3IoZ3JleSwgbGlnaHQpO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY29sb3IoZ3JleSwgbGlnaHQpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5wcmltYXJ5LW5hdiAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwczsgLy8gMHMgdHJhbnNpdGlvbiBzbyB0aGF0IHdlIGNhbiBnZXQgdGhlIHRyYW5zaXRpb24tZGVsYXkgYnV0IHdpdGhvdXQgYW55IGFuaW1hdGlvbi5cbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IC4zNXM7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDdweCAwIHJnYmEoMCwwLDAsMC4xNik7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgMnB4IDdweCAwIHJnYmEoMCwwLDAsMC4xNik7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCA3cHggMCByZ2JhKDAsMCwwLDAuMTYpO1xuXG4gICAgICAmOm5vdCguZWRnZSk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGxlZnQ6IDE5cHg7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAyMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDIxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDIxcHggc29saWQgI0RERERERDtcbiAgICAgICAgdG9wOiAtMjFweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCguZWRnZSk6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMjBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMjBweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgdG9wOiAtMjBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuXG4gICAgICAmLmVkZ2Uge1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcmlnaHQ6IDE5cHg7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAyMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAyMXB4IHNvbGlkICNEREREREQ7XG4gICAgICAgICAgdG9wOiAtMjFweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDIwcHggc29saWQgd2hpdGU7XG4gICAgICAgICAgdG9wOiAtMjBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgJjpub3QoLi1kb2NzLXRhZykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciB7XG4gICAgJi4tZG9jcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAuY29udGFpbmVyID4gbmF2IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgLXdlYmtpdC1jb2x1bW5zOiAyMjBweCAyO1xuICAgIC1tb3otY29sdW1uczogMjIwcHggMjtcbiAgICBjb2x1bW5zOiAyMjBweCAyO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY29sb3IoZ3JheSwgZGFyayk7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW46IDQwcHggMDtcbiAgICAgIHBhZGRpbmc6IDEwcHggNTVweDtcbiAgICAgIHdpZHRoOiA1MiU7XG5cbiAgICAgIHVsIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2e1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNWVtO1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG4gIH1cblxuICBoMyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgLm5hdi1tZW51X19zZWN0aW9uLW92ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMyNXB4O1xuICAgICAgcGFkZGluZzogNTBweCA1JSAwIDIyJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA0OCU7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgZm9udC1zaXplOiAyLjEyNWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW4tdG9wOiAxMXB4O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICAgIGZvbnQtc2l6ZTogLjg3NWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG5cbiAgICB9XG5cbiAgICAucGhvdG8ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSk7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWluLWhlaWdodDogMTY1cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMzglO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueGxhcmdlJykpIHtcbiAgICAgICAgbWluLWhlaWdodDogMjI1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAvL2JhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvY2hldnJvbi1yaWdodC1ncmVlbi5wbmcpIG5vLXJlcGVhdCByaWdodCA1cHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufSIsIi5wcmltYXJ5LW5hdiB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIC5nbG9iYWwtaGVhZGVyICYge1xuICAgIHBhZGRpbmctdG9wOiA1NnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1NXB4O1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgPiAucHJpbWFyeS1uYXZfX2l0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCBkYXJrKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xuXG4gICAgJi4taW5hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxufVxuIiwiLmdsb2JhbC1zZWFyY2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDFlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG5pbnB1dC5nbG9iYWwtc2VhcmNoX19ib3gge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IGNvbG9yKGJsdWUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiBjb2xvcihncmV5LCB4bGlnaHQpO1xuICBoZWlnaHQ6IDI1cHg7XG4gIHBhZGRpbmc6IC40ZW0gMWVtO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogY29sb3IoZ3JleSwgbGlnaHQpO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgbGlnaHRlbihjb2xvcihibHVlKSwgMjUlKTtcbiAgICBtYXJnaW46IDAgMC41ZW0gMCAwO1xuICAgIHBhZGRpbmc6IDAgMWVtIDAgMDtcbiAgICBjb2xvcjogY29sb3IoZ3JheSwgeGRhcmspO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAuM3M7XG4gICAgd2lkdGg6IDA7XG5cbiAgICAuZ2xvYmFsLXNlYXJjaC4tYWN0aXZlICYge1xuICAgICAgd2lkdGg6IDUwMHB4O1xuICAgICAgbWFyZ2luOiAwIDAuNWVtIDAgMDtcbiAgICB9XG4gIH1cbn1cblxuLmdsb2JhbC1zZWFyY2hfX2J1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS4zNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuM3M7XG4gIHotaW5kZXg6IDkwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMzZweCAxMnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gIC8vIFN0YXRlc1xuXG4gIC5nbG9iYWwtc2VhcmNoLi1hY3RpdmUgJixcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6Zm9jdXMsXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG4iLCIuc2Vjb25kYXJ5LW5hdiB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiBzZXR0aW5nKCdnbG9iYWwuaGVhZGVyLmJvcmRlckhlaWdodCcpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctcmlnaHQ6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxuXG59XG4iLCIuZG9jcy1zZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG5pbnB1dC5kb2NzLXNlYXJjaF9fYm94IHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGhlaWdodDogMjVweDtcbiAgcGFkZGluZzogLjRlbSAxZW07XG5cbiAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZTpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi5kb2NzLXNlYXJjaF9fYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBjb2xvcihibHVlKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4zcztcbiAgei1pbmRleDogOTA7XG5cbiAgLy8gU3RhdGVzXG5cbiAgLmRvY3Mtc2VhcmNoLi1hY3RpdmUgJixcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDI1JSk7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjphY3RpdmU6Zm9jdXMsXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59IiwiLmhlcm9fX2NvbnRlbnQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogMjA7XG59XG5cbmgxLmhlcm9fX2NvbnRlbnRfX2hlYWRsaW5lIHtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhzbWFsbCcpKSB7XG4gICAgZm9udC1zaXplOiAyLjVlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgZm9udC1zaXplOiAzZW07XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgZm9udC1zaXplOiAzLjc1ZW07XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIGZvbnQtc2l6ZTogNC41ZW07XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueGxhcmdlJykpIHtcbiAgICBmb250LXNpemU6IDUuMjVlbTtcbiAgfVxufVxuXG5oMi5oZXJvX19jb250ZW50X19oZWFkbGluZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMi4yNWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgZm9udC1zaXplOiAzLjVlbTtcbiAgfVxufVxuXG4uaGVyb19fY29udGVudF9faGVhZGxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbjogMCAyNXB4IDAgMjVweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufSIsIi8vVE9ETzogZ2V0IGZvbnQgYW5kIHNpemUgd2hlbiBJIGdldCBjb21wcy5cbi5wYWdlLXRpdGxlIHtcbiAgY29sb3I6IGNvbG9yKGdyYXksIHhkYXJrKTtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC1zaXplOiAxLjc1ZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAuNWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBmb250LXNpemU6IDIuMTI1ZW07XG4gIH1cblxuICAmLi1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAxLjYyNWVtO1xuICB9XG5cbiAgJi4td2hpdGUge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gICYuLWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmLi1wYWRkZWQge1xuICAgIG1hcmdpbjogM2VtIDA7XG4gIH1cblxuICAmLi1wYWRkZWQtdG9wIHtcbiAgICBtYXJnaW46IDNlbSAwIDA7XG4gIH1cblxuICAmLi1wYWRkZWQtYm90dG9tIHtcbiAgICBtYXJnaW46IDAgMCAzZW07XG4gIH1cbn1cbiIsIi5waG90by1nYWxsZXJ5LVByb2R1Y3ROYXZfV3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAxMXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucGhvdG8tZ2FsbGVyeS1Qcm9kdWN0TmF2IHtcbiAgLyogTWFrZSB0aGlzIHNjcm9sbGFibGUgd2hlbiBuZWVkZWQgKi9cbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLyogV2UgZG9uJ3Qgd2FudCB2ZXJ0aWNhbCBzY3JvbGxpbmcgKi9cbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAvKiBGb3IgV2ViS2l0IGltcGxlbWVudGF0aW9ucywgcHJvdmlkZSBpbmVydGlhIHNjcm9sbGluZyAqL1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC8qIFdlIGRvbid0IHdhbnQgaW50ZXJuYWwgaW5saW5lIGVsZW1lbnRzIHRvIHdyYXAgKi9cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogSWYgSlMgcHJlc2VudCwgbGV0J3MgaGlkZSB0aGUgZGVmYXVsdCBzY3JvbGxiYXIgKi9cbiAgLmpzICYge1xuICAgIC8qIE1ha2UgYW4gYXV0by1oaWRpbmcgc2Nyb2xsZXIgZm9yIHRoZSAzIHBlb3BsZSB1c2luZyBhIElFICovXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgLyogUmVtb3ZlIHRoZSBkZWZhdWx0IHNjcm9sbGJhciBmb3IgV2ViS2l0IGltcGxlbWVudGF0aW9ucyAqL1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIC8qIHBvc2l0aW9uaW5nIGNvbnRleHQgZm9yIGFkdmFuY2VycyAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIENydXNoIHRoZSB3aGl0ZXNwYWNlIGhlcmVcbiAgZm9udC1zaXplOiAwO1xufVxuXG4ucGhvdG8tZ2FsbGVyeS1Qcm9kdWN0TmF2X0NvbnRlbnRzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnBob3RvLWdhbGxlcnktUHJvZHVjdE5hdl9Db250ZW50cy1uby10cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLnBob3RvLWdhbGxlcnktUHJvZHVjdE5hdl9MaW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzg4ODtcbiAgLy8gUmVzZXQgdGhlIGZvbnQgc2l6ZVxuICBmb250LXNpemU6IDEuMnJlbTtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA0NHB4O1xuICBwYWRkaW5nOiAwIDExcHg7XG5cbiAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6ICMxMTE7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgfVxufVxuXG4ucGhvdG8tZ2FsbGVyeS1BZHZhbmNlciB7XG4gIC8qIFJlc2V0IHRoZSBidXR0b24gKi9cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDgwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC8qIE5vdyBzdHlsZSBpdCBhcyBuZWVkZWQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgLyogU2V0IHRoZSBidXR0b25zIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xufVxuXG4ucGhvdG8tZ2FsbGVyeS1BZHZhbmNlcl9MZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjVmNWYwLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpO1xuICBsZWZ0OiAwO1xuICBbZGF0YS1vdmVyZmxvd2luZz1cImJvdGhcIl0gfiAmLFxuICBbZGF0YS1vdmVyZmxvd2luZz1cImxlZnRcIl0gfiAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5waG90by1nYWxsZXJ5LUFkdmFuY2VyX1JpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICNmNWY1ZjAsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7XG4gIHJpZ2h0OiAwO1xuICBbZGF0YS1vdmVyZmxvd2luZz1cImJvdGhcIl0gIH4gJixcbiAgW2RhdGEtb3ZlcmZsb3dpbmc9XCJyaWdodFwiXSB+ICYge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnBob3RvLWdhbGxlcnktQWR2YW5jZXJfSWNvbiB7XG4gIGZvbnQtc2l6ZTogNTBweDtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBvcGFjaXR5OiAuNztcbn1cblxuLnBob3RvLWdhbGxlcnktUHJvZHVjdE5hdl9JbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiA0cHg7XG4gIHdpZHRoOiAxMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgbHVtLWZhZGUge1xuICAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbn1cblxuQGtleWZyYW1lcyBsdW0tZmFkZVpvb20ge1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC41KTsgb3BhY2l0eTogMDsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfVxufVxuXG5Aa2V5ZnJhbWVzIGx1bS1sb2FkZXItcm90YXRlIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoMCk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC0xODBkZWcpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTM2MGRlZyk7IH1cbn1cblxuQGtleWZyYW1lcyBsdW0tbG9hZGVyLWJlZm9yZSB7XG4gIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWCg2cHgpOyB9XG4gIDI1JSB7IHRyYW5zZm9ybTogc2NhbGUoMS4zKSB0cmFuc2xhdGVYKDhweCk7IH1cbiAgNDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHRyYW5zbGF0ZVgoNnB4KTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDYwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVYKDZweCk7IH1cbiAgNzUlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZVgoOHB4KTsgfVxuICA5MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWCg2cHgpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5cbkBrZXlmcmFtZXMgbHVtLWxvYWRlci1hZnRlciB7XG4gIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWCgtNnB4KTsgfVxuICAyNSUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMykgdHJhbnNsYXRlWCgtOHB4KTsgfVxuICA0MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWCgtNnB4KTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDYwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVYKC02cHgpOyB9XG4gIDc1JSB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSB0cmFuc2xhdGVYKC04cHgpOyB9XG4gIDkwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVYKC02cHgpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5cbi5sdW0tbGlnaHRib3gge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuLmx1bS1saWdodGJveC1pbm5lciB7XG4gIHRvcDogMi41JTtcbiAgcmlnaHQ6IDIuNSU7XG4gIGJvdHRvbTogMi41JTtcbiAgbGVmdDogMi41JTtcbn1cblxuLmx1bS1saWdodGJveC1pbm5lciBpbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sdW0tbGlnaHRib3gtaW5uZXIgLmx1bS1saWdodGJveC1jYXB0aW9uIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGNvbG9yOiAjZmZmO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sdW0tbG9hZGluZyAubHVtLWxpZ2h0Ym94LWxvYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNjZweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBhbmltYXRpb246IGx1bS1sb2FkZXItcm90YXRlIDE4MDBtcyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbi5sdW0tbGlnaHRib3gtbG9hZGVyOmJlZm9yZSwgLmx1bS1saWdodGJveC1sb2FkZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cblxuLmx1bS1saWdodGJveC1sb2FkZXI6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYW5pbWF0aW9uOiBsdW0tbG9hZGVyLWJlZm9yZSAxODAwbXMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4ubHVtLWxpZ2h0Ym94LWxvYWRlcjphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICBhbmltYXRpb246IGx1bS1sb2FkZXItYWZ0ZXIgMTgwMG1zIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtOTAwbXM7XG59XG5cbi5sdW0tbGlnaHRib3gubHVtLW9wZW5pbmcge1xuICBhbmltYXRpb246IGx1bS1mYWRlIDE4MG1zIGVhc2Utb3V0O1xufVxuXG4ubHVtLWxpZ2h0Ym94Lmx1bS1vcGVuaW5nIC5sdW0tbGlnaHRib3gtaW5uZXIge1xuICBhbmltYXRpb246IGx1bS1mYWRlWm9vbSAxODBtcyBlYXNlLW91dDtcbn1cblxuLmx1bS1saWdodGJveC5sdW0tY2xvc2luZyB7XG4gIGFuaW1hdGlvbjogbHVtLWZhZGUgMzAwbXMgZWFzZS1pbjtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbn1cblxuLmx1bS1saWdodGJveC5sdW0tY2xvc2luZyAubHVtLWxpZ2h0Ym94LWlubmVyIHtcbiAgYW5pbWF0aW9uOiBsdW0tZmFkZVpvb20gMzAwbXMgZWFzZS1pbjtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbn1cblxuLmx1bS1pbWcge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2Utb3V0O1xufVxuXG4ubHVtLWxvYWRpbmcgLmx1bS1pbWcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4ubHVtLWdhbGxlcnktYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDE1MCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3V0bGluZTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubHVtLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGxlZnQ6IDEycHg7XG59XG5cbi5sdW0tbmV4dC1idXR0b24ge1xuICByaWdodDogMTJweDtcbn1cblxuLmx1bS1nYWxsZXJ5LWJ1dHRvbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItdG9wOiA0cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuXG4ubHVtLXByZXZpb3VzLWJ1dHRvbjphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJveC1zaGFkb3c6IC0ycHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGxlZnQ6IDEyJTtcbiAgYm9yZGVyLXJhZGl1czogM3B4IDAgMCAwO1xufVxuXG4ubHVtLW5leHQtYnV0dG9uOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgYm94LXNoYWRvdzogMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICByaWdodDogMTIlO1xuICBib3JkZXItcmFkaXVzOiAwIDNweCAwIDA7XG59XG5cbi8vLyogVGhpcyBtZWRpYSBxdWVyeSBtYWtlcyBzY3JlZW5zIGxlc3MgdGhhbiA0NjBweCB3aWRlIGRpc3BsYXkgaW4gYSBcImZ1bGxzY3JlZW5cIi1lc3F1ZSBtb2RlLiBVc2VycyBjYW4gdGhlbiBzY3JvbGwgYXJvdW5kIGluc2lkZSB0aGUgbGlnaHRib3ggdG8gc2VlIHRoZSBlbnRpcmUgaW1hZ2UuICovXG4vL0BtZWRpYSAobWF4LXdpZHRoOiA0NjBweCkge1xuLy8gIC5sdW0tbGlnaHRib3gtaW1hZ2Utd3JhcHBlciB7XG4vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vICAgIG92ZXJmbG93OiBhdXRvO1xuLy8gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuLy8gIH1cbi8vXG4vLyAgLmx1bS1saWdodGJveC1jYXB0aW9uIHtcbi8vICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgYm90dG9tOiAwO1xuLy8gIH1cbi8vXG4vLyAgLmx1bS1saWdodGJveC1pbm5lciBpbWcge1xuLy8gICAgbWF4LXdpZHRoOiBub25lO1xuLy8gICAgbWF4LWhlaWdodDogbm9uZTtcbi8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8gIH1cbi8vfVxuIiwiJHF1b3RlOiAoXG4gIGJyZWFrcG9pbnQ6IChcbiAgICBtYXg6IGVtKDQ4MHB4IC0gMXB4KSxcbiAgICBtaW46IGVtKDQ4MHB4KSxcbiAgICBvZmZzZXQ6IGVtKDEwODRweCArIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSArIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKSArIDIwMHB4KVxuICApLFxuICBmbG9hdHM6IGxlZnQgcmlnaHQsXG4gIG1heFdpZHRoOiAyNTBweCxcbiAgb2Zmc2V0OiAtMTAwcHhcbik7XG5cbi5xdW90ZSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJ21heC13aWR0aCcgc2V0dGluZygnYnJlYWtwb2ludC5tYXgnLCAkcXVvdGUpKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5cbiAgQGVhY2ggJGRpcmVjdGlvbiBpbiBzZXR0aW5nKCdmbG9hdHMnLCAkcXVvdGUpIHtcbiAgICAkY2xhc3NuYW1lOiAtI3skZGlyZWN0aW9ufTtcblxuICAgICYuI3skY2xhc3NuYW1lfSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWluJywgJHF1b3RlKSkge1xuICAgICAgICBmbG9hdDogJGRpcmVjdGlvbjtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xZW07XG4gICAgICAgIG1heC13aWR0aDogc2V0dGluZygnbWF4V2lkdGgnLCAkcXVvdGUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQub2Zmc2V0JywgJHF1b3RlKSkge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogc2V0dGluZygnb2Zmc2V0JywgJHF1b3RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zaWRlYmFyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyZWVuKTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG4gIG1hcmdpbi10b3A6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcblxuICBoNCB7XG4gICAgZm9udC1mYW1pbHk6ICRvcGVuU2Fuc0NvbmRlbnNlZDtcbiAgICBmb250LXNpemU6IDEuMjUwZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgMDtcbiAgfVxufVxuXG4uc2lkZWJhci1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIHVsIHtcbiAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgcGFkZGluZzogMTJweCAyMHB4O1xuICB9XG59XG5cbi5zaWRlYmFyLW5hdl9fdGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDdweCAxNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uc2lkZWJhci1uYXZfX2l0ZW0ge1xuICBmb250LXNpemU6IC45Mzc1ZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgYSB7XG4gICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4ycztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDIwJSk7XG4gICAgfVxuICB9XG5cbiAgJi4tYWN0aXZlIGEge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cbn1cbiIsIiRzY2hlZHVsZTogKFxuICBicmVha3BvaW50OiAoXG4gICAgeGxhcmdlOiBlbSgxMjAwcHgpXG4gICksXG4gIGhlaWdodDogMzU1cHgsXG4gIHBhZGRpbmc6IChcbiAgICBib3R0b206IDguNzUlLFxuICAgIGxlZnQ6IDExJSxcbiAgICB0b3A6IDYuMjUlLFxuICAgIHJpZ2h0OiAxMSVcbiAgKVxuKTtcblxuLnNjaGVkdWxlX19saXN0IHtcbiAgLnNjaGVkdWxlLWl0ZW06bm90KDpmaXJzdC1jaGlsZCksXG4gIC5zY2hlZHVsZV9faGVhZGluZyB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5Nzk3OTc7XG4gIH1cblxuICAuc2NoZWR1bGUge1xuICAgIEBleHRlbmQgLi1saXN0aW5nLWdyaWQ7XG4gIH1cblxuICAuc2NoZWR1bGVfX2Fycm93IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbn1cblxuLnNjaGVkdWxlIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG5cbiAgPiBwIHtcbiAgICBmb250LXNpemU6IDAuODEzZW07XG4gIH1cblxufVxuXG4uc2NoZWR1bGVfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC1zaXplOiAxLjEyNWVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uc2NoZWR1bGVfX21ldGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJi4tZGF0ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxufVxuXG4uc2NoZWR1bGVfX2N0YSB7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgcCB7XG4gICAgY29sb3I6IGNvbG9yKGdyZXksIHhsaWdodCk7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNrZXJ2aWxsZTtcbiAgICBmb250LXNpemU6IDEuMTI1ZW07XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG1hcmdpbjogLjVlbSAwO1xuICB9XG59XG5cbi5zY2hlZHVsZV9faGVhZGluZyB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgZGlzcGxheTogbm9uZTtcblxuICBwIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxufSIsIi5zaWRlYmFyLWNhbGxvdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwdXJwbGUpO1xuICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgbWFyZ2luOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIC5zaWRlYmFyLWNhbGxvdXRfX2hlYWRpbmcsIGltZyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtZmFtaWx5OiAkb3BlblNhbnNDb25kZW5zZWQ7XG4gICAgZm9udC1zaXplOiAxLjM3NWVtO1xuICAgIG1hcmdpbi1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbiIsIi50YWItcGFuZWwge1xuICBoZWlnaHQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjI1cztcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbiIsIi50YWJsaXN0IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yKGdyYXksIHhsaWdodCk7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nOiA0ZW0gNyU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICBtYXJnaW4tdG9wOiA0LjVlbTtcbiAgICBwYWRkaW5nOiAuNWVtIDAgNGVtIDIwJTtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjdlbTtcbiAgfVxufVxuXG4udGFibGlzdF9fdGFiIHtcbiAgZm9udC1zaXplOiAuODc1cmVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxLjdlbTtcblxuICBhIHtcbiAgICBAaW5jbHVkZSBsaW5rKC44LCAwKTtcbiAgICBjb2xvcjogY29sb3IoZ3JheSk7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjI1cztcbiAgfVxuXG4gICYuaXMtc2VsZWN0ZWQge1xuICAgIGEge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGRhcmspO1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudG9wLWFycm93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICBib3R0b206IDNyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDEuOGVtO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDAuNDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogM3JlbTtcbiAgdHJhbnNpdGlvbjogLjI1cyBvcGFjaXR5O1xuICB6LWluZGV4OiA5OTk5O1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gIH1cbn1cbiIsIi5yZXNvdXJjZXMtdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuLmV2ZW50LXNjaGVkdWxlLWNhbGxvdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbn0iLCIuZmVhdHVyZWQtc3Rvcnkge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG87XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xuICB9XG5cbiAgLm92ZXJ2aWV3IHtcbiAgICBncmlkLXJvdzogMTtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgfVxuXG4gIC5mZWF0dXJlZC1zdG9yeS1pdGVtIHtcbiAgICBmbGV4OiBhdXRvO1xuICAgIHdpZHRoOiA5NSU7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cblxuICAuc29jaWFsLWNhbGxvdXQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMztcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgMWZyO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnhzbWFsbCcpKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7XG4gICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgICBncmlkLXJvdzogMSAvc3BhbiAyO1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICB9IFxuXG4gICAgLnNvY2lhbC1jYWxsb3V0LXRvcHtcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgfVxuXG4gICAgLnNvY2lhbC1jYWxsb3V0LWJvdHRvbSB7XG4gICAgICBncmlkLXJvdzogMjtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQueHNtYWxsJykpIHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICB9XG5cbiAgICAgIGkge1xuICAgICAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnBhZ2luYXRvciB7IFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuXG4gICAgYSwgLmN1cnJlbnQsIC5maXJzdC1wYWdlLCAubGFzdC1wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGJvcmRlci10b3A6IDAuNHB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4ycHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMC40cHggc29saWQgI0RERERERDtcbiAgICAgICAgbWF4LXdpZHRoOiA0NHB4O1xuICAgICAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGMDtcbiAgICAgICAgY29sb3I6ICMwMzEyM0Y7XG4gICAgfVxuICAgIC5jdXJyZW50IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMC40cHggc29saWQgI0RERERERDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjJweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwLjRweCBzb2xpZCAjREREREREO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREO1xuICAgICAgICBjb2xvcjogIzdEN0Q3RDtcbiAgICAgICAgbWF4LXdpZHRoOiA0NHB4O1xuICAgICAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgfVxuICAgIC5maXJzdC1wYWdlIHtcbiAgICAgICAgYm9yZGVyOiAwLjZweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4JTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGMDtcbiAgICAgICAgY29sb3I6ICMwMzEyM0Y7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgbWluLXdpZHRoOiA2NXB4O1xuICAgIH1cbiAgICAubGFzdC1wYWdlIHtcbiAgICAgICAgYm9yZGVyOiAwLjZweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4JTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGMDtcbiAgICAgICAgY29sb3I6ICMwMzEyM0Y7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDY1cHg7XG4gICAgfVxuICAgIC5wcmV2aW91cy1wYWdlIHtcbiAgICAgICAgYm9yZGVyOiAwLjZweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4JTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOCU7XG4gICAgfVxuICAgIC5uZXh0LXBhZ2Uge1xuICAgICAgICBib3JkZXItdG9wOiAwLjZweCBzb2xpZCAjREREREREO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDAuNnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDAuNnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4JTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDglO1xuICAgIH1cbn1cblxuLnBhZ2luYXRvci13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59IiwicC5jb250YWN0LWxlYWQtcCB7XG4gICAgbWFyZ2luOiAyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDNlbTtcbn1cblxuaW5wdXQjcGhvbmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IFxufSIsIi5qdWRnZXMtZGlyZWN0b3J5IHtcbiAgJi4td2l0aG91dC1pbWFnZXMge1xuICAgIC5qdWRnZSB7XG4gICAgICAuanVkZ2UtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5qdWRnZXMtZGlyZWN0b3J5LWZpbHRlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgYnV0dG9uLFxuICBzZWxlY3Qge1xuICAgIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsZXg6IDE7XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmp1ZGdlLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICBoMyB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gIH1cbn1cblxuLmp1ZGdlIHtcbiAgLmp1ZGdlLWltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICBpbWcge1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgaW1nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYWFhOyAgICAgICAgXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5qdWRnZS1kZXRhaWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLmltYWdlLXdyYXBwZXIge1xuICAgIG1heC13aWR0aDogNDAlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwiYXJ0aWNsZVwiO1xuQGltcG9ydCBcImNvbm5lY3QtYmFyXCI7XG5AaW1wb3J0IFwiZW1tYVwiO1xuQGltcG9ydCBcImV2ZW50LWRldGFpbC1jb250ZW50XCI7XG5AaW1wb3J0IFwiZ2xvYmFsLWZvb3RlclwiO1xuQGltcG9ydCBcImdsb2JhbC1oZWFkZXJcIjtcbkBpbXBvcnQgXCJnbG9iYWwtbmF2XCI7XG5AaW1wb3J0IFwiaGVyb1wiO1xuQGltcG9ydCBcIm1haW4tY29udGVudFwiO1xuQGltcG9ydCBcInZpZGVvLXBsYXlsaXN0XCI7XG5AaW1wb3J0IFwiZG9jc1wiO1xuQGltcG9ydCBcImRvY3MtaGVhZGVyXCI7XG5AaW1wb3J0IFwiNDA0XCI7XG4iLCIuYXJ0aWNsZSB7XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgfVxufVxuXG4uYXJ0aWNsZV9fdGl0bGUge1xuICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5hcnRpY2xlX190aXRsZS1hbHQge1xuICBmb250LXNpemU6IDNyZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLnNvY2lhbC1wb3N0LWNvbnRhaW5lciAuZmFiIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbi1yaWdodDogLjVlbTtcbn0iLCIuY29ubmVjdC1iYXIge1xuICBwYWRkaW5nOiAzLjg3NXJlbSAwICFpbXBvcnRhbnQ7XG5cbiAgLmdyaWQtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jb25uZWN0LWJhcl9fdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIG1hcmdpbi1ib3R0b206IC43NWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5cbi5jb25uZWN0LWJhcl9fc29jaWFsLWljb25zIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi5jb25uZWN0LWJhcl9faWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4yKTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBoZWlnaHQ6IDUwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgLjI1cztcbiAgd2lkdGg6IDUwcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjMpO1xuICB9XG5cbiAgLmljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cbiIsIi5lMm1hX3NpZ251cF9mb3JtIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gIEBleHRlbmQgLmdsb2JhbC1mb290ZXI7XG59XG5cbi5lMm1hX3NpZ251cF9mb3JtX2J1dHRvbiB7XG4gIEBleHRlbmQgIC5idXR0b247XG4gIEBleHRlbmQgLi1wcmltYXJ5O1xuICBAZXh0ZW5kIC4tc21hbGw7XG59XG5cbi5lMm1hX3NpZ251cF9mb3JtX3JvdyB7XG4gIEBleHRlbmQgLmZvcm0tY29udHJvbC1ncm91cDtcbn1cblxuLmUybWFfc2lnbnVwX2Zvcm1fZWxlbWVudCA+IGlucHV0IHtcbiAgQGV4dGVuZCAuZm9ybS1jb250cm9sO1xufVxuXG4uZTJtYV9zaWdudXBfZm9ybV9sYWJlbCB7XG4gIEBleHRlbmQgbGFiZWw7XG59IiwiLmV2ZW50LWRldGFpbC1jb250ZW50IHtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4iLCIuZ2xvYmFsLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGJsdWUpO1xuICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgZm9udC1zaXplOiAuODEzcmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBwYWRkaW5nOiA2MHB4IDAgMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgcCB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogLjgxM3JlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiAzMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gIH1cblxuICAuZm9ybS1jb250cm9sLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjYyNWVtO1xuICAgIG1hcmdpbi10b3A6IDAuNjI1ZW07XG4gIH1cbn1cblxuLmdsb2JhbC1mb290ZXJfX2hlYWRpbmcge1xuICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgZm9udC1zaXplOiAuODEzcmVtO1xuICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmdsb2JhbC1mb290ZXJfX3NvY2lhbCB7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXG4gIC5ncmlkLi1jb2wzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggNTBweCA1MHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjI1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGNvbG9yKGdyYXkpO1xuICAgIH1cbiAgfVxuXG4gIGkge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxuXG4gIHAge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiBjb2xvcihncmF5KTtcbiAgICBmb250LXNpemU6IC42ODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIH1cblxuICAjaGZpLWRvbmF0ZSB7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gIH1cblxuICAjaGZpLWRvbmF0ZS10ZXh0IHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAjaGZpLWRvbmF0ZS1pbWcge1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gIH1cbn1cblxuLmdsb2JhbC1mb290ZXJfX3NvY2lhbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmdsb2JhbC1mb290ZXJfX2xlZ2FsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA2MHB4O1xufSIsIi5nbG9iYWwtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1heC1oZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0Lm1lZGl1bScpO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuNXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuNXMgZWFzZTtcbiAgei1pbmRleDogNTA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2dsb2JhbC5oZWFkZXIuaGVpZ2h0LmxhcmdlJyk7XG4gICAgbWF4LWhlaWdodDogc2V0dGluZygnZ2xvYmFsLmhlYWRlci5oZWlnaHQubGFyZ2UnKTtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG5cbiAgJi4tZXhwYW5kZWR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgbWF4LWhlaWdodDogMTAwMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wcmltYXJ5LW5hdiA+IGxpICYuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICsgbWFpbiB7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgPiAuY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbiIsIi5nbG9iYWwtbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyLjVlbTtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuIiwiJGhlcm86IChcbiAgYmFja2dyb3VuZENvbG9yOiBjb2xvcihncmF5LCB4ZGFyayksXG4gIGNvbG9yOiAjZmZmLFxuICBoZWlnaHQ6IChcbiAgICBzdGFuZGFyZDogKFxuICAgICAgc21hbGw6IDM2MHB4LFxuICAgICAgbWVkaXVtOiA0MzVweCxcbiAgICAgIGxhcmdlOiA0OTBweFxuICAgICksXG4gICAgb3ZlcnNpemVkOiAoXG4gICAgICBzbWFsbDogJycsXG4gICAgICBtZWRpdW06ICcnLFxuICAgICAgbGFyZ2U6IDc3MHB4XG4gICAgKSxcbiAgICBzbWFsbDogKFxuICAgICAgc21hbGw6IDI1MHB4LFxuICAgICAgbWVkaXVtOiAzMjBweCxcbiAgICAgIGxhcmdlOiAzOTBweFxuICAgIClcbiAgKVxuKTtcblxuLmhlcm8ge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYmFja2dyb3VuZC1jb2xvcjogc2V0dGluZygnYmFja2dyb3VuZENvbG9yJywgJGhlcm8pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJi4td2l0aC1pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnN0YW5kYXJkLnNtYWxsJywgJGhlcm8pO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgIGhlaWdodDogc2V0dGluZygnaGVpZ2h0LnN0YW5kYXJkLm1lZGl1bScsICRoZXJvKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdoZWlnaHQuc3RhbmRhcmQubGFyZ2UnLCAkaGVybyk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMyk7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICB9XG5cbiAgICAmLi10b3Age1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwO1xuICB9XG5cbiAgJi4tb3ZlcnNpemVkIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5vdmVyc2l6ZWQubGFyZ2UnLCAkaGVybykgIWltcG9ydGFudDtcbiAgfVxuXG4gICYuLXNtYWxsIHtcbiAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5zbWFsbCcsICRoZXJvKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5tZWRpdW0nKSkge1xuICAgICAgaGVpZ2h0OiBzZXR0aW5nKCdoZWlnaHQuc21hbGwubWVkaXVtJywgJGhlcm8pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICBoZWlnaHQ6IHNldHRpbmcoJ2hlaWdodC5zbWFsbC5sYXJnZScsICRoZXJvKTtcbiAgICB9XG4gIH1cblxuICB2aWRlbyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG59XG4iLCIubWFpbi1jb250ZW50LFxuLm1haW4tY29udGVudC5jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIwO1xufVxuIiwiLyogWW91VHViZSBUViAqL1xuXG4vKiBCYXNlIENhbnZhcyAqL1xuLnl0di1jYW52YXN7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRiYWNrZ3JvdW5kOiAjMjgyODI4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG59XG4ueXR2LWNhbnZhcyA6Oi13ZWJraXQtc2Nyb2xsYmFye1xuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XG5cdHdpZHRoOiAxMHB4O1xufVxuLnl0di1jYW52YXMgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xufVxuXG4vKiBWaWRlbyAqL1xuLnl0di12aWRlb3tcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAzMDBweDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4ueXR2LXZpZGVvIGlmcmFtZXtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyogTGlzdCAqL1xuLnl0di1saXN0e1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBmb250LWZhbWlseTogJG9wZW5TYW5zO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodClcbn1cbi55dHYtbGlzdC1pbm5lcntcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MnB4O1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4ueXR2LWxpc3QgdWx7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLnl0di1saXN0IC55dHYtYWN0aXZlIGF7XG5cdGJvcmRlci1sZWZ0OiAycHggc29saWQgI2ZmZjtcbiAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yKGdyYXksIGxpZ2h0KSAhaW1wb3J0YW50O1xufVxuLnl0di1saXN0IGF7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0Y29sb3I6ICNGRUZFRkU7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdHBhZGRpbmctbGVmdDogOHB4O1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjUpO1xuXHRib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnl0di1saXN0IGEgYntcblx0bWF4LWhlaWdodDogNDVweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnl0di1saXN0IGxpOmZpcnN0LWNoaWxkIGF7IGJvcmRlci10b3A6IG5vbmU7IH1cbi55dHYtbGlzdCBsaTpsYXN0LWNoaWxkIGF7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbi55dHYtbGlzdCBhOmhvdmVyLFxuLnl0di1saXN0LWhlYWRlciAueXR2LXBsYXlsaXN0cyBhOmhvdmVyeyBiYWNrZ3JvdW5kOiBjb2xvcihncmF5LCBsaWdodCkgIWltcG9ydGFudDsgfVxuLnl0di1saXN0IGE6YWN0aXZlLFxuLnl0di1saXN0LWhlYWRlciAueXR2LXBsYXlsaXN0cyBhOmFjdGl2ZXsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA1KTsgfVxuXG4ueXR2LWxpc3QgLnl0di1jb250ZW50eyBwYWRkaW5nLWxlZnQ6IDEyNXB4OyB9XG4ueXR2LWxpc3QgLnl0di10aHVtYi1zdHJva2V7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAxcHg7XG5cdGxlZnQ6IDFweDtcblx0Ym90dG9tOiAxcHg7XG5cdHJpZ2h0OiAxcHg7XG5cdHotaW5kZXg6IDI7XG5cdG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XG59XG4ueXR2LWxpc3QgLnl0di10aHVtYntcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3V0bGluZTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC41KTtcbn1cbi55dHYtbGlzdCAueXR2LXRodW1iIGltZ3tcblx0d2lkdGg6IDEyMHB4O1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbi55dHYtbGlzdCAueXR2LXRodW1iIHNwYW57XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiA1cHg7XG5cdHJpZ2h0OiA1cHg7XG5cdGNvbG9yOiAjZWVlO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNyk7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdHBhZGRpbmc6IDBweCA0cHg7XG5cblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG5cdC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG59XG4ueXR2LXZpZXdze1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLXRvcDogNXB4O1xuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdG9wYWNpdHk6IDAuMztcbn1cblxuLnl0di1saXN0LWhlYWRlcntcblx0aGVpZ2h0OiA1MnB4O1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdC1tb3otYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnl0di1saXN0LWhlYWRlciBhe1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KSAhaW1wb3J0YW50O1xufVxuLnl0di1saXN0LWhlYWRlciBpbWcsXG4ueXR2LWxpc3QgLnl0di1wbGF5bGlzdHMgLnl0di10aHVtYiBpbWd7XG5cdHdpZHRoOiAzMHB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnl0di1saXN0LWhlYWRlciBzcGFue1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFBsYXlsaXN0cyAqL1xuLnl0di1wbGF5bGlzdHN7XG5cdHotaW5kZXg6IDk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZDogIzI4MjgyODtcblx0dG9wOjUycHg7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRkaXNwbGF5OiBub25lO1xufVxuLnl0di1wbGF5bGlzdHMgaW1nLFxuLnl0di1saXN0LWhlYWRlciBpbWd7XG5cdGZsb2F0OiBsZWZ0O1xufVxuLnl0di1wbGF5bGlzdHMgYSBzcGFuLFxuLnl0di1saXN0LWhlYWRlciBhIHNwYW57XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnl0di1saXN0LWhlYWRlciA+IGEgc3Bhbntcblx0bGluZS1oZWlnaHQ6IDMwcHg7XG59XG4ueXR2LWxpc3QtaGVhZGVyIC55dHYtcGxheWxpc3RzIGF7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG4ueXR2LXBsYXlsaXN0LW9wZW4gLnl0di1wbGF5bGlzdHN7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBNb2RpZmllcnMgKi9cbi55dHYtcmVsYXRpdmV7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cbi55dHYtZnVsbHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi55dHYtYXJyb3cge1xuXHRoZWlnaHQ6IDEwcHg7XG5cdHdpZHRoOiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogMTBweDtcblx0cmlnaHQ6IDVweDtcblx0Ym9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRmbG9hdDogcmlnaHQ7XG5cdGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwwLDAsMC40KTtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi55dHYtaGFzLXBsYXlsaXN0cyAueXR2LWFycm93e1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ueXR2LXBsYXlsaXN0LW9wZW4gLnl0di1hcnJvd3tcblx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xuXHR0b3A6IC0xMHB4O1xufVxuXG4ueXR2LWxpc3QtaGVhZGVyIGE6YWZ0ZXIsXG4ueXR2LWNsZWFyOmFmdGVyIHtcblx0Y29udGVudDogXCIuXCI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjbGVhcjogYm90aDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRsaW5lLWhlaWdodDogMDtcblx0aGVpZ2h0OiAwO1xufSIsIi4tZG9jcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvIGF1dG87XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcbiAgICB9XG5cbiAgICAubWFpbiB7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubG9nby1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvc3BhbiAyO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLi1kb2NzLWhlYWQtbG9nbyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdsb2JhbC1mb290ZXIge1xuICAgICAgICBncmlkLXJvdzogNDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC9zcGFuIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMS5oZXJvX19jb250ZW50X19oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIG1hcmdpbjogMC41ZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubWVkaXVtJykpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgICAgICAgICAgcGFkZGluZzogLjJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWNvbmRhcnktbmF2IHtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvc3BhbiAyO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5kb2NzLWhlYWRlciB7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgZ3JpZC1jb2x1bW46IDEgL3NwYW4gMjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgd2lkdGg6IDI1MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgICB9XG5cbiAgICAuZG9jcy1uYXYge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihibHVlKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZG9jcy1nbG9iYWwtaGVhZGVyIHtcbiAgICAgICAgbWF4LWhlaWdodDogODVweDtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG87XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgICYuLWV4cGFuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgLnByaW1hcnktbmF2ID4gbGkgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgICsgbWFpbiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXG4gICAgICAgID4gLmNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXJnZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAyNXB4IDEwcHggMTBweCAxMHB4O1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2IHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAucHJpbWFyeS1uYXZfX2l0ZW0ge1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4tZG9jcy1uYXYtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LW1lbnUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOm5vdCguZWRnZSk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgICY6bm90KC5lZGdlKTphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICAmLmVkZ2Uge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IoYmx1ZSksIDUlKTtcbiAgICB9XG5cbiAgICAubmF2LWxpbmsge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgXG4gICAgICAgICYuLXByaW1hcnkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpbWFyeS1uYXYuZXhwYW5kZWQgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIFxuICAgICAgICBpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJi4tYWN0aXZlLFxuICAgICAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmhvdmVyLFxuICAgICAgICAucHJpbWFyeS1uYXYgPiBsaTpob3ZlciAmOmFjdGl2ZSxcbiAgICAgICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmLi1kcm9wZG93bi1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIC5wcmltYXJ5LW5hdiAmIHtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi4tYWN0aXZlLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyB7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LWxpbmstYnV0dG9uIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKGJsdWUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBibHVlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRvY3MtbmF2IGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBkYXJrKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kb2NzLW5hdiBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yNWVtO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZG9jcy1uYXYgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgZGFyayk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCBsaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheSwgeGxpZ2h0KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4tZG9jcy1oZWFkLWxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgaGVpZ2h0OiA4NXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLi1kb2NzLWhlYWQtbG9nbyBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogODBweDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5nbG9iYWwtaGVhZGVyIC5wcmltYXJ5LW5hdiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5sYXJnZScpKSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5LW5hdiAucHJpbWFyeS1uYXZfX2l0ZW0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoYmx1ZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2X19pdGVtOmhvdmVyIGEge1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc2V0dGluZygnYnJlYWtwb2ludC5zbWFsbCcpKSB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoZ3JheSwgbGlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2ID4gbGk6aG92ZXIgLm5hdi1saW5rLi1wcmltYXJ5IHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LW1lbnUgbGk6aG92ZXIgYSB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LnNtYWxsJykpIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaW1hcnktbmF2X19pdGVtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICB9XG59IiwiLmZvdXItby1mb3VyLXBnIHtcblxuICAgIC5nbG9iYWwtc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMTAwJTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQuc21hbGwnKSkge1xuICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24uLXByaW1hcnkge1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgaW5wdXQjZ2xvYmFsLXNlYXJjaCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgfVxufSIsIkBtaXhpbiBzd2F0Y2hlcygkY29sb3JzOiAoKSkge1xuICBAZWFjaCAkbmFtZSwgJHNoYWRlcyBpbiAkY29sb3JzIHtcbiAgICBAZWFjaCAkc2hhZGUsICR2YWx1ZSBpbiAkc2hhZGVzIHtcbiAgICAgICYuLWNvbG9yLS0jeyRuYW1lfS0tI3skc2hhZGV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc3R5bGVndWlkZV9fbmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cblxuICBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogLjI1ZW0gLjVlbTtcbiAgICB9XG4gIH1cbn1cblxuLnNnX19pdGVtIHtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5zZ19faGVhZGluZyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBjb2xvcjogZ3JheTtcbiAgZm9udC1mYW1pbHk6ICRvcGVuU2FucztcbiAgZm9udC1zaXplOiA3MCU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgcGFkZGluZzogMWVtIDA7XG59XG5cbi5zZ19fY29sb3Ige1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IC4zZW07XG4gIHdpZHRoOiA1ZW07XG5cbiAgLnNnX19jb2xvcl9fc3dhdGNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDRlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgc3dhdGNoZXMoJGNvbG9ycyk7XG4gIH1cblxuICAuc2dfX2NvbG9yX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gIH1cbn1cblxuLnNnX19pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc2dfX3RvZG8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IC4xNWVtO1xufVxuXG4vLyBPdmVycmlkZXNcblxuLnN0eWxlZ3VpZGUge1xuICAuc2VjdGlvbi13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiA1ZW0gMDtcbiAgfVxuXG4gIC5oZXJvLi13aXRoLWltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmxvZ28ge1xuICAgICYuLWRpc3BsYXktb25seSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIHBhZGRpbmc6IDEuNWVtO1xuICAgICAgd2lkdGg6IDIwNXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBPYmplY3RzIG1heSBiZSB1c2VkIGluIGFueSBudW1iZXIgb2YgdW5yZWxhdGVkIGNvbnRleHRzIHRvIHRoZSBvbmUgeW91IGNhblxuLy8vIGN1cnJlbnRseSBzZWUgaXQgaW4uIE1ha2luZyBtb2RpZmljYXRpb25zIHRvIHRoZXNlIHR5cGVzIG9mIGNsYXNzIGNvdWxkXG4vLy8gcG90ZW50aWFsbHkgbGVhZCB0byB1bmludGVuZGVkIHJlc3VsdHMgaW4gYSBsb3Qgb2Ygb3RoZXIgdW5yZWxhdGVkIHBsYWNlcy5cbi8vLyBUcmVhZCBjYXJlZnVsbHkuXG4vLy9cbi8vLyAtIE9iamVjdHMgYXJlIGFic3RyYWN0XG4vLy8gLSBUaGV5IGNhbiBiZSB1c2VkIGluIGFueSBudW1iZXIgb2YgcGxhY2VzIGFjcm9zcyB0aGUgcHJvamVjdCDigJQgcGxhY2VzIHlvdVxuLy8vICAgbWlnaHQgbm90IGhhdmUgZXZlbiBzZWVuXG4vLy8gLSBBdm9pZCBtb2RpZnlpbmcgdGhlaXIgc3R5bGVzXG4vLy8gLSBCZSBjYXJlZnVsIGFyb3VuZCBhbnl0aGluZyB3aXRoIGEgbG93ZXItY2FzZSBjbGFzc25hbWVcbi8vL1xuLy8vICMjIyBGb3JtYXRcbi8vLyBgLm9iamVjdC1uYW1lWzxlbGVtZW50Pnw8bW9kaWZpZXI+XSB7fWBcbi8vL1xuLy8vICMjIyBFeGFtcGxlXG4vLy8gYGBgXG4vLy8gLmxheW91dCB7fVxuLy8vIC5sYXlvdXRfX2l0ZW0ge31cbi8vLyAubGF5b3V0LS1maXhlZCB7fVxuLy8vIGBgYFxuLy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCAnY29udGFpbmVyJztcbkBpbXBvcnQgJ3NlY3Rpb24td3JhcHBlcic7XG5AaW1wb3J0IFwidXBjb21pbmctZXZlbnRzXCI7XG5AaW1wb3J0IFwiZmItY29tbWVudHNcIjtcbiIsIi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IHNldHRpbmcoJ2NvbnRhaW5lcicsICRkZWZhdWx0LWxheW91dCk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdjb250YWluZXInLCAkZGVmYXVsdC1sYXlvdXQpKSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgICAmLi1mdWxsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmLi1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihncmF5LCB4bGlnaHQpO1xuICB9XG59XG4iLCIuc2VjdGlvbi13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbi1ib3R0b206IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW4tdG9wOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKTtcbiAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJyk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50Lm1lZGl1bScpKSB7XG4gICAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZ1NtYWxsJykgc2V0dGluZygnZ3V0dGVyUGFkZGluZycpO1xuICB9XG5cbiAgLy9AaW5jbHVkZSBicmVha3BvaW50KHNldHRpbmcoJ2JyZWFrcG9pbnQubGFyZ2UnKSkge1xuICAvLyAgcGFkZGluZzogc2V0dGluZygnZ3V0dGVyUGFkZGluZycpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmcnKTtcbiAgLy99XG5cbiAgLmdsb2JhbC1oZWFkZXIgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICAgIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdNZWRpdW0nKVxuICAgIH1cbiAgfVxuXG4gICYuLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gICYuLWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXksIHhsaWdodCk7XG4gIH1cblxuICAmLi1ncmVlbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JlZW4pO1xuICB9XG5cbiAgJi4tZmx1c2gtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtbGVmdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgJi4tZmx1c2gtcmlnaHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAmLi1mbHVzaC1hbGwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG4iLCIudXBjb21pbmctZXZlbnRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JleSwgeGxpZ2h0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpO1xuICBtYXJnaW46IHNldHRpbmcoJ2d1dHRlclBhZGRpbmdTbWFsbCcpIDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzZXR0aW5nKCdicmVha3BvaW50LmxhcmdlJykpIHtcbiAgICBwYWRkaW5nOiBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nU21hbGwnKSBzZXR0aW5nKCdndXR0ZXJQYWRkaW5nJyk7XG4gIH1cbn1cblxuLnVwY29taW5nLWV2ZW50c19fY29udHJvbHMge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgaSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICBjb2xvcjogY29sb3IoYmx1ZSk7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKGdyYXkpLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLmZiLWNvbW1lbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59IiwiIiwiQG1lZGlhIHByaW50IHtcblxuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgfVxuXG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgdGhlYWQgeyAvLyBoNWJwLmNvbS90XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG5cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IC41Y207XG4gIH1cblxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG5cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgU2l0ZS1zcGVjaWZpYyBzdHlsZXMgYmVsb3dcbiAgICovXG5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FDQUEsNERBQTREO0FBRTVEOzs7O0dBSUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxVQUFVO0VBQUUsT0FBTztFQUNoQyxvQkFBb0IsRUFBRSxJQUFJO0VBQUUsT0FBTztFQUNuQyx3QkFBd0IsRUFBRSxJQUFJO0VBQUUsT0FBTyxFQUN4Qzs7QUFFRDs7R0FFRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0gsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFRDtnRkFDZ0Y7QUFFaEY7Ozs7O0dBS0c7QUFFSCxBQUFBLE9BQU87QUFDUCxLQUFLO0FBQ0wsT0FBTztBQUNQLFVBQVU7QUFDVixNQUFNO0FBQ04sTUFBTTtBQUNOLE1BQU07QUFDTixNQUFNO0FBQ04sSUFBSTtBQUNKLElBQUk7QUFDSixHQUFHO0FBQ0gsT0FBTztBQUNQLE9BQU8sQ0FBQztFQUNOLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0FBRUQ7OztHQUdHO0FBRUgsQUFBQSxLQUFLO0FBQ0wsTUFBTTtBQUNOLFFBQVE7QUFDUixLQUFLLENBQUM7RUFDSixPQUFPLEVBQUUsWUFBWTtFQUFFLE9BQU87RUFDOUIsY0FBYyxFQUFFLFFBQVE7RUFBRSxPQUFPLEVBQ2xDOztBQUVEOzs7R0FHRztBQUVILEFBQUEsS0FBSyxBQUFBLElBQUssRUFBQSxBQUFBLFFBQUMsQUFBQSxHQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFRDs7O0dBR0c7Q0FFSCxBQUFBLEFBQUEsTUFBQyxBQUFBO0FBQ0QsUUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLElBQUksR0FDZDs7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 */
