@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/*# sourceMappingURL=main.css.map */
.mdc-button {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 2.25rem;
  font-weight: 500;
  letter-spacing: 0.08929em;
  text-decoration: none;
  text-transform: uppercase;
  padding: 0 8px 0 8px;
  display: -webkit-inline-flex;
  display: inline-flex;
  position: relative;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  min-width: 64px;
  height: 36px;
  border: none;
  outline: none;
  /* @alternate */
  line-height: inherit;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-appearance: none;
  overflow: hidden;
  vertical-align: middle;
  border-radius: 4px; }
  .mdc-button::-moz-focus-inner {
    padding: 0;
    border: 0; }
  .mdc-button:active {
    outline: none; }
  .mdc-button:hover {
    cursor: pointer; }
  .mdc-button:disabled {
    background-color: transparent;
    color: rgba(52, 58, 64, 0.37);
    cursor: default;
    pointer-events: none; }
  .mdc-button.mdc-button--dense {
    border-radius: 4px; }
  .mdc-button:not(:disabled) {
    background-color: transparent; }
  .mdc-button .mdc-button__icon {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 8px;
    display: inline-block;
    width: 18px;
    height: 18px;
    font-size: 18px;
    vertical-align: top; }
    [dir="rtl"] .mdc-button .mdc-button__icon, .mdc-button .mdc-button__icon[dir="rtl"] {
      /* @noflip */
      margin-left: 8px;
      /* @noflip */
      margin-right: 0; }
  .mdc-button:not(:disabled) {
    color: #212121;
    /* @alternate */
    color: var(--mdc-theme-primary, #212121); }

.mdc-button__label + .mdc-button__icon {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0; }
  [dir="rtl"] .mdc-button__label + .mdc-button__icon, .mdc-button__label + .mdc-button__icon[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 8px; }

svg.mdc-button__icon {
  fill: currentColor; }

.mdc-button--raised .mdc-button__icon,
.mdc-button--unelevated .mdc-button__icon,
.mdc-button--outlined .mdc-button__icon {
  /* @noflip */
  margin-left: -4px;
  /* @noflip */
  margin-right: 8px; }
  [dir="rtl"] .mdc-button--raised .mdc-button__icon, .mdc-button--raised .mdc-button__icon[dir="rtl"], [dir="rtl"]
  .mdc-button--unelevated .mdc-button__icon,
  .mdc-button--unelevated .mdc-button__icon[dir="rtl"], [dir="rtl"]
  .mdc-button--outlined .mdc-button__icon,
  .mdc-button--outlined .mdc-button__icon[dir="rtl"] {
    /* @noflip */
    margin-left: 8px;
    /* @noflip */
    margin-right: -4px; }

.mdc-button--raised .mdc-button__label + .mdc-button__icon,
.mdc-button--unelevated .mdc-button__label + .mdc-button__icon,
.mdc-button--outlined .mdc-button__label + .mdc-button__icon {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: -4px; }
  [dir="rtl"] .mdc-button--raised .mdc-button__label + .mdc-button__icon, .mdc-button--raised .mdc-button__label + .mdc-button__icon[dir="rtl"], [dir="rtl"]
  .mdc-button--unelevated .mdc-button__label + .mdc-button__icon,
  .mdc-button--unelevated .mdc-button__label + .mdc-button__icon[dir="rtl"], [dir="rtl"]
  .mdc-button--outlined .mdc-button__label + .mdc-button__icon,
  .mdc-button--outlined .mdc-button__label + .mdc-button__icon[dir="rtl"] {
    /* @noflip */
    margin-left: -4px;
    /* @noflip */
    margin-right: 8px; }

.mdc-button--raised,
.mdc-button--unelevated {
  padding: 0 16px 0 16px; }
  .mdc-button--raised:disabled,
  .mdc-button--unelevated:disabled {
    background-color: rgba(52, 58, 64, 0.12);
    color: rgba(52, 58, 64, 0.37); }
  .mdc-button--raised:not(:disabled),
  .mdc-button--unelevated:not(:disabled) {
    background-color: #212121; }
    @supports not (-ms-ime-align: auto) {
      .mdc-button--raised:not(:disabled),
      .mdc-button--unelevated:not(:disabled) {
        /* @alternate */
        background-color: var(--mdc-theme-primary, #212121); } }
  .mdc-button--raised:not(:disabled),
  .mdc-button--unelevated:not(:disabled) {
    color: #f8f9fa;
    /* @alternate */
    color: var(--mdc-theme-on-primary, #f8f9fa); }

.mdc-button--raised {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); }
  .mdc-button--raised:hover, .mdc-button--raised:focus {
    box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }
  .mdc-button--raised:active {
    box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }
  .mdc-button--raised:disabled {
    box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }

.mdc-button--outlined {
  border-style: solid;
  padding: 0 15px 0 15px;
  border-width: 1px; }
  .mdc-button--outlined:disabled {
    border-color: rgba(52, 58, 64, 0.37); }
  .mdc-button--outlined:not(:disabled) {
    border-color: #212121;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #212121); }

.mdc-button--dense {
  height: 32px;
  font-size: .8125rem; }

@-webkit-keyframes mdc-ripple-fg-radius-in {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
            animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
            transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }
  to {
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }

@keyframes mdc-ripple-fg-radius-in {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
            animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
            transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }
  to {
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }

@-webkit-keyframes mdc-ripple-fg-opacity-in {
  from {
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    opacity: 0; }
  to {
    opacity: var(--mdc-ripple-fg-opacity, 0); } }

@keyframes mdc-ripple-fg-opacity-in {
  from {
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    opacity: 0; }
  to {
    opacity: var(--mdc-ripple-fg-opacity, 0); } }

@-webkit-keyframes mdc-ripple-fg-opacity-out {
  from {
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    opacity: var(--mdc-ripple-fg-opacity, 0); }
  to {
    opacity: 0; } }

@keyframes mdc-ripple-fg-opacity-out {
  from {
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    opacity: var(--mdc-ripple-fg-opacity, 0); }
  to {
    opacity: 0; } }

.mdc-ripple-surface--test-edge-var-bug {
  --mdc-ripple-surface-test-edge-var: 1px solid #000;
  visibility: hidden; }
  .mdc-ripple-surface--test-edge-var-bug::before {
    border: var(--mdc-ripple-surface-test-edge-var); }

.mdc-button {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-button::before, .mdc-button::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-button::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-button.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-button.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-button.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-button.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-button.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-button::before, .mdc-button::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-button.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-button::before, .mdc-button::after {
    background-color: #212121; }
    @supports not (-ms-ime-align: auto) {
      .mdc-button::before, .mdc-button::after {
        /* @alternate */
        background-color: var(--mdc-theme-primary, #212121); } }
  .mdc-button:hover::before {
    opacity: 0.04; }
  .mdc-button:not(.mdc-ripple-upgraded):focus::before, .mdc-button.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-button:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-button:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-button.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

.mdc-button--raised::before, .mdc-button--raised::after,
.mdc-button--unelevated::before,
.mdc-button--unelevated::after {
  background-color: #f8f9fa; }
  @supports not (-ms-ime-align: auto) {
    .mdc-button--raised::before, .mdc-button--raised::after,
    .mdc-button--unelevated::before,
    .mdc-button--unelevated::after {
      /* @alternate */
      background-color: var(--mdc-theme-on-primary, #f8f9fa); } }

.mdc-button--raised:hover::before,
.mdc-button--unelevated:hover::before {
  opacity: 0.08; }

.mdc-button--raised:not(.mdc-ripple-upgraded):focus::before, .mdc-button--raised.mdc-ripple-upgraded--background-focused::before,
.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus::before,
.mdc-button--unelevated.mdc-ripple-upgraded--background-focused::before {
  transition-duration: 75ms;
  opacity: 0.24; }

.mdc-button--raised:not(.mdc-ripple-upgraded)::after,
.mdc-button--unelevated:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear; }

.mdc-button--raised:not(.mdc-ripple-upgraded):active::after,
.mdc-button--unelevated:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.24; }

.mdc-button--raised.mdc-ripple-upgraded,
.mdc-button--unelevated.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24; }

.mdc-card {
  border-radius: 4px;
  background-color: #e3f2fd;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #e3f2fd);
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  box-sizing: border-box; }

.mdc-card--outlined {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  border-width: 1px;
  border-style: solid;
  border-color: #cedce6; }

.mdc-card__media {
  position: relative;
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; }
  .mdc-card__media::before {
    display: block;
    content: ""; }

.mdc-card__media:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit; }

.mdc-card__media:last-child {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit; }

.mdc-card__media--square::before {
  margin-top: 100%; }

.mdc-card__media--16-9::before {
  margin-top: 56.25%; }

.mdc-card__media-content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  box-sizing: border-box; }

.mdc-card__primary-action {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  box-sizing: border-box;
  position: relative;
  outline: none;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden; }

.mdc-card__primary-action:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit; }

.mdc-card__primary-action:last-child {
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit; }

.mdc-card__actions {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
          flex-direction: row;
  -webkit-align-items: center;
          align-items: center;
  box-sizing: border-box;
  min-height: 52px;
  padding: 8px; }

.mdc-card__actions--full-bleed {
  padding: 0; }

.mdc-card__action-buttons,
.mdc-card__action-icons {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
          flex-direction: row;
  -webkit-align-items: center;
          align-items: center;
  box-sizing: border-box; }

.mdc-card__action-icons {
  color: rgba(52, 58, 64, 0.6);
  -webkit-flex-grow: 1;
          flex-grow: 1;
  -webkit-justify-content: flex-end;
          justify-content: flex-end; }

.mdc-card__action-buttons + .mdc-card__action-icons {
  /* @noflip */
  margin-left: 16px;
  /* @noflip */
  margin-right: 0; }
  [dir="rtl"] .mdc-card__action-buttons + .mdc-card__action-icons, .mdc-card__action-buttons + .mdc-card__action-icons[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 16px; }

.mdc-card__action {
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-flex-direction: row;
          flex-direction: row;
  -webkit-align-items: center;
          align-items: center;
  box-sizing: border-box;
  -webkit-justify-content: center;
          justify-content: center;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .mdc-card__action:focus {
    outline: none; }

.mdc-card__action--button {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 8px;
  padding: 0 8px; }
  [dir="rtl"] .mdc-card__action--button, .mdc-card__action--button[dir="rtl"] {
    /* @noflip */
    margin-left: 8px;
    /* @noflip */
    margin-right: 0; }
  .mdc-card__action--button:last-child {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 0; }
    [dir="rtl"] .mdc-card__action--button:last-child, .mdc-card__action--button:last-child[dir="rtl"] {
      /* @noflip */
      margin-left: 0;
      /* @noflip */
      margin-right: 0; }

.mdc-card__actions--full-bleed .mdc-card__action--button {
  -webkit-justify-content: space-between;
          justify-content: space-between;
  width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 8px 16px;
  /* @noflip */
  text-align: left; }
  [dir="rtl"] .mdc-card__actions--full-bleed .mdc-card__action--button, .mdc-card__actions--full-bleed .mdc-card__action--button[dir="rtl"] {
    /* @noflip */
    text-align: right; }

.mdc-card__action--icon {
  margin: -6px 0;
  padding: 12px; }

.mdc-card__action--icon:not(:disabled) {
  color: rgba(52, 58, 64, 0.6); }

.mdc-card__primary-action {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-card__primary-action::before, .mdc-card__primary-action::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-card__primary-action::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-card__primary-action.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-card__primary-action.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-card__primary-action.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-card__primary-action.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-card__primary-action.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-card__primary-action::before, .mdc-card__primary-action::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-card__primary-action.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-card__primary-action::before, .mdc-card__primary-action::after {
    background-color: #343a40; }
  .mdc-card__primary-action:hover::before {
    opacity: 0.04; }
  .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::before, .mdc-card__primary-action.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-card__primary-action:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-card__primary-action:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-card__primary-action.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

@-webkit-keyframes mdc-checkbox-unchecked-checked-checkmark-path {
  0%,
  50% {
    stroke-dashoffset: 29.78334; }
  50% {
    -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
            animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
  100% {
    stroke-dashoffset: 0; } }

@keyframes mdc-checkbox-unchecked-checked-checkmark-path {
  0%,
  50% {
    stroke-dashoffset: 29.78334; }
  50% {
    -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
            animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
  100% {
    stroke-dashoffset: 0; } }

@-webkit-keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {
  0%,
  68.2% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0); }
  68.2% {
    -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1);
            animation-timing-function: cubic-bezier(0, 0, 0, 1); }
  100% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1); } }

@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {
  0%,
  68.2% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0); }
  68.2% {
    -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1);
            animation-timing-function: cubic-bezier(0, 0, 0, 1); }
  100% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1); } }

@-webkit-keyframes mdc-checkbox-checked-unchecked-checkmark-path {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
            animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
    opacity: 1;
    stroke-dashoffset: 0; }
  to {
    opacity: 0;
    stroke-dashoffset: -29.78334; } }

@keyframes mdc-checkbox-checked-unchecked-checkmark-path {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
            animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
    opacity: 1;
    stroke-dashoffset: 0; }
  to {
    opacity: 0;
    stroke-dashoffset: -29.78334; } }

@-webkit-keyframes mdc-checkbox-checked-indeterminate-checkmark {
  from {
    -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
            animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    opacity: 1; }
  to {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    opacity: 0; } }

@keyframes mdc-checkbox-checked-indeterminate-checkmark {
  from {
    -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
            animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    opacity: 1; }
  to {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    opacity: 0; } }

@-webkit-keyframes mdc-checkbox-indeterminate-checked-checkmark {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
            animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    opacity: 0; }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
    opacity: 1; } }

@keyframes mdc-checkbox-indeterminate-checked-checkmark {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
            animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    opacity: 0; }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
    opacity: 1; } }

@-webkit-keyframes mdc-checkbox-checked-indeterminate-mixedmark {
  from {
    -webkit-animation-timing-function: mdc-animation-deceleration-curve-timing-function;
            animation-timing-function: mdc-animation-deceleration-curve-timing-function;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    opacity: 0; }
  to {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    opacity: 1; } }

@keyframes mdc-checkbox-checked-indeterminate-mixedmark {
  from {
    -webkit-animation-timing-function: mdc-animation-deceleration-curve-timing-function;
            animation-timing-function: mdc-animation-deceleration-curve-timing-function;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    opacity: 0; }
  to {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    opacity: 1; } }

@-webkit-keyframes mdc-checkbox-indeterminate-checked-mixedmark {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
            animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    opacity: 1; }
  to {
    -webkit-transform: rotate(315deg);
            transform: rotate(315deg);
    opacity: 0; } }

@keyframes mdc-checkbox-indeterminate-checked-mixedmark {
  from {
    -webkit-animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
            animation-timing-function: cubic-bezier(0.14, 0, 0, 1);
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
    opacity: 1; }
  to {
    -webkit-transform: rotate(315deg);
            transform: rotate(315deg);
    opacity: 0; } }

@-webkit-keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {
  0% {
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    opacity: 1; }
  32.8%,
  100% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    opacity: 0; } }

@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {
  0% {
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    opacity: 1; }
  32.8%,
  100% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    opacity: 0; } }

.mdc-checkbox {
  display: inline-block;
  position: relative;
  -webkit-flex: 0 0 18px;
          flex: 0 0 18px;
  box-sizing: content-box;
  width: 18px;
  height: 18px;
  padding: 11px;
  line-height: 0;
  white-space: nowrap;
  cursor: pointer;
  vertical-align: bottom; }

.mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {
  border-color: rgba(52, 58, 64, 0.54);
  background-color: transparent; }

.mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,
.mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {
  border-color: #415E7E;
  /* @alternate */
  border-color: var(--mdc-theme-secondary, #415E7E);
  background-color: #415E7E;
  /* @alternate */
  background-color: var(--mdc-theme-secondary, #415E7E); }

@-webkit-keyframes mdc-checkbox-fade-in-background-0 {
  0% {
    border-color: rgba(52, 58, 64, 0.54);
    background-color: transparent; }
  50% {
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E);
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); } }

@keyframes mdc-checkbox-fade-in-background-0 {
  0% {
    border-color: rgba(52, 58, 64, 0.54);
    background-color: transparent; }
  50% {
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E);
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); } }

@-webkit-keyframes mdc-checkbox-fade-out-background-0 {
  0%,
  80% {
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E);
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); }
  100% {
    border-color: rgba(52, 58, 64, 0.54);
    background-color: transparent; } }

@keyframes mdc-checkbox-fade-out-background-0 {
  0%,
  80% {
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E);
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); }
  100% {
    border-color: rgba(52, 58, 64, 0.54);
    background-color: transparent; } }

.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  -webkit-animation-name: mdc-checkbox-fade-in-background-0;
          animation-name: mdc-checkbox-fade-in-background-0; }

.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background, .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled ~ .mdc-checkbox__background {
  -webkit-animation-name: mdc-checkbox-fade-out-background-0;
          animation-name: mdc-checkbox-fade-out-background-0; }

.mdc-checkbox__checkmark {
  color: #f8f9fa; }

.mdc-checkbox__mixedmark {
  border-color: #f8f9fa; }

.mdc-checkbox__background::before {
  background-color: #415E7E; }
  @supports not (-ms-ime-align: auto) {
    .mdc-checkbox__background::before {
      /* @alternate */
      background-color: var(--mdc-theme-secondary, #415E7E); } }

.mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate) ~ .mdc-checkbox__background {
  border-color: rgba(52, 58, 64, 0.26); }

.mdc-checkbox__native-control[disabled]:checked ~ .mdc-checkbox__background,
.mdc-checkbox__native-control[disabled]:indeterminate ~ .mdc-checkbox__background {
  border-color: transparent;
  background-color: rgba(52, 58, 64, 0.26); }

@media screen and (-ms-high-contrast: active) {
  .mdc-checkbox__mixedmark {
    margin: 0 1px; } }

.mdc-checkbox--disabled {
  cursor: default;
  pointer-events: none; }

.mdc-checkbox__background {
  /* @noflip */
  left: 11px;
  /* @noflip */
  right: initial;
  display: -webkit-inline-flex;
  display: inline-flex;
  position: absolute;
  top: 11px;
  bottom: 0;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  width: 45%;
  height: 45%;
  border: 2px solid currentColor;
  border-radius: 2px;
  background-color: transparent;
  pointer-events: none;
  will-change: background-color, border-color;
  transition: background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-checkbox[dir="rtl"] .mdc-checkbox__background,
  [dir="rtl"] .mdc-checkbox .mdc-checkbox__background {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 11px; }

.mdc-checkbox__checkmark {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transition: opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-checkbox--upgraded .mdc-checkbox__checkmark {
    opacity: 1; }

.mdc-checkbox__checkmark-path {
  transition: stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  stroke: currentColor;
  stroke-width: 3.12px;
  stroke-dashoffset: 29.78334;
  stroke-dasharray: 29.78334; }

.mdc-checkbox__mixedmark {
  width: 100%;
  height: 0;
  -webkit-transform: scaleX(0) rotate(0deg);
          transform: scaleX(0) rotate(0deg);
  border-width: 1px;
  border-style: solid;
  opacity: 0;
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }

.mdc-checkbox--upgraded .mdc-checkbox__background,
.mdc-checkbox--upgraded .mdc-checkbox__checkmark,
.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,
.mdc-checkbox--upgraded .mdc-checkbox__mixedmark {
  transition: none !important; }

.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background, .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background, .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background, .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background {
  -webkit-animation-duration: 180ms;
          animation-duration: 180ms;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear; }

.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path {
  -webkit-animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;
          animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark {
  -webkit-animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;
          animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path {
  -webkit-animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;
          animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark {
  -webkit-animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;
          animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark {
  -webkit-animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;
          animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark {
  -webkit-animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;
          animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark {
  -webkit-animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;
          animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;
  transition: none; }

.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark {
  -webkit-animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;
          animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;
  transition: none; }

.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,
.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {
  transition: border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1), background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1); }
  .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path,
  .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__checkmark-path {
    stroke-dashoffset: 0; }

.mdc-checkbox__background::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0, 0);
          transform: scale(0, 0);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  content: "";
  will-change: opacity, transform;
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }

.mdc-checkbox__native-control:focus ~ .mdc-checkbox__background::before {
  -webkit-transform: scale(2.75, 2.75);
          transform: scale(2.75, 2.75);
  opacity: 0.12;
  transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 80ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 80ms 0ms cubic-bezier(0, 0, 0.2, 1); }

.mdc-checkbox__native-control {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: inherit; }
  .mdc-checkbox__native-control:disabled {
    cursor: default;
    pointer-events: none; }

.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
  transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);
  opacity: 1; }

.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  -webkit-transform: scaleX(1) rotate(-45deg);
          transform: scaleX(1) rotate(-45deg); }

.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__checkmark {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  opacity: 0;
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  transition: opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }

.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background .mdc-checkbox__mixedmark {
  -webkit-transform: scaleX(1) rotate(0deg);
          transform: scaleX(1) rotate(0deg);
  opacity: 1; }

.mdc-checkbox {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-checkbox::before, .mdc-checkbox::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-checkbox::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-checkbox.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-checkbox.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-checkbox.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-checkbox.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-checkbox.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-checkbox::before, .mdc-checkbox::after {
    background-color: #415E7E; }
    @supports not (-ms-ime-align: auto) {
      .mdc-checkbox::before, .mdc-checkbox::after {
        /* @alternate */
        background-color: var(--mdc-theme-secondary, #415E7E); } }
  .mdc-checkbox:hover::before {
    opacity: 0.04; }
  .mdc-checkbox:not(.mdc-ripple-upgraded):focus::before, .mdc-checkbox.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-checkbox:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-checkbox:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-checkbox.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }
  .mdc-checkbox::before, .mdc-checkbox::after {
    top: calc(50% - 50%);
    /* @noflip */
    left: calc(50% - 50%);
    width: 100%;
    height: 100%; }
  .mdc-checkbox.mdc-ripple-upgraded::before, .mdc-checkbox.mdc-ripple-upgraded::after {
    top: var(--mdc-ripple-top, calc(50% - 50%));
    /* @noflip */
    left: var(--mdc-ripple-left, calc(50% - 50%));
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-checkbox.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }

.mdc-ripple-upgraded--background-focused .mdc-checkbox__background::before {
  content: none; }

.mdc-chip__icon--leading {
  color: rgba(52, 58, 64, 0.54); }

.mdc-chip__icon--trailing {
  color: rgba(52, 58, 64, 0.54); }
  .mdc-chip__icon--trailing:hover {
    color: rgba(52, 58, 64, 0.62); }
  .mdc-chip__icon--trailing:focus {
    color: rgba(52, 58, 64, 0.87); }

.mdc-chip__icon.mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden) {
  width: 20px;
  height: 20px;
  font-size: 20px; }

.mdc-chip__icon.mdc-chip__icon--trailing {
  width: 18px;
  height: 18px;
  font-size: 18px; }

.mdc-chip__icon--trailing {
  margin: 0 -4px 0 4px; }

.mdc-chip {
  border-radius: 16px;
  background-color: #cedce6;
  color: rgba(52, 58, 64, 0.87);
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01786em;
  text-decoration: inherit;
  text-transform: inherit;
  height: 32px;
  display: -webkit-inline-flex;
  display: inline-flex;
  position: relative;
  -webkit-align-items: center;
          align-items: center;
  box-sizing: border-box;
  padding: 7px 12px;
  outline: none;
  cursor: pointer;
  overflow: hidden; }
  .mdc-chip:hover {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-chip.mdc-chip--selected .mdc-chip__checkmark,
  .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden) {
    /* @noflip */
    margin-left: -4px;
    /* @noflip */
    margin-right: 4px;
    margin-top: -4px;
    margin-bottom: -4px; }
    [dir="rtl"] .mdc-chip.mdc-chip--selected .mdc-chip__checkmark, .mdc-chip.mdc-chip--selected .mdc-chip__checkmark[dir="rtl"], [dir="rtl"]
    .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden),
    .mdc-chip .mdc-chip__icon--leading:not(.mdc-chip__icon--leading-hidden)[dir="rtl"] {
      /* @noflip */
      margin-left: 4px;
      /* @noflip */
      margin-right: -4px; }
  .mdc-chip:hover {
    color: #343a40;
    /* @alternate */
    color: var(--mdc-theme-on-surface, #343a40); }

.mdc-chip--exit {
  transition: opacity 75ms cubic-bezier(0.4, 0, 0.2, 1), width 150ms cubic-bezier(0, 0, 0.2, 1), padding 100ms linear, margin 100ms linear;
  opacity: 0; }

.mdc-chip__text {
  white-space: nowrap; }

.mdc-chip__icon {
  border-radius: 50%;
  outline: none;
  vertical-align: middle; }

.mdc-chip__checkmark {
  height: 20px; }

.mdc-chip__checkmark-path {
  transition: stroke-dashoffset 150ms 50ms cubic-bezier(0.4, 0, 0.6, 1);
  stroke-width: 2px;
  stroke-dashoffset: 29.78334;
  stroke-dasharray: 29.78334; }

.mdc-chip--selected .mdc-chip__checkmark-path {
  stroke-dashoffset: 0; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected {
  color: #212121;
  /* @alternate */
  color: var(--mdc-theme-primary, #212121); }
  .mdc-chip-set--choice .mdc-chip.mdc-chip--selected .mdc-chip__icon--leading {
    color: rgba(33, 33, 33, 0.54); }
  .mdc-chip-set--choice .mdc-chip.mdc-chip--selected:hover {
    color: #212121;
    /* @alternate */
    color: var(--mdc-theme-primary, #212121); }

.mdc-chip-set--choice .mdc-chip .mdc-chip__checkmark-path {
  stroke: #212121;
  /* @alternate */
  stroke: var(--mdc-theme-primary, #212121); }

.mdc-chip-set--choice .mdc-chip--selected {
  background-color: #e3f2fd;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #e3f2fd); }

.mdc-chip__checkmark-svg {
  width: 0;
  height: 20px;
  transition: width 150ms cubic-bezier(0.4, 0, 0.2, 1); }

.mdc-chip--selected .mdc-chip__checkmark-svg {
  width: 20px; }

.mdc-chip-set--filter .mdc-chip__icon--leading {
  transition: opacity 75ms linear;
  transition-delay: -50ms;
  opacity: 1; }
  .mdc-chip-set--filter .mdc-chip__icon--leading + .mdc-chip__checkmark {
    transition: opacity 75ms linear;
    transition-delay: 80ms;
    opacity: 0; }
    .mdc-chip-set--filter .mdc-chip__icon--leading + .mdc-chip__checkmark .mdc-chip__checkmark-svg {
      transition: width 0ms; }

.mdc-chip-set--filter .mdc-chip--selected .mdc-chip__icon--leading {
  opacity: 0; }
  .mdc-chip-set--filter .mdc-chip--selected .mdc-chip__icon--leading + .mdc-chip__checkmark {
    width: 0;
    opacity: 1; }

.mdc-chip-set--filter .mdc-chip__icon--leading-hidden.mdc-chip__icon--leading {
  width: 0;
  opacity: 0; }
  .mdc-chip-set--filter .mdc-chip__icon--leading-hidden.mdc-chip__icon--leading + .mdc-chip__checkmark {
    width: 20px; }

.mdc-chip {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-chip::before, .mdc-chip::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-chip::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-chip.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-chip.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-chip.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-chip.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-chip.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-chip::before, .mdc-chip::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-chip.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-chip::before, .mdc-chip::after {
    background-color: rgba(52, 58, 64, 0.87); }
  .mdc-chip:hover::before {
    opacity: 0.04; }
  .mdc-chip:not(.mdc-ripple-upgraded):focus::before, .mdc-chip.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-chip:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-chip:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-chip.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before {
  opacity: 0.08; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::after {
  background-color: #212121; }
  @supports not (-ms-ime-align: auto) {
    .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected::after {
      /* @alternate */
      background-color: var(--mdc-theme-primary, #212121); } }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected:hover::before {
  opacity: 0.12; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded):focus::before, .mdc-chip-set--choice .mdc-chip.mdc-chip--selected.mdc-ripple-upgraded--background-focused::before {
  transition-duration: 75ms;
  opacity: 0.2; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.2; }

.mdc-chip-set--choice .mdc-chip.mdc-chip--selected.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.2; }

@-webkit-keyframes mdc-chip-entry {
  from {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: .4; }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@keyframes mdc-chip-entry {
  from {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: .4; }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

.mdc-chip-set {
  padding: 4px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  box-sizing: border-box; }
  .mdc-chip-set .mdc-chip {
    margin: 4px; }

.mdc-chip-set--input .mdc-chip {
  -webkit-animation: mdc-chip-entry 100ms cubic-bezier(0, 0, 0.2, 1);
          animation: mdc-chip-entry 100ms cubic-bezier(0, 0, 0.2, 1); }

.mdc-dialog,
.mdc-dialog__scrim {
  position: fixed;
  top: 0;
  left: 0;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  width: 100%;
  height: 100%; }

.mdc-dialog {
  display: none;
  z-index: 7; }
  .mdc-dialog .mdc-dialog__surface {
    background-color: #e3f2fd;
    /* @alternate */
    background-color: var(--mdc-theme-surface, #e3f2fd); }
  .mdc-dialog .mdc-dialog__scrim {
    background-color: rgba(52, 58, 64, 0.32); }
  .mdc-dialog .mdc-dialog__title {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-dialog .mdc-dialog__content {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__title,
  .mdc-dialog.mdc-dialog--scrollable .mdc-dialog__actions {
    border-color: rgba(52, 58, 64, 0.12); }
  .mdc-dialog .mdc-dialog__surface {
    min-width: 280px; }
  @media (max-width: 592px) {
    .mdc-dialog .mdc-dialog__surface {
      max-width: calc(100vw - 32px); } }
  @media (min-width: 592px) {
    .mdc-dialog .mdc-dialog__surface {
      max-width: 560px; } }
  .mdc-dialog .mdc-dialog__surface {
    max-height: calc(100vh - 32px); }
  .mdc-dialog .mdc-dialog__surface {
    border-radius: 4px; }

.mdc-dialog__scrim {
  opacity: 0;
  z-index: -1; }

.mdc-dialog__container {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
          flex-direction: row;
  -webkit-justify-content: space-around;
          justify-content: space-around;
  box-sizing: border-box;
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
  opacity: 0; }

.mdc-dialog__surface {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-flex-grow: 0;
          flex-grow: 0;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  box-sizing: border-box;
  max-width: 100%;
  max-height: 100%; }
  .mdc-dialog[dir="rtl"] .mdc-dialog__surface,
  [dir="rtl"] .mdc-dialog .mdc-dialog__surface {
    text-align: right; }

.mdc-dialog__title {
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.25rem;
  line-height: 2rem;
  font-weight: 500;
  letter-spacing: 0.0125em;
  text-decoration: inherit;
  text-transform: inherit;
  display: block;
  position: relative;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 0 24px 9px;
  border-bottom: 1px solid transparent; }
  .mdc-dialog__title::before {
    display: inline-block;
    width: 0;
    height: 40px;
    content: "";
    vertical-align: 0; }
  .mdc-dialog[dir="rtl"] .mdc-dialog__title,
  [dir="rtl"] .mdc-dialog .mdc-dialog__title {
    text-align: right; }

.mdc-dialog--scrollable .mdc-dialog__title {
  padding-bottom: 15px; }

.mdc-dialog__content {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.03125em;
  text-decoration: inherit;
  text-transform: inherit;
  -webkit-flex-grow: 1;
          flex-grow: 1;
  box-sizing: border-box;
  margin: 0;
  padding: 20px 24px;
  overflow: auto;
  -webkit-overflow-scrolling: touch; }
  .mdc-dialog__content > :first-child {
    margin-top: 0; }
  .mdc-dialog__content > :last-child {
    margin-bottom: 0; }

.mdc-dialog__title + .mdc-dialog__content {
  padding-top: 0; }

.mdc-dialog--scrollable .mdc-dialog__content {
  padding-top: 8px;
  padding-bottom: 8px; }

.mdc-dialog__content .mdc-list:first-child:last-child {
  padding: 6px 0 0; }

.mdc-dialog--scrollable .mdc-dialog__content .mdc-list:first-child:last-child {
  padding: 0; }

.mdc-dialog__actions {
  display: -webkit-flex;
  display: flex;
  position: relative;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: flex-end;
          justify-content: flex-end;
  box-sizing: border-box;
  min-height: 52px;
  margin: 0;
  padding: 8px;
  border-top: 1px solid transparent; }
  .mdc-dialog--stacked .mdc-dialog__actions {
    -webkit-flex-direction: column;
            flex-direction: column;
    -webkit-align-items: flex-end;
            align-items: flex-end; }

.mdc-dialog__button {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0;
  max-width: 100%;
  text-align: right; }
  [dir="rtl"] .mdc-dialog__button, .mdc-dialog__button[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 8px; }
  .mdc-dialog__button:first-child {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 0; }
    [dir="rtl"] .mdc-dialog__button:first-child, .mdc-dialog__button:first-child[dir="rtl"] {
      /* @noflip */
      margin-left: 0;
      /* @noflip */
      margin-right: 0; }
  .mdc-dialog[dir="rtl"] .mdc-dialog__button,
  [dir="rtl"] .mdc-dialog .mdc-dialog__button {
    text-align: left; }
  .mdc-dialog--stacked .mdc-dialog__button:not(:first-child) {
    margin-top: 12px; }

.mdc-dialog--open,
.mdc-dialog--opening,
.mdc-dialog--closing {
  display: -webkit-flex;
  display: flex; }

.mdc-dialog--opening .mdc-dialog__scrim {
  transition: opacity 150ms linear; }

.mdc-dialog--opening .mdc-dialog__container {
  transition: opacity 75ms linear, -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 75ms linear, transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 75ms linear, transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1); }

.mdc-dialog--closing .mdc-dialog__scrim,
.mdc-dialog--closing .mdc-dialog__container {
  transition: opacity 75ms linear; }

.mdc-dialog--closing .mdc-dialog__container {
  -webkit-transform: scale(1);
          transform: scale(1); }

.mdc-dialog--open .mdc-dialog__scrim {
  opacity: 1; }

.mdc-dialog--open .mdc-dialog__container {
  -webkit-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.mdc-dialog-scroll-lock {
  overflow: hidden; }

.mdc-drawer {
  border-color: rgba(52, 58, 64, 0.12);
  background-color: #e3f2fd;
  /* @noflip */
  border-radius: 0 0 0 0;
  z-index: 6;
  width: 256px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  box-sizing: border-box;
  height: 100%;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  /* @noflip */
  border-right-width: 1px;
  /* @noflip */
  border-right-style: solid;
  overflow: hidden; }
  .mdc-drawer .mdc-drawer__title {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-drawer .mdc-list-group__subheader {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-drawer .mdc-drawer__subtitle {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-drawer .mdc-list-item__graphic {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-drawer .mdc-list-item {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-drawer .mdc-list-item--activated .mdc-list-item__graphic {
    color: #212121; }
  .mdc-drawer .mdc-list-item--activated {
    color: rgba(33, 33, 33, 0.87); }
  [dir="rtl"] .mdc-drawer, .mdc-drawer[dir="rtl"] {
    /* @noflip */
    border-radius: 0 0 0 0; }
  .mdc-drawer .mdc-list-item {
    border-radius: 4px; }
  .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content {
    /* @noflip */
    margin-left: 256px;
    /* @noflip */
    margin-right: 0; }
    [dir="rtl"] .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content, .mdc-drawer.mdc-drawer--open:not(.mdc-drawer--closing) + .mdc-drawer-app-content[dir="rtl"] {
      /* @noflip */
      margin-left: 0;
      /* @noflip */
      margin-right: 256px; }
  [dir="rtl"] .mdc-drawer, .mdc-drawer[dir="rtl"] {
    /* @noflip */
    border-right-width: 0;
    /* @noflip */
    border-left-width: 1px;
    /* @noflip */
    border-right-style: none;
    /* @noflip */
    border-left-style: solid; }
  .mdc-drawer .mdc-list-item {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 0.875rem;
    line-height: 1.375rem;
    font-weight: 500;
    letter-spacing: 0.00714em;
    text-decoration: inherit;
    text-transform: inherit;
    height: calc(48px - 2 * 4px);
    margin: 8px 8px;
    padding: 0 8px; }
  .mdc-drawer .mdc-list-item:nth-child(1) {
    margin-top: 2px; }
  .mdc-drawer .mdc-list-item:nth-last-child(1) {
    margin-bottom: 0; }
  .mdc-drawer .mdc-list-group__subheader {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 400;
    letter-spacing: 0.01786em;
    text-decoration: inherit;
    text-transform: inherit;
    display: block;
    margin-top: 0;
    /* @alternate */
    line-height: normal;
    margin: 0;
    padding: 0 16px; }
    .mdc-drawer .mdc-list-group__subheader::before {
      display: inline-block;
      width: 0;
      height: 24px;
      content: "";
      vertical-align: 0; }
  .mdc-drawer .mdc-list-divider {
    margin: 3px 0 4px 0; }
  .mdc-drawer .mdc-list-item__text,
  .mdc-drawer .mdc-list-item__graphic {
    pointer-events: none; }

.mdc-drawer--animate {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%); }
  [dir="rtl"] .mdc-drawer--animate, .mdc-drawer--animate[dir="rtl"] {
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }

.mdc-drawer--opening {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  transition-duration: 250ms; }
  [dir="rtl"] .mdc-drawer--opening, .mdc-drawer--opening[dir="rtl"] {
    -webkit-transform: translateX(0);
            transform: translateX(0); }

.mdc-drawer--closing {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  transition-duration: 200ms; }
  [dir="rtl"] .mdc-drawer--closing, .mdc-drawer--closing[dir="rtl"] {
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }

.mdc-drawer__header {
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  box-sizing: border-box;
  min-height: 64px;
  padding: 0 16px 4px; }

.mdc-drawer__title {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.25rem;
  line-height: 2rem;
  font-weight: 500;
  letter-spacing: 0.0125em;
  text-decoration: inherit;
  text-transform: inherit;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px; }
  .mdc-drawer__title::before {
    display: inline-block;
    width: 0;
    height: 36px;
    content: "";
    vertical-align: 0; }
  .mdc-drawer__title::after {
    display: inline-block;
    width: 0;
    height: 20px;
    content: "";
    vertical-align: -20px; }

.mdc-drawer__subtitle {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01786em;
  text-decoration: inherit;
  text-transform: inherit;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: 0; }
  .mdc-drawer__subtitle::before {
    display: inline-block;
    width: 0;
    height: 20px;
    content: "";
    vertical-align: 0; }

.mdc-drawer__content {
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.mdc-drawer--dismissible {
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  display: none;
  position: absolute; }
  [dir="rtl"] .mdc-drawer--dismissible, .mdc-drawer--dismissible[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 0; }
  .mdc-drawer--dismissible.mdc-drawer--open {
    display: -webkit-flex;
    display: flex; }

.mdc-drawer-app-content {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 0;
  position: relative; }
  [dir="rtl"] .mdc-drawer-app-content, .mdc-drawer-app-content[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 0; }

.mdc-drawer--modal {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  display: none;
  position: fixed; }
  .mdc-drawer--modal + .mdc-drawer-scrim {
    background-color: rgba(52, 58, 64, 0.32); }
  [dir="rtl"] .mdc-drawer--modal, .mdc-drawer--modal[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 0; }
  .mdc-drawer--modal.mdc-drawer--open {
    display: -webkit-flex;
    display: flex; }

.mdc-drawer-scrim {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 5; }
  .mdc-drawer--open + .mdc-drawer-scrim {
    display: block; }
  .mdc-drawer--animate + .mdc-drawer-scrim {
    opacity: 0; }
  .mdc-drawer--opening + .mdc-drawer-scrim {
    transition-duration: 250ms;
    opacity: 1; }
  .mdc-drawer--closing + .mdc-drawer-scrim {
    transition-duration: 200ms;
    opacity: 0; }

.mdc-elevation--z0 {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z1 {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z2 {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z3 {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z4 {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z5 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z6 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z7 {
  box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z8 {
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z9 {
  box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z10 {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z11 {
  box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z12 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z13 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z14 {
  box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z15 {
  box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z16 {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z17 {
  box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z18 {
  box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z19 {
  box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z20 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z21 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z22 {
  box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z23 {
  box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12); }

.mdc-elevation--z24 {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); }

.mdc-elevation-transition {
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: box-shadow; }

.mdc-fab {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
  display: -webkit-inline-flex;
  display: inline-flex;
  position: relative;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  width: 56px;
  height: 56px;
  padding: 0;
  border: none;
  fill: currentColor;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  overflow: hidden;
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, -webkit-transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);
  background-color: #415E7E;
  color: #f8f9fa;
  /* @alternate */
  color: var(--mdc-theme-on-secondary, #f8f9fa); }
  .mdc-fab:not(.mdc-fab--extended) {
    border-radius: 50%; }
  .mdc-fab::-moz-focus-inner {
    padding: 0;
    border: 0; }
  .mdc-fab:hover, .mdc-fab:focus {
    box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }
  .mdc-fab:active {
    box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12); }
  .mdc-fab:active, .mdc-fab:focus {
    outline: none; }
  .mdc-fab:hover {
    cursor: pointer; }
  .mdc-fab > svg {
    width: 100%; }
  @supports not (-ms-ime-align: auto) {
    .mdc-fab {
      /* @alternate */
      background-color: var(--mdc-theme-secondary, #415E7E); } }
  .mdc-fab .mdc-fab__icon {
    width: 24px;
    height: 24px;
    font-size: 24px; }

.mdc-fab--mini {
  width: 40px;
  height: 40px; }

.mdc-fab--extended {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 2.25rem;
  font-weight: 500;
  letter-spacing: 0.08929em;
  text-decoration: none;
  text-transform: uppercase;
  border-radius: 24px;
  padding: 0 20px;
  width: auto;
  max-width: 100%;
  height: 48px; }
  .mdc-fab--extended .mdc-fab__icon {
    /* @noflip */
    margin-left: -8px;
    /* @noflip */
    margin-right: 12px; }
    [dir="rtl"] .mdc-fab--extended .mdc-fab__icon, .mdc-fab--extended .mdc-fab__icon[dir="rtl"] {
      /* @noflip */
      margin-left: 12px;
      /* @noflip */
      margin-right: -8px; }
  .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon {
    /* @noflip */
    margin-left: 12px;
    /* @noflip */
    margin-right: -8px; }
    [dir="rtl"] .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon, .mdc-fab--extended .mdc-fab__label + .mdc-fab__icon[dir="rtl"] {
      /* @noflip */
      margin-left: -8px;
      /* @noflip */
      margin-right: 12px; }

.mdc-fab__label {
  -webkit-justify-content: flex-start;
          justify-content: flex-start;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }

.mdc-fab__icon {
  transition: -webkit-transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);
  transition: transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);
  transition: transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);
  fill: currentColor;
  will-change: transform; }

.mdc-fab .mdc-fab__icon {
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center; }

.mdc-fab--exited {
  -webkit-transform: scale(0);
          transform: scale(0);
  opacity: 0;
  transition: opacity 15ms linear 150ms, -webkit-transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);
  transition: opacity 15ms linear 150ms, transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1);
  transition: opacity 15ms linear 150ms, transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1); }
  .mdc-fab--exited .mdc-fab__icon {
    -webkit-transform: scale(0);
            transform: scale(0);
    transition: -webkit-transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1);
    transition: transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1);
    transition: transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1); }

.mdc-fab {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-fab::before, .mdc-fab::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-fab::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-fab.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-fab.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-fab.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-fab.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-fab.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-fab::before, .mdc-fab::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-fab.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-fab::before, .mdc-fab::after {
    background-color: #f8f9fa; }
    @supports not (-ms-ime-align: auto) {
      .mdc-fab::before, .mdc-fab::after {
        /* @alternate */
        background-color: var(--mdc-theme-on-secondary, #f8f9fa); } }
  .mdc-fab:hover::before {
    opacity: 0.08; }
  .mdc-fab:not(.mdc-ripple-upgraded):focus::before, .mdc-fab.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.24; }
  .mdc-fab:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-fab:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.24; }
  .mdc-fab.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.24; }

.mdc-floating-label {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  position: absolute;
  /* @noflip */
  left: 0;
  /* @noflip */
  -webkit-transform-origin: left top;
          transform-origin: left top;
  transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
  /* @alternate */
  line-height: 1.15rem;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: text;
  overflow: hidden;
  will-change: transform; }
  [dir="rtl"] .mdc-floating-label, .mdc-floating-label[dir="rtl"] {
    /* @noflip */
    right: 0;
    /* @noflip */
    left: auto;
    /* @noflip */
    -webkit-transform-origin: right top;
            transform-origin: right top;
    /* @noflip */
    text-align: right; }

.mdc-floating-label--float-above {
  cursor: auto; }

.mdc-floating-label--float-above {
  -webkit-transform: translateY(-50%) scale(0.75);
          transform: translateY(-50%) scale(0.75); }

.mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-standard 250ms 1;
          animation: mdc-floating-label-shake-float-above-standard 250ms 1; }

@-webkit-keyframes mdc-floating-label-shake-float-above-standard {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-standard {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(4% - 0%)) translateY(-50%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(-4% - 0%)) translateY(-50%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-50%) scale(0.75); } }

.mdc-form-field {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01786em;
  text-decoration: inherit;
  text-transform: inherit;
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-align-items: center;
          align-items: center;
  vertical-align: middle; }
  .mdc-form-field > label {
    -webkit-order: 0;
            order: 0;
    /* @noflip */
    margin-right: auto;
    /* @noflip */
    padding-left: 4px; }
  [dir="rtl"] .mdc-form-field > label, .mdc-form-field[dir="rtl"] > label {
    /* @noflip */
    margin-left: auto;
    /* @noflip */
    padding-right: 4px; }

.mdc-form-field--align-end > label {
  -webkit-order: -1;
          order: -1;
  /* @noflip */
  margin-left: auto;
  /* @noflip */
  padding-right: 4px; }

[dir="rtl"] .mdc-form-field--align-end > label, .mdc-form-field--align-end[dir="rtl"] > label {
  /* @noflip */
  margin-right: auto;
  /* @noflip */
  padding-left: 4px; }

.mdc-grid-tile__primary {
  padding-bottom: calc(100% / 1); }

.mdc-grid-tile {
  margin: 2px 0;
  padding: 0 2px; }

.mdc-grid-tile__secondary {
  left: 2px;
  width: calc(100% - 4px); }

.mdc-grid-list__tiles {
  margin: 2px auto; }

.mdc-grid-list__tiles {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
          flex-flow: row wrap;
  padding: 0; }

.mdc-grid-list--tile-gutter-1 .mdc-grid-tile {
  margin: 0.5px 0;
  padding: 0 0.5px; }

.mdc-grid-list--tile-gutter-1 .mdc-grid-tile__secondary {
  left: 0.5px;
  width: calc(100% - 1px); }

.mdc-grid-list--tile-gutter-1 .mdc-grid-list__tiles {
  margin: 0.5px auto; }

.mdc-grid-list--tile-aspect-16x9 .mdc-grid-tile__primary {
  padding-bottom: calc(100% / 1.77778); }

.mdc-grid-list--tile-aspect-3x2 .mdc-grid-tile__primary {
  padding-bottom: calc(100% / 1.5); }

.mdc-grid-list--tile-aspect-2x3 .mdc-grid-tile__primary {
  padding-bottom: calc(100% / 0.66667); }

.mdc-grid-list--tile-aspect-4x3 .mdc-grid-tile__primary {
  padding-bottom: calc(100% / 1.33333); }

.mdc-grid-list--tile-aspect-3x4 .mdc-grid-tile__primary {
  padding-bottom: calc(100% / 0.75); }

.mdc-grid-tile {
  display: block;
  position: relative;
  /* @alternate */
  width: 200px;
  width: var(--mdc-grid-list-tile-width, 200px); }

.mdc-grid-tile__primary {
  background-color: #fff;
  /* @alternate */
  background-color: var(--mdc-theme-background, #fff);
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
  position: relative;
  height: 0; }

.mdc-grid-tile__primary-content {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; }

.mdc-grid-tile__secondary {
  background-color: #212121;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #212121);
  color: #f8f9fa;
  /* @alternate */
  color: var(--mdc-theme-on-primary, #f8f9fa);
  position: absolute;
  bottom: 0;
  box-sizing: border-box;
  height: 48px;
  padding: 16px; }

.mdc-grid-tile__title {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
  font-size: 1rem;
  line-height: 1rem;
  font-weight: 500; }

.mdc-grid-tile__support-text {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin: 0;
  margin-top: 4px;
  padding: 0; }

.mdc-grid-tile__icon {
  position: absolute;
  top: calc(50% - 24px / 2);
  font-size: 0; }

.mdc-grid-list--twoline-caption .mdc-grid-tile__secondary {
  height: 68px; }

.mdc-grid-list--header-caption .mdc-grid-tile__secondary {
  top: 0;
  bottom: auto; }

.mdc-grid-list--with-icon-align-start .mdc-grid-tile__secondary {
  /* @noflip */
  padding-left: 56px;
  /* @noflip */
  padding-right: 8px; }
  .mdc-grid-list[dir="rtl"] .mdc-grid-list--with-icon-align-start .mdc-grid-tile__secondary,
  [dir="rtl"] .mdc-grid-list .mdc-grid-list--with-icon-align-start .mdc-grid-tile__secondary {
    /* @noflip */
    padding-left: 8px;
    /* @noflip */
    padding-right: 56px; }

.mdc-grid-list--with-icon-align-start .mdc-grid-tile__icon {
  /* @noflip */
  left: 16px;
  /* @noflip */
  right: initial;
  font-size: 24px; }
  .mdc-grid-list[dir="rtl"] .mdc-grid-list--with-icon-align-start .mdc-grid-tile__icon,
  [dir="rtl"] .mdc-grid-list .mdc-grid-list--with-icon-align-start .mdc-grid-tile__icon {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 16px; }

.mdc-grid-list--with-icon-align-end .mdc-grid-tile__secondary {
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 56px; }
  .mdc-grid-list[dir="rtl"] .mdc-grid-list--with-icon-align-end .mdc-grid-tile__secondary,
  [dir="rtl"] .mdc-grid-list .mdc-grid-list--with-icon-align-end .mdc-grid-tile__secondary {
    /* @noflip */
    padding-left: 56px;
    /* @noflip */
    padding-right: 16px; }

.mdc-grid-list--with-icon-align-end .mdc-grid-tile__icon {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 16px;
  font-size: 24px; }
  .mdc-grid-list[dir="rtl"] .mdc-grid-list--with-icon-align-end .mdc-grid-tile__icon,
  [dir="rtl"] .mdc-grid-list .mdc-grid-list--with-icon-align-end .mdc-grid-tile__icon {
    /* @noflip */
    left: 16px;
    /* @noflip */
    right: initial; }

.mdc-icon-button {
  width: 48px;
  height: 48px;
  padding: 12px;
  font-size: 24px;
  display: inline-block;
  position: relative;
  box-sizing: border-box;
  border: none;
  outline: none;
  background-color: transparent;
  fill: currentColor;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .mdc-icon-button svg,
  .mdc-icon-button img {
    width: 24px;
    height: 24px; }
  .mdc-icon-button:disabled {
    color: rgba(0, 0, 0, 0.38);
    /* @alternate */
    color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));
    cursor: default;
    pointer-events: none; }

.mdc-icon-button__icon {
  display: inline-block; }
  .mdc-icon-button__icon.mdc-icon-button__icon--on {
    display: none; }

.mdc-icon-button--on .mdc-icon-button__icon {
  display: none; }
  .mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on {
    display: inline-block; }

.mdc-icon-button {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-icon-button::before, .mdc-icon-button::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-icon-button::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-icon-button.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-icon-button.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-icon-button.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-icon-button.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-icon-button.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-icon-button::before, .mdc-icon-button::after {
    top: calc(50% - 50%);
    /* @noflip */
    left: calc(50% - 50%);
    width: 100%;
    height: 100%; }
  .mdc-icon-button.mdc-ripple-upgraded::before, .mdc-icon-button.mdc-ripple-upgraded::after {
    top: var(--mdc-ripple-top, calc(50% - 50%));
    /* @noflip */
    left: var(--mdc-ripple-left, calc(50% - 50%));
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-icon-button.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-icon-button::before, .mdc-icon-button::after {
    background-color: #343a40; }
  .mdc-icon-button:hover::before {
    opacity: 0.04; }
  .mdc-icon-button:not(.mdc-ripple-upgraded):focus::before, .mdc-icon-button.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-icon-button:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-icon-button:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-icon-button.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

.mdc-image-list {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  margin: 0 auto;
  padding: 0; }

.mdc-image-list__item,
.mdc-image-list__image-aspect-container {
  position: relative;
  box-sizing: border-box; }

.mdc-image-list__item {
  list-style-type: none; }

.mdc-image-list__image {
  width: 100%; }

.mdc-image-list__image-aspect-container .mdc-image-list__image {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; }

.mdc-image-list__image-aspect-container {
  padding-bottom: calc(100% / 1); }

.mdc-image-list__image {
  border-radius: 0; }

.mdc-image-list--with-text-protection .mdc-image-list__supporting {
  border-radius: 0 0 0 0; }

.mdc-image-list__supporting {
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  box-sizing: border-box;
  padding: 8px 0;
  line-height: 24px; }

.mdc-image-list__label {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }

.mdc-image-list--with-text-protection .mdc-image-list__supporting {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 48px;
  padding: 0 16px;
  background: rgba(0, 0, 0, 0.6);
  color: #fff; }

.mdc-image-list--masonry {
  display: block; }
  .mdc-image-list--masonry .mdc-image-list__item {
    -webkit-column-break-inside: avoid;
            break-inside: avoid-column; }
  .mdc-image-list--masonry .mdc-image-list__image {
    display: block;
    height: auto; }

:root {
  --mdc-layout-grid-margin-desktop: 24px;
  --mdc-layout-grid-gutter-desktop: 24px;
  --mdc-layout-grid-column-width-desktop: 72px;
  --mdc-layout-grid-margin-tablet: 16px;
  --mdc-layout-grid-gutter-tablet: 16px;
  --mdc-layout-grid-column-width-tablet: 72px;
  --mdc-layout-grid-margin-phone: 16px;
  --mdc-layout-grid-gutter-phone: 16px;
  --mdc-layout-grid-column-width-phone: 72px; }

@media (min-width: 840px) {
  .mdc-layout-grid {
    box-sizing: border-box;
    margin: 0 auto;
    padding: 24px;
    padding: var(--mdc-layout-grid-margin-desktop, 24px); } }

@media (min-width: 480px) and (max-width: 839px) {
  .mdc-layout-grid {
    box-sizing: border-box;
    margin: 0 auto;
    padding: 16px;
    padding: var(--mdc-layout-grid-margin-tablet, 16px); } }

@media (max-width: 479px) {
  .mdc-layout-grid {
    box-sizing: border-box;
    margin: 0 auto;
    padding: 16px;
    padding: var(--mdc-layout-grid-margin-phone, 16px); } }

@media (min-width: 840px) {
  .mdc-layout-grid__inner {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-align-items: stretch;
            align-items: stretch;
    margin: -12px;
    margin: calc(var(--mdc-layout-grid-gutter-desktop, 24px) / 2 * -1); }
    @supports (display: grid) {
      .mdc-layout-grid__inner {
        display: grid;
        margin: 0;
        grid-gap: 24px;
        grid-gap: var(--mdc-layout-grid-gutter-desktop, 24px);
        grid-template-columns: repeat(12, minmax(0, 1fr)); } } }

@media (min-width: 480px) and (max-width: 839px) {
  .mdc-layout-grid__inner {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-align-items: stretch;
            align-items: stretch;
    margin: -8px;
    margin: calc(var(--mdc-layout-grid-gutter-tablet, 16px) / 2 * -1); }
    @supports (display: grid) {
      .mdc-layout-grid__inner {
        display: grid;
        margin: 0;
        grid-gap: 16px;
        grid-gap: var(--mdc-layout-grid-gutter-tablet, 16px);
        grid-template-columns: repeat(8, minmax(0, 1fr)); } } }

@media (max-width: 479px) {
  .mdc-layout-grid__inner {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-align-items: stretch;
            align-items: stretch;
    margin: -8px;
    margin: calc(var(--mdc-layout-grid-gutter-phone, 16px) / 2 * -1); }
    @supports (display: grid) {
      .mdc-layout-grid__inner {
        display: grid;
        margin: 0;
        grid-gap: 16px;
        grid-gap: var(--mdc-layout-grid-gutter-phone, 16px);
        grid-template-columns: repeat(4, minmax(0, 1fr)); } } }

@media (min-width: 840px) {
  .mdc-layout-grid__cell {
    width: calc(33.33333% - 24px);
    width: calc(33.33333% - var(--mdc-layout-grid-gutter-desktop, 24px));
    box-sizing: border-box;
    margin: 12px;
    margin: calc(var(--mdc-layout-grid-gutter-desktop, 24px) / 2); }
    @supports (display: grid) {
      .mdc-layout-grid__cell {
        width: auto;
        grid-column-end: span 4; } }
    @supports (display: grid) {
      .mdc-layout-grid__cell {
        margin: 0; } }
    .mdc-layout-grid__cell--span-1,
    .mdc-layout-grid__cell--span-1-desktop {
      width: calc(8.33333% - 24px);
      width: calc(8.33333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-1,
        .mdc-layout-grid__cell--span-1-desktop {
          width: auto;
          grid-column-end: span 1; } }
    .mdc-layout-grid__cell--span-2,
    .mdc-layout-grid__cell--span-2-desktop {
      width: calc(16.66667% - 24px);
      width: calc(16.66667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-2,
        .mdc-layout-grid__cell--span-2-desktop {
          width: auto;
          grid-column-end: span 2; } }
    .mdc-layout-grid__cell--span-3,
    .mdc-layout-grid__cell--span-3-desktop {
      width: calc(25% - 24px);
      width: calc(25% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-3,
        .mdc-layout-grid__cell--span-3-desktop {
          width: auto;
          grid-column-end: span 3; } }
    .mdc-layout-grid__cell--span-4,
    .mdc-layout-grid__cell--span-4-desktop {
      width: calc(33.33333% - 24px);
      width: calc(33.33333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-4,
        .mdc-layout-grid__cell--span-4-desktop {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-5,
    .mdc-layout-grid__cell--span-5-desktop {
      width: calc(41.66667% - 24px);
      width: calc(41.66667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-5,
        .mdc-layout-grid__cell--span-5-desktop {
          width: auto;
          grid-column-end: span 5; } }
    .mdc-layout-grid__cell--span-6,
    .mdc-layout-grid__cell--span-6-desktop {
      width: calc(50% - 24px);
      width: calc(50% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-6,
        .mdc-layout-grid__cell--span-6-desktop {
          width: auto;
          grid-column-end: span 6; } }
    .mdc-layout-grid__cell--span-7,
    .mdc-layout-grid__cell--span-7-desktop {
      width: calc(58.33333% - 24px);
      width: calc(58.33333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-7,
        .mdc-layout-grid__cell--span-7-desktop {
          width: auto;
          grid-column-end: span 7; } }
    .mdc-layout-grid__cell--span-8,
    .mdc-layout-grid__cell--span-8-desktop {
      width: calc(66.66667% - 24px);
      width: calc(66.66667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-8,
        .mdc-layout-grid__cell--span-8-desktop {
          width: auto;
          grid-column-end: span 8; } }
    .mdc-layout-grid__cell--span-9,
    .mdc-layout-grid__cell--span-9-desktop {
      width: calc(75% - 24px);
      width: calc(75% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-9,
        .mdc-layout-grid__cell--span-9-desktop {
          width: auto;
          grid-column-end: span 9; } }
    .mdc-layout-grid__cell--span-10,
    .mdc-layout-grid__cell--span-10-desktop {
      width: calc(83.33333% - 24px);
      width: calc(83.33333% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-10,
        .mdc-layout-grid__cell--span-10-desktop {
          width: auto;
          grid-column-end: span 10; } }
    .mdc-layout-grid__cell--span-11,
    .mdc-layout-grid__cell--span-11-desktop {
      width: calc(91.66667% - 24px);
      width: calc(91.66667% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-11,
        .mdc-layout-grid__cell--span-11-desktop {
          width: auto;
          grid-column-end: span 11; } }
    .mdc-layout-grid__cell--span-12,
    .mdc-layout-grid__cell--span-12-desktop {
      width: calc(100% - 24px);
      width: calc(100% - var(--mdc-layout-grid-gutter-desktop, 24px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-12,
        .mdc-layout-grid__cell--span-12-desktop {
          width: auto;
          grid-column-end: span 12; } } }

@media (min-width: 480px) and (max-width: 839px) {
  .mdc-layout-grid__cell {
    width: calc(50% - 16px);
    width: calc(50% - var(--mdc-layout-grid-gutter-tablet, 16px));
    box-sizing: border-box;
    margin: 8px;
    margin: calc(var(--mdc-layout-grid-gutter-tablet, 16px) / 2); }
    @supports (display: grid) {
      .mdc-layout-grid__cell {
        width: auto;
        grid-column-end: span 4; } }
    @supports (display: grid) {
      .mdc-layout-grid__cell {
        margin: 0; } }
    .mdc-layout-grid__cell--span-1,
    .mdc-layout-grid__cell--span-1-tablet {
      width: calc(12.5% - 16px);
      width: calc(12.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-1,
        .mdc-layout-grid__cell--span-1-tablet {
          width: auto;
          grid-column-end: span 1; } }
    .mdc-layout-grid__cell--span-2,
    .mdc-layout-grid__cell--span-2-tablet {
      width: calc(25% - 16px);
      width: calc(25% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-2,
        .mdc-layout-grid__cell--span-2-tablet {
          width: auto;
          grid-column-end: span 2; } }
    .mdc-layout-grid__cell--span-3,
    .mdc-layout-grid__cell--span-3-tablet {
      width: calc(37.5% - 16px);
      width: calc(37.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-3,
        .mdc-layout-grid__cell--span-3-tablet {
          width: auto;
          grid-column-end: span 3; } }
    .mdc-layout-grid__cell--span-4,
    .mdc-layout-grid__cell--span-4-tablet {
      width: calc(50% - 16px);
      width: calc(50% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-4,
        .mdc-layout-grid__cell--span-4-tablet {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-5,
    .mdc-layout-grid__cell--span-5-tablet {
      width: calc(62.5% - 16px);
      width: calc(62.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-5,
        .mdc-layout-grid__cell--span-5-tablet {
          width: auto;
          grid-column-end: span 5; } }
    .mdc-layout-grid__cell--span-6,
    .mdc-layout-grid__cell--span-6-tablet {
      width: calc(75% - 16px);
      width: calc(75% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-6,
        .mdc-layout-grid__cell--span-6-tablet {
          width: auto;
          grid-column-end: span 6; } }
    .mdc-layout-grid__cell--span-7,
    .mdc-layout-grid__cell--span-7-tablet {
      width: calc(87.5% - 16px);
      width: calc(87.5% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-7,
        .mdc-layout-grid__cell--span-7-tablet {
          width: auto;
          grid-column-end: span 7; } }
    .mdc-layout-grid__cell--span-8,
    .mdc-layout-grid__cell--span-8-tablet {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-8,
        .mdc-layout-grid__cell--span-8-tablet {
          width: auto;
          grid-column-end: span 8; } }
    .mdc-layout-grid__cell--span-9,
    .mdc-layout-grid__cell--span-9-tablet {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-9,
        .mdc-layout-grid__cell--span-9-tablet {
          width: auto;
          grid-column-end: span 8; } }
    .mdc-layout-grid__cell--span-10,
    .mdc-layout-grid__cell--span-10-tablet {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-10,
        .mdc-layout-grid__cell--span-10-tablet {
          width: auto;
          grid-column-end: span 8; } }
    .mdc-layout-grid__cell--span-11,
    .mdc-layout-grid__cell--span-11-tablet {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-11,
        .mdc-layout-grid__cell--span-11-tablet {
          width: auto;
          grid-column-end: span 8; } }
    .mdc-layout-grid__cell--span-12,
    .mdc-layout-grid__cell--span-12-tablet {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-tablet, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-12,
        .mdc-layout-grid__cell--span-12-tablet {
          width: auto;
          grid-column-end: span 8; } } }

@media (max-width: 479px) {
  .mdc-layout-grid__cell {
    width: calc(100% - 16px);
    width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px));
    box-sizing: border-box;
    margin: 8px;
    margin: calc(var(--mdc-layout-grid-gutter-phone, 16px) / 2); }
    @supports (display: grid) {
      .mdc-layout-grid__cell {
        width: auto;
        grid-column-end: span 4; } }
    @supports (display: grid) {
      .mdc-layout-grid__cell {
        margin: 0; } }
    .mdc-layout-grid__cell--span-1,
    .mdc-layout-grid__cell--span-1-phone {
      width: calc(25% - 16px);
      width: calc(25% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-1,
        .mdc-layout-grid__cell--span-1-phone {
          width: auto;
          grid-column-end: span 1; } }
    .mdc-layout-grid__cell--span-2,
    .mdc-layout-grid__cell--span-2-phone {
      width: calc(50% - 16px);
      width: calc(50% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-2,
        .mdc-layout-grid__cell--span-2-phone {
          width: auto;
          grid-column-end: span 2; } }
    .mdc-layout-grid__cell--span-3,
    .mdc-layout-grid__cell--span-3-phone {
      width: calc(75% - 16px);
      width: calc(75% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-3,
        .mdc-layout-grid__cell--span-3-phone {
          width: auto;
          grid-column-end: span 3; } }
    .mdc-layout-grid__cell--span-4,
    .mdc-layout-grid__cell--span-4-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-4,
        .mdc-layout-grid__cell--span-4-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-5,
    .mdc-layout-grid__cell--span-5-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-5,
        .mdc-layout-grid__cell--span-5-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-6,
    .mdc-layout-grid__cell--span-6-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-6,
        .mdc-layout-grid__cell--span-6-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-7,
    .mdc-layout-grid__cell--span-7-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-7,
        .mdc-layout-grid__cell--span-7-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-8,
    .mdc-layout-grid__cell--span-8-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-8,
        .mdc-layout-grid__cell--span-8-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-9,
    .mdc-layout-grid__cell--span-9-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-9,
        .mdc-layout-grid__cell--span-9-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-10,
    .mdc-layout-grid__cell--span-10-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-10,
        .mdc-layout-grid__cell--span-10-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-11,
    .mdc-layout-grid__cell--span-11-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-11,
        .mdc-layout-grid__cell--span-11-phone {
          width: auto;
          grid-column-end: span 4; } }
    .mdc-layout-grid__cell--span-12,
    .mdc-layout-grid__cell--span-12-phone {
      width: calc(100% - 16px);
      width: calc(100% - var(--mdc-layout-grid-gutter-phone, 16px)); }
      @supports (display: grid) {
        .mdc-layout-grid__cell--span-12,
        .mdc-layout-grid__cell--span-12-phone {
          width: auto;
          grid-column-end: span 4; } } }

.mdc-layout-grid__cell--order-1 {
  -webkit-order: 1;
          order: 1; }

.mdc-layout-grid__cell--order-2 {
  -webkit-order: 2;
          order: 2; }

.mdc-layout-grid__cell--order-3 {
  -webkit-order: 3;
          order: 3; }

.mdc-layout-grid__cell--order-4 {
  -webkit-order: 4;
          order: 4; }

.mdc-layout-grid__cell--order-5 {
  -webkit-order: 5;
          order: 5; }

.mdc-layout-grid__cell--order-6 {
  -webkit-order: 6;
          order: 6; }

.mdc-layout-grid__cell--order-7 {
  -webkit-order: 7;
          order: 7; }

.mdc-layout-grid__cell--order-8 {
  -webkit-order: 8;
          order: 8; }

.mdc-layout-grid__cell--order-9 {
  -webkit-order: 9;
          order: 9; }

.mdc-layout-grid__cell--order-10 {
  -webkit-order: 10;
          order: 10; }

.mdc-layout-grid__cell--order-11 {
  -webkit-order: 11;
          order: 11; }

.mdc-layout-grid__cell--order-12 {
  -webkit-order: 12;
          order: 12; }

.mdc-layout-grid__cell--align-top {
  -webkit-align-self: flex-start;
          align-self: flex-start; }
  @supports (display: grid) {
    .mdc-layout-grid__cell--align-top {
      -webkit-align-self: start;
              align-self: start; } }

.mdc-layout-grid__cell--align-middle {
  -webkit-align-self: center;
          align-self: center; }

.mdc-layout-grid__cell--align-bottom {
  -webkit-align-self: flex-end;
          align-self: flex-end; }
  @supports (display: grid) {
    .mdc-layout-grid__cell--align-bottom {
      -webkit-align-self: end;
              align-self: end; } }

@media (min-width: 840px) {
  .mdc-layout-grid--fixed-column-width {
    width: 1176px;
    width: calc( var(--mdc-layout-grid-column-width-desktop, 72px) * 12 + var(--mdc-layout-grid-gutter-desktop, 24px) * 11 + var(--mdc-layout-grid-margin-desktop, 24px) * 2); } }

@media (min-width: 480px) and (max-width: 839px) {
  .mdc-layout-grid--fixed-column-width {
    width: 720px;
    width: calc( var(--mdc-layout-grid-column-width-tablet, 72px) * 8 + var(--mdc-layout-grid-gutter-tablet, 16px) * 7 + var(--mdc-layout-grid-margin-tablet, 16px) * 2); } }

@media (max-width: 479px) {
  .mdc-layout-grid--fixed-column-width {
    width: 368px;
    width: calc( var(--mdc-layout-grid-column-width-phone, 72px) * 4 + var(--mdc-layout-grid-gutter-phone, 16px) * 3 + var(--mdc-layout-grid-margin-phone, 16px) * 2); } }

.mdc-layout-grid--align-left {
  margin-right: auto;
  margin-left: 0; }

.mdc-layout-grid--align-right {
  margin-right: 0;
  margin-left: auto; }

.mdc-line-ripple {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 180ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 180ms cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  z-index: 2; }

.mdc-line-ripple--active {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  opacity: 1; }

.mdc-line-ripple--deactivating {
  opacity: 0; }

@-webkit-keyframes primary-indeterminate-translate {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  59.15% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(83.67142%);
            transform: translateX(83.67142%); }
  100% {
    -webkit-transform: translateX(200.61106%);
            transform: translateX(200.61106%); } }

@keyframes primary-indeterminate-translate {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  59.15% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(83.67142%);
            transform: translateX(83.67142%); }
  100% {
    -webkit-transform: translateX(200.61106%);
            transform: translateX(200.61106%); } }

@-webkit-keyframes primary-indeterminate-scale {
  0% {
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); }
  36.65% {
    -webkit-animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);
            animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); }
  69.15% {
    -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);
            animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);
    -webkit-transform: scaleX(0.66148);
            transform: scaleX(0.66148); }
  100% {
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); } }

@keyframes primary-indeterminate-scale {
  0% {
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); }
  36.65% {
    -webkit-animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);
            animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); }
  69.15% {
    -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);
            animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);
    -webkit-transform: scaleX(0.66148);
            transform: scaleX(0.66148); }
  100% {
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); } }

@-webkit-keyframes secondary-indeterminate-translate {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
            animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  25% {
    -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
            animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
    -webkit-transform: translateX(37.65191%);
            transform: translateX(37.65191%); }
  48.35% {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
            animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
    -webkit-transform: translateX(84.38617%);
            transform: translateX(84.38617%); }
  100% {
    -webkit-transform: translateX(160.27778%);
            transform: translateX(160.27778%); } }

@keyframes secondary-indeterminate-translate {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
            animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  25% {
    -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
            animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
    -webkit-transform: translateX(37.65191%);
            transform: translateX(37.65191%); }
  48.35% {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
            animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
    -webkit-transform: translateX(84.38617%);
            transform: translateX(84.38617%); }
  100% {
    -webkit-transform: translateX(160.27778%);
            transform: translateX(160.27778%); } }

@-webkit-keyframes secondary-indeterminate-scale {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397);
            animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397);
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); }
  19.15% {
    -webkit-animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432);
            animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432);
    -webkit-transform: scaleX(0.4571);
            transform: scaleX(0.4571); }
  44.15% {
    -webkit-animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179);
            animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179);
    -webkit-transform: scaleX(0.72796);
            transform: scaleX(0.72796); }
  100% {
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); } }

@keyframes secondary-indeterminate-scale {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397);
            animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397);
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); }
  19.15% {
    -webkit-animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432);
            animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432);
    -webkit-transform: scaleX(0.4571);
            transform: scaleX(0.4571); }
  44.15% {
    -webkit-animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179);
            animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179);
    -webkit-transform: scaleX(0.72796);
            transform: scaleX(0.72796); }
  100% {
    -webkit-transform: scaleX(0.08);
            transform: scaleX(0.08); } }

@-webkit-keyframes buffering {
  to {
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); } }

@keyframes buffering {
  to {
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); } }

@-webkit-keyframes primary-indeterminate-translate-reverse {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  59.15% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(-83.67142%);
            transform: translateX(-83.67142%); }
  100% {
    -webkit-transform: translateX(-200.61106%);
            transform: translateX(-200.61106%); } }

@keyframes primary-indeterminate-translate-reverse {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  20% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  59.15% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(-83.67142%);
            transform: translateX(-83.67142%); }
  100% {
    -webkit-transform: translateX(-200.61106%);
            transform: translateX(-200.61106%); } }

@-webkit-keyframes secondary-indeterminate-translate-reverse {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
            animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  25% {
    -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
            animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
    -webkit-transform: translateX(-37.65191%);
            transform: translateX(-37.65191%); }
  48.35% {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
            animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
    -webkit-transform: translateX(-84.38617%);
            transform: translateX(-84.38617%); }
  100% {
    -webkit-transform: translateX(-160.27778%);
            transform: translateX(-160.27778%); } }

@keyframes secondary-indeterminate-translate-reverse {
  0% {
    -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
            animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  25% {
    -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
            animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);
    -webkit-transform: translateX(-37.65191%);
            transform: translateX(-37.65191%); }
  48.35% {
    -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
            animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);
    -webkit-transform: translateX(-84.38617%);
            transform: translateX(-84.38617%); }
  100% {
    -webkit-transform: translateX(-160.27778%);
            transform: translateX(-160.27778%); } }

@-webkit-keyframes buffering-reverse {
  to {
    -webkit-transform: translateX(10px);
            transform: translateX(10px); } }

@keyframes buffering-reverse {
  to {
    -webkit-transform: translateX(10px);
            transform: translateX(10px); } }

.mdc-linear-progress {
  position: relative;
  width: 100%;
  height: 4px;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  transition: opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
  overflow: hidden; }
  .mdc-linear-progress__bar {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-animation: none;
            animation: none;
    -webkit-transform-origin: top left;
            transform-origin: top left;
    transition: -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
    transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
    transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-linear-progress__bar-inner {
    display: inline-block;
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-animation: none;
            animation: none; }
  .mdc-linear-progress__buffering-dots {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-animation: buffering 250ms infinite linear;
            animation: buffering 250ms infinite linear;
    background-repeat: repeat-x;
    background-size: 10px 4px; }
  .mdc-linear-progress__buffer {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-transform-origin: top left;
            transform-origin: top left;
    transition: -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
    transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
    transition: transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-linear-progress__primary-bar {
    -webkit-transform: scaleX(0);
            transform: scaleX(0); }
  .mdc-linear-progress__secondary-bar {
    visibility: hidden; }
  .mdc-linear-progress--indeterminate .mdc-linear-progress__bar {
    transition: none; }
  .mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar {
    left: -145.166611%;
    -webkit-animation: primary-indeterminate-translate 2s infinite linear;
            animation: primary-indeterminate-translate 2s infinite linear; }
    .mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar > .mdc-linear-progress__bar-inner {
      -webkit-animation: primary-indeterminate-scale 2s infinite linear;
              animation: primary-indeterminate-scale 2s infinite linear; }
  .mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar {
    left: -54.888891%;
    -webkit-animation: secondary-indeterminate-translate 2s infinite linear;
            animation: secondary-indeterminate-translate 2s infinite linear;
    visibility: visible; }
    .mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar > .mdc-linear-progress__bar-inner {
      -webkit-animation: secondary-indeterminate-scale 2s infinite linear;
              animation: secondary-indeterminate-scale 2s infinite linear; }
  .mdc-linear-progress--reversed .mdc-linear-progress__bar,
  .mdc-linear-progress--reversed .mdc-linear-progress__buffer {
    right: 0;
    -webkit-transform-origin: center right;
            transform-origin: center right; }
  .mdc-linear-progress--reversed .mdc-linear-progress__primary-bar {
    -webkit-animation-name: primary-indeterminate-translate-reverse;
            animation-name: primary-indeterminate-translate-reverse; }
  .mdc-linear-progress--reversed .mdc-linear-progress__secondary-bar {
    -webkit-animation-name: secondary-indeterminate-translate-reverse;
            animation-name: secondary-indeterminate-translate-reverse; }
  .mdc-linear-progress--reversed .mdc-linear-progress__buffering-dots {
    -webkit-animation: buffering-reverse 250ms infinite linear;
            animation: buffering-reverse 250ms infinite linear; }
  .mdc-linear-progress--closed {
    opacity: 0; }

.mdc-linear-progress__bar-inner {
  background-color: #212121;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #212121); }

.mdc-linear-progress__buffering-dots {
  background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23e6e6e6'/%3E%3C/svg%3E"); }

.mdc-linear-progress__buffer {
  background-color: #e6e6e6; }

.mdc-linear-progress--indeterminate.mdc-linear-progress--reversed .mdc-linear-progress__primary-bar {
  right: -145.166611%;
  left: auto; }

.mdc-linear-progress--indeterminate.mdc-linear-progress--reversed .mdc-linear-progress__secondary-bar {
  right: -54.888891%;
  left: auto; }

.mdc-list {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  /* @alternate */
  line-height: 1.5rem;
  margin: 0;
  padding: 8px 0;
  list-style-type: none;
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)); }
  .mdc-list:focus {
    outline: none; }

.mdc-list-item__secondary-text {
  color: rgba(0, 0, 0, 0.54);
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54)); }

.mdc-list-item__graphic {
  background-color: transparent; }

.mdc-list-item__graphic {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38)); }

.mdc-list-item__meta {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38)); }

.mdc-list-group__subheader {
  color: rgba(0, 0, 0, 0.87);
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)); }

.mdc-list--dense {
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: .812rem; }

.mdc-list-item {
  display: -webkit-flex;
  display: flex;
  position: relative;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: flex-start;
          justify-content: flex-start;
  height: 48px;
  padding: 0 16px;
  overflow: hidden; }
  .mdc-list-item:focus {
    outline: none; }

.mdc-list-item--selected,
.mdc-list-item--activated {
  color: #212121;
  /* @alternate */
  color: var(--mdc-theme-primary, #212121); }
  .mdc-list-item--selected .mdc-list-item__graphic,
  .mdc-list-item--activated .mdc-list-item__graphic {
    color: #212121;
    /* @alternate */
    color: var(--mdc-theme-primary, #212121); }

.mdc-list-item--disabled {
  color: rgba(0, 0, 0, 0.38);
  /* @alternate */
  color: var(--mdc-theme-text-disabled-on-background, rgba(0, 0, 0, 0.38)); }

.mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 32px;
  width: 24px;
  height: 24px;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  fill: currentColor; }
  .mdc-list-item[dir="rtl"] .mdc-list-item__graphic,
  [dir="rtl"] .mdc-list-item .mdc-list-item__graphic {
    /* @noflip */
    margin-left: 32px;
    /* @noflip */
    margin-right: 0; }

.mdc-list .mdc-list-item__graphic {
  display: -webkit-inline-flex;
  display: inline-flex; }

.mdc-list-item__meta {
  /* @noflip */
  margin-left: auto;
  /* @noflip */
  margin-right: 0; }
  .mdc-list-item__meta:not(.material-icons) {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 400;
    letter-spacing: 0.03333em;
    text-decoration: inherit;
    text-transform: inherit; }
  .mdc-list-item[dir="rtl"] .mdc-list-item__meta,
  [dir="rtl"] .mdc-list-item .mdc-list-item__meta {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: auto; }

.mdc-list-item__text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }

.mdc-list-item__text[for] {
  pointer-events: none; }

.mdc-list-item__primary-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin-bottom: -20px;
  display: block; }
  .mdc-list-item__primary-text::before {
    display: inline-block;
    width: 0;
    height: 32px;
    content: "";
    vertical-align: 0; }
  .mdc-list-item__primary-text::after {
    display: inline-block;
    width: 0;
    height: 20px;
    content: "";
    vertical-align: -20px; }
  .mdc-list--dense .mdc-list-item__primary-text {
    display: block;
    margin-top: 0;
    /* @alternate */
    line-height: normal;
    margin-bottom: -20px; }
    .mdc-list--dense .mdc-list-item__primary-text::before {
      display: inline-block;
      width: 0;
      height: 24px;
      content: "";
      vertical-align: 0; }
    .mdc-list--dense .mdc-list-item__primary-text::after {
      display: inline-block;
      width: 0;
      height: 20px;
      content: "";
      vertical-align: -20px; }

.mdc-list-item__secondary-text {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01786em;
  text-decoration: inherit;
  text-transform: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  display: block; }
  .mdc-list-item__secondary-text::before {
    display: inline-block;
    width: 0;
    height: 20px;
    content: "";
    vertical-align: 0; }
  .mdc-list--dense .mdc-list-item__secondary-text {
    display: block;
    margin-top: 0;
    /* @alternate */
    line-height: normal;
    font-size: inherit; }
    .mdc-list--dense .mdc-list-item__secondary-text::before {
      display: inline-block;
      width: 0;
      height: 20px;
      content: "";
      vertical-align: 0; }

.mdc-list--dense .mdc-list-item {
  height: 40px; }

.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 36px;
  width: 20px;
  height: 20px; }
  .mdc-list-item[dir="rtl"] .mdc-list--dense .mdc-list-item__graphic,
  [dir="rtl"] .mdc-list-item .mdc-list--dense .mdc-list-item__graphic {
    /* @noflip */
    margin-left: 36px;
    /* @noflip */
    margin-right: 0; }

.mdc-list--avatar-list .mdc-list-item {
  height: 56px; }

.mdc-list--avatar-list .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%; }
  .mdc-list-item[dir="rtl"] .mdc-list--avatar-list .mdc-list-item__graphic,
  [dir="rtl"] .mdc-list-item .mdc-list--avatar-list .mdc-list-item__graphic {
    /* @noflip */
    margin-left: 16px;
    /* @noflip */
    margin-right: 0; }

.mdc-list--two-line .mdc-list-item__text {
  -webkit-align-self: flex-start;
          align-self: flex-start; }

.mdc-list--two-line .mdc-list-item {
  height: 72px; }

.mdc-list--two-line.mdc-list--dense .mdc-list-item,
.mdc-list--avatar-list.mdc-list--dense .mdc-list-item {
  height: 60px; }

.mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 20px;
  width: 36px;
  height: 36px; }
  .mdc-list-item[dir="rtl"] .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic,
  [dir="rtl"] .mdc-list-item .mdc-list--avatar-list.mdc-list--dense .mdc-list-item__graphic {
    /* @noflip */
    margin-left: 20px;
    /* @noflip */
    margin-right: 0; }

:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {
  cursor: pointer; }

a.mdc-list-item {
  color: inherit;
  text-decoration: none; }

.mdc-list-divider {
  height: 0;
  margin: 0;
  border: none;
  border-bottom-width: 1px;
  border-bottom-style: solid; }

.mdc-list-divider {
  border-bottom-color: rgba(0, 0, 0, 0.12); }

.mdc-list-divider--padded {
  margin: 0 16px; }

.mdc-list-divider--inset {
  /* @noflip */
  margin-left: 72px;
  /* @noflip */
  margin-right: 0;
  width: calc(100% - 72px); }
  .mdc-list-group[dir="rtl"] .mdc-list-divider--inset,
  [dir="rtl"] .mdc-list-group .mdc-list-divider--inset {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 72px; }

.mdc-list-divider--inset.mdc-list-divider--padded {
  width: calc(100% - 72px - 16px); }

.mdc-list-group .mdc-list {
  padding: 0; }

.mdc-list-group__subheader {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  margin: 0.75rem 16px; }

:not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item::after {
    background-color: #343a40; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:hover::before {
    opacity: 0.04; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before {
    opacity: 0.12; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {
    background-color: #212121; }
    @supports not (-ms-ime-align: auto) {
      :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated::after {
        /* @alternate */
        background-color: var(--mdc-theme-primary, #212121); } }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:hover::before {
    opacity: 0.16; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.24; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.24; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--activated.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.24; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before {
    opacity: 0.08; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {
    background-color: #212121; }
    @supports not (-ms-ime-align: auto) {
      :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected::after {
        /* @alternate */
        background-color: var(--mdc-theme-primary, #212121); } }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:hover::before {
    opacity: 0.12; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.2; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.2; }
  :not(.mdc-list--non-interactive) > :not(.mdc-list-item--disabled).mdc-list-item--selected.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.2; }

:not(.mdc-list--non-interactive) > .mdc-list-item--disabled {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled::after {
    background-color: #343a40; }
  :not(.mdc-list--non-interactive) > .mdc-list-item--disabled:not(.mdc-ripple-upgraded):focus::before, :not(.mdc-list--non-interactive) > .mdc-list-item--disabled.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }

.mdc-menu {
  min-width: 112px; }
  .mdc-menu .mdc-list-item__meta {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-menu .mdc-list-item__graphic {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-menu .mdc-list {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-menu .mdc-list-divider {
    margin: 8px 0; }
  .mdc-menu .mdc-list-item {
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
  .mdc-menu .mdc-list-item--disabled {
    cursor: auto; }
  .mdc-menu a.mdc-list-item .mdc-list-item__text,
  .mdc-menu a.mdc-list-item .mdc-list-item__graphic {
    pointer-events: none; }

.mdc-menu__selection-group {
  padding: 0;
  fill: currentColor; }
  .mdc-menu__selection-group .mdc-list-item {
    /* @noflip */
    padding-left: 56px;
    /* @noflip */
    padding-right: 16px; }
    [dir="rtl"] .mdc-menu__selection-group .mdc-list-item, .mdc-menu__selection-group .mdc-list-item[dir="rtl"] {
      /* @noflip */
      padding-left: 16px;
      /* @noflip */
      padding-right: 56px; }
  .mdc-menu__selection-group .mdc-menu__selection-group-icon {
    /* @noflip */
    left: 16px;
    /* @noflip */
    right: initial;
    display: none;
    position: absolute; }
    [dir="rtl"] .mdc-menu__selection-group .mdc-menu__selection-group-icon, .mdc-menu__selection-group .mdc-menu__selection-group-icon[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 16px; }

.mdc-menu-item--selected .mdc-menu__selection-group-icon {
  display: inline; }

.mdc-menu-surface {
  display: none;
  position: absolute;
  box-sizing: border-box;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  margin: 0;
  padding: 0;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transform-origin: top left;
          transform-origin: top left;
  opacity: 0;
  overflow: auto;
  will-change: transform, opacity;
  z-index: 8;
  transition: opacity 0.03s linear, -webkit-transform 0.12s cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 0.03s linear, transform 0.12s cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 0.03s linear, transform 0.12s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.12s cubic-bezier(0, 0, 0.2, 1);
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
  background-color: #e3f2fd;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #e3f2fd);
  color: #343a40;
  /* @alternate */
  color: var(--mdc-theme-on-surface, #343a40);
  border-radius: 4px;
  /* @noflip */
  transform-origin-left: top left;
  /* @noflip */
  transform-origin-right: top right; }
  .mdc-menu-surface:focus {
    outline: none; }
  .mdc-menu-surface--open {
    display: inline-block;
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .mdc-menu-surface--animating-open {
    display: inline-block;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0; }
  .mdc-menu-surface--animating-closed {
    display: inline-block;
    opacity: 0;
    transition: opacity 0.075s linear; }
  [dir="rtl"] .mdc-menu-surface, .mdc-menu-surface[dir="rtl"] {
    /* @noflip */
    transform-origin-left: top right;
    /* @noflip */
    transform-origin-right: top left; }

.mdc-menu-surface--anchor {
  position: relative;
  overflow: visible; }

.mdc-menu-surface--fixed {
  position: fixed; }

.mdc-notched-outline {
  display: -webkit-flex;
  display: flex;
  position: absolute;
  right: 0;
  left: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: 100%;
  /* @noflip */
  text-align: left;
  pointer-events: none; }
  [dir="rtl"] .mdc-notched-outline, .mdc-notched-outline[dir="rtl"] {
    /* @noflip */
    text-align: right; }
  .mdc-notched-outline__leading, .mdc-notched-outline__notch, .mdc-notched-outline__trailing {
    box-sizing: border-box;
    height: 100%;
    transition: border 150ms cubic-bezier(0.4, 0, 0.2, 1);
    border-top: 1px solid;
    border-bottom: 1px solid;
    pointer-events: none; }
  .mdc-notched-outline__leading {
    /* @noflip */
    border-left: 1px solid;
    /* @noflip */
    border-right: none;
    width: 12px; }
    [dir="rtl"] .mdc-notched-outline__leading, .mdc-notched-outline__leading[dir="rtl"] {
      /* @noflip */
      border-left: none;
      /* @noflip */
      border-right: 1px solid; }
  .mdc-notched-outline__trailing {
    /* @noflip */
    border-left: none;
    /* @noflip */
    border-right: 1px solid;
    -webkit-flex-grow: 1;
            flex-grow: 1; }
    [dir="rtl"] .mdc-notched-outline__trailing, .mdc-notched-outline__trailing[dir="rtl"] {
      /* @noflip */
      border-left: 1px solid;
      /* @noflip */
      border-right: none; }
  .mdc-notched-outline__notch {
    -webkit-flex: 0 0 auto;
            flex: 0 0 auto;
    width: auto;
    max-width: calc(100% - 12px * 2); }
  .mdc-notched-outline .mdc-floating-label {
    display: inline-block;
    position: relative;
    top: 17px;
    bottom: auto;
    max-width: 100%; }
  .mdc-notched-outline .mdc-floating-label--float-above {
    text-overflow: clip; }
  .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    max-width: calc(100% / .75); }

.mdc-notched-outline--notched .mdc-notched-outline__notch {
  /* @noflip */
  padding-left: 0;
  /* @noflip */
  padding-right: 8px;
  border-top: none; }
  [dir="rtl"] .mdc-notched-outline--notched .mdc-notched-outline__notch, .mdc-notched-outline--notched .mdc-notched-outline__notch[dir="rtl"] {
    /* @noflip */
    padding-left: 8px;
    /* @noflip */
    padding-right: 0; }

.mdc-notched-outline--no-label .mdc-notched-outline__notch {
  padding: 0; }

.mdc-radio {
  display: inline-block;
  position: relative;
  -webkit-flex: 0 0 auto;
          flex: 0 0 auto;
  box-sizing: border-box;
  width: 40px;
  height: 40px;
  padding: 10px;
  cursor: pointer;
  /* @alternate */
  will-change: opacity, transform, border-color, color; }
  .mdc-radio .mdc-radio__native-control:enabled:not(:checked) + .mdc-radio__background .mdc-radio__outer-circle {
    border-color: rgba(52, 58, 64, 0.54); }
  .mdc-radio .mdc-radio__native-control:enabled:checked + .mdc-radio__background .mdc-radio__outer-circle {
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-radio .mdc-radio__native-control:enabled + .mdc-radio__background .mdc-radio__inner-circle {
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-radio .mdc-radio__background::before {
    background-color: #415E7E; }
    @supports not (-ms-ime-align: auto) {
      .mdc-radio .mdc-radio__background::before {
        /* @alternate */
        background-color: var(--mdc-theme-secondary, #415E7E); } }
  .mdc-radio__background {
    display: inline-block;
    position: absolute;
    left: 10px;
    box-sizing: border-box;
    width: 50%;
    height: 50%; }
    .mdc-radio__background::before {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      -webkit-transform: scale(0, 0);
              transform: scale(0, 0);
      border-radius: 50%;
      opacity: 0;
      pointer-events: none;
      content: "";
      transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
      transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
      transition: opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-radio__outer-circle {
    position: absolute;
    top: 0;
    left: 0;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;
    transition: border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-radio__inner-circle {
    position: absolute;
    top: 0;
    left: 0;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    -webkit-transform: scale(0, 0);
            transform: scale(0, 0);
    border-width: 10px;
    border-style: solid;
    border-radius: 50%;
    transition: border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
    transition: transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1);
    transition: transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1); }
  .mdc-radio__native-control {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: inherit;
    z-index: 1; }

.mdc-radio__native-control:checked + .mdc-radio__background,
.mdc-radio__native-control:disabled + .mdc-radio__background {
  transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }
  .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__outer-circle,
  .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__outer-circle {
    transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }
  .mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__inner-circle,
  .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__inner-circle {
    transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
    transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
    transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }

.mdc-radio--disabled {
  cursor: default;
  pointer-events: none; }

.mdc-radio__native-control:checked + .mdc-radio__background .mdc-radio__inner-circle {
  -webkit-transform: scale(0.5);
          transform: scale(0.5);
  transition: border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }

.mdc-radio__native-control:disabled + .mdc-radio__background,
[aria-disabled="true"] .mdc-radio__native-control + .mdc-radio__background {
  cursor: default; }
  .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__outer-circle,
  [aria-disabled="true"] .mdc-radio__native-control + .mdc-radio__background .mdc-radio__outer-circle {
    border-color: rgba(52, 58, 64, 0.26); }
  .mdc-radio__native-control:disabled + .mdc-radio__background .mdc-radio__inner-circle,
  [aria-disabled="true"] .mdc-radio__native-control + .mdc-radio__background .mdc-radio__inner-circle {
    border-color: rgba(52, 58, 64, 0.26); }

.mdc-radio__native-control:focus + .mdc-radio__background::before {
  -webkit-transform: scale(2, 2);
          transform: scale(2, 2);
  opacity: 0.12;
  transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1);
  transition: opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1); }

.mdc-radio {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-radio::before, .mdc-radio::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-radio::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-radio.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-radio.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-radio.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-radio.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-radio.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-radio::before, .mdc-radio::after {
    top: calc(50% - 50%);
    /* @noflip */
    left: calc(50% - 50%);
    width: 100%;
    height: 100%; }
  .mdc-radio.mdc-ripple-upgraded::before, .mdc-radio.mdc-ripple-upgraded::after {
    top: var(--mdc-ripple-top, calc(50% - 50%));
    /* @noflip */
    left: var(--mdc-ripple-left, calc(50% - 50%));
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-radio.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-radio::before, .mdc-radio::after {
    background-color: #415E7E; }
    @supports not (-ms-ime-align: auto) {
      .mdc-radio::before, .mdc-radio::after {
        /* @alternate */
        background-color: var(--mdc-theme-secondary, #415E7E); } }
  .mdc-radio:hover::before {
    opacity: 0.04; }
  .mdc-radio:not(.mdc-ripple-upgraded):focus::before, .mdc-radio.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-radio:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-radio:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-radio.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }
  .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__background::before {
    content: none; }

.mdc-ripple-surface {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  position: relative;
  outline: none;
  overflow: hidden; }
  .mdc-ripple-surface::before, .mdc-ripple-surface::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-ripple-surface::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-ripple-surface.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-ripple-surface.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-ripple-surface::before, .mdc-ripple-surface::after {
    background-color: #343a40; }
  .mdc-ripple-surface:hover::before {
    opacity: 0.04; }
  .mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-ripple-surface:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-ripple-surface.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }
  .mdc-ripple-surface::before, .mdc-ripple-surface::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-ripple-surface.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-ripple-surface[data-mdc-ripple-is-unbounded] {
    overflow: visible; }
    .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after {
      top: calc(50% - 50%);
      /* @noflip */
      left: calc(50% - 50%);
      width: 100%;
      height: 100%; }
    .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after {
      top: var(--mdc-ripple-top, calc(50% - 50%));
      /* @noflip */
      left: var(--mdc-ripple-left, calc(50% - 50%));
      width: var(--mdc-ripple-fg-size, 100%);
      height: var(--mdc-ripple-fg-size, 100%); }
    .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after {
      width: var(--mdc-ripple-fg-size, 100%);
      height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-ripple-surface--primary::before, .mdc-ripple-surface--primary::after {
    background-color: #212121; }
    @supports not (-ms-ime-align: auto) {
      .mdc-ripple-surface--primary::before, .mdc-ripple-surface--primary::after {
        /* @alternate */
        background-color: var(--mdc-theme-primary, #212121); } }
  .mdc-ripple-surface--primary:hover::before {
    opacity: 0.04; }
  .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface--primary.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-ripple-surface--primary:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-ripple-surface--primary.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }
  .mdc-ripple-surface--accent::before, .mdc-ripple-surface--accent::after {
    background-color: #415E7E; }
    @supports not (-ms-ime-align: auto) {
      .mdc-ripple-surface--accent::before, .mdc-ripple-surface--accent::after {
        /* @alternate */
        background-color: var(--mdc-theme-secondary, #415E7E); } }
  .mdc-ripple-surface--accent:hover::before {
    opacity: 0.04; }
  .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded):focus::before, .mdc-ripple-surface--accent.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-ripple-surface--accent:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-ripple-surface--accent.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

@-webkit-keyframes mdc-select-float-native-control {
  0% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1; } }

@keyframes mdc-select-float-native-control {
  0% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1; } }

.mdc-select--with-leading-icon:not(.mdc-select--disabled) .mdc-select__icon {
  color: #343a40;
  /* @alternate */
  color: var(--mdc-theme-on-surface, #343a40); }

.mdc-select--with-leading-icon .mdc-select__icon {
  display: inline-block;
  position: absolute;
  bottom: 16px;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  border: none;
  background-color: transparent;
  fill: currentColor;
  opacity: 0.54;
  text-decoration: none;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.mdc-select__icon:not([tabindex]),
.mdc-select__icon[tabindex="-1"] {
  cursor: default;
  pointer-events: none; }

.mdc-select-helper-text {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.75rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.03333em;
  text-decoration: inherit;
  text-transform: inherit;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin: 0;
  transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  will-change: opacity; }
  .mdc-select-helper-text::before {
    display: inline-block;
    width: 0;
    height: 16px;
    content: "";
    vertical-align: 0; }

.mdc-select-helper-text--persistent {
  transition: none;
  opacity: 1;
  will-change: initial; }

.mdc-select {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  display: -webkit-inline-flex;
  display: inline-flex;
  position: relative;
  box-sizing: border-box;
  height: 56px;
  overflow: hidden;
  /* @alternate */
  will-change: opacity, transform, color; }
  .mdc-select:not(.mdc-select--disabled) {
    background-color: #dcebf5; }
  .mdc-select::before, .mdc-select::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-select::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-select.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-select.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-select.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-select.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-select.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-select::before, .mdc-select::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-select.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-select::before, .mdc-select::after {
    background-color: rgba(52, 58, 64, 0.87); }
  .mdc-select:hover::before {
    opacity: 0.04; }
  .mdc-select:not(.mdc-ripple-upgraded):focus::before, .mdc-select.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control,
  .mdc-select:not(.mdc-select--disabled) .mdc-select__selected-text {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-select:not(.mdc-select--disabled) .mdc-floating-label {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control,
  .mdc-select:not(.mdc-select--disabled) .mdc-select__selected-text {
    border-bottom-color: rgba(52, 58, 64, 0.42); }
  .mdc-select:not(.mdc-select--disabled) + .mdc-select-helper-text {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-select, .mdc-select__native-control {
    border-radius: 4px 4px 0 0; }
  .mdc-select:not(.mdc-select--disabled).mdc-select--focused .mdc-line-ripple {
    background-color: #212121;
    /* @alternate */
    background-color: var(--mdc-theme-primary, #212121); }
  .mdc-select:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {
    color: rgba(33, 33, 33, 0.87); }
  .mdc-select:not(.mdc-select--disabled) .mdc-select__native-control:hover {
    border-bottom-color: rgba(52, 58, 64, 0.87); }
  .mdc-select .mdc-floating-label--float-above {
    -webkit-transform: translateY(-70%) scale(0.75);
            transform: translateY(-70%) scale(0.75); }
  .mdc-select .mdc-floating-label {
    /* @noflip */
    left: 16px;
    /* @noflip */
    right: initial;
    top: 21px;
    pointer-events: none; }
    [dir="rtl"] .mdc-select .mdc-floating-label, .mdc-select .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 16px; }
  .mdc-select.mdc-select--with-leading-icon .mdc-floating-label {
    /* @noflip */
    left: 48px;
    /* @noflip */
    right: initial; }
    [dir="rtl"] .mdc-select.mdc-select--with-leading-icon .mdc-floating-label, .mdc-select.mdc-select--with-leading-icon .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 48px; }
  .mdc-select.mdc-select--outlined .mdc-floating-label {
    /* @noflip */
    left: 4px;
    /* @noflip */
    right: initial;
    top: 17px; }
    [dir="rtl"] .mdc-select.mdc-select--outlined .mdc-floating-label, .mdc-select.mdc-select--outlined .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 4px; }
  .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label {
    /* @noflip */
    left: 36px;
    /* @noflip */
    right: initial; }
    [dir="rtl"] .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label, .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 36px; }
    .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above {
      /* @noflip */
      left: 36px;
      /* @noflip */
      right: initial; }
      [dir="rtl"] .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above, .mdc-select.mdc-select--outlined.mdc-select--with-leading-icon .mdc-floating-label--float-above[dir="rtl"] {
        /* @noflip */
        left: initial;
        /* @noflip */
        right: 36px; }
  .mdc-select__dropdown-icon {
    background: url("data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23343a40%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.54%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E") no-repeat center;
    /* @noflip */
    left: auto;
    /* @noflip */
    right: 8px;
    position: absolute;
    bottom: 16px;
    width: 24px;
    height: 24px;
    transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
    transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
    transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none; }
    [dir="rtl"] .mdc-select__dropdown-icon, .mdc-select__dropdown-icon[dir="rtl"] {
      /* @noflip */
      left: 8px;
      /* @noflip */
      right: auto; }
    .mdc-select--focused .mdc-select__dropdown-icon {
      background: url("data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23212121%22%20fill-rule%3D%22evenodd%22%20opacity%3D%221%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E") no-repeat center; }
    .mdc-select--activated .mdc-select__dropdown-icon {
      -webkit-transform: rotate(180deg) translateY(-5px);
              transform: rotate(180deg) translateY(-5px);
      transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
      transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
      transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); }
  .mdc-select__native-control {
    padding-top: 20px; }
  .mdc-select.mdc-select--focused .mdc-line-ripple::after {
    -webkit-transform: scale(1, 2);
            transform: scale(1, 2);
    opacity: 1; }

.mdc-select + .mdc-select-helper-text {
  margin-right: 12px;
  margin-left: 12px; }

.mdc-select--outlined + .mdc-select-helper-text {
  margin-right: 16px;
  margin-left: 16px; }

.mdc-select--focused + .mdc-select-helper-text:not(.mdc-select-helper-text--validation-msg) {
  opacity: 1; }

.mdc-select__selected-text {
  min-width: 200px;
  padding-top: 22px; }

.mdc-select__native-control,
.mdc-select__selected-text {
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 52px;
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  box-sizing: border-box;
  width: 100%;
  height: 56px;
  padding-top: 20px;
  padding-bottom: 4px;
  border: none;
  border-bottom: 1px solid;
  outline: none;
  background-color: transparent;
  color: inherit;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [dir="rtl"] .mdc-select__native-control, .mdc-select__native-control[dir="rtl"], [dir="rtl"]
  .mdc-select__selected-text,
  .mdc-select__selected-text[dir="rtl"] {
    /* @noflip */
    padding-left: 52px;
    /* @noflip */
    padding-right: 16px; }
  .mdc-select__native-control::-ms-expand,
  .mdc-select__selected-text::-ms-expand {
    display: none; }
  .mdc-select__native-control::-ms-value,
  .mdc-select__selected-text::-ms-value {
    background-color: transparent;
    color: inherit; }

@-moz-document url-prefix("") {
  .mdc-select__native-control,
  .mdc-select__selected-text {
    text-indent: -2px; } }

.mdc-select--outlined {
  border: none;
  overflow: visible; }
  .mdc-select--outlined:not(.mdc-select--disabled) {
    background-color: transparent; }
  .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,
  .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,
  .mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.38); }
  .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,
  .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.87); }
  .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {
    border-width: 2px; }
  .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {
    border-color: #212121;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #212121); }
  .mdc-select--outlined .mdc-floating-label--shake {
    -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;
            animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }
  .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading {
    /* @noflip */
    border-radius: 4px 0 0 4px; }
    [dir="rtl"] .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading, .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir="rtl"] {
      /* @noflip */
      border-radius: 0 4px 4px 0; }
  .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing {
    /* @noflip */
    border-radius: 0 4px 4px 0; }
    [dir="rtl"] .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-select--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir="rtl"] {
      /* @noflip */
      border-radius: 4px 0 0 4px; }
  .mdc-select--outlined .mdc-select__native-control {
    border-radius: 4px; }
  .mdc-select--outlined::before, .mdc-select--outlined::after {
    content: none; }
  .mdc-select--outlined:not(.mdc-select--disabled) {
    background-color: transparent; }
  .mdc-select--outlined .mdc-floating-label--float-above {
    -webkit-transform: translateY(-144%) scale(1);
            transform: translateY(-144%) scale(1); }
  .mdc-select--outlined .mdc-floating-label--float-above {
    font-size: 0.75rem; }
  .mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    -webkit-transform: translateY(-130%) scale(0.75);
            transform: translateY(-130%) scale(0.75); }
  .mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    font-size: 1rem; }
  .mdc-select--outlined .mdc-select__native-control,
  .mdc-select--outlined .mdc-select__selected-text {
    /* @noflip */
    padding-left: 16px;
    /* @noflip */
    padding-right: 52px;
    display: -webkit-flex;
    display: flex;
    padding-top: 12px;
    padding-bottom: 12px;
    border: none;
    background-color: transparent;
    z-index: 1; }
    [dir="rtl"] .mdc-select--outlined .mdc-select__native-control, .mdc-select--outlined .mdc-select__native-control[dir="rtl"], [dir="rtl"]
    .mdc-select--outlined .mdc-select__selected-text,
    .mdc-select--outlined .mdc-select__selected-text[dir="rtl"] {
      /* @noflip */
      padding-left: 52px;
      /* @noflip */
      padding-right: 16px; }
  .mdc-select--outlined .mdc-select__selected-text {
    padding-top: 14px; }
  .mdc-select--outlined .mdc-select__icon {
    z-index: 2; }
  .mdc-select--outlined .mdc-floating-label {
    line-height: 1.15rem;
    pointer-events: auto; }

.mdc-select--invalid:not(.mdc-select--disabled) .mdc-floating-label {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__native-control,
.mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__selected-text {
  border-bottom-color: #b00020;
  /* @alternate */
  border-bottom-color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid:not(.mdc-select--disabled).mdc-select--focused .mdc-line-ripple {
  background-color: #b00020;
  /* @alternate */
  background-color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid:not(.mdc-select--disabled).mdc-select--focused .mdc-floating-label {
  color: #b00020; }

.mdc-select--invalid:not(.mdc-select--disabled).mdc-select--invalid + .mdc-select-helper-text--validation-msg {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid:not(.mdc-select--disabled) .mdc-select__native-control:hover {
  border-bottom-color: #b00020;
  /* @alternate */
  border-bottom-color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__leading,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__notch,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled) .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__native-control:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled):not(.mdc-select--focused) .mdc-select__selected-text:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {
  border-width: 2px; }

.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-select--invalid.mdc-select--outlined:not(.mdc-select--disabled).mdc-select--focused .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-select--invalid .mdc-select__dropdown-icon {
  background: url("data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23b00020%22%20fill-rule%3D%22evenodd%22%20opacity%3D%221%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E") no-repeat center; }

.mdc-select--invalid + .mdc-select-helper-text--validation-msg {
  opacity: 1; }

.mdc-select--required .mdc-floating-label::after {
  content: "*"; }

.mdc-select--disabled {
  background-color: #e0eef9;
  cursor: default;
  pointer-events: none; }
  .mdc-select--disabled .mdc-floating-label {
    color: rgba(52, 58, 64, 0.37); }
  .mdc-select--disabled .mdc-select__dropdown-icon {
    background: url("data:image/svg+xml,%3Csvg%20width%3D%2210px%22%20height%3D%225px%22%20viewBox%3D%227%2010%2010%205%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Shape%22%20stroke%3D%22none%22%20fill%3D%22%23343a40%22%20fill-rule%3D%22evenodd%22%20opacity%3D%220.37%22%20points%3D%227%2010%2012%2015%2017%2010%22%3E%3C%2Fpolygon%3E%0A%3C%2Fsvg%3E") no-repeat center; }
  .mdc-select--disabled .mdc-line-ripple {
    display: none; }
  .mdc-select--disabled .mdc-select__icon {
    color: rgba(52, 58, 64, 0.37); }
  .mdc-select--disabled .mdc-select__native-control,
  .mdc-select--disabled .mdc-select__selected-text {
    color: rgba(52, 58, 64, 0.37);
    border-bottom-style: dotted; }
  .mdc-select--disabled .mdc-select__selected-text {
    pointer-events: none; }
  .mdc-select--disabled.mdc-select--outlined {
    background-color: transparent; }
    .mdc-select--disabled.mdc-select--outlined .mdc-select__native-control,
    .mdc-select--disabled.mdc-select--outlined .mdc-select__selected-text {
      border-bottom-style: none; }
    .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__leading,
    .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__notch,
    .mdc-select--disabled.mdc-select--outlined .mdc-notched-outline__trailing {
      border-color: rgba(52, 58, 64, 0.16); }

.mdc-select--with-leading-icon .mdc-select__icon {
  /* @noflip */
  left: 16px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-select--with-leading-icon .mdc-select__icon, .mdc-select--with-leading-icon .mdc-select__icon[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 16px; }

.mdc-select--with-leading-icon .mdc-select__native-control,
.mdc-select--with-leading-icon .mdc-select__selected-text {
  /* @noflip */
  padding-left: 48px;
  /* @noflip */
  padding-right: 32px; }
  [dir="rtl"] .mdc-select--with-leading-icon .mdc-select__native-control, .mdc-select--with-leading-icon .mdc-select__native-control[dir="rtl"], [dir="rtl"]
  .mdc-select--with-leading-icon .mdc-select__selected-text,
  .mdc-select--with-leading-icon .mdc-select__selected-text[dir="rtl"] {
    /* @noflip */
    padding-left: 32px;
    /* @noflip */
    padding-right: 48px; }

.mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above {
  -webkit-transform: translateY(-144%) translateX(-32px) scale(1);
          transform: translateY(-144%) translateX(-32px) scale(1); }
  [dir="rtl"] .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above, .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above[dir="rtl"] {
    -webkit-transform: translateY(-144%) translateX(32px) scale(1);
            transform: translateY(-144%) translateX(32px) scale(1); }

.mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--float-above {
  font-size: 0.75rem; }

.mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  -webkit-transform: translateY(-130%) translateX(-32px) scale(0.75);
          transform: translateY(-130%) translateX(-32px) scale(0.75); }
  [dir="rtl"] .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir="rtl"], [dir="rtl"]
  .mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir="rtl"] {
    -webkit-transform: translateY(-130%) translateX(32px) scale(0.75);
            transform: translateY(-130%) translateX(32px) scale(0.75); }

.mdc-select--with-leading-icon.mdc-select--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-select--with-leading-icon.mdc-select--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  font-size: 1rem; }

.mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon 250ms 1;
          animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon 250ms 1; }

[dir="rtl"] .mdc-select--with-leading-icon.mdc-select--outlined .mdc-floating-label--shake, .mdc-select--with-leading-icon.mdc-select--outlined[dir="rtl"] .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl 250ms 1;
          animation: mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl 250ms 1; }

.mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text {
  /* @noflip */
  padding-left: 32px;
  /* @noflip */
  padding-right: 32px; }
  [dir="rtl"] .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text, .mdc-select--with-leading-icon.mdc-select__menu .mdc-list-item__text[dir="rtl"] {
    /* @noflip */
    padding-left: 32px;
    /* @noflip */
    padding-right: 32px; }

.mdc-select__menu .mdc-list .mdc-list-item--selected {
  color: #343a40;
  /* @alternate */
  color: var(--mdc-theme-on-surface, #343a40); }
  .mdc-select__menu .mdc-list .mdc-list-item--selected::before, .mdc-select__menu .mdc-list .mdc-list-item--selected::after {
    background-color: #343a40; }
    @supports not (-ms-ime-align: auto) {
      .mdc-select__menu .mdc-list .mdc-list-item--selected::before, .mdc-select__menu .mdc-list .mdc-list-item--selected::after {
        /* @alternate */
        background-color: var(--mdc-theme-on-surface, #343a40); } }
  .mdc-select__menu .mdc-list .mdc-list-item--selected:hover::before {
    opacity: 0.04; }
  .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded):focus::before, .mdc-select__menu .mdc-list .mdc-list-item--selected.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-select__menu .mdc-list .mdc-list-item--selected:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-select__menu .mdc-list .mdc-list-item--selected.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

@-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon {
  0% {
    -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon {
  0% {
    -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 32px)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 32px)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 32px)) translateY(-130%) scale(0.75); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl {
  0% {
    -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-select-outlined-leading-icon-rtl {
  0% {
    -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - -32px)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - -32px)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - -32px)) translateY(-130%) scale(0.75); } }

@-webkit-keyframes mdc-slider-emphasize {
  0% {
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out; }
  50% {
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
    -webkit-transform: scale(0.85);
            transform: scale(0.85); }
  100% {
    -webkit-transform: scale(0.571);
            transform: scale(0.571); } }

@keyframes mdc-slider-emphasize {
  0% {
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out; }
  50% {
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in;
    -webkit-transform: scale(0.85);
            transform: scale(0.85); }
  100% {
    -webkit-transform: scale(0.571);
            transform: scale(0.571); } }

.mdc-slider {
  position: relative;
  width: 100%;
  height: 48px;
  cursor: pointer;
  touch-action: pan-x;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track {
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-container {
    background-color: rgba(65, 94, 126, 0.26); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-marker::after,
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__track-marker-container::after {
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__thumb {
    fill: #415E7E;
    /* @alternate */
    fill: var(--mdc-theme-secondary, #415E7E);
    stroke: #415E7E;
    /* @alternate */
    stroke: var(--mdc-theme-secondary, #415E7E); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__focus-ring {
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__pin {
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-slider:not(.mdc-slider--disabled) .mdc-slider__pin {
    color: white;
    /* @alternate */
    color: var(--mdc-theme-text-primary-on-dark, white); }
  .mdc-slider--disabled {
    cursor: auto; }
    .mdc-slider--disabled .mdc-slider__track {
      background-color: #9a9a9a; }
    .mdc-slider--disabled .mdc-slider__track-container {
      background-color: rgba(154, 154, 154, 0.26); }
    .mdc-slider--disabled .mdc-slider__track-marker::after,
    .mdc-slider--disabled .mdc-slider__track-marker-container::after {
      background-color: #9a9a9a; }
    .mdc-slider--disabled .mdc-slider__thumb {
      fill: #9a9a9a;
      stroke: #9a9a9a; }
    .mdc-slider--disabled .mdc-slider__thumb {
      /* @alternate */
      stroke: white;
      stroke: var(--mdc-slider-bg-color-behind-component, white); }
  .mdc-slider:focus {
    outline: none; }
  .mdc-slider__track-container {
    position: absolute;
    top: 50%;
    width: 100%;
    height: 2px;
    overflow: hidden; }
  .mdc-slider__track {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-transform-origin: left top;
            transform-origin: left top;
    will-change: transform; }
    .mdc-slider[dir="rtl"] .mdc-slider__track,
    [dir="rtl"] .mdc-slider .mdc-slider__track {
      -webkit-transform-origin: right top;
              transform-origin: right top; }
  .mdc-slider__track-marker-container {
    display: -webkit-flex;
    display: flex;
    margin-right: 0;
    margin-left: -1px;
    visibility: hidden; }
    .mdc-slider[dir="rtl"] .mdc-slider__track-marker-container,
    [dir="rtl"] .mdc-slider .mdc-slider__track-marker-container {
      margin-right: -1px;
      margin-left: 0; }
    .mdc-slider__track-marker-container::after {
      display: block;
      width: 2px;
      height: 2px;
      content: ""; }
  .mdc-slider__track-marker {
    -webkit-flex: 1;
            flex: 1; }
    .mdc-slider__track-marker::after {
      display: block;
      width: 2px;
      height: 2px;
      content: ""; }
    .mdc-slider__track-marker:first-child::after {
      width: 3px; }
  .mdc-slider__thumb-container {
    position: absolute;
    top: 15px;
    left: 0;
    width: 21px;
    height: 100%;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    will-change: transform; }
  .mdc-slider__thumb {
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transform: scale(0.571);
            transform: scale(0.571);
    transition: fill 100ms ease-out, stroke 100ms ease-out, -webkit-transform 100ms ease-out;
    transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out;
    transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out, -webkit-transform 100ms ease-out;
    stroke-width: 3.5; }
  .mdc-slider__focus-ring {
    width: 21px;
    height: 21px;
    transition: opacity 266.67ms ease-out, background-color 266.67ms ease-out, -webkit-transform 266.67ms ease-out;
    transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out;
    transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out, -webkit-transform 266.67ms ease-out;
    border-radius: 50%;
    opacity: 0; }
  .mdc-slider__pin {
    display: -webkit-flex;
    display: flex;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-align-items: center;
            align-items: center;
    -webkit-justify-content: center;
            justify-content: center;
    width: 26px;
    height: 26px;
    margin-top: -2px;
    margin-left: -2px;
    -webkit-transform: rotate(-45deg) scale(0) translate(0, 0);
            transform: rotate(-45deg) scale(0) translate(0, 0);
    transition: -webkit-transform 100ms ease-out;
    transition: transform 100ms ease-out;
    transition: transform 100ms ease-out, -webkit-transform 100ms ease-out;
    border-radius: 50% 50% 50% 0%;
    z-index: 1; }
  .mdc-slider__pin-value-marker {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 400;
    letter-spacing: 0.01786em;
    text-decoration: inherit;
    text-transform: inherit;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg); }

.mdc-slider--active .mdc-slider__thumb {
  -webkit-transform: scale3d(1, 1, 1);
          transform: scale3d(1, 1, 1); }

.mdc-slider--focus .mdc-slider__thumb {
  -webkit-animation: mdc-slider-emphasize 266.67ms linear;
          animation: mdc-slider-emphasize 266.67ms linear; }

.mdc-slider--focus .mdc-slider__focus-ring {
  -webkit-transform: scale3d(1.55, 1.55, 1.55);
          transform: scale3d(1.55, 1.55, 1.55);
  opacity: .25; }

.mdc-slider--in-transit .mdc-slider__thumb {
  transition-delay: 140ms; }

.mdc-slider--in-transit .mdc-slider__thumb-container,
.mdc-slider--in-transit .mdc-slider__track,
.mdc-slider:focus:not(.mdc-slider--active) .mdc-slider__thumb-container,
.mdc-slider:focus:not(.mdc-slider--active) .mdc-slider__track {
  transition: -webkit-transform 80ms ease;
  transition: transform 80ms ease;
  transition: transform 80ms ease, -webkit-transform 80ms ease; }

.mdc-slider--discrete.mdc-slider--active .mdc-slider__thumb {
  -webkit-transform: scale(calc(12 / 21));
          transform: scale(calc(12 / 21)); }

.mdc-slider--discrete.mdc-slider--active .mdc-slider__pin {
  -webkit-transform: rotate(-45deg) scale(1) translate(19px, -20px);
          transform: rotate(-45deg) scale(1) translate(19px, -20px); }

.mdc-slider--discrete.mdc-slider--focus .mdc-slider__thumb {
  -webkit-animation: none;
          animation: none; }

.mdc-slider--discrete.mdc-slider--display-markers .mdc-slider__track-marker-container {
  visibility: visible; }

.mdc-snackbar {
  z-index: 8;
  margin: 8px;
  display: none;
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  pointer-events: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }

.mdc-snackbar__surface {
  background-color: #575f66; }

.mdc-snackbar__label {
  color: rgba(227, 242, 253, 0.87); }

.mdc-snackbar__surface {
  min-width: 344px; }
  @media (max-width: 480px), (max-width: 344px) {
    .mdc-snackbar__surface {
      min-width: 100%; } }

.mdc-snackbar__surface {
  max-width: 672px; }

.mdc-snackbar__surface {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12); }

.mdc-snackbar__surface {
  border-radius: 4px; }

.mdc-snackbar--opening,
.mdc-snackbar--open,
.mdc-snackbar--closing {
  display: -webkit-flex;
  display: flex; }

.mdc-snackbar--leading {
  -webkit-justify-content: flex-start;
          justify-content: flex-start; }

.mdc-snackbar--stacked .mdc-snackbar__surface {
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-align-items: flex-start;
          align-items: flex-start; }

.mdc-snackbar--stacked .mdc-snackbar__actions {
  -webkit-align-self: flex-end;
          align-self: flex-end;
  margin-bottom: 8px; }

.mdc-snackbar__surface {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: flex-start;
          justify-content: flex-start;
  box-sizing: border-box;
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
  opacity: 0; }
  .mdc-snackbar--open .mdc-snackbar__surface {
    -webkit-transform: scale(1);
            transform: scale(1);
    transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
    transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
    transition: opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1), transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1);
    opacity: 1;
    pointer-events: auto; }
  .mdc-snackbar--closing .mdc-snackbar__surface {
    -webkit-transform: scale(1);
            transform: scale(1);
    transition: opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1); }

.mdc-snackbar__label {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01786em;
  text-decoration: inherit;
  text-transform: inherit;
  -webkit-flex-grow: 1;
          flex-grow: 1;
  box-sizing: border-box;
  margin: 0;
  padding: 14px 16px; }

.mdc-snackbar__label::before {
  display: inline;
  content: attr(data-mdc-snackbar-label-text); }

.mdc-snackbar__actions {
  /* @noflip */
  margin-left: 0;
  /* @noflip */
  margin-right: 8px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  -webkit-align-items: center;
          align-items: center;
  box-sizing: border-box; }
  [dir="rtl"] .mdc-snackbar__actions, .mdc-snackbar__actions[dir="rtl"] {
    /* @noflip */
    margin-left: 8px;
    /* @noflip */
    margin-right: 0; }

.mdc-snackbar__action:not(:disabled) {
  color: #bb86fc; }

.mdc-snackbar__action::before, .mdc-snackbar__action::after {
  background-color: #bb86fc; }

.mdc-snackbar__action:hover::before {
  opacity: 0.08; }

.mdc-snackbar__action:not(.mdc-ripple-upgraded):focus::before, .mdc-snackbar__action.mdc-ripple-upgraded--background-focused::before {
  transition-duration: 75ms;
  opacity: 0.24; }

.mdc-snackbar__action:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear; }

.mdc-snackbar__action:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.24; }

.mdc-snackbar__action.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24; }

.mdc-snackbar__dismiss {
  color: rgba(227, 242, 253, 0.87); }
  .mdc-snackbar__dismiss::before, .mdc-snackbar__dismiss::after {
    background-color: rgba(227, 242, 253, 0.87); }
  .mdc-snackbar__dismiss:hover::before {
    opacity: 0.08; }
  .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):focus::before, .mdc-snackbar__dismiss.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.24; }
  .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-snackbar__dismiss:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.24; }
  .mdc-snackbar__dismiss.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.24; }

.mdc-snackbar__dismiss.mdc-snackbar__dismiss {
  width: 36px;
  height: 36px;
  padding: 9px;
  font-size: 18px; }
  .mdc-snackbar__dismiss.mdc-snackbar__dismiss svg,
  .mdc-snackbar__dismiss.mdc-snackbar__dismiss img {
    width: 18px;
    height: 18px; }

.mdc-snackbar__action + .mdc-snackbar__dismiss {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0; }
  [dir="rtl"] .mdc-snackbar__action + .mdc-snackbar__dismiss, .mdc-snackbar__action + .mdc-snackbar__dismiss[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 8px; }

.mdc-switch {
  display: inline-block;
  position: relative;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .mdc-switch.mdc-switch--checked .mdc-switch__track {
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E);
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-switch.mdc-switch--checked .mdc-switch__thumb {
    background-color: #415E7E;
    /* @alternate */
    background-color: var(--mdc-theme-secondary, #415E7E);
    border-color: #415E7E;
    /* @alternate */
    border-color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {
    background-color: #343a40;
    border-color: #343a40; }
  .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {
    background-color: #e3f2fd;
    border-color: #e3f2fd; }

.mdc-switch__native-control {
  /* @noflip */
  left: 0;
  /* @noflip */
  right: initial;
  position: absolute;
  top: 0;
  width: 68px;
  height: 48px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  pointer-events: auto; }
  [dir="rtl"] .mdc-switch__native-control, .mdc-switch__native-control[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 0; }

.mdc-switch__track {
  box-sizing: border-box;
  width: 32px;
  height: 14px;
  border: 1px solid;
  border-radius: 7px;
  opacity: .38;
  transition: opacity 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1); }

.mdc-switch__thumb-underlay {
  /* @noflip */
  left: -18px;
  /* @noflip */
  right: initial;
  display: -webkit-flex;
  display: flex;
  position: absolute;
  top: -17px;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  width: 48px;
  height: 48px;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  transition: background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 90ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 90ms cubic-bezier(0.4, 0, 0.2, 1), background-color 90ms cubic-bezier(0.4, 0, 0.2, 1), border-color 90ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 90ms cubic-bezier(0.4, 0, 0.2, 1); }
  [dir="rtl"] .mdc-switch__thumb-underlay, .mdc-switch__thumb-underlay[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: -18px; }

.mdc-switch__thumb {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border: 10px solid;
  border-radius: 50%;
  pointer-events: none;
  z-index: 1; }

.mdc-switch--checked .mdc-switch__track {
  opacity: .54; }

.mdc-switch--checked .mdc-switch__thumb-underlay {
  -webkit-transform: translateX(20px);
          transform: translateX(20px); }
  [dir="rtl"] .mdc-switch--checked .mdc-switch__thumb-underlay, .mdc-switch--checked .mdc-switch__thumb-underlay[dir="rtl"] {
    -webkit-transform: translateX(-20px);
            transform: translateX(-20px); }

.mdc-switch--checked .mdc-switch__native-control {
  -webkit-transform: translateX(-20px);
          transform: translateX(-20px); }
  [dir="rtl"] .mdc-switch--checked .mdc-switch__native-control, .mdc-switch--checked .mdc-switch__native-control[dir="rtl"] {
    -webkit-transform: translateX(20px);
            transform: translateX(20px); }

.mdc-switch--disabled {
  opacity: .38;
  pointer-events: none; }
  .mdc-switch--disabled .mdc-switch__thumb {
    border-width: 1px; }
  .mdc-switch--disabled .mdc-switch__native-control {
    cursor: default;
    pointer-events: none; }

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay::before, .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay::after {
  background-color: #9e9e9e; }

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:hover::before {
  opacity: 0.08; }

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):focus::before, .mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay.mdc-ripple-upgraded--background-focused::before {
  transition-duration: 75ms;
  opacity: 0.24; }

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded)::after {
  transition: opacity 150ms linear; }

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):active::after {
  transition-duration: 75ms;
  opacity: 0.24; }

.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb-underlay.mdc-ripple-upgraded {
  --mdc-ripple-fg-opacity: 0.24; }

.mdc-switch__thumb-underlay {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-switch__thumb-underlay::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {
    top: calc(50% - 50%);
    /* @noflip */
    left: calc(50% - 50%);
    width: 100%;
    height: 100%; }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded::before, .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {
    top: var(--mdc-ripple-top, calc(50% - 50%));
    /* @noflip */
    left: var(--mdc-ripple-left, calc(50% - 50%));
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {
    background-color: #415E7E; }
    @supports not (-ms-ime-align: auto) {
      .mdc-switch__thumb-underlay::before, .mdc-switch__thumb-underlay::after {
        /* @alternate */
        background-color: var(--mdc-theme-secondary, #415E7E); } }
  .mdc-switch__thumb-underlay:hover::before {
    opacity: 0.04; }
  .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):focus::before, .mdc-switch__thumb-underlay.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-switch__thumb-underlay:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-switch__thumb-underlay.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

/**
 * @license
 * Copyright 2018 Google Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
.mdc-tab {
  position: relative;
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 2.25rem;
  font-weight: 500;
  letter-spacing: 0.08929em;
  text-decoration: none;
  text-transform: uppercase;
  padding-right: 24px;
  padding-left: 24px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex: 1 0 auto;
          flex: 1 0 auto;
  -webkit-justify-content: center;
          justify-content: center;
  box-sizing: border-box;
  height: 48px;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  border: none;
  outline: none;
  background: none;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  z-index: 1; }
  .mdc-tab .mdc-tab__text-label {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-tab .mdc-tab__icon {
    color: rgba(52, 58, 64, 0.54);
    fill: currentColor; }
  .mdc-tab::-moz-focus-inner {
    padding: 0;
    border: 0; }

.mdc-tab--min-width {
  -webkit-flex: 0 1 auto;
          flex: 0 1 auto; }

.mdc-tab__ripple {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden; }
  .mdc-tab__ripple::before, .mdc-tab__ripple::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-tab__ripple::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-tab__ripple.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-tab__ripple.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-tab__ripple.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-tab__ripple.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-tab__ripple.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-tab__ripple::before, .mdc-tab__ripple::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-tab__ripple.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-tab__ripple::before, .mdc-tab__ripple::after {
    background-color: #212121; }
    @supports not (-ms-ime-align: auto) {
      .mdc-tab__ripple::before, .mdc-tab__ripple::after {
        /* @alternate */
        background-color: var(--mdc-theme-primary, #212121); } }
  .mdc-tab__ripple:hover::before {
    opacity: 0.04; }
  .mdc-tab__ripple:not(.mdc-ripple-upgraded):focus::before, .mdc-tab__ripple.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-tab__ripple:not(.mdc-ripple-upgraded)::after {
    transition: opacity 150ms linear; }
  .mdc-tab__ripple:not(.mdc-ripple-upgraded):active::after {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-tab__ripple.mdc-ripple-upgraded {
    --mdc-ripple-fg-opacity: 0.12; }

.mdc-tab__content {
  position: relative;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
  height: inherit;
  pointer-events: none; }

.mdc-tab__text-label,
.mdc-tab__icon {
  transition: 150ms color linear;
  z-index: 2; }

.mdc-tab__text-label {
  display: inline-block;
  line-height: 1; }

.mdc-tab__icon {
  width: 24px;
  height: 24px;
  font-size: 24px; }

.mdc-tab--stacked {
  height: 72px; }

.mdc-tab--stacked .mdc-tab__content {
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: space-between;
          justify-content: space-between; }

.mdc-tab--stacked .mdc-tab__icon {
  padding-top: 12px; }

.mdc-tab--stacked .mdc-tab__text-label {
  padding-bottom: 16px; }

.mdc-tab--active .mdc-tab__text-label {
  color: #212121;
  /* @alternate */
  color: var(--mdc-theme-primary, #212121); }

.mdc-tab--active .mdc-tab__icon {
  color: #212121;
  /* @alternate */
  color: var(--mdc-theme-primary, #212121);
  fill: currentColor; }

.mdc-tab--active .mdc-tab__text-label,
.mdc-tab--active .mdc-tab__icon {
  transition-delay: 100ms; }

.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label {
  /* @noflip */
  padding-left: 8px;
  /* @noflip */
  padding-right: 0; }
  [dir="rtl"] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label, .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label[dir="rtl"] {
    /* @noflip */
    padding-left: 0;
    /* @noflip */
    padding-right: 8px; }

/**
 * @license
 * Copyright 2018 Google Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
/**
 * @license
 * Copyright 2018 Google Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
.mdc-tab-bar {
  width: 100%; }

/**
 * @license
 * Copyright 2018 Google Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
/**
 * @license
 * Copyright 2018 Google Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
.mdc-tab-indicator {
  display: -webkit-flex;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1; }
  .mdc-tab-indicator .mdc-tab-indicator__content--underline {
    border-color: #212121;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #212121); }
  .mdc-tab-indicator .mdc-tab-indicator__content--underline {
    border-top-width: 2px; }
  .mdc-tab-indicator .mdc-tab-indicator__content--icon {
    color: #415E7E;
    /* @alternate */
    color: var(--mdc-theme-secondary, #415E7E); }
  .mdc-tab-indicator .mdc-tab-indicator__content--icon {
    height: 34px;
    font-size: 34px; }

.mdc-tab-indicator__content {
  -webkit-transform-origin: left;
          transform-origin: left;
  opacity: 0; }

.mdc-tab-indicator__content--underline {
  -webkit-align-self: flex-end;
          align-self: flex-end;
  box-sizing: border-box;
  width: 100%;
  border-top-style: solid; }

.mdc-tab-indicator__content--icon {
  -webkit-align-self: center;
          align-self: center;
  margin: 0 auto; }

.mdc-tab-indicator--active .mdc-tab-indicator__content {
  opacity: 1; }

.mdc-tab-indicator .mdc-tab-indicator__content {
  transition: 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1);
  transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1);
  transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1), 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1); }

.mdc-tab-indicator--no-transition .mdc-tab-indicator__content {
  transition: none; }

.mdc-tab-indicator--fade .mdc-tab-indicator__content {
  transition: 150ms opacity linear; }

.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content {
  transition-delay: 100ms; }

/**
 * @license
 * Copyright 2018 Google Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
.mdc-tab-scroller {
  overflow-y: hidden; }

.mdc-tab-scroller__test {
  position: absolute;
  top: -9999px;
  width: 100px;
  height: 100px;
  overflow-x: scroll; }

.mdc-tab-scroller__scroll-area {
  -webkit-overflow-scrolling: touch;
  display: -webkit-flex;
  display: flex;
  overflow-x: hidden; }

.mdc-tab-scroller__scroll-area::-webkit-scrollbar,
.mdc-tab-scroller__test::-webkit-scrollbar {
  display: none; }

.mdc-tab-scroller__scroll-area--scroll {
  overflow-x: scroll; }

.mdc-tab-scroller__scroll-content {
  position: relative;
  display: -webkit-flex;
  display: flex;
  -webkit-flex: 1 0 auto;
          flex: 1 0 auto;
  -webkit-transform: none;
          transform: none;
  will-change: transform; }

.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content {
  -webkit-justify-content: flex-start;
          justify-content: flex-start; }

.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content {
  -webkit-justify-content: flex-end;
          justify-content: flex-end; }

.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content {
  -webkit-justify-content: center;
          justify-content: center; }

.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area {
  -webkit-overflow-scrolling: auto; }

.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content {
  transition: 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1);
  transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1);
  transition: 250ms transform cubic-bezier(0.4, 0, 0.2, 1), 250ms -webkit-transform cubic-bezier(0.4, 0, 0.2, 1); }

.mdc-text-field-helper-text {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.75rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.03333em;
  text-decoration: inherit;
  text-transform: inherit;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  margin: 0;
  transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0;
  will-change: opacity; }
  .mdc-text-field-helper-text::before {
    display: inline-block;
    width: 0;
    height: 16px;
    content: "";
    vertical-align: 0; }

.mdc-text-field-helper-text--persistent {
  transition: none;
  opacity: 1;
  will-change: initial; }

.mdc-text-field-character-counter {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.75rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.03333em;
  text-decoration: inherit;
  text-transform: inherit;
  display: block;
  margin-top: 0;
  /* @alternate */
  line-height: normal;
  /* @noflip */
  margin-left: auto;
  /* @noflip */
  margin-right: 0;
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 0;
  white-space: nowrap; }
  .mdc-text-field-character-counter::before {
    display: inline-block;
    width: 0;
    height: 16px;
    content: "";
    vertical-align: 0; }
  [dir="rtl"] .mdc-text-field-character-counter, .mdc-text-field-character-counter[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: auto; }
  [dir="rtl"] .mdc-text-field-character-counter, .mdc-text-field-character-counter[dir="rtl"] {
    /* @noflip */
    padding-left: 0;
    /* @noflip */
    padding-right: 16px; }

.mdc-text-field--with-leading-icon .mdc-text-field__icon,
.mdc-text-field--with-trailing-icon .mdc-text-field__icon {
  position: absolute;
  bottom: 16px;
  cursor: pointer; }

.mdc-text-field__icon:not([tabindex]),
.mdc-text-field__icon[tabindex="-1"] {
  cursor: default;
  pointer-events: none; }

.mdc-text-field {
  --mdc-ripple-fg-size: 0;
  --mdc-ripple-left: 0;
  --mdc-ripple-top: 0;
  --mdc-ripple-fg-scale: 1;
  --mdc-ripple-fg-translate-end: 0;
  --mdc-ripple-fg-translate-start: 0;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  border-radius: 4px 4px 0 0;
  display: -webkit-inline-flex;
  display: inline-flex;
  position: relative;
  box-sizing: border-box;
  height: 56px;
  overflow: hidden;
  /* @alternate */
  will-change: opacity, transform, color; }
  .mdc-text-field::before, .mdc-text-field::after {
    position: absolute;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    content: ""; }
  .mdc-text-field::before {
    transition: opacity 15ms linear, background-color 15ms linear;
    z-index: 1; }
  .mdc-text-field.mdc-ripple-upgraded::before {
    -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
            transform: scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-text-field.mdc-ripple-upgraded::after {
    top: 0;
    /* @noflip */
    left: 0;
    -webkit-transform: scale(0);
            transform: scale(0);
    -webkit-transform-origin: center center;
            transform-origin: center center; }
  .mdc-text-field.mdc-ripple-upgraded--unbounded::after {
    top: var(--mdc-ripple-top, 0);
    /* @noflip */
    left: var(--mdc-ripple-left, 0); }
  .mdc-text-field.mdc-ripple-upgraded--foreground-activation::after {
    -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
            animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
  .mdc-text-field.mdc-ripple-upgraded--foreground-deactivation::after {
    -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
            animation: mdc-ripple-fg-opacity-out 150ms;
    -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
            transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
  .mdc-text-field::before, .mdc-text-field::after {
    background-color: rgba(52, 58, 64, 0.87); }
  .mdc-text-field:hover::before {
    opacity: 0.04; }
  .mdc-text-field:not(.mdc-ripple-upgraded):focus::before, .mdc-text-field.mdc-ripple-upgraded--background-focused::before {
    transition-duration: 75ms;
    opacity: 0.12; }
  .mdc-text-field::before, .mdc-text-field::after {
    top: calc(50% - 100%);
    /* @noflip */
    left: calc(50% - 100%);
    width: 200%;
    height: 200%; }
  .mdc-text-field.mdc-ripple-upgraded::after {
    width: var(--mdc-ripple-fg-size, 100%);
    height: var(--mdc-ripple-fg-size, 100%); }
  .mdc-text-field:not(.mdc-text-field--disabled) .mdc-floating-label {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__input {
    color: rgba(52, 58, 64, 0.87); }
  .mdc-text-field .mdc-text-field__input {
    caret-color: #212121;
    /* @alternate */
    caret-color: var(--mdc-theme-primary, #212121); }
  .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {
    border-bottom-color: rgba(52, 58, 64, 0.42); }
  .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover {
    border-bottom-color: rgba(52, 58, 64, 0.87); }
  .mdc-text-field .mdc-line-ripple {
    background-color: #212121;
    /* @alternate */
    background-color: var(--mdc-theme-primary, #212121); }
  .mdc-text-field:not(.mdc-text-field--disabled):not(.mdc-text-field--textarea) {
    border-bottom-color: rgba(52, 58, 64, 0.12); }
  .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-helper-text {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field-character-counter,
  .mdc-text-field:not(.mdc-text-field--disabled) + .mdc-text-field-helper-line .mdc-text-field-character-counter {
    color: rgba(52, 58, 64, 0.6); }
  .mdc-text-field:not(.mdc-text-field--disabled) .mdc-text-field__icon {
    color: rgba(52, 58, 64, 0.54); }
  .mdc-text-field:not(.mdc-text-field--disabled) {
    background-color: #dcebf5; }
  .mdc-text-field .mdc-floating-label {
    /* @noflip */
    left: 16px;
    /* @noflip */
    right: initial;
    top: 18px;
    pointer-events: none; }
    [dir="rtl"] .mdc-text-field .mdc-floating-label, .mdc-text-field .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 16px; }
  .mdc-text-field--textarea .mdc-floating-label {
    /* @noflip */
    left: 4px;
    /* @noflip */
    right: initial; }
    [dir="rtl"] .mdc-text-field--textarea .mdc-floating-label, .mdc-text-field--textarea .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 4px; }
  .mdc-text-field--outlined .mdc-floating-label {
    /* @noflip */
    left: 4px;
    /* @noflip */
    right: initial;
    top: 17px; }
    [dir="rtl"] .mdc-text-field--outlined .mdc-floating-label, .mdc-text-field--outlined .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 4px; }
  .mdc-text-field--outlined--with-leading-icon .mdc-floating-label {
    /* @noflip */
    left: 36px;
    /* @noflip */
    right: initial; }
    [dir="rtl"] .mdc-text-field--outlined--with-leading-icon .mdc-floating-label, .mdc-text-field--outlined--with-leading-icon .mdc-floating-label[dir="rtl"] {
      /* @noflip */
      left: initial;
      /* @noflip */
      right: 36px; }
    .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above {
      /* @noflip */
      left: 40px;
      /* @noflip */
      right: initial; }
      [dir="rtl"] .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above, .mdc-text-field--outlined--with-leading-icon .mdc-floating-label--float-above[dir="rtl"] {
        /* @noflip */
        left: initial;
        /* @noflip */
        right: 40px; }

.mdc-text-field__input {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit;
  -webkit-align-self: flex-end;
          align-self: flex-end;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 20px 16px 6px;
  transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
  border: none;
  border-bottom: 1px solid;
  border-radius: 0;
  background: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  .mdc-text-field__input::-webkit-input-placeholder {
    transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    color: rgba(52, 58, 64, 0.54); }
  .mdc-text-field__input:-ms-input-placeholder {
    transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    color: rgba(52, 58, 64, 0.54); }
  .mdc-text-field__input::-ms-input-placeholder {
    transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    color: rgba(52, 58, 64, 0.54); }
  .mdc-text-field__input::placeholder {
    transition: opacity 67ms cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
    color: rgba(52, 58, 64, 0.54); }
  .mdc-text-field__input:-ms-input-placeholder {
    color: rgba(52, 58, 64, 0.54) !important; }
  .mdc-text-field--fullwidth .mdc-text-field__input::-webkit-input-placeholder,
  .mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,
  .mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder {
    transition-delay: 40ms;
    transition-duration: 110ms;
    opacity: 1; }
  .mdc-text-field--fullwidth .mdc-text-field__input:-ms-input-placeholder,
  .mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,
  .mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder {
    transition-delay: 40ms;
    transition-duration: 110ms;
    opacity: 1; }
  .mdc-text-field--fullwidth .mdc-text-field__input::-ms-input-placeholder,
  .mdc-text-field--no-label .mdc-text-field__input::-ms-input-placeholder,
  .mdc-text-field--focused .mdc-text-field__input::-ms-input-placeholder {
    transition-delay: 40ms;
    transition-duration: 110ms;
    opacity: 1; }
  .mdc-text-field--fullwidth .mdc-text-field__input::placeholder,
  .mdc-text-field--no-label .mdc-text-field__input::placeholder,
  .mdc-text-field--focused .mdc-text-field__input::placeholder {
    transition-delay: 40ms;
    transition-duration: 110ms;
    opacity: 1; }
  .mdc-text-field__input:focus {
    outline: none; }
  .mdc-text-field__input:invalid {
    box-shadow: none; }
  .mdc-text-field__input:-webkit-autofill {
    z-index: auto !important; }
  .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {
    padding-top: 16px;
    padding-bottom: 16px; }

.mdc-text-field__input:-webkit-autofill + .mdc-floating-label {
  -webkit-transform: translateY(-50%) scale(0.75);
          transform: translateY(-50%) scale(0.75);
  cursor: auto; }

.mdc-text-field--outlined {
  border: none;
  overflow: visible; }
  .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.38); }
  .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.87); }
  .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,
  .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {
    border-color: #212121;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #212121); }
  .mdc-text-field--outlined .mdc-floating-label--shake {
    -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;
            animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }
  .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading {
    /* @noflip */
    border-radius: 4px 0 0 4px; }
    [dir="rtl"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir="rtl"] {
      /* @noflip */
      border-radius: 0 4px 4px 0; }
  .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing {
    /* @noflip */
    border-radius: 0 4px 4px 0; }
    [dir="rtl"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir="rtl"] {
      /* @noflip */
      border-radius: 4px 0 0 4px; }
  .mdc-text-field--outlined .mdc-floating-label--float-above {
    -webkit-transform: translateY(-144%) scale(1);
            transform: translateY(-144%) scale(1); }
  .mdc-text-field--outlined .mdc-floating-label--float-above {
    font-size: 0.75rem; }
  .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    -webkit-transform: translateY(-130%) scale(0.75);
            transform: translateY(-130%) scale(0.75); }
  .mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    font-size: 1rem; }
  .mdc-text-field--outlined::before, .mdc-text-field--outlined::after {
    content: none; }
  .mdc-text-field--outlined:not(.mdc-text-field--disabled) {
    background-color: transparent; }
  .mdc-text-field--outlined .mdc-text-field__input {
    display: -webkit-flex;
    display: flex;
    padding: 12px 16px 14px;
    border: none !important;
    background-color: transparent;
    z-index: 1; }
  .mdc-text-field--outlined .mdc-text-field__icon {
    z-index: 2; }

.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__trailing {
  border-width: 2px; }

.mdc-text-field--outlined.mdc-text-field--disabled {
  background-color: transparent; }
  .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,
  .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,
  .mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.06); }
  .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input {
    border-bottom: none; }

.mdc-text-field--outlined.mdc-text-field--dense {
  height: 48px; }
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {
    -webkit-transform: translateY(-134%) scale(1);
            transform: translateY(-134%) scale(1); }
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {
    font-size: 0.8rem; }
  .mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    -webkit-transform: translateY(-120%) scale(0.8);
            transform: translateY(-120%) scale(0.8); }
  .mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    font-size: 1rem; }
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake {
    -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-dense 250ms 1;
            animation: mdc-floating-label-shake-float-above-text-field-outlined-dense 250ms 1; }
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-text-field__input {
    padding: 12px 12px 7px; }
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label {
    top: 14px; }
  .mdc-text-field--outlined.mdc-text-field--dense .mdc-text-field__icon {
    top: 12px; }

.mdc-text-field--with-leading-icon .mdc-text-field__icon {
  /* @noflip */
  left: 16px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon .mdc-text-field__icon, .mdc-text-field--with-leading-icon .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 16px; }

.mdc-text-field--with-leading-icon .mdc-text-field__input {
  /* @noflip */
  padding-left: 48px;
  /* @noflip */
  padding-right: 16px; }
  [dir="rtl"] .mdc-text-field--with-leading-icon .mdc-text-field__input, .mdc-text-field--with-leading-icon .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 16px;
    /* @noflip */
    padding-right: 48px; }

.mdc-text-field--with-leading-icon .mdc-floating-label {
  /* @noflip */
  left: 48px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon .mdc-floating-label, .mdc-text-field--with-leading-icon .mdc-floating-label[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 48px; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon {
  /* @noflip */
  left: 16px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 16px; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input {
  /* @noflip */
  padding-left: 48px;
  /* @noflip */
  padding-right: 16px; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 16px;
    /* @noflip */
    padding-right: 48px; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above {
  -webkit-transform: translateY(-144%) translateX(-32px) scale(1);
          transform: translateY(-144%) translateX(-32px) scale(1); }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir="rtl"] {
    -webkit-transform: translateY(-144%) translateX(32px) scale(1);
            transform: translateY(-144%) translateX(32px) scale(1); }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above {
  font-size: 0.75rem; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  -webkit-transform: translateY(-130%) translateX(-32px) scale(0.75);
          transform: translateY(-130%) translateX(-32px) scale(0.75); }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir="rtl"], [dir="rtl"]
  .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir="rtl"] {
    -webkit-transform: translateY(-130%) translateX(32px) scale(0.75);
            transform: translateY(-130%) translateX(32px) scale(0.75); }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  font-size: 1rem; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1;
          animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1; }

[dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake, .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir="rtl"] .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl 250ms 1;
          animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl 250ms 1; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label {
  /* @noflip */
  left: 36px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 36px; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {
  -webkit-transform: translateY(-134%) translateX(-21px) scale(1);
          transform: translateY(-134%) translateX(-21px) scale(1); }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above[dir="rtl"] {
    -webkit-transform: translateY(-134%) translateX(21px) scale(1);
            transform: translateY(-134%) translateX(21px) scale(1); }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {
  font-size: 0.8rem; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  -webkit-transform: translateY(-120%) translateX(-21px) scale(0.8);
          transform: translateY(-120%) translateX(-21px) scale(0.8); }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir="rtl"], [dir="rtl"]
  .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir="rtl"] {
    -webkit-transform: translateY(-120%) translateX(21px) scale(0.8);
            transform: translateY(-120%) translateX(21px) scale(0.8); }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  font-size: 1rem; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense 250ms 1;
          animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense 250ms 1; }

[dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--shake, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense[dir="rtl"] .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl 250ms 1;
          animation: mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl 250ms 1; }

.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label {
  /* @noflip */
  left: 32px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 32px; }

.mdc-text-field--with-trailing-icon .mdc-text-field__icon {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 12px; }
  [dir="rtl"] .mdc-text-field--with-trailing-icon .mdc-text-field__icon, .mdc-text-field--with-trailing-icon .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: 12px;
    /* @noflip */
    right: initial; }

.mdc-text-field--with-trailing-icon .mdc-text-field__input {
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 48px; }
  [dir="rtl"] .mdc-text-field--with-trailing-icon .mdc-text-field__input, .mdc-text-field--with-trailing-icon .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 48px;
    /* @noflip */
    padding-right: 16px; }

.mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 16px; }
  [dir="rtl"] .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon, .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: 16px;
    /* @noflip */
    right: initial; }

.mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input {
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 48px; }
  [dir="rtl"] .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input, .mdc-text-field--with-trailing-icon.mdc-text-field--outlined .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 48px;
    /* @noflip */
    padding-right: 16px; }

.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon {
  /* @noflip */
  left: 16px;
  /* @noflip */
  right: auto; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: auto;
    /* @noflip */
    right: 16px; }
  .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon {
    /* @noflip */
    right: 12px;
    /* @noflip */
    left: auto; }
    [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__icon ~ .mdc-text-field__icon[dir="rtl"] {
      /* @noflip */
      right: auto;
      /* @noflip */
      left: 12px; }

.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input {
  /* @noflip */
  padding-left: 48px;
  /* @noflip */
  padding-right: 48px; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 48px;
    /* @noflip */
    padding-right: 48px; }

.mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon,
.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {
  bottom: 16px;
  -webkit-transform: scale(0.8);
          transform: scale(0.8); }

.mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon {
  /* @noflip */
  left: 12px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 12px; }

.mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input {
  /* @noflip */
  padding-left: 44px;
  /* @noflip */
  padding-right: 16px; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 16px;
    /* @noflip */
    padding-right: 44px; }

.mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label {
  /* @noflip */
  left: 44px;
  /* @noflip */
  right: initial; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label, .mdc-text-field--with-leading-icon.mdc-text-field--dense .mdc-floating-label[dir="rtl"] {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 44px; }

.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {
  /* @noflip */
  left: initial;
  /* @noflip */
  right: 12px; }
  [dir="rtl"] .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: 12px;
    /* @noflip */
    right: initial; }

.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input {
  /* @noflip */
  padding-left: 16px;
  /* @noflip */
  padding-right: 44px; }
  [dir="rtl"] .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 44px;
    /* @noflip */
    padding-right: 16px; }

.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon {
  /* @noflip */
  left: 12px;
  /* @noflip */
  right: auto; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon[dir="rtl"] {
    /* @noflip */
    left: auto;
    /* @noflip */
    right: 12px; }
  .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon {
    /* @noflip */
    right: 12px;
    /* @noflip */
    left: auto; }
    [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__icon ~ .mdc-text-field__icon[dir="rtl"] {
      /* @noflip */
      right: auto;
      /* @noflip */
      left: 12px; }

.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input {
  /* @noflip */
  padding-left: 44px;
  /* @noflip */
  padding-right: 44px; }
  [dir="rtl"] .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input, .mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--dense .mdc-text-field__input[dir="rtl"] {
    /* @noflip */
    padding-left: 44px;
    /* @noflip */
    padding-right: 44px; }

.mdc-text-field--dense .mdc-floating-label--float-above {
  -webkit-transform: translateY(-70%) scale(0.8);
          transform: translateY(-70%) scale(0.8); }

.mdc-text-field--dense .mdc-floating-label--shake {
  -webkit-animation: mdc-floating-label-shake-float-above-text-field-dense 250ms 1;
          animation: mdc-floating-label-shake-float-above-text-field-dense 250ms 1; }

.mdc-text-field--dense .mdc-text-field__input {
  padding: 12px 12px 0; }

.mdc-text-field--dense .mdc-floating-label {
  font-size: .813rem; }
  .mdc-text-field--dense .mdc-floating-label--float-above {
    font-size: .813rem; }

.mdc-text-field__input:required ~ .mdc-floating-label::after,
.mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {
  margin-left: 1px;
  content: "*"; }

.mdc-text-field--textarea {
  display: -webkit-inline-flex;
  display: inline-flex;
  width: auto;
  height: auto;
  transition: none;
  overflow: visible; }
  .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.38); }
  .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.87); }
  .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,
  .mdc-text-field--textarea:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {
    border-color: #212121;
    /* @alternate */
    border-color: var(--mdc-theme-primary, #212121); }
  .mdc-text-field--textarea .mdc-floating-label--shake {
    -webkit-animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1;
            animation: mdc-floating-label-shake-float-above-text-field-outlined 250ms 1; }
  .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading {
    /* @noflip */
    border-radius: 4px 0 0 4px; }
    [dir="rtl"] .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading, .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__leading[dir="rtl"] {
      /* @noflip */
      border-radius: 0 4px 4px 0; }
  .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing {
    /* @noflip */
    border-radius: 0 4px 4px 0; }
    [dir="rtl"] .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--textarea .mdc-notched-outline .mdc-notched-outline__trailing[dir="rtl"] {
      /* @noflip */
      border-radius: 4px 0 0 4px; }
  .mdc-text-field--textarea::before, .mdc-text-field--textarea::after {
    content: none; }
  .mdc-text-field--textarea:not(.mdc-text-field--disabled) {
    background-color: transparent; }
  .mdc-text-field--textarea .mdc-floating-label--float-above {
    -webkit-transform: translateY(-144%) scale(1);
            transform: translateY(-144%) scale(1); }
  .mdc-text-field--textarea .mdc-floating-label--float-above {
    font-size: 0.75rem; }
  .mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    -webkit-transform: translateY(-130%) scale(0.75);
            transform: translateY(-130%) scale(0.75); }
  .mdc-text-field--textarea.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
  .mdc-text-field--textarea .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
    font-size: 1rem; }
  .mdc-text-field--textarea .mdc-text-field-character-counter {
    /* @noflip */
    left: initial;
    /* @noflip */
    right: 16px;
    position: absolute;
    bottom: 13px; }
    [dir="rtl"] .mdc-text-field--textarea .mdc-text-field-character-counter, .mdc-text-field--textarea .mdc-text-field-character-counter[dir="rtl"] {
      /* @noflip */
      left: 16px;
      /* @noflip */
      right: initial; }
  .mdc-text-field--textarea .mdc-text-field__input {
    -webkit-align-self: auto;
            align-self: auto;
    box-sizing: border-box;
    height: auto;
    margin: 8px 1px 1px 0;
    padding: 0 16px 16px;
    border: none; }
  .mdc-text-field--textarea .mdc-text-field-character-counter + .mdc-text-field__input {
    margin-bottom: 28px;
    padding-bottom: 0; }
  .mdc-text-field--textarea .mdc-floating-label {
    top: 17px;
    bottom: auto;
    width: auto;
    pointer-events: none; }
  .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__leading,
  .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__notch,
  .mdc-text-field--textarea.mdc-text-field--focused .mdc-notched-outline__trailing {
    border-width: 2px; }

.mdc-text-field--fullwidth {
  width: 100%; }
  .mdc-text-field--fullwidth:not(.mdc-text-field--textarea) {
    display: block; }
    .mdc-text-field--fullwidth:not(.mdc-text-field--textarea)::before, .mdc-text-field--fullwidth:not(.mdc-text-field--textarea)::after {
      content: none; }
    .mdc-text-field--fullwidth:not(.mdc-text-field--textarea):not(.mdc-text-field--disabled) {
      background-color: transparent; }
    .mdc-text-field--fullwidth:not(.mdc-text-field--textarea) .mdc-text-field__input {
      padding: 0; }
  .mdc-text-field--fullwidth.mdc-text-field--textarea .mdc-text-field__input {
    resize: vertical; }

.mdc-text-field--fullwidth.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--textarea) {
  border-bottom-color: #b00020;
  /* @alternate */
  border-bottom-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field-helper-line {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  box-sizing: border-box; }
  .mdc-text-field--dense + .mdc-text-field-helper-line {
    margin-bottom: 4px; }
  .mdc-text-field + .mdc-text-field-helper-line {
    padding-right: 16px;
    padding-left: 16px; }

.mdc-form-field > .mdc-text-field + label {
  -webkit-align-self: flex-start;
          align-self: flex-start; }

.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label {
  color: rgba(33, 33, 33, 0.87); }

.mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-floating-label::after,
.mdc-text-field--focused .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {
  color: rgba(33, 33, 33, 0.87); }

.mdc-text-field--focused + .mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg) {
  opacity: 1; }

.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,
.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,
.mdc-text-field--textarea.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {
  border-color: #212121;
  /* @alternate */
  border-color: var(--mdc-theme-primary, #212121); }

.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input {
  border-bottom-color: #b00020;
  /* @alternate */
  border-bottom-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mdc-text-field__input:hover {
  border-bottom-color: #b00020;
  /* @alternate */
  border-bottom-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple {
  background-color: #b00020;
  /* @alternate */
  background-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid .mdc-text-field__input {
  caret-color: #b00020;
  /* @alternate */
  caret-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid .mdc-text-field__input:required ~ .mdc-floating-label::after,
.mdc-text-field--invalid .mdc-text-field__input:required ~ .mdc-notched-outline .mdc-floating-label::after {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid.mdc-text-field--with-trailing-icon:not(.mdc-text-field--with-leading-icon):not(.mdc-text-field--disabled) .mdc-text-field__icon {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid.mdc-text-field--with-trailing-icon.mdc-text-field--with-leading-icon:not(.mdc-text-field--disabled) .mdc-text-field__icon ~ .mdc-text-field__icon {
  color: #b00020;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--invalid + .mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg {
  opacity: 1; }

.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,
.mdc-text-field--textarea.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__input:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused) .mdc-text-field__icon:hover ~ .mdc-notched-outline .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing {
  border-color: #b00020;
  /* @alternate */
  border-color: var(--mdc-theme-error, #b00020); }

.mdc-text-field--disabled {
  background-color: #e0eef9;
  border-bottom: none;
  pointer-events: none; }
  .mdc-text-field--disabled .mdc-text-field__input {
    border-bottom-color: rgba(52, 58, 64, 0.06); }
  .mdc-text-field--disabled .mdc-text-field__input {
    color: rgba(52, 58, 64, 0.37); }
  .mdc-text-field--disabled .mdc-floating-label {
    color: rgba(52, 58, 64, 0.37); }
  .mdc-text-field--disabled + .mdc-text-field-helper-line .mdc-text-field-helper-text {
    color: rgba(52, 58, 64, 0.37); }
  .mdc-text-field--disabled .mdc-text-field-character-counter,
  .mdc-text-field--disabled + .mdc-text-field-helper-line .mdc-text-field-character-counter {
    color: rgba(52, 58, 64, 0.37); }
  .mdc-text-field--disabled .mdc-text-field__icon {
    color: rgba(52, 58, 64, 0.3); }
  .mdc-text-field--disabled:not(.mdc-text-field--textarea) {
    border-bottom-color: rgba(52, 58, 64, 0.12); }
  .mdc-text-field--disabled .mdc-floating-label {
    cursor: default; }

.mdc-text-field--textarea.mdc-text-field--disabled {
  background-color: transparent;
  /* @alternate */
  background-color: #f9f9f9; }
  .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__leading,
  .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__notch,
  .mdc-text-field--textarea.mdc-text-field--disabled .mdc-notched-outline__trailing {
    border-color: rgba(52, 58, 64, 0.06); }
  .mdc-text-field--textarea.mdc-text-field--disabled .mdc-text-field__input {
    border-bottom: none; }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-dense {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); } }

@keyframes mdc-floating-label-shake-float-above-text-field-dense {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(4% - 0%)) translateY(-70%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(-4% - 0%)) translateY(-70%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-70%) scale(0.8); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-text-field-outlined {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-dense {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); } }

@keyframes mdc-floating-label-shake-float-above-text-field-outlined-dense {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(4% - 0%)) translateY(-120%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(-4% - 0%)) translateY(-120%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 0%)) translateY(-120%) scale(0.8); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon {
  0% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon {
  0% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense {
  0% {
    -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); } }

@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense {
  0% {
    -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(4% - 21px)) translateY(-120%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(-4% - 21px)) translateY(-120%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - 21px)) translateY(-120%) scale(0.8); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl {
  0% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl {
  0% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0)) translateY(-130%) scale(0.75); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl {
  0% {
    -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); } }

@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-dense-rtl {
  0% {
    -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(4% - -21px)) translateY(-120%) scale(0.8); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(-4% - -21px)) translateY(-120%) scale(0.8); }
  100% {
    -webkit-transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8);
            transform: translateX(calc(0 - -21px)) translateY(-120%) scale(0.8); } }

@-webkit-keyframes mdc-floating-label-shake-float-above-textarea {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); } }

@keyframes mdc-floating-label-shake-float-above-textarea {
  0% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); }
  33% {
    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
    -webkit-transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(4% - 0%)) translateY(-130%) scale(0.75); }
  66% {
    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
    -webkit-transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(-4% - 0%)) translateY(-130%) scale(0.75); }
  100% {
    -webkit-transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75);
            transform: translateX(calc(0 - 0%)) translateY(-130%) scale(0.75); } }

:root {
  --mdc-theme-primary: #212121;
  --mdc-theme-secondary: #415E7E;
  --mdc-theme-background: #fff;
  --mdc-theme-surface: #e3f2fd;
  --mdc-theme-error: #b00020;
  --mdc-theme-on-primary: #f8f9fa;
  --mdc-theme-on-secondary: #f8f9fa;
  --mdc-theme-on-surface: #343a40;
  --mdc-theme-on-error: #f8f9fa;
  --mdc-theme-text-primary-on-background: rgba(0, 0, 0, 0.87);
  --mdc-theme-text-secondary-on-background: rgba(0, 0, 0, 0.54);
  --mdc-theme-text-hint-on-background: rgba(0, 0, 0, 0.38);
  --mdc-theme-text-disabled-on-background: rgba(0, 0, 0, 0.38);
  --mdc-theme-text-icon-on-background: rgba(0, 0, 0, 0.38);
  --mdc-theme-text-primary-on-light: rgba(0, 0, 0, 0.87);
  --mdc-theme-text-secondary-on-light: rgba(0, 0, 0, 0.54);
  --mdc-theme-text-hint-on-light: rgba(0, 0, 0, 0.38);
  --mdc-theme-text-disabled-on-light: rgba(0, 0, 0, 0.38);
  --mdc-theme-text-icon-on-light: rgba(0, 0, 0, 0.38);
  --mdc-theme-text-primary-on-dark: white;
  --mdc-theme-text-secondary-on-dark: rgba(255, 255, 255, 0.7);
  --mdc-theme-text-hint-on-dark: rgba(255, 255, 255, 0.5);
  --mdc-theme-text-disabled-on-dark: rgba(255, 255, 255, 0.5);
  --mdc-theme-text-icon-on-dark: rgba(255, 255, 255, 0.5); }

.mdc-theme--primary {
  color: #212121 !important;
  /* @alternate */
  color: var(--mdc-theme-primary, #212121) !important; }

.mdc-theme--secondary {
  color: #415E7E !important;
  /* @alternate */
  color: var(--mdc-theme-secondary, #415E7E) !important; }

.mdc-theme--background {
  background-color: #fff;
  /* @alternate */
  background-color: var(--mdc-theme-background, #fff); }

.mdc-theme--surface {
  background-color: #e3f2fd;
  /* @alternate */
  background-color: var(--mdc-theme-surface, #e3f2fd); }

.mdc-theme--error {
  color: #b00020 !important;
  /* @alternate */
  color: var(--mdc-theme-error, #b00020) !important; }

.mdc-theme--on-primary {
  color: #f8f9fa !important;
  /* @alternate */
  color: var(--mdc-theme-on-primary, #f8f9fa) !important; }

.mdc-theme--on-secondary {
  color: #f8f9fa !important;
  /* @alternate */
  color: var(--mdc-theme-on-secondary, #f8f9fa) !important; }

.mdc-theme--on-surface {
  color: #343a40 !important;
  /* @alternate */
  color: var(--mdc-theme-on-surface, #343a40) !important; }

.mdc-theme--on-error {
  color: #f8f9fa !important;
  /* @alternate */
  color: var(--mdc-theme-on-error, #f8f9fa) !important; }

.mdc-theme--text-primary-on-background {
  color: rgba(0, 0, 0, 0.87) !important;
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87)) !important; }

.mdc-theme--text-secondary-on-background {
  color: rgba(0, 0, 0, 0.54) !important;
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54)) !important; }

.mdc-theme--text-hint-on-background {
  color: rgba(0, 0, 0, 0.38) !important;
  /* @alternate */
  color: var(--mdc-theme-text-hint-on-background, rgba(0, 0, 0, 0.38)) !important; }

.mdc-theme--text-disabled-on-background {
  color: rgba(0, 0, 0, 0.38) !important;
  /* @alternate */
  color: var(--mdc-theme-text-disabled-on-background, rgba(0, 0, 0, 0.38)) !important; }

.mdc-theme--text-icon-on-background {
  color: rgba(0, 0, 0, 0.38) !important;
  /* @alternate */
  color: var(--mdc-theme-text-icon-on-background, rgba(0, 0, 0, 0.38)) !important; }

.mdc-theme--text-primary-on-light {
  color: rgba(0, 0, 0, 0.87) !important;
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-light, rgba(0, 0, 0, 0.87)) !important; }

.mdc-theme--text-secondary-on-light {
  color: rgba(0, 0, 0, 0.54) !important;
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-light, rgba(0, 0, 0, 0.54)) !important; }

.mdc-theme--text-hint-on-light {
  color: rgba(0, 0, 0, 0.38) !important;
  /* @alternate */
  color: var(--mdc-theme-text-hint-on-light, rgba(0, 0, 0, 0.38)) !important; }

.mdc-theme--text-disabled-on-light {
  color: rgba(0, 0, 0, 0.38) !important;
  /* @alternate */
  color: var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38)) !important; }

.mdc-theme--text-icon-on-light {
  color: rgba(0, 0, 0, 0.38) !important;
  /* @alternate */
  color: var(--mdc-theme-text-icon-on-light, rgba(0, 0, 0, 0.38)) !important; }

.mdc-theme--text-primary-on-dark {
  color: white !important;
  /* @alternate */
  color: var(--mdc-theme-text-primary-on-dark, white) !important; }

.mdc-theme--text-secondary-on-dark {
  color: rgba(255, 255, 255, 0.7) !important;
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-dark, rgba(255, 255, 255, 0.7)) !important; }

.mdc-theme--text-hint-on-dark {
  color: rgba(255, 255, 255, 0.5) !important;
  /* @alternate */
  color: var(--mdc-theme-text-hint-on-dark, rgba(255, 255, 255, 0.5)) !important; }

.mdc-theme--text-disabled-on-dark {
  color: rgba(255, 255, 255, 0.5) !important;
  /* @alternate */
  color: var(--mdc-theme-text-disabled-on-dark, rgba(255, 255, 255, 0.5)) !important; }

.mdc-theme--text-icon-on-dark {
  color: rgba(255, 255, 255, 0.5) !important;
  /* @alternate */
  color: var(--mdc-theme-text-icon-on-dark, rgba(255, 255, 255, 0.5)) !important; }

.mdc-theme--primary-bg {
  background-color: #212121 !important;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #212121) !important; }

.mdc-theme--secondary-bg {
  background-color: #415E7E !important;
  /* @alternate */
  background-color: var(--mdc-theme-secondary, #415E7E) !important; }

.mdc-toolbar {
  background-color: #212121;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #212121);
  color: white;
  display: -webkit-flex;
  display: flex;
  position: relative;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  box-sizing: border-box;
  width: 100%; }
  .mdc-toolbar .mdc-toolbar__icon {
    color: white; }
    .mdc-toolbar .mdc-toolbar__icon::before, .mdc-toolbar .mdc-toolbar__icon::after {
      background-color: white; }
    .mdc-toolbar .mdc-toolbar__icon:hover::before {
      opacity: 0.08; }
    .mdc-toolbar .mdc-toolbar__icon:not(.mdc-ripple-upgraded):focus::before, .mdc-toolbar .mdc-toolbar__icon.mdc-ripple-upgraded--background-focused::before {
      transition-duration: 75ms;
      opacity: 0.24; }
    .mdc-toolbar .mdc-toolbar__icon:not(.mdc-ripple-upgraded)::after {
      transition: opacity 150ms linear; }
    .mdc-toolbar .mdc-toolbar__icon:not(.mdc-ripple-upgraded):active::after {
      transition-duration: 75ms;
      opacity: 0.24; }
    .mdc-toolbar .mdc-toolbar__icon.mdc-ripple-upgraded {
      --mdc-ripple-fg-opacity: 0.24; }
  .mdc-toolbar__row {
    display: -webkit-flex;
    display: flex;
    position: relative;
    -webkit-align-items: center;
            align-items: center;
    box-sizing: border-box;
    width: 100%;
    height: auto;
    min-height: 64px; }
    @media (max-width: 959px) and (orientation: landscape) {
      .mdc-toolbar__row {
        min-height: 48px; } }
    @media (max-width: 599px) {
      .mdc-toolbar__row {
        min-height: 56px; } }
  .mdc-toolbar__section {
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-flex: 1;
            flex: 1;
    -webkit-align-items: start;
            align-items: start;
    -webkit-justify-content: center;
            justify-content: center;
    box-sizing: border-box;
    min-width: 0;
    height: 100%;
    padding: 8px;
    z-index: 1; }
    @media (max-width: 959px) and (orientation: landscape) {
      .mdc-toolbar__section {
        padding: 0; } }
    @media (max-width: 599px) {
      .mdc-toolbar__section {
        padding: 4px 0; } }
    .mdc-toolbar__section--align-start {
      /* @noflip */
      padding-left: 12px;
      /* @noflip */
      padding-right: 0;
      -webkit-justify-content: flex-start;
              justify-content: flex-start;
      -webkit-order: -1;
              order: -1; }
      [dir="rtl"] .mdc-toolbar__section--align-start, .mdc-toolbar__section--align-start[dir="rtl"] {
        /* @noflip */
        padding-left: 0;
        /* @noflip */
        padding-right: 12px; }
      @media (max-width: 959px) and (orientation: landscape) {
        .mdc-toolbar__section--align-start {
          /* @noflip */
          padding-left: 4px;
          /* @noflip */
          padding-right: 0; }
          [dir="rtl"] .mdc-toolbar__section--align-start, .mdc-toolbar__section--align-start[dir="rtl"] {
            /* @noflip */
            padding-left: 0;
            /* @noflip */
            padding-right: 4px; } }
      @media (max-width: 599px) {
        .mdc-toolbar__section--align-start {
          /* @noflip */
          padding-left: 4px;
          /* @noflip */
          padding-right: 0; }
          [dir="rtl"] .mdc-toolbar__section--align-start, .mdc-toolbar__section--align-start[dir="rtl"] {
            /* @noflip */
            padding-left: 0;
            /* @noflip */
            padding-right: 4px; } }
    .mdc-toolbar__section--align-end {
      /* @noflip */
      padding-left: 0;
      /* @noflip */
      padding-right: 12px;
      -webkit-justify-content: flex-end;
              justify-content: flex-end;
      -webkit-order: 1;
              order: 1; }
      [dir="rtl"] .mdc-toolbar__section--align-end, .mdc-toolbar__section--align-end[dir="rtl"] {
        /* @noflip */
        padding-left: 12px;
        /* @noflip */
        padding-right: 0; }
      @media (max-width: 959px) and (orientation: landscape) {
        .mdc-toolbar__section--align-end {
          /* @noflip */
          padding-left: 0;
          /* @noflip */
          padding-right: 4px; }
          [dir="rtl"] .mdc-toolbar__section--align-end, .mdc-toolbar__section--align-end[dir="rtl"] {
            /* @noflip */
            padding-left: 4px;
            /* @noflip */
            padding-right: 0; } }
      @media (max-width: 599px) {
        .mdc-toolbar__section--align-end {
          /* @noflip */
          padding-left: 0;
          /* @noflip */
          padding-right: 4px; }
          [dir="rtl"] .mdc-toolbar__section--align-end, .mdc-toolbar__section--align-end[dir="rtl"] {
            /* @noflip */
            padding-left: 4px;
            /* @noflip */
            padding-right: 0; } }
  .mdc-toolbar__title {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 1.25rem;
    line-height: 2rem;
    font-weight: 500;
    letter-spacing: 0.0125em;
    text-decoration: inherit;
    text-transform: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    /* @noflip */
    margin-left: 24px;
    /* @noflip */
    margin-right: 0;
    -webkit-align-self: center;
            align-self: center;
    padding: 12px 0;
    line-height: 1.5rem;
    z-index: 1; }
    [dir="rtl"] .mdc-toolbar__title, .mdc-toolbar__title[dir="rtl"] {
      /* @noflip */
      margin-left: 0;
      /* @noflip */
      margin-right: 24px; }
  .mdc-toolbar__icon, .mdc-toolbar__menu-icon {
    --mdc-ripple-fg-size: 0;
    --mdc-ripple-left: 0;
    --mdc-ripple-top: 0;
    --mdc-ripple-fg-scale: 1;
    --mdc-ripple-fg-translate-end: 0;
    --mdc-ripple-fg-translate-start: 0;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    display: -webkit-flex;
    display: flex;
    position: relative;
    -webkit-align-items: start;
            align-items: start;
    -webkit-justify-content: center;
            justify-content: center;
    box-sizing: border-box;
    width: 48px;
    height: 48px;
    padding: 12px;
    border: none;
    outline: none;
    background-color: transparent;
    fill: currentColor;
    color: inherit;
    text-decoration: none;
    cursor: pointer; }
    .mdc-toolbar__icon::before, .mdc-toolbar__icon::after, .mdc-toolbar__menu-icon::before, .mdc-toolbar__menu-icon::after {
      position: absolute;
      border-radius: 50%;
      opacity: 0;
      pointer-events: none;
      content: ""; }
    .mdc-toolbar__icon::before, .mdc-toolbar__menu-icon::before {
      transition: opacity 15ms linear, background-color 15ms linear;
      z-index: 1; }
    .mdc-toolbar__icon.mdc-ripple-upgraded::before, .mdc-toolbar__menu-icon.mdc-ripple-upgraded::before {
      -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
              transform: scale(var(--mdc-ripple-fg-scale, 1)); }
    .mdc-toolbar__icon.mdc-ripple-upgraded::after, .mdc-toolbar__menu-icon.mdc-ripple-upgraded::after {
      top: 0;
      /* @noflip */
      left: 0;
      -webkit-transform: scale(0);
              transform: scale(0);
      -webkit-transform-origin: center center;
              transform-origin: center center; }
    .mdc-toolbar__icon.mdc-ripple-upgraded--unbounded::after, .mdc-toolbar__menu-icon.mdc-ripple-upgraded--unbounded::after {
      top: var(--mdc-ripple-top, 0);
      /* @noflip */
      left: var(--mdc-ripple-left, 0); }
    .mdc-toolbar__icon.mdc-ripple-upgraded--foreground-activation::after, .mdc-toolbar__menu-icon.mdc-ripple-upgraded--foreground-activation::after {
      -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
              animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
    .mdc-toolbar__icon.mdc-ripple-upgraded--foreground-deactivation::after, .mdc-toolbar__menu-icon.mdc-ripple-upgraded--foreground-deactivation::after {
      -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
              animation: mdc-ripple-fg-opacity-out 150ms;
      -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
              transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
    .mdc-toolbar__icon::before, .mdc-toolbar__icon::after, .mdc-toolbar__menu-icon::before, .mdc-toolbar__menu-icon::after {
      top: calc(50% - 50%);
      /* @noflip */
      left: calc(50% - 50%);
      width: 100%;
      height: 100%; }
    .mdc-toolbar__icon.mdc-ripple-upgraded::before, .mdc-toolbar__icon.mdc-ripple-upgraded::after, .mdc-toolbar__menu-icon.mdc-ripple-upgraded::before, .mdc-toolbar__menu-icon.mdc-ripple-upgraded::after {
      top: var(--mdc-ripple-top, calc(50% - 50%));
      /* @noflip */
      left: var(--mdc-ripple-left, calc(50% - 50%));
      width: var(--mdc-ripple-fg-size, 100%);
      height: var(--mdc-ripple-fg-size, 100%); }
    .mdc-toolbar__icon.mdc-ripple-upgraded::after, .mdc-toolbar__menu-icon.mdc-ripple-upgraded::after {
      width: var(--mdc-ripple-fg-size, 100%);
      height: var(--mdc-ripple-fg-size, 100%); }

.mdc-toolbar__menu-icon + .mdc-toolbar__title {
  /* @noflip */
  margin-left: 8px;
  /* @noflip */
  margin-right: 0; }
  [dir="rtl"] .mdc-toolbar__menu-icon + .mdc-toolbar__title, .mdc-toolbar__menu-icon + .mdc-toolbar__title[dir="rtl"] {
    /* @noflip */
    margin-left: 0;
    /* @noflip */
    margin-right: 8px; }

@media (max-width: 599px) {
  .mdc-toolbar__title {
    /* @noflip */
    margin-left: 16px;
    /* @noflip */
    margin-right: 0; }
    [dir="rtl"] .mdc-toolbar__title, .mdc-toolbar__title[dir="rtl"] {
      /* @noflip */
      margin-left: 0;
      /* @noflip */
      margin-right: 16px; } }

.mdc-toolbar--fixed {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 4; }

.mdc-toolbar--flexible {
  --mdc-toolbar-ratio-to-extend-flexible: 4; }
  .mdc-toolbar--flexible .mdc-toolbar__row:first-child {
    height: 256px;
    height: calc( 64px * var(--mdc-toolbar-ratio-to-extend-flexible, 4)); }
    @media (max-width: 599px) {
      .mdc-toolbar--flexible .mdc-toolbar__row:first-child {
        height: 224px;
        height: calc( 56px * var(--mdc-toolbar-ratio-to-extend-flexible, 4)); } }
    .mdc-toolbar--flexible .mdc-toolbar__row:first-child::after {
      position: absolute;
      content: ""; }
  .mdc-toolbar--flexible-default-behavior .mdc-toolbar__title {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 1.25rem;
    line-height: 2rem;
    font-weight: 500;
    letter-spacing: 0.0125em;
    text-decoration: inherit;
    text-transform: inherit;
    -webkit-align-self: flex-end;
            align-self: flex-end;
    line-height: 1.5rem; }
  .mdc-toolbar--flexible-default-behavior .mdc-toolbar__row:first-child::after {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: opacity .2s ease;
    opacity: 1; }
  .mdc-toolbar--flexible-default-behavior.mdc-toolbar--flexible-space-minimized .mdc-toolbar__row:first-child::after {
    opacity: 0; }
  .mdc-toolbar--flexible-default-behavior.mdc-toolbar--flexible-space-minimized .mdc-toolbar__title {
    font-weight: 500; }

.mdc-toolbar--waterfall.mdc-toolbar--fixed {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: box-shadow; }
  .mdc-toolbar--waterfall.mdc-toolbar--fixed.mdc-toolbar--flexible-space-minimized {
    box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }
  .mdc-toolbar--waterfall.mdc-toolbar--fixed.mdc-toolbar--fixed-lastrow-only.mdc-toolbar--flexible-space-minimized {
    box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }
  .mdc-toolbar--waterfall.mdc-toolbar--fixed.mdc-toolbar--fixed-lastrow-only.mdc-toolbar--fixed-at-last-row {
    box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }

.mdc-toolbar-fixed-adjust {
  padding-top: 64px; }
  @media (max-width: 959px) and (max-height: 599px) {
    .mdc-toolbar-fixed-adjust {
      padding-top: 48px; } }
  @media (max-width: 599px) {
    .mdc-toolbar-fixed-adjust {
      padding-top: 56px; } }

.mdc-toolbar__section--shrink-to-fit {
  -webkit-flex: none;
          flex: none; }

.mdc-top-app-bar {
  background-color: #212121;
  /* @alternate */
  background-color: var(--mdc-theme-primary, #212121);
  color: white;
  display: -webkit-flex;
  display: flex;
  position: fixed;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  z-index: 4; }
  .mdc-top-app-bar .mdc-top-app-bar__action-item,
  .mdc-top-app-bar .mdc-top-app-bar__navigation-icon {
    color: #f8f9fa;
    /* @alternate */
    color: var(--mdc-theme-on-primary, #f8f9fa); }
    .mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {
      background-color: #f8f9fa; }
      @supports not (-ms-ime-align: auto) {
        .mdc-top-app-bar .mdc-top-app-bar__action-item::before, .mdc-top-app-bar .mdc-top-app-bar__action-item::after,
        .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::before,
        .mdc-top-app-bar .mdc-top-app-bar__navigation-icon::after {
          /* @alternate */
          background-color: var(--mdc-theme-on-primary, #f8f9fa); } }
    .mdc-top-app-bar .mdc-top-app-bar__action-item:hover::before,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:hover::before {
      opacity: 0.08; }
    .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):focus::before, .mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded--background-focused::before,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):focus::before,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--background-focused::before {
      transition-duration: 75ms;
      opacity: 0.24; }
    .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded)::after,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded)::after {
      transition: opacity 150ms linear; }
    .mdc-top-app-bar .mdc-top-app-bar__action-item:not(.mdc-ripple-upgraded):active::after,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon:not(.mdc-ripple-upgraded):active::after {
      transition-duration: 75ms;
      opacity: 0.24; }
    .mdc-top-app-bar .mdc-top-app-bar__action-item.mdc-ripple-upgraded,
    .mdc-top-app-bar .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded {
      --mdc-ripple-fg-opacity: 0.24; }
  .mdc-top-app-bar__row {
    display: -webkit-flex;
    display: flex;
    position: relative;
    box-sizing: border-box;
    width: 100%;
    height: 64px; }
  .mdc-top-app-bar__section {
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-flex: 1 1 auto;
            flex: 1 1 auto;
    -webkit-align-items: center;
            align-items: center;
    min-width: 0;
    padding: 8px 12px;
    z-index: 1; }
    .mdc-top-app-bar__section--align-start {
      -webkit-justify-content: flex-start;
              justify-content: flex-start;
      -webkit-order: -1;
              order: -1; }
    .mdc-top-app-bar__section--align-end {
      -webkit-justify-content: flex-end;
              justify-content: flex-end;
      -webkit-order: 1;
              order: 1; }
  .mdc-top-app-bar__title {
    font-family: Roboto, sans-serif;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-size: 1.25rem;
    line-height: 2rem;
    font-weight: 500;
    letter-spacing: 0.0125em;
    text-decoration: inherit;
    text-transform: inherit;
    /* @noflip */
    padding-left: 20px;
    /* @noflip */
    padding-right: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    z-index: 1; }
    [dir="rtl"] .mdc-top-app-bar__title, .mdc-top-app-bar__title[dir="rtl"] {
      /* @noflip */
      padding-left: 0;
      /* @noflip */
      padding-right: 20px; }
  .mdc-top-app-bar__action-item, .mdc-top-app-bar__navigation-icon {
    --mdc-ripple-fg-size: 0;
    --mdc-ripple-left: 0;
    --mdc-ripple-top: 0;
    --mdc-ripple-fg-scale: 1;
    --mdc-ripple-fg-translate-end: 0;
    --mdc-ripple-fg-translate-start: 0;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    display: -webkit-flex;
    display: flex;
    position: relative;
    -webkit-flex-shrink: 0;
            flex-shrink: 0;
    -webkit-align-items: center;
            align-items: center;
    -webkit-justify-content: center;
            justify-content: center;
    box-sizing: border-box;
    width: 48px;
    height: 48px;
    padding: 12px;
    border: none;
    outline: none;
    background-color: transparent;
    fill: currentColor;
    color: inherit;
    text-decoration: none;
    cursor: pointer; }
    .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__action-item::after, .mdc-top-app-bar__navigation-icon::before, .mdc-top-app-bar__navigation-icon::after {
      position: absolute;
      border-radius: 50%;
      opacity: 0;
      pointer-events: none;
      content: ""; }
    .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__navigation-icon::before {
      transition: opacity 15ms linear, background-color 15ms linear;
      z-index: 1; }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded::before, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::before {
      -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
              transform: scale(var(--mdc-ripple-fg-scale, 1)); }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {
      top: 0;
      /* @noflip */
      left: 0;
      -webkit-transform: scale(0);
              transform: scale(0);
      -webkit-transform-origin: center center;
              transform-origin: center center; }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded--unbounded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--unbounded::after {
      top: var(--mdc-ripple-top, 0);
      /* @noflip */
      left: var(--mdc-ripple-left, 0); }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded--foreground-activation::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--foreground-activation::after {
      -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
              animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded--foreground-deactivation::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded--foreground-deactivation::after {
      -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
              animation: mdc-ripple-fg-opacity-out 150ms;
      -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
              transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
    .mdc-top-app-bar__action-item::before, .mdc-top-app-bar__action-item::after, .mdc-top-app-bar__navigation-icon::before, .mdc-top-app-bar__navigation-icon::after {
      top: calc(50% - 50%);
      /* @noflip */
      left: calc(50% - 50%);
      width: 100%;
      height: 100%; }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded::before, .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::before, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {
      top: var(--mdc-ripple-top, calc(50% - 50%));
      /* @noflip */
      left: var(--mdc-ripple-left, calc(50% - 50%));
      width: var(--mdc-ripple-fg-size, 100%);
      height: var(--mdc-ripple-fg-size, 100%); }
    .mdc-top-app-bar__action-item.mdc-ripple-upgraded::after, .mdc-top-app-bar__navigation-icon.mdc-ripple-upgraded::after {
      width: var(--mdc-ripple-fg-size, 100%);
      height: var(--mdc-ripple-fg-size, 100%); }

.mdc-top-app-bar--short-collapsed {
  /* @noflip */
  border-radius: 0 0 24px 0; }
  [dir="rtl"] .mdc-top-app-bar--short-collapsed, .mdc-top-app-bar--short-collapsed[dir="rtl"] {
    /* @noflip */
    border-radius: 0 0 0 24px; }

.mdc-top-app-bar--short {
  top: 0;
  /* @noflip */
  right: auto;
  /* @noflip */
  left: 0;
  width: 100%;
  transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1); }
  [dir="rtl"] .mdc-top-app-bar--short, .mdc-top-app-bar--short[dir="rtl"] {
    /* @noflip */
    right: 0;
    /* @noflip */
    left: auto; }
  .mdc-top-app-bar--short .mdc-top-app-bar__row {
    height: 56px; }
  .mdc-top-app-bar--short .mdc-top-app-bar__section {
    padding: 4px; }
  .mdc-top-app-bar--short .mdc-top-app-bar__title {
    transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 1; }

.mdc-top-app-bar--short-collapsed {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  width: 56px;
  transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1); }
  .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__title {
    display: none; }
  .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__action-item {
    transition: padding 150ms cubic-bezier(0.4, 0, 0.2, 1); }

.mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item {
  width: 112px; }
  .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end {
    /* @noflip */
    padding-left: 0;
    /* @noflip */
    padding-right: 12px; }
    [dir="rtl"] .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed.mdc-top-app-bar--short-has-action-item .mdc-top-app-bar__section--align-end[dir="rtl"] {
      /* @noflip */
      padding-left: 12px;
      /* @noflip */
      padding-right: 0; }

.mdc-top-app-bar--dense .mdc-top-app-bar__row {
  height: 48px; }

.mdc-top-app-bar--dense .mdc-top-app-bar__section {
  padding: 0 4px; }

.mdc-top-app-bar--dense .mdc-top-app-bar__title {
  /* @noflip */
  padding-left: 12px;
  /* @noflip */
  padding-right: 0; }
  [dir="rtl"] .mdc-top-app-bar--dense .mdc-top-app-bar__title, .mdc-top-app-bar--dense .mdc-top-app-bar__title[dir="rtl"] {
    /* @noflip */
    padding-left: 0;
    /* @noflip */
    padding-right: 12px; }

.mdc-top-app-bar--prominent .mdc-top-app-bar__row {
  height: 128px; }

.mdc-top-app-bar--prominent .mdc-top-app-bar__title {
  -webkit-align-self: flex-end;
          align-self: flex-end;
  padding-bottom: 2px; }

.mdc-top-app-bar--prominent .mdc-top-app-bar__action-item,
.mdc-top-app-bar--prominent .mdc-top-app-bar__navigation-icon {
  -webkit-align-self: flex-start;
          align-self: flex-start; }

.mdc-top-app-bar--fixed {
  transition: box-shadow 200ms linear; }

.mdc-top-app-bar--fixed-scrolled {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  transition: box-shadow 200ms linear; }

.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__row {
  height: 96px; }

.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__section {
  padding: 0 12px; }

.mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title {
  /* @noflip */
  padding-left: 20px;
  /* @noflip */
  padding-right: 0;
  padding-bottom: 9px; }
  [dir="rtl"] .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title, .mdc-top-app-bar--dense.mdc-top-app-bar--prominent .mdc-top-app-bar__title[dir="rtl"] {
    /* @noflip */
    padding-left: 0;
    /* @noflip */
    padding-right: 20px; }

.mdc-top-app-bar--fixed-adjust {
  padding-top: 64px; }

.mdc-top-app-bar--dense-fixed-adjust {
  padding-top: 48px; }

.mdc-top-app-bar--short-fixed-adjust {
  padding-top: 56px; }

.mdc-top-app-bar--prominent-fixed-adjust {
  padding-top: 128px; }

.mdc-top-app-bar--dense-prominent-fixed-adjust {
  padding-top: 96px; }

@media (max-width: 599px) {
  .mdc-top-app-bar__row {
    height: 56px; }
  .mdc-top-app-bar__section {
    padding: 4px; }
  .mdc-top-app-bar--short {
    transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1); }
  .mdc-top-app-bar--short-collapsed {
    transition: width 250ms cubic-bezier(0.4, 0, 0.2, 1); }
    .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end {
      /* @noflip */
      padding-left: 0;
      /* @noflip */
      padding-right: 12px; }
      [dir="rtl"] .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end, .mdc-top-app-bar--short-collapsed .mdc-top-app-bar__section--align-end[dir="rtl"] {
        /* @noflip */
        padding-left: 12px;
        /* @noflip */
        padding-right: 0; }
  .mdc-top-app-bar--prominent .mdc-top-app-bar__title {
    padding-bottom: 6px; }
  .mdc-top-app-bar--fixed-adjust {
    padding-top: 56px; } }

.mdc-typography {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }

.mdc-typography--headline1 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 6rem;
  line-height: 6rem;
  font-weight: 300;
  letter-spacing: -0.01563em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--headline2 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 3.75rem;
  line-height: 3.75rem;
  font-weight: 300;
  letter-spacing: -0.00833em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--headline3 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 3rem;
  line-height: 3.125rem;
  font-weight: 400;
  letter-spacing: normal;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--headline4 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.125rem;
  line-height: 2.5rem;
  font-weight: 400;
  letter-spacing: 0.00735em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--headline5 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 400;
  letter-spacing: normal;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--headline6 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.25rem;
  line-height: 2rem;
  font-weight: 500;
  letter-spacing: 0.0125em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--subtitle1 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 400;
  letter-spacing: 0.00937em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--subtitle2 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.375rem;
  font-weight: 500;
  letter-spacing: 0.00714em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--body1 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.03125em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--body2 {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01786em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--caption {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.75rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.03333em;
  text-decoration: inherit;
  text-transform: inherit; }

.mdc-typography--button {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.875rem;
  line-height: 2.25rem;
  font-weight: 500;
  letter-spacing: 0.08929em;
  text-decoration: none;
  text-transform: uppercase; }

.mdc-typography--overline {
  font-family: Roboto, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 0.75rem;
  line-height: 2rem;
  font-weight: 500;
  letter-spacing: 0.16667em;
  text-decoration: none;
  text-transform: uppercase; }

.card__primary {
  padding: 1rem; }

.card__title {
  margin: 0; }

.card__subtitle {
  color: rgba(0, 0, 0, 0.54);
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));
  margin: 0; }

.card__secondary {
  color: rgba(0, 0, 0, 0.54);
  /* @alternate */
  color: var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));
  padding: 0 1rem 8px 1rem; }

.spacer-group {
  margin-bottom: 20px; }

.spacer-title:not(h1) {
  margin-top: 8px;
  margin-bottom: 14px; }

h1.spacer-title {
  margin-top: 12px;
  margin-bottom: 22px; }

.spacer-input {
  margin-bottom: 12px; }

.spacer-text {
  margin-top: 6px;
  margin-bottom: 3px; }

html .spacer-top-content {
  margin-top: 2rem; }

.container-fluid .pa-content, .container-fluid .spacer-content {
  padding-left: 5rem;
  padding-right: 5rem; }

.container-fluid .dataTables_wrapper {
  padding: 0 !important; }

.spacer-inline-list-10 > *:nth-child(1n+2) {
  margin-left: 10px !important; }

.spacer-inline-list-20 > *:nth-child(1n+2) {
  margin-left: 20px !important; }

.spacer-inline-list-30 > *:nth-child(1n+2) {
  margin-left: 30px !important; }

.spacer-inline-list-40 > *:nth-child(1n+2) {
  margin-left: 40px !important; }

.spacer-inline-list-50 > *:nth-child(1n+2) {
  margin-left: 50px !important; }

.facebook-color {
  color: #3B5998; }

.linkedin-color {
  color: #0077B5; }

.fadoq-color {
  color: #005499; }

.pointer-event-none {
  pointer-events: none; }

.color-picker {
  position: fixed;
  bottom: 1rem;
  left: 1rem;
  z-index: 1; }

.pointer-events-none {
  pointer-events: none; }

.pointer-events-auto {
  pointer-events: auto; }

.radius-0 {
  border-radius: 0 !important; }

.w-60-px {
  width: 60px; }

.mw-100-px {
  max-width: 100px; }

.mw-200-px {
  max-width: 200px; }

.mw-300-px {
  max-width: 300px; }

.mw-400-px {
  max-width: 400px; }

.mw-500-px {
  max-width: 500px; }

.mw-600-px {
  max-width: 600px; }

.mw-700-px {
  max-width: 700px; }

.mw-800-px {
  max-width: 800px; }

.mw-900-px {
  max-width: 900px; }

.mw-1000-px {
  max-width: 1000px; }

.mw-1100-px {
  max-width: 1100px; }

.mw-1200-px {
  max-width: 1200px; }

.mw-1300-px {
  max-width: 1300px; }

.mw-1400-px {
  max-width: 1400px; }

.mw-1500-px {
  max-width: 1500px; }

.mw-1600-px {
  max-width: 1600px; }

.mw-1700-px {
  max-width: 1700px; }

.mw-1800-px {
  max-width: 1800px; }

.mw-1900-px {
  max-width: 1900px; }

.mw-2000-px {
  max-width: 2000px; }

.box-shadow-1 {
  z-index: 10;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-2 {
  z-index: 20;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-3 {
  z-index: 30;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-4 {
  z-index: 40;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-5 {
  z-index: 50;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-6 {
  z-index: 60;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-7 {
  z-index: 70;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-8 {
  z-index: 80;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-9 {
  z-index: 90;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-10 {
  z-index: 100;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-11 {
  z-index: 110;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-12 {
  z-index: 120;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-13 {
  z-index: 130;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-14 {
  z-index: 140;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-15 {
  z-index: 150;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-16 {
  z-index: 160;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-17 {
  z-index: 170;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-18 {
  z-index: 180;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-19 {
  z-index: 190;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-20 {
  z-index: 200;
  position: relative;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }

.box-shadow-0 {
  box-shadow: none; }

.box-shadow-inner {
  box-shadow: inset 0 0 10px #000000; }

.box-shadow-hover {
  pointer-events: all;
  transition: box-shadow ease-in 0.3s; }
  .box-shadow-hover:hover, .box-shadow-hover:focus {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 7px 15px -2px rgba(0, 0, 0, 0.25); }
  .box-shadow-hover.button:hover, .box-shadow-hover.button:focus {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 7px 15px -2px rgba(0, 0, 0, 0.25); }
  .box-shadow-hover a {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 7px 15px -2px rgba(0, 0, 0, 0.25);
    transition: background-color ease-in 0.3s;
    background-color: transparent; }
  .box-shadow-hover a:hover, .box-shadow-hover a:focus {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 7px 15px -2px rgba(0, 0, 0, 0.25);
    background-color: rgba(0, 0, 0, 0.95);
    transition: background-color ease-in 0.3s; }

.mdc-elevation--zhover {
  pointer-events: all;
  transition: box-shadow ease-in 0.3s; }
  .mdc-elevation--zhover:hover, .mdc-elevation--zhover:focus {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 5px 5px 0 rgba(0, 0, 0, 0.12), 0 7px 15px -2px rgba(0, 0, 0, 0.25); }

.text-shadow {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }

.hr.hr-before:before {
  content: "";
  display: block;
  width: 100%;
  border: 0;
  height: 1px;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
  margin: 1rem 0 2rem; }

.hr.hr-after:after {
  content: "";
  display: block;
  width: 100%;
  border: 0;
  height: 1px;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));
  margin: 2rem 0 1rem; }

.img-box {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' preserveAspectRatio='none' viewBox='0 0 400 300'><line x1='0' y1='0' x2='400' y2='300' style='stroke:#c8c8c8;stroke-width:4px' vector-effect='non-scaling-stroke' /><line x1='0' y1='300' x2='400' y2='0' style='stroke:#c8c8c8;stroke-width:4px' vector-effect='non-scaling-stroke' /></svg>");
  background-size: 100% 100% auto;
  background-position: center center; }

.img-box-1 {
  width: 6em;
  height: 6em;
  min-width: 6em; }

.img-box-2 {
  width: 7em;
  height: 7em;
  min-width: 7em; }

.img-box-3 {
  width: 8em;
  height: 8em;
  min-width: 8em; }

.img-box-4 {
  width: 9em;
  height: 9em;
  min-width: 9em; }

.img-box-5 {
  width: 10em;
  height: 10em;
  min-width: 10em; }

.img-box-6 {
  width: 11em;
  height: 11em;
  min-width: 11em; }

.img-box-7 {
  width: 12em;
  height: 12em;
  min-width: 12em; }

.img-box-8 {
  width: 13em;
  height: 13em;
  min-width: 13em; }

.img-box-9 {
  width: 14em;
  height: 14em;
  min-width: 14em; }

.img-box-10 {
  width: 15em;
  height: 15em;
  min-width: 15em; }

.linear-gradient--to-left-primary, .linear-gradient--to-right-primary, .linear-gradient--to-left-secondary, .linear-gradient--to-right-secondary, .linear-gradient--to-left-light, .linear-gradient--to-right-light, .linear-gradient--to-left-dark, .linear-gradient--to-right-dark, .linear-gradient--to-left-background, .linear-gradient--to-right-background, .linear-gradient--to-left-surface, .linear-gradient--to-right-surface {
  width: 100%;
  position: absolute;
  height: 100%;
  background-size: contain;
  z-index: 3; }

.linear-gradient--to-left-primary {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(to left, rgba(161, 161, 161, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%); }

.linear-gradient--to-right-primary {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(to right, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%); }

.linear-gradient--to-left-secondary {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(to left, rgba(213, 222, 233, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%); }

.linear-gradient--to-right-secondary {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(to right, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%); }

.linear-gradient--to-left-light {
  background: rgba(111, 111, 111, 0.9);
  background: linear-gradient(to left, rgba(255, 255, 255, 0.1) 0%, rgba(111, 111, 111, 0.9) 100%); }

.linear-gradient--to-right-light {
  background: rgba(111, 111, 111, 0.9);
  background: linear-gradient(to right, rgba(111, 111, 111, 0.1) 0%, rgba(111, 111, 111, 0.9) 100%); }

.linear-gradient--to-left-dark {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(to left, rgba(161, 161, 161, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%); }

.linear-gradient--to-right-dark {
  background: rgba(0, 0, 0, 0.9);
  background: linear-gradient(to right, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%); }

.linear-gradient--to-left-background {
  background: rgba(128, 128, 128, 0.9);
  background: linear-gradient(to left, rgba(255, 255, 255, 0.1) 0%, rgba(128, 128, 128, 0.9) 100%); }

.linear-gradient--to-right-background {
  background: rgba(128, 128, 128, 0.9);
  background: linear-gradient(to right, rgba(128, 128, 128, 0.1) 0%, rgba(128, 128, 128, 0.9) 100%); }

.linear-gradient--to-left-surface {
  background: rgba(15, 128, 210, 0.9);
  background: linear-gradient(to left, rgba(255, 255, 255, 0.1) 0%, rgba(15, 128, 210, 0.9) 100%); }

.linear-gradient--to-right-surface {
  background: rgba(15, 128, 210, 0.9);
  background: linear-gradient(to right, rgba(15, 128, 210, 0.1) 0%, rgba(15, 128, 210, 0.9) 100%); }

.pos {
  top: initial;
  bottom: initial;
  right: initial;
  left: initial; }

.pos-bottom {
  bottom: 0 !important; }

.pos-right {
  right: 0 !important; }

.pos-top {
  top: 0 !important; }

.pos-left {
  left: 0 !important; }

.lh-normal {
  line-height: normal !important; }

.mt-6 {
  margin-top: 6rem !important; }

.mb-6 {
  margin-bottom: 6rem !important; }

.mr-6 {
  margin-right: 6rem !important; }

.ml-6 {
  margin-left: 6rem !important; }

.my-6 {
  margin-top: 6rem !important;
  margin-bottom: 6rem !important; }

.mx-6 {
  margin-left: 6rem !important;
  margin-right: 6rem !important; }

.m-6 {
  margin: 6rem !important; }

.mt-7 {
  margin-top: 7rem !important; }

.mb-7 {
  margin-bottom: 7rem !important; }

.mr-7 {
  margin-right: 7rem !important; }

.ml-7 {
  margin-left: 7rem !important; }

.my-7 {
  margin-top: 7rem !important;
  margin-bottom: 7rem !important; }

.mx-7 {
  margin-left: 7rem !important;
  margin-right: 7rem !important; }

.m-7 {
  margin: 7rem !important; }

.mt-8 {
  margin-top: 8rem !important; }

.mb-8 {
  margin-bottom: 8rem !important; }

.mr-8 {
  margin-right: 8rem !important; }

.ml-8 {
  margin-left: 8rem !important; }

.my-8 {
  margin-top: 8rem !important;
  margin-bottom: 8rem !important; }

.mx-8 {
  margin-left: 8rem !important;
  margin-right: 8rem !important; }

.m-8 {
  margin: 8rem !important; }

.mt-9 {
  margin-top: 9rem !important; }

.mb-9 {
  margin-bottom: 9rem !important; }

.mr-9 {
  margin-right: 9rem !important; }

.ml-9 {
  margin-left: 9rem !important; }

.my-9 {
  margin-top: 9rem !important;
  margin-bottom: 9rem !important; }

.mx-9 {
  margin-left: 9rem !important;
  margin-right: 9rem !important; }

.m-9 {
  margin: 9rem !important; }

.mt-10 {
  margin-top: 10rem !important; }

.mb-10 {
  margin-bottom: 10rem !important; }

.mr-10 {
  margin-right: 10rem !important; }

.ml-10 {
  margin-left: 10rem !important; }

.my-10 {
  margin-top: 10rem !important;
  margin-bottom: 10rem !important; }

.mx-10 {
  margin-left: 10rem !important;
  margin-right: 10rem !important; }

.m-10 {
  margin: 10rem !important; }

.half-rounded-border {
  border-radius: 18px !important; }

.rotate-90 {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg); }

.rotate-180 {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg); }

.rotate-270 {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg); }

.shader-black--10 {
  color: rgba(0, 0, 0, 0.1); }

.shader-light--10 {
  color: rgba(255, 255, 255, 0.1); }

.shader-black--10-bg {
  background-color: rgba(0, 0, 0, 0.1); }

.shader-light--10-bg {
  background-color: rgba(255, 255, 255, 0.1); }

.shader-black--20 {
  color: rgba(0, 0, 0, 0.2); }

.shader-light--20 {
  color: rgba(255, 255, 255, 0.2); }

.shader-black--20-bg {
  background-color: rgba(0, 0, 0, 0.2); }

.shader-light--20-bg {
  background-color: rgba(255, 255, 255, 0.2); }

.shader-black--30 {
  color: rgba(0, 0, 0, 0.3); }

.shader-light--30 {
  color: rgba(255, 255, 255, 0.3); }

.shader-black--30-bg {
  background-color: rgba(0, 0, 0, 0.3); }

.shader-light--30-bg {
  background-color: rgba(255, 255, 255, 0.3); }

.shader-black--40 {
  color: rgba(0, 0, 0, 0.4); }

.shader-light--40 {
  color: rgba(255, 255, 255, 0.4); }

.shader-black--40-bg {
  background-color: rgba(0, 0, 0, 0.4); }

.shader-light--40-bg {
  background-color: rgba(255, 255, 255, 0.4); }

.shader-black--50 {
  color: rgba(0, 0, 0, 0.5); }

.shader-light--50 {
  color: rgba(255, 255, 255, 0.5); }

.shader-black--50-bg {
  background-color: rgba(0, 0, 0, 0.5); }

.shader-light--50-bg {
  background-color: rgba(255, 255, 255, 0.5); }

.shader-black--60 {
  color: rgba(0, 0, 0, 0.6); }

.shader-light--60 {
  color: rgba(255, 255, 255, 0.6); }

.shader-black--60-bg {
  background-color: rgba(0, 0, 0, 0.6); }

.shader-light--60-bg {
  background-color: rgba(255, 255, 255, 0.6); }

.shader-black--70 {
  color: rgba(0, 0, 0, 0.7); }

.shader-light--70 {
  color: rgba(255, 255, 255, 0.7); }

.shader-black--70-bg {
  background-color: rgba(0, 0, 0, 0.7); }

.shader-light--70-bg {
  background-color: rgba(255, 255, 255, 0.7); }

.shader-black--80 {
  color: rgba(0, 0, 0, 0.8); }

.shader-light--80 {
  color: rgba(255, 255, 255, 0.8); }

.shader-black--80-bg {
  background-color: rgba(0, 0, 0, 0.8); }

.shader-light--80-bg {
  background-color: rgba(255, 255, 255, 0.8); }

.shader-black--90 {
  color: rgba(0, 0, 0, 0.9); }

.shader-light--90 {
  color: rgba(255, 255, 255, 0.9); }

.shader-black--90-bg {
  background-color: rgba(0, 0, 0, 0.9); }

.shader-light--90-bg {
  background-color: rgba(255, 255, 255, 0.9); }

.shader-black--100 {
  color: black; }

.shader-light--100 {
  color: white; }

.shader-black--100-bg {
  background-color: black; }

.shader-light--100-bg {
  background-color: white; }

.z-index-1 {
  z-index: 1; }

.z-index-2 {
  z-index: 2; }

.z-index-3 {
  z-index: 3; }

.z-index-4 {
  z-index: 4; }

.z-index-5 {
  z-index: 5; }

.z-index-6 {
  z-index: 6; }

.z-index-7 {
  z-index: 7; }

.z-index-8 {
  z-index: 8; }

.z-index-9 {
  z-index: 9; }

.z-index-10 {
  z-index: 10; }

.z-index-11 {
  z-index: 11; }

.z-index-12 {
  z-index: 12; }

.z-index-13 {
  z-index: 13; }

.z-index-14 {
  z-index: 14; }

.z-index-15 {
  z-index: 15; }

.z-index-16 {
  z-index: 16; }

.z-index-17 {
  z-index: 17; }

.z-index-18 {
  z-index: 18; }

.z-index-19 {
  z-index: 19; }

.z-index-20 {
  z-index: 20; }

.box-5 {
  width: 5px;
  min-width: 5px;
  height: 5px; }

.box-10 {
  width: 10px;
  min-width: 10px;
  height: 10px; }

.box-15 {
  width: 15px;
  min-width: 15px;
  height: 15px; }

.box-20 {
  width: 20px;
  min-width: 20px;
  height: 20px; }

.box-25 {
  width: 25px;
  min-width: 25px;
  height: 25px; }

.box-30 {
  width: 30px;
  min-width: 30px;
  height: 30px; }

.box-35 {
  width: 35px;
  min-width: 35px;
  height: 35px; }

.box-40 {
  width: 40px;
  min-width: 40px;
  height: 40px; }

.box-45 {
  width: 45px;
  min-width: 45px;
  height: 45px; }

.box-50 {
  width: 50px;
  min-width: 50px;
  height: 50px; }

.box-55 {
  width: 55px;
  min-width: 55px;
  height: 55px; }

.box-60 {
  width: 60px;
  min-width: 60px;
  height: 60px; }

.box-65 {
  width: 65px;
  min-width: 65px;
  height: 65px; }

.box-70 {
  width: 70px;
  min-width: 70px;
  height: 70px; }

.box-75 {
  width: 75px;
  min-width: 75px;
  height: 75px; }

.box-80 {
  width: 80px;
  min-width: 80px;
  height: 80px; }

.box-85 {
  width: 85px;
  min-width: 85px;
  height: 85px; }

.box-90 {
  width: 90px;
  min-width: 90px;
  height: 90px; }

.box-95 {
  width: 95px;
  min-width: 95px;
  height: 95px; }

.box-100 {
  width: 100px;
  min-width: 100px;
  height: 100px; }

.box-105 {
  width: 105px;
  min-width: 105px;
  height: 105px; }

.box-110 {
  width: 110px;
  min-width: 110px;
  height: 110px; }

.box-115 {
  width: 115px;
  min-width: 115px;
  height: 115px; }

.box-120 {
  width: 120px;
  min-width: 120px;
  height: 120px; }

.box-125 {
  width: 125px;
  min-width: 125px;
  height: 125px; }

.box-130 {
  width: 130px;
  min-width: 130px;
  height: 130px; }

.box-135 {
  width: 135px;
  min-width: 135px;
  height: 135px; }

.box-140 {
  width: 140px;
  min-width: 140px;
  height: 140px; }

.box-145 {
  width: 145px;
  min-width: 145px;
  height: 145px; }

.box-150 {
  width: 150px;
  min-width: 150px;
  height: 150px; }

.box-155 {
  width: 155px;
  min-width: 155px;
  height: 155px; }

.box-160 {
  width: 160px;
  min-width: 160px;
  height: 160px; }

.box-165 {
  width: 165px;
  min-width: 165px;
  height: 165px; }

.box-170 {
  width: 170px;
  min-width: 170px;
  height: 170px; }

.box-175 {
  width: 175px;
  min-width: 175px;
  height: 175px; }

.box-180 {
  width: 180px;
  min-width: 180px;
  height: 180px; }

.box-185 {
  width: 185px;
  min-width: 185px;
  height: 185px; }

.box-190 {
  width: 190px;
  min-width: 190px;
  height: 190px; }

.box-195 {
  width: 195px;
  min-width: 195px;
  height: 195px; }

.box-200 {
  width: 200px;
  min-width: 200px;
  height: 200px; }

.background-image {
  background-attachment: scroll;
  background-size: cover;
  background-position: right 0;
  background-clip: border-box;
  width: 100%;
  height: 100%;
  z-index: 1;
  position: absolute; }

.background-image-contain, .background-image-cover {
  background-clip: border-box;
  background-repeat: no-repeat;
  width: 100%; }

.background-image-contain {
  background-size: contain !important; }

.background-image-cover {
  background-size: cover !important; }

.outline-none {
  outline: none !important; }

.overflow-visiblë {
  overflow: visible !important; }

.block {
  display: block; }

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

.w-100 {
  width: 100%; }

/*# sourceMappingURL=main.css.map */
.toggle-content {
  display: none;
  height: 0;
  width: 0;
  overflow: hidden;
  transition: height, opacity 300ms ease-in-out;
  opacity: 0;
  will-change: height, opacity; }
  .toggle-content.is-visible {
    opacity: 1;
    display: block;
    height: auto;
    width: auto; }

#IndeedAdvancedSearch, .TargetedRegion, #SubRegionHolder {
  display: none;
  transition: width, height, opacity 300ms ease-in-out;
  opacity: 0;
  height: 0;
  width: 0;
  will-change: width, height, opacity; }
  #IndeedAdvancedSearch.active, .TargetedRegion.active, #SubRegionHolder.active {
    opacity: 1;
    display: inline;
    width: auto;
    height: auto; }

/*
    IE11 FIXES
*/
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  body {
    overflow-x: auto; }
  .mdc-theme--on-surface .join-icon {
    left: 5px; }
  .mdc-menu-absolute {
    min-width: 300px;
    width: 95%;
    overflow: hidden; }
  footer {
    min-height: 200px; }
  .mdc-dialog__container,
  .mdc-dialog__surface {
    width: 100%; } }

@media print {
  aside, [role="navigation"], [role="banner"], [role="alertdialog"], [role="menubar"], [role="button"], [role="status"], #map, footer, .loader-wrapper, ::-webkit-scrollbar-track, ::-webkit-scrollbar,
  ::-webkit-scrollbar-thumb {
    display: none !important;
    background: #fff !important; }
  .mdc-drawer-app-content, .m-p-0 {
    padding: 0 !important;
    margin: 0 !important; } }

/*# sourceMappingURL=main.css.map */

/*# sourceURL=undefinedmain.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_reset.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\_variable.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\button\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\typography\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\typography\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\typography\_functions.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\button\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\shape\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\shape\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\theme\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\rtl\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\elevation\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\elevation\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\ripple\_keyframes.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\animation\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\ripple\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\ripple\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\card\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_color-palettes.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\card\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\checkbox\_keyframes.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\checkbox\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\checkbox\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\chips\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\chips\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\shape\_functions.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\dialog\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\dialog\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\drawer\common.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\drawer\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\drawer\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\drawer\dismissible\mdc-drawer-dismissible.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\drawer\modal\mdc-drawer-modal.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\fab\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\fab\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\floating-label\mdc-floating-label.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\floating-label\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\form-field\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\theme\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\form-field\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\grid-list\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\grid-list\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\main.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\icon-button\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\icon-button\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\image-list\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\image-list\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\layout-grid\mdc-layout-grid.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\layout-grid\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\layout-grid\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\line-ripple\mdc-line-ripple.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\linear-progress\_keyframes.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\linear-progress\mdc-linear-progress.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\linear-progress\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\linear-progress\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\list\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\list\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\menu\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\menu\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\menu-surface\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\menu-surface\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\notched-outline\mdc-notched-outline.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\notched-outline\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\radio\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\radio\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\_keyframes.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\icon\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\icon\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\icon\mdc-select-icon.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\helper-text\mdc-select-helper-text.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\mdc-select.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\select\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\notched-outline\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\slider\_keyframes.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\slider\mdc-slider.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\slider\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\snackbar\mdc-snackbar.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\snackbar\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\snackbar\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\switch\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\switch\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab-indicator\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab\mdc-tab.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab-bar\mdc-tab-bar.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab-bar\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab-indicator\mdc-tab-indicator.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\tab-scroller\mdc-tab-scroller.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\helper-text\mdc-text-field-helper-text.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\character-counter\mdc-text-field-character-counter.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\icon\mdc-text-field-icon.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\mdc-text-field.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\icon\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\icon\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\textfield\character-counter\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\toolbar\mdc-toolbar.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\toolbar\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\toolbar\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\top-app-bar\mdc-top-app-bar.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\top-app-bar\_variables.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/node_modules\@material\top-app-bar\_mixins.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_mdc-styles.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_spacer.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_utilitie.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_animate.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_ie-fix.scss */
/*# sourceURL=undefinedF:\www\humano-project\inovexconseils.com/src\scss\partials\_print.scss */
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vc3JjXFxzY3NzXFxwYXJ0aWFsc1xcX3Jlc2V0LnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL3NyY1xcc2Nzc1xcX3ZhcmlhYmxlLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxidXR0b25cXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHR5cG9ncmFwaHlcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHR5cG9ncmFwaHlcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHR5cG9ncmFwaHlcXF9mdW5jdGlvbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGJ1dHRvblxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc2hhcGVcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNoYXBlXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0aGVtZVxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxccnRsXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxlbGV2YXRpb25cXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGVsZXZhdGlvblxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxccmlwcGxlXFxfa2V5ZnJhbWVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxhbmltYXRpb25cXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHJpcHBsZVxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxccmlwcGxlXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxjYXJkXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL3NyY1xcc2Nzc1xccGFydGlhbHNcXF9jb2xvci1wYWxldHRlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcY2FyZFxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcY2hlY2tib3hcXF9rZXlmcmFtZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGNoZWNrYm94XFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxjaGVja2JveFxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcY2hpcHNcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGNoaXBzXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxzaGFwZVxcX2Z1bmN0aW9ucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZGlhbG9nXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxkaWFsb2dcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGRyYXdlclxcY29tbW9uLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxkcmF3ZXJcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGRyYXdlclxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZHJhd2VyXFxkaXNtaXNzaWJsZVxcbWRjLWRyYXdlci1kaXNtaXNzaWJsZS5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZHJhd2VyXFxtb2RhbFxcbWRjLWRyYXdlci1tb2RhbC5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZmFiXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxmYWJcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGZsb2F0aW5nLWxhYmVsXFxtZGMtZmxvYXRpbmctbGFiZWwuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGZsb2F0aW5nLWxhYmVsXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxmb3JtLWZpZWxkXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0aGVtZVxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZm9ybS1maWVsZFxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcZ3JpZC1saXN0XFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxncmlkLWxpc3RcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vc3JjXFxzY3NzXFxtYWluLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxpY29uLWJ1dHRvblxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcaWNvbi1idXR0b25cXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGltYWdlLWxpc3RcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGltYWdlLWxpc3RcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGxheW91dC1ncmlkXFxtZGMtbGF5b3V0LWdyaWQuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGxheW91dC1ncmlkXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxsYXlvdXQtZ3JpZFxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcbGluZS1yaXBwbGVcXG1kYy1saW5lLXJpcHBsZS5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcbGluZWFyLXByb2dyZXNzXFxfa2V5ZnJhbWVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxsaW5lYXItcHJvZ3Jlc3NcXG1kYy1saW5lYXItcHJvZ3Jlc3Muc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXGxpbmVhci1wcm9ncmVzc1xcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcbGluZWFyLXByb2dyZXNzXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxsaXN0XFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxsaXN0XFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxtZW51XFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxtZW51XFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxtZW51LXN1cmZhY2VcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXG1lbnUtc3VyZmFjZVxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcbm90Y2hlZC1vdXRsaW5lXFxtZGMtbm90Y2hlZC1vdXRsaW5lLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxub3RjaGVkLW91dGxpbmVcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHJhZGlvXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxyYWRpb1xcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc2VsZWN0XFxfa2V5ZnJhbWVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxzZWxlY3RcXGljb25cXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNlbGVjdFxcaWNvblxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc2VsZWN0XFxpY29uXFxtZGMtc2VsZWN0LWljb24uc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNlbGVjdFxcaGVscGVyLXRleHRcXG1kYy1zZWxlY3QtaGVscGVyLXRleHQuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNlbGVjdFxcbWRjLXNlbGVjdC5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc2VsZWN0XFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxzZWxlY3RcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXG5vdGNoZWQtb3V0bGluZVxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc2xpZGVyXFxfa2V5ZnJhbWVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxzbGlkZXJcXG1kYy1zbGlkZXIuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNsaWRlclxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc25hY2tiYXJcXG1kYy1zbmFja2Jhci5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcc25hY2tiYXJcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHNuYWNrYmFyXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFxzd2l0Y2hcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHN3aXRjaFxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGFiLWluZGljYXRvclxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGFiXFxtZGMtdGFiLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0YWJcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRhYlxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGFiLWJhclxcbWRjLXRhYi1iYXIuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRhYi1iYXJcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRhYi1pbmRpY2F0b3JcXG1kYy10YWItaW5kaWNhdG9yLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0YWItc2Nyb2xsZXJcXG1kYy10YWItc2Nyb2xsZXIuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRleHRmaWVsZFxcaGVscGVyLXRleHRcXG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0ZXh0ZmllbGRcXGNoYXJhY3Rlci1jb3VudGVyXFxtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGV4dGZpZWxkXFxpY29uXFxtZGMtdGV4dC1maWVsZC1pY29uLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0ZXh0ZmllbGRcXG1kYy10ZXh0LWZpZWxkLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0ZXh0ZmllbGRcXF92YXJpYWJsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRleHRmaWVsZFxcX21peGlucy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdGV4dGZpZWxkXFxpY29uXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0ZXh0ZmllbGRcXGljb25cXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRleHRmaWVsZFxcY2hhcmFjdGVyLWNvdW50ZXJcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vbm9kZV9tb2R1bGVzXFxAbWF0ZXJpYWxcXHRvb2xiYXJcXG1kYy10b29sYmFyLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0b29sYmFyXFxfdmFyaWFibGVzLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0b29sYmFyXFxfbWl4aW5zLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0b3AtYXBwLWJhclxcbWRjLXRvcC1hcHAtYmFyLnNjc3MiLCJGOlxcd3d3XFxodW1hbm8tcHJvamVjdFxcaW5vdmV4Y29uc2VpbHMuY29tL25vZGVfbW9kdWxlc1xcQG1hdGVyaWFsXFx0b3AtYXBwLWJhclxcX3ZhcmlhYmxlcy5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9ub2RlX21vZHVsZXNcXEBtYXRlcmlhbFxcdG9wLWFwcC1iYXJcXF9taXhpbnMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vc3JjXFxzY3NzXFxwYXJ0aWFsc1xcX21kYy1zdHlsZXMuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vc3JjXFxzY3NzXFxwYXJ0aWFsc1xcX3NwYWNlci5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9zcmNcXHNjc3NcXHBhcnRpYWxzXFxfdXRpbGl0aWUuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vc3JjXFxzY3NzXFxwYXJ0aWFsc1xcX2FuaW1hdGUuc2NzcyIsIkY6XFx3d3dcXGh1bWFuby1wcm9qZWN0XFxpbm92ZXhjb25zZWlscy5jb20vc3JjXFxzY3NzXFxwYXJ0aWFsc1xcX2llLWZpeC5zY3NzIiwiRjpcXHd3d1xcaHVtYW5vLXByb2plY3RcXGlub3ZleGNvbnNlaWxzLmNvbS9zcmNcXHNjc3NcXHBhcnRpYWxzXFxfcHJpbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxn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RUFBQTtFMkJPbEI7SW5Ca0RNLDRCUnpEWSxFQUFBO0UyQk9sQjtJbkJrRE0sNEJSekRZLEVBQUE7RTJCT2xCO0luQmtETSw0QlJ6RFksRUFBQTtFMkJPbEI7SW5Ca0RNLDZCUnpEWSxFQUFBO0UyQk9sQjtJbkJrRE0sY1JGcUIsRUFBQTtFMkJoRDNCO0luQmtETSw2QlJGcUIsRUFBQTtFRml6Q3pCO0lRejFDTSxZQUFBO0lBQ0Esc0JDbEI0QixFQUFBO0VvQlNwQztJckJJSSxrQnFCTXVDLEVBQUE7RUFWM0M7SWxCZ09FLFlBQUE7SUFDQSxrQm9Cek5zQjtJcEIwTnRCLFlBQUE7SUFDQSxlQXRIZSxFQUFBO0lYOHZDYjtNV3JvQ0EsWUFBQTtNQUNBLGNBMUhhO01BMkhiLFlBQUE7TUFDQSxtQm9Cak9vQixFQUFBO0UvQncyQ3RCO0k2QnAxQ0UsWUFBQTtJQUNBLHFCQUFxQjtJQUNyQixZQUFBO0lBQ0Esc0JBQXNCO0lBQ3RCLFlBQUE7SUFDQSx3QkFBd0I7SUFDeEIsWUFBQTtJQUNBLHdCQUF3QixFQUFBO0VBbkM1QjtJekJ3Qk0sK0JDbENvRDtJRGtDcEQsa0NDOUI4QjtJRDhCOUIsbUNDN0IrQjtJRDZCL0IsbUJDMkNrQjtJRDNDbEIscUJDNENxQjtJRDVDckIsZ0JDdEJPO0lEc0JQLHlCRWdCdUM7SUZoQnZDLHdCQytDd0I7SUQvQ3hCLHVCQ2dEdUI7SXdCOUJ6Qiw0QkFBeUQ7SUFFekQsZUFBK0M7SUFDL0MsY0FBMEMsRUFBQTtFQTdDOUM7SUFrREksZUFBZSxFQUFBO0VBbERuQjtJQXVESSxnQkFBZ0IsRUFBQTtFQXZEcEI7SXpCd0JNLCtCQ2xDb0Q7SURrQ3BELGtDQzlCOEI7SUQ4QjlCLG1DQzdCK0I7SUQ2Qi9CLG1CQzJEa0I7SUQzRGxCLG9CQzREb0I7SUQ1RHBCLGdCQ3ZCUTtJRHVCUix5QkVnQnVDO0lGaEJ2Qyx3QkMrRHdCO0lEL0R4Qix1QkNnRXVCO0lENUN6QixjQUFjO0lBQ2QsYUFBYTtJQUNiLGVBQUE7SUFDQSxtQkFBbUI7SXlCZ0JuQixTQUFTO0lBQ1QsZUV0RDZCLEVBQUE7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O0VqQ2dIakIsZUFBQTtFQUNBLHNDQUE0RCxFQUFBOztBb0ZrSHBFO0VwRnRJTSxjaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLHNDQUE0RCxFQUFBOztBb0ZrSHBFO0VwRnRJTSxjaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLHNDQUE0RCxFQUFBOztBb0ZrSHBFO0VFM0VJLFVBQVUsRUFBQTs7QXRCbkpaOzs7RWhFd0ZJLHFCaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLDZDQUE0RCxFQUFBOztBZ0U1R2xFOzs7Ozs7RWhFd0ZJLHFCaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLDZDQUE0RCxFQUFBOztBZ0U1R2xFOzs7RWhFd0ZJLHFCaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLDZDQUE0RCxFQUFBOztBZ0U1R2xFOzs7RWhFd0ZJLHFCaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLDZDQUE0RCxFQUFBOztBZ0U1R2xFOzs7Ozs7RWhFd0ZJLHFCaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLDZDQUE0RCxFQUFBOztBZ0U1R2xFOzs7RWhFd0ZJLHFCaUM3Rm1CO0VqQ2dIakIsZUFBQTtFQUNBLDZDQUE0RCxFQUFBOztBc0ZuQ2pFO0V0RmxCRyx5QnFGNUN1RztFQ3lHM0csbUJBQW1CO0VBQ25CLG9CQUFvQixFQUFBO0VGcUh0QjtJcEZuTE0sMkNSekRZLEVBQUE7RTRGNE9sQjtJcEZuTE0sNkJSekRZLEVBQUE7RTRGNE9sQjtJcEZuTE0sNkJSekRZLEVBQUE7RTRGNE9sQjtJcEZuTE0sNkJSekRZLEVBQUE7RTRGNE9sQjs7SXBGbkxNLDZCUnpEWSxFQUFBO0U0RjRPbEI7SXBGbkxNLDRCUnpEWSxFQUFBO0U0RjRPbEI7SXBGbkxNLDJDUnpEWSxFQUFBO0U0RjRPbEI7SUVsSEksZUFBZSxFQUFBOztBRnNIbkI7RXBGdkxNLDZCc0Z5TTJDO0VBNk4vQyxlQUFBO0V0RnRhSSx5QnFGaENtRCxFQUFBO0VyQnZCdkQ7OztJaEV1REksb0NSekRZLEVBQUE7RTRGZ1BsQjtJRXFCSSxtQkFBbUIsRUFBQTs7QTNENVBy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O0VBQ3BCLG1CQ3hIZ0QsRUFBQTs7QURpSHBEOztFQVlJLDhCQUFzQjtVQUF0QixzQkFBc0IsRUFBQTs7QUFLMUI7RUFDRSxtQ0FBbUMsRUFBQTs7QUFHckM7RTNGeEdJLDBIQ2xEZ0M7RTBGNkpsQyxtQ0FBbUMsRUFBQTs7QUFLckM7RUFFSSxZQUE2QyxFQUFBOztBQUZqRDtFQU1JLGVDdEs2QyxFQUFBOztBRGdLakQ7RTVGd0VFLFlBQUE7RUFDQSxrQjZGM091QztFN0Y0T3ZDLFlBQUE7RUFDQSxnQkF0SGU7RTRGdURiLG1CQy9Jc0QsRUFBQTtFeEdpZ094RDtJV2h6TkUsWUFBQTtJQUNBLGVBMUhhO0lBMkhiLFlBQUE7SUFDQSxtQjZGblBxQyxFQUFBOztBRG1MekM7RUFDRSxpQkNyTCtCLEVBQUE7O0FEd0xqQztFQUNFLGlCQzlKcUMsRUFBQTs7QURpS3ZDO0VBQ0UsaUJDbExzQyxFQUFBOztBRHFMeEM7RUFDRSxrQkM3SzBDLEVBQUE7O0FEZ0w1QztFQUNFLGlCQUFrRCxFQUFBOztBRS9JbEQ7RUZuQ0E7SUVxQ0ksWUQ3Q2tDLEVBQUE7RURnQnRDO0lFaUNJLFlEaERzQyxFQUFBO0VEc0Q1QztJRUZNLG9EMUZoRW1FLEVBQUE7RTBGeUN2RTtJQTJCSSxvRDFGcEVtRSxFQUFBO0kwRm1FckU7TTlGd0tGLFlBQUE7TUFDQSxlQWpIZ0I7TUFrSGhCLFlBQUE7TUFDQSxtQjZGN051RCxFQUFBO014R21qT25EO1FXbjFORixZQUFBO1FBQ0Esa0I2RmpPcUQ7UTdGa09yRCxZQUFBO1FBQ0EsZ0JBekhjLEVBQUE7RTRGV2xCO0lFekRRLG1CRHJEbUQsRUFBQTtFRDRKM0Q7SUVsR00saUJEdkVrQyxFQUFBLEVDd0VuQzs7QXJHL0VIO0VBZ0JJLCtCQ25Cb0Q7RURtQnBELGtDQ2Y4QjtFRGU5QixtQ0NkK0IsRUFBQTs7QURHakM7RUEwQkUsK0JDbENvRDtFRGtDcEQsa0NDOUI4QjtFRDhCOUIsbUNDN0IrQjtFRDZCL0IsZUNiZTtFRGFmLGlCQ1ppQjtFRFlqQixnQkN4Qk07RUR3Qk4sMEJFZ0J1QztFRmhCdkMsd0JDVHdCO0VEU3hCLHVCQ1J1QixFQUFBOztBRGxCekI7RUEwQkUsK0JDbENvRDtFRGtDcEQsa0NDOUI4QjtFRDhCOUIsbUNDN0IrQjtFRDZCL0Isa0JDTGtCO0VES2xCLG9CQ0pvQjtFRElwQixnQkN4Qk07RUR3Qk4sMEJFZ0J1QztFRmhCdkMsd0JDRHdCO0VEQ3hCLHVCQ0F1QixFQUFBOztBRDFCekI7RUEwQkUsK0JDbENvRDtFRGtDcEQsa0NDOUI4QjtFRDhCOUIsbUNDN0IrQjtFRDZCL0IsZUNHZTtFREhmLHFCQ0lxQjtFREpyQixnQkN2QlE7RUR1QlIsc0JDTXNCO0VETnRCLHdCQ093QjtFRFB4Qix1QkNRdUIsRUFBQTs7QURsQ3pCO0VBMEJFLCtCQ2xDb0Q7RURrQ3BELGtDQzlCOEI7RUQ4QjlCLG1DQzdCK0I7RUQ2Qi9CLG1CQ1dtQjtFRFhuQixtQkNZbUI7RURabkIsZ0JDdkJRO0VEdUJSLHlCRWdCdUM7RUZoQnZDLHdCQ2V3QjtFRGZ4Qix1QkNnQnVCLEVBQUE7O0FEMUN6QjtFQTBCRSwrQkNsQ29EO0VEa0NwRCxrQ0M5QjhCO0VEOEI5QixtQ0M3QitCO0VENkIvQixpQkNtQmlCO0VEbkJqQixpQkNvQmlCO0VEcEJqQixnQkN2QlE7RUR1QlIsc0JDc0JzQjtFRHRCdEIsd0JDdUJ3QjtFRHZCeEIsdUJDd0J1QixFQUFBOztBRGxEekI7RUEwQkUsK0JDbENvRDtFRGtDcEQsa0NDOUI4QjtFRDhCOUIsbUNDN0IrQjtFRDZCL0Isa0JDMkJrQjtFRDNCbEIsaUJDNEJpQjtFRDVCakIsZ0JDdEJPO0VEc0JQLHdCRWdCdUM7RUZoQnZDLHdCQytCd0I7RUQvQnhCLHVCQ2dDdUIsRUFBQTs7QUQxRHpCO0VBMEJFLCtCQ2xDb0Q7RURrQ3BELGtDQzlCOEI7RUQ4QjlCLG1DQzdCK0I7RUQ2Qi9CLGVDbUNlO0VEbkNmLG9CQ29Db0I7RURwQ3BCLGdCQ3ZCUTtFRHVCUix5QkVnQnVDO0VGaEJ2Qyx3QkN1Q3dCO0VEdkN4Qix1QkN3Q3VCLEVBQUE7O0FEbEV6QjtFQTBCRSwrQkNsQ29EO0VEa0NwRCxrQ0M5QjhCO0VEOEI5QixtQ0M3QitCO0VENkIvQixtQkMyQ2tCO0VEM0NsQixxQkM0Q3FCO0VENUNyQixnQkN0Qk87RURzQlAseUJFZ0J1QztFRmhCdkMsd0JDK0N3QjtFRC9DeEIsdUJDZ0R1QixFQUFBOztBRDFFekI7RUEwQkUsK0JDbENvRDtFRGtDcEQsa0NDOUI4QjtFRDhCOUIsbUNDN0IrQjtFRDZCL0IsZUNtRGU7RURuRGYsbUJDb0RtQjtFRHBEbkIsZ0JDdkJRO0VEdUJSLHlCRWdCdUM7RUZoQnZDLHdCQ3VEd0I7RUR2RHhCLHVCQ3dEdUIsRUFBQTs7QURsRnpCO0VBMEJFLCtCQ2xDb0Q7RURrQ3BELGtDQzlCOEI7RUQ4QjlCLG1DQzdCK0I7RUQ2Qi9CLG1CQzJEa0I7RUQzRGxCLG9CQzREb0I7RUQ1RHBCLGdCQ3ZCUTtFRHVCUix5QkVnQnVDO0VGaEJ2Qyx3QkMrRHdCO0VEL0R4Qix1QkNnRXVCLEVBQUE7O0FEMUZ6QjtFQTBCRSwrQkNsQ29EO0VEa0NwRCxrQ0M5QjhCO0VEOEI5QixtQ0M3QitCO0VENkIvQixrQkNtRWlCO0VEbkVqQixvQkNvRW9CO0VEcEVwQixnQkN2QlE7RUR1QlIseUJFZ0J1QztFRmhCdkMsd0JDdUV3QjtFRHZFeEIsdUJDd0V1QixFQUFBOztBRGxHekI7RUEwQkUsK0JDbENvRDtFRGtDcEQsa0NDOUI4QjtFRDhCOUIsbUNDN0IrQjtFRDZCL0IsbUJDMkVrQjtFRDNFbEIsb0JDNEVvQjtFRDVFcEIsZ0JDdEJPO0VEc0JQLHlCRWdCdUM7RUZoQnZDLHFCQytFcUI7RUQvRXJCLHlCQ2dGeUIsRUFBQTs7QUQxRzNCO0VBMEJFLCtCQ2xDb0Q7RURrQ3BELGtDQzlCOEI7RUQ4QjlCLG1DQzdCK0I7RUQ2Qi9CLGtCQ21GaUI7RURuRmpCLGlCQ29GaUI7RURwRmpCLGdCQ3RCTztFRHNCUCx5QkVnQnVDO0VGaEJ2QyxxQkN1RnFCO0VEdkZyQix5QkN3RnlCLEVBQUE7O0FxR2xKL0I7RUFDSSxhQUFhLEVBQUE7O0FBR2Y7RUFDRSxTQUFTLEVBQUE7O0FBR1g7RUFDRSwwQkFBMEI7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QUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQUNWO0VBQ0ksV0FGTSxFQUFBOztBQVNWO0VBQ0ksVUFBZTtFQUNmLGNBQW1CO0VBQ25CLFdBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VBQ25CLFlBQWdCLEVBQUE7O0FBSHBCO0VBQ0ksV0FBZTtFQUNmLGVBQW1CO0VB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RUFBQTtFQUVwQjs7SUFFSSxXQUFVLEVBQUEsRUFDYjs7QUN0Qkw7RUFDSTs7SUFFSSx3QkFBd0I7SUFDeEIsMkJBQTBCLEVBQUE7RUFFOUI7SUFDSSxxQkFBcUI7SUFDckIsb0JBQW1CLEVBQUEsRUFDdEI7O0FBSUwsbUNBQUEiLCJmaWxlIjoibWFpbi5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC8gXHJcbiAgIHYyLjAgfCAyMDExMDEyNlxyXG4gICBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxyXG4qL1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1tYWluLmNzcy5tYXAgKi9cbi5tZGMtYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wODkyOWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDAgOHB4IDAgOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5tZGMtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDsgfVxuICAubWRjLWJ1dHRvbjphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLm1kYy1idXR0b246aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWRjLWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zNyk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1idXR0b24tLWRlbnNlIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm1kYy1idXR0b246bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtYnV0dG9uIC5tZGMtYnV0dG9uX19pY29uLCAubWRjLWJ1dHRvbiAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWRjLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cblxuLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG5zdmcubWRjLWJ1dHRvbl9faWNvbiB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb24sXG4ubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9faWNvbiwgLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQgLm1kYy1idXR0b25fX2ljb24sXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19pY29uW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2ljb24sXG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZCAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IC00cHg7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogLTRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb24sIC5tZGMtYnV0dG9uLS1yYWlzZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCAubWRjLWJ1dHRvbl9fbGFiZWwgKyAubWRjLWJ1dHRvbl9faWNvbltkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uLFxuICAubWRjLWJ1dHRvbi0tb3V0bGluZWQgLm1kYy1idXR0b25fX2xhYmVsICsgLm1kYy1idXR0b25fX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCB7XG4gIHBhZGRpbmc6IDAgMTZweCAwIDE2cHg7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpkaXNhYmxlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4xMik7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zNyk7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpub3QoOmRpc2FibGVkKSxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLWJ1dHRvbi0tcmFpc2VkOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfSB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KDpkaXNhYmxlZCksXG4gIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogI2Y4ZjlmYTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZjhmOWZhKTsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6aG92ZXIsIC5tZGMtYnV0dG9uLS1yYWlzZWQ6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGMtYnV0dG9uLS1yYWlzZWQ6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy1idXR0b24tLXJhaXNlZDpkaXNhYmxlZCB7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtYnV0dG9uLS1vdXRsaW5lZCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDAgMTVweCAwIDE1cHg7XG4gIGJvcmRlci13aWR0aDogMXB4OyB9XG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZDpkaXNhYmxlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMzcpOyB9XG4gIC5tZGMtYnV0dG9uLS1vdXRsaW5lZDpub3QoOmRpc2FibGVkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjEyMTIxO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfVxuXG4ubWRjLWJ1dHRvbi0tZGVuc2Uge1xuICBoZWlnaHQ6IDMycHg7XG4gIGZvbnQtc2l6ZTogLjgxMjVyZW07IH1cblxuQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQsIDApKSBzY2FsZSgxKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4ge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgb3BhY2l0eTogMDsgfVxuICB0byB7XG4gICAgb3BhY2l0eTogdmFyKC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5LCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApOyB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuLm1kYy1yaXBwbGUtc3VyZmFjZS0tdGVzdC1lZGdlLXZhci1idWcge1xuICAtLW1kYy1yaXBwbGUtc3VyZmFjZS10ZXN0LWVkZ2UtdmFyOiAxcHggc29saWQgIzAwMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXRlc3QtZWRnZS12YXItYnVnOjpiZWZvcmUge1xuICAgIGJvcmRlcjogdmFyKC0tbWRjLXJpcHBsZS1zdXJmYWNlLXRlc3QtZWRnZS12YXIpOyB9XG5cbi5tZGMtYnV0dG9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLWJ1dHRvbjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1idXR0b246OmJlZm9yZSwgLm1kYy1idXR0b246OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH0gfVxuICAubWRjLWJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1idXR0b246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1idXR0b24tLXJhaXNlZDo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkOjphZnRlcixcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOjpiZWZvcmUsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhOyB9XG4gIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAubWRjLWJ1dHRvbi0tcmFpc2VkOjpiZWZvcmUsIC5tZGMtYnV0dG9uLS1yYWlzZWQ6OmFmdGVyLFxuICAgIC5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOjpiZWZvcmUsXG4gICAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6OmFmdGVyIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZjhmOWZhKTsgfSB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6aG92ZXI6OmJlZm9yZSxcbi5tZGMtYnV0dG9uLS11bmVsZXZhdGVkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA4OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG5cbi5tZGMtYnV0dG9uLS1yYWlzZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyLFxuLm1kYy1idXR0b24tLXVuZWxldmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLWJ1dHRvbi0tcmFpc2VkLm1kYy1yaXBwbGUtdXBncmFkZWQsXG4ubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNmMmZkO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZTNmMmZkKTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRjLWNhcmQtLW91dGxpbmVkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjY2VkY2U2OyB9XG5cbi5tZGMtY2FyZF9fbWVkaWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAubWRjLWNhcmRfX21lZGlhOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuLm1kYy1jYXJkX19tZWRpYTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0OyB9XG5cbi5tZGMtY2FyZF9fbWVkaWE6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0OyB9XG5cbi5tZGMtY2FyZF9fbWVkaWEtLXNxdWFyZTo6YmVmb3JlIHtcbiAgbWFyZ2luLXRvcDogMTAwJTsgfVxuXG4ubWRjLWNhcmRfX21lZGlhLS0xNi05OjpiZWZvcmUge1xuICBtYXJnaW4tdG9wOiA1Ni4yNSU7IH1cblxuLm1kYy1jYXJkX19tZWRpYS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDsgfVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA1MnB4O1xuICBwYWRkaW5nOiA4cHg7IH1cblxuLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zLFxuLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9uLWljb25zIHtcbiAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC42KTtcbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyArIC5tZGMtY2FyZF9fYWN0aW9uLWljb25zLCAubWRjLWNhcmRfX2FjdGlvbi1idXR0b25zICsgLm1kYy1jYXJkX19hY3Rpb24taWNvbnNbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMTZweDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLWNhcmRfX2FjdGlvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgcGFkZGluZzogMCA4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uLCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uOmxhc3QtY2hpbGQsIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b246bGFzdC1jaGlsZFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uLCAubWRjLWNhcmRfX2FjdGlvbnMtLWZ1bGwtYmxlZWQgLm1kYy1jYXJkX19hY3Rpb24tLWJ1dHRvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRjLWNhcmRfX2FjdGlvbi0taWNvbiB7XG4gIG1hcmdpbjogLTZweCAwO1xuICBwYWRkaW5nOiAxMnB4OyB9XG5cbi5tZGMtY2FyZF9fYWN0aW9uLS1pY29uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC42KTsgfVxuXG4ubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YWZ0ZXIge1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDAlKTtcbiAgICB3aWR0aDogMjAwJTtcbiAgICBoZWlnaHQ6IDIwMCU7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246OmJlZm9yZSwgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1jYXJkX19wcmltYXJ5LWFjdGlvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1jaGVja2VkLWNoZWNrbWFyay1wYXRoIHtcbiAgMCUsXG4gIDUwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI5Ljc4MzM0OyB9XG4gIDUwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cbiAgMTAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsge1xuICAwJSxcbiAgNjguMiUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOyB9XG4gIDY4LjIlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMCwgMSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yOS43ODMzNDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1jaGVja21hcmsge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1jaGVja21hcmsge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNCwgMCwgMCwgMSk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsge1xuICBmcm9tIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFyayB7XG4gIGZyb20ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE0LCAwLCAwLCAxKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsge1xuICAwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMzIuOCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4ubWRjLWNoZWNrYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCAxOHB4O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgcGFkZGluZzogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC41NCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYm9yZGVyLWNvbG9yOiAjNDE1RTdFO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLTAge1xuICAwJSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuNTQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIDUwJSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDE1RTdFO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtZmFkZS1vdXQtYmFja2dyb3VuZC0wIHtcbiAgMCUsXG4gIDgwJSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDE1RTdFO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9XG4gIDEwMCUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjU0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsIC5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBhbmltYXRpb24tbmFtZTogbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC0wOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsIC5tZGMtY2hlY2tib3gtLWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBhbmltYXRpb24tbmFtZTogbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtMDsgfVxuXG4ubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICBjb2xvcjogI2Y4ZjlmYTsgfVxuXG4ubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICBib3JkZXItY29sb3I6ICNmOGY5ZmE7IH1cblxuLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQxNUU3RTsgfVxuICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4yNik7IH1cblxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjI2KTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICAgIG1hcmdpbjogMCAxcHg7IH0gfVxuXG4ubWRjLWNoZWNrYm94LS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMTFweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMXB4O1xuICBib3R0b206IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDUlO1xuICBoZWlnaHQ6IDQ1JTtcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCBib3JkZXItY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLWNoZWNrYm94W2Rpcj1cInJ0bFwiXSAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtY2hlY2tib3ggLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAxMXB4OyB9XG5cbi5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLWNoZWNrYm94LS11cGdyYWRlZCAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTtcbiAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gIHN0cm9rZS13aWR0aDogMy4xMnB4O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjkuNzgzMzQ7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI5Ljc4MzM0OyB9XG5cbi5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApIHJvdGF0ZSgwZGVnKTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSwgdHJhbnNmb3JtIDkwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7IH1cblxuLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbi5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayxcbi5tZGMtY2hlY2tib3gtLXVwZ3JhZGVkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoLFxuLm1kYy1jaGVja2JveC0tdXBncmFkZWQgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCwgLm1kYy1jaGVja2JveC0tYW5pbS11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLCAubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtdW5jaGVja2VkIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQsIC5tZGMtY2hlY2tib3gtLWFuaW0taW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTgwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLXVuY2hlY2tlZC1jaGVja2VkIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGggMTgwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrIDkwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC11bmNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLXVuY2hlY2tlZC1jaGVja21hcmstcGF0aCA5MG1zIGxpbmVhciAwcztcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ubWRjLWNoZWNrYm94LS1hbmltLWNoZWNrZWQtaW5kZXRlcm1pbmF0ZSAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrIDkwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3gtLWFuaW0tY2hlY2tlZC1pbmRldGVybWluYXRlIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIGFuaW1hdGlvbjogbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgOTBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayA1MDBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLWNoZWNrZWQgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLW1peGVkbWFyayA1MDBtcyBsaW5lYXIgMHM7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLm1kYy1jaGVja2JveC0tYW5pbS1pbmRldGVybWluYXRlLXVuY2hlY2tlZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsgMzAwbXMgbGluZWFyIDBzO1xuICB0cmFuc2l0aW9uOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgsXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxuXG4ubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCB0cmFuc2Zvcm0gOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpmb2N1cyB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMi43NSwgMi43NSk7XG4gIG9wYWNpdHk6IDAuMTI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSA4MG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogaW5oZXJpdDsgfVxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCB0cmFuc2Zvcm0gMTgwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA5MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpLCB0cmFuc2Zvcm0gOTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuXG4ubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCAubWRjLWNoZWNrYm94X19taXhlZG1hcmsge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1jaGVja2JveCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZGMtY2hlY2tib3g6OmJlZm9yZSwgLm1kYy1jaGVja2JveDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtY2hlY2tib3g6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWNoZWNrYm94Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNoZWNrYm94OjpiZWZvcmUsIC5tZGMtY2hlY2tib3g6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE1RTdFOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1jaGVja2JveDo6YmVmb3JlLCAubWRjLWNoZWNrYm94OjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH0gfVxuICAubWRjLWNoZWNrYm94OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1jaGVja2JveDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLWNoZWNrYm94Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1jaGVja2JveDo6YmVmb3JlLCAubWRjLWNoZWNrYm94OjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtY2hlY2tib3gubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1jaGVja2JveC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG5cbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgY29udGVudDogbm9uZTsgfVxuXG4ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjU0KTsgfVxuXG4ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC41NCk7IH1cbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpob3ZlciB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC42Mik7IH1cbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZzpmb2N1cyB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC44Nyk7IH1cblxuLm1kYy1jaGlwX19pY29uLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nOm5vdCgubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuKSB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4ubWRjLWNoaXBfX2ljb24ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi5tZGMtY2hpcF9faWNvbi0tdHJhaWxpbmcge1xuICBtYXJnaW46IDAgLTRweCAwIDRweDsgfVxuXG4ubWRjLWNoaXAge1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2VkY2U2O1xuICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjg3KTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NmVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDdweCAxMnB4O1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1jaGlwOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjg3KTsgfVxuICAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLFxuICAubWRjLWNoaXAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nOm5vdCgubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuKSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC00cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmssIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmtbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gICAgLm1kYy1jaGlwIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbiksXG4gICAgLm1kYy1jaGlwIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbilbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IC00cHg7IH1cbiAgLm1kYy1jaGlwOmhvdmVyIHtcbiAgICBjb2xvcjogIzM0M2E0MDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMzQzYTQwKTsgfVxuXG4ubWRjLWNoaXAtLWV4aXQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHBhZGRpbmcgMTAwbXMgbGluZWFyLCBtYXJnaW4gMTAwbXMgbGluZWFyO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZGMtY2hpcF9fdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kYy1jaGlwX19pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdXRsaW5lOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgaGVpZ2h0OiAyMHB4OyB9XG5cbi5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAxNTBtcyA1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7XG4gIHN0cm9rZS13aWR0aDogMnB4O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjkuNzgzMzQ7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI5Ljc4MzM0OyB9XG5cbi5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkIHtcbiAgY29sb3I6ICMyMTIxMjE7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfVxuICAubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgIGNvbG9yOiByZ2JhKDMzLCAzMywgMzMsIDAuNTQpOyB9XG4gIC5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkOmhvdmVyIHtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2U6ICMyMTIxMjE7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgc3Ryb2tlOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC0tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNmMmZkO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zdXJmYWNlLCAjZTNmMmZkKTsgfVxuXG4ubWRjLWNoaXBfX2NoZWNrbWFyay1zdmcge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmstc3ZnIHtcbiAgd2lkdGg6IDIwcHg7IH1cblxuLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNzVtcyBsaW5lYXI7XG4gIHRyYW5zaXRpb24tZGVsYXk6IC01MG1zO1xuICBvcGFjaXR5OiAxOyB9XG4gIC5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcgKyAubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIGxpbmVhcjtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA4MG1zO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgICAubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nICsgLm1kYy1jaGlwX19jaGVja21hcmsgLm1kYy1jaGlwX19jaGVja21hcmstc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDBtczsgfVxuXG4ubWRjLWNoaXAtc2V0LS1maWx0ZXIgLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICBvcGFjaXR5OiAwOyB9XG4gIC5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICB3aWR0aDogMDtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWZpbHRlciAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmctaGlkZGVuLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgd2lkdGg6IDA7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLm1kYy1jaGlwLXNldC0tZmlsdGVyIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcgKyAubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gICAgd2lkdGg6IDIwcHg7IH1cblxuLm1kYy1jaGlwIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLm1kYy1jaGlwOjpiZWZvcmUsIC5tZGMtY2hpcDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtY2hpcDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtY2hpcC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1jaGlwLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWNoaXA6OmJlZm9yZSwgLm1kYy1jaGlwOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWNoaXA6OmJlZm9yZSwgLm1kYy1jaGlwOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjg3KTsgfVxuICAubWRjLWNoaXA6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLWNoaXA6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoaXA6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtY2hpcDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWNoaXAubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTsgfVxuICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfSB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjEyOyB9XG5cbi5tZGMtY2hpcC1zZXQtLWNob2ljZSAubWRjLWNoaXAubWRjLWNoaXAtLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLWNoaXAtc2V0LS1jaG9pY2UgLm1kYy1jaGlwLm1kYy1jaGlwLS1zZWxlY3RlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI7IH1cblxuLm1kYy1jaGlwLXNldC0tY2hvaWNlIC5tZGMtY2hpcC5tZGMtY2hpcC0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI7IH1cblxuQGtleWZyYW1lcyBtZGMtY2hpcC1lbnRyeSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICBvcGFjaXR5OiAuNDsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLm1kYy1jaGlwLXNldCB7XG4gIHBhZGRpbmc6IDRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZGMtY2hpcC1zZXQgLm1kYy1jaGlwIHtcbiAgICBtYXJnaW46IDRweDsgfVxuXG4ubWRjLWNoaXAtc2V0LS1pbnB1dCAubWRjLWNoaXAge1xuICBhbmltYXRpb246IG1kYy1jaGlwLWVudHJ5IDEwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtZGlhbG9nLFxuLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5tZGMtZGlhbG9nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogNzsgfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjJmZDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNlM2YyZmQpOyB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zY3JpbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjMyKTsgfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fdGl0bGUge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19jb250ZW50IHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjYpOyB9XG4gIC5tZGMtZGlhbG9nLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX3RpdGxlLFxuICAubWRjLWRpYWxvZy5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19hY3Rpb25zIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4xMik7IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIG1pbi13aWR0aDogMjgwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU5MnB4KSB7XG4gICAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNTkycHgpIHtcbiAgICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgICBtYXgtd2lkdGg6IDU2MHB4OyB9IH1cbiAgLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTsgfVxuICAubWRjLWRpYWxvZyAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG5cbi5tZGMtZGlhbG9nX19zY3JpbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC0xOyB9XG5cbi5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLm1kYy1kaWFsb2dbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nX19zdXJmYWNlLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRjLWRpYWxvZ19fdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDI0cHggOXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgLm1kYy1kaWFsb2dfX3RpdGxlOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuICAubWRjLWRpYWxvZ1tkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2dfX3RpdGxlLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7IH1cblxuLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBmbGV4LWdyb3c6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMjBweCAyNHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG4gIC5tZGMtZGlhbG9nX19jb250ZW50ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5tZGMtZGlhbG9nX19jb250ZW50ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLm1kYy1kaWFsb2dfX3RpdGxlICsgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4ubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7IH1cblxuLm1kYy1kaWFsb2dfX2NvbnRlbnQgLm1kYy1saXN0OmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nOiA2cHggMCAwOyB9XG5cbi5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19jb250ZW50IC5tZGMtbGlzdDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWRpYWxvZ19fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNTJweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAubWRjLWRpYWxvZy0tc3RhY2tlZCAubWRjLWRpYWxvZ19fYWN0aW9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLm1kYy1kaWFsb2dfX2J1dHRvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWRpYWxvZ19fYnV0dG9uLCAubWRjLWRpYWxvZ19fYnV0dG9uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuICAubWRjLWRpYWxvZ19fYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2dfX2J1dHRvbjpmaXJzdC1jaGlsZCwgLm1kYy1kaWFsb2dfX2J1dHRvbjpmaXJzdC1jaGlsZFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLm1kYy1kaWFsb2dbZGlyPVwicnRsXCJdIC5tZGMtZGlhbG9nX19idXR0b24sXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kaWFsb2cgLm1kYy1kaWFsb2dfX2J1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWRjLWRpYWxvZy0tc3RhY2tlZCAubWRjLWRpYWxvZ19fYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4OyB9XG5cbi5tZGMtZGlhbG9nLS1vcGVuLFxuLm1kYy1kaWFsb2ctLW9wZW5pbmcsXG4ubWRjLWRpYWxvZy0tY2xvc2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLm1kYy1kaWFsb2ctLW9wZW5pbmcgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cblxuLm1kYy1kaWFsb2ctLW9wZW5pbmcgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNzVtcyBsaW5lYXIsIHRyYW5zZm9ybSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy1kaWFsb2ctLWNsb3NpbmcgLm1kYy1kaWFsb2dfX3NjcmltLFxuLm1kYy1kaWFsb2ctLWNsb3NpbmcgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNzVtcyBsaW5lYXI7IH1cblxuLm1kYy1kaWFsb2ctLWNsb3NpbmcgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cblxuLm1kYy1kaWFsb2ctLW9wZW4gLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWRpYWxvZy0tb3BlbiAubWRjLWRpYWxvZ19fY29udGFpbmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWRpYWxvZy1zY3JvbGwtbG9jayB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm1kYy1kcmF3ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlM2YyZmQ7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbiAgei1pbmRleDogNjtcbiAgd2lkdGg6IDI1NnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAvKiBAbm9mbGlwICovXG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1kcmF3ZXJfX3RpdGxlIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjg3KTsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC42KTsgfVxuICAubWRjLWRyYXdlciAubWRjLWRyYXdlcl9fc3VidGl0bGUge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuNik7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuNik7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0ge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQge1xuICAgIGNvbG9yOiByZ2JhKDMzLCAzMywgMzMsIDAuODcpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXIsIC5tZGMtZHJhd2VyW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLm1kYy1kcmF3ZXIgLm1kYy1saXN0LWl0ZW0ge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuICAubWRjLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAyNTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWRyYXdlci5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCwgLm1kYy1kcmF3ZXIubWRjLWRyYXdlci0tb3Blbjpub3QoLm1kYy1kcmF3ZXItLWNsb3NpbmcpICsgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnRbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyNTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLCAubWRjLWRyYXdlcltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMDcxNGVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICBoZWlnaHQ6IGNhbGMoNDhweCAtIDIgKiA0cHgpO1xuICAgIG1hcmdpbjogOHB4IDhweDtcbiAgICBwYWRkaW5nOiAwIDhweDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbTpudGgtY2hpbGQoMSkge1xuICAgIG1hcmdpbi10b3A6IDJweDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbTpudGgtbGFzdC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7IH1cbiAgICAubWRjLWRyYXdlciAubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlcjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1kaXZpZGVyIHtcbiAgICBtYXJnaW46IDNweCAwIDRweCAwOyB9XG4gIC5tZGMtZHJhd2VyIC5tZGMtbGlzdC1pdGVtX190ZXh0LFxuICAubWRjLWRyYXdlciAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1kcmF3ZXItLWFuaW1hdGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXItLWFuaW1hdGUsIC5tZGMtZHJhd2VyLS1hbmltYXRlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG5cbi5tZGMtZHJhd2VyLS1vcGVuaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtczsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLS1vcGVuaW5nLCAubWRjLWRyYXdlci0tb3BlbmluZ1tkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4ubWRjLWRyYXdlci0tY2xvc2luZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1kcmF3ZXItLWNsb3NpbmcsIC5tZGMtZHJhd2VyLS1jbG9zaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG5cbi5tZGMtZHJhd2VyX19oZWFkZXIge1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNjRweDtcbiAgcGFkZGluZzogMCAxNnB4IDRweDsgfVxuXG4ubWRjLWRyYXdlcl9fdGl0bGUge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDsgfVxuICAubWRjLWRyYXdlcl9fdGl0bGU6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIC5tZGMtZHJhd2VyX190aXRsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTIwcHg7IH1cblxuLm1kYy1kcmF3ZXJfX3N1YnRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NmVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZGMtZHJhd2VyX19zdWJ0aXRsZTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cblxuLm1kYy1kcmF3ZXJfX2NvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4ubWRjLWRyYXdlci0tZGlzbWlzc2libGUge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZSwgLm1kYy1kcmF3ZXItLWRpc21pc3NpYmxlW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5tZGMtZHJhd2VyLS1kaXNtaXNzaWJsZS5tZGMtZHJhd2VyLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLWFwcC1jb250ZW50LCAubWRjLWRyYXdlci1hcHAtY29udGVudFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tZGMtZHJhd2VyLS1tb2RhbCB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDsgfVxuICAubWRjLWRyYXdlci0tbW9kYWwgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjMyKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZHJhd2VyLS1tb2RhbCwgLm1kYy1kcmF3ZXItLW1vZGFsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5tZGMtZHJhd2VyLS1tb2RhbC5tZGMtZHJhd2VyLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5tZGMtZHJhd2VyLXNjcmltIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB6LWluZGV4OiA1OyB9XG4gIC5tZGMtZHJhd2VyLS1vcGVuICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGMtZHJhd2VyLS1hbmltYXRlICsgLm1kYy1kcmF3ZXItc2NyaW0ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm1kYy1kcmF3ZXItLW9wZW5pbmcgKyAubWRjLWRyYXdlci1zY3JpbSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWRjLWRyYXdlci0tY2xvc2luZyArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyMDBtcztcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejEge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXozIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejYge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXo3IHtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxMCB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxMiB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxMyB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxNSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxNiB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejE4IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoxOSB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoyMSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi0tejIyIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGMtZWxldmF0aW9uLS16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1lbGV2YXRpb24tLXoyNCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB3aWxsLWNoYW5nZTogYm94LXNoYWRvdzsgfVxuXG4ubWRjLWZhYiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDE1bXMgbGluZWFyIDMwbXMsIHRyYW5zZm9ybSAyNzBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7XG4gIGNvbG9yOiAjZjhmOWZhO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc2Vjb25kYXJ5LCAjZjhmOWZhKTsgfVxuICAubWRjLWZhYjpub3QoLm1kYy1mYWItLWV4dGVuZGVkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gIC5tZGMtZmFiOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDsgfVxuICAubWRjLWZhYjpob3ZlciwgLm1kYy1mYWI6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLWZhYjphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy1mYWI6YWN0aXZlLCAubWRjLWZhYjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAubWRjLWZhYjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZGMtZmFiID4gc3ZnIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgLm1kYy1mYWIge1xuICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH0gfVxuICAubWRjLWZhYiAubWRjLWZhYl9faWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ubWRjLWZhYi0tbWluaSB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7IH1cblxuLm1kYy1mYWItLWV4dGVuZGVkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wODkyOWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0OHB4OyB9XG4gIC5tZGMtZmFiLS1leHRlbmRlZCAubWRjLWZhYl9faWNvbiB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtZmFiLS1leHRlbmRlZCAubWRjLWZhYl9faWNvbiwgLm1kYy1mYWItLWV4dGVuZGVkIC5tZGMtZmFiX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1yaWdodDogLThweDsgfVxuICAubWRjLWZhYi0tZXh0ZW5kZWQgLm1kYy1mYWJfX2xhYmVsICsgLm1kYy1mYWJfX2ljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAtOHB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLWZhYi0tZXh0ZW5kZWQgLm1kYy1mYWJfX2xhYmVsICsgLm1kYy1mYWJfX2ljb24sIC5tZGMtZmFiLS1leHRlbmRlZCAubWRjLWZhYl9fbGFiZWwgKyAubWRjLWZhYl9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cblxuLm1kYy1mYWJfX2xhYmVsIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubWRjLWZhYl9faWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxODBtcyA5MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cblxuLm1kYy1mYWIgLm1kYy1mYWJfX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLm1kYy1mYWItLWV4aXRlZCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIgMTUwbXMsIHRyYW5zZm9ybSAxODBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cbiAgLm1kYy1mYWItLWV4aXRlZCAubWRjLWZhYl9faWNvbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTM1bXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpOyB9XG5cbi5tZGMtZmFiIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLm1kYy1mYWI6OmJlZm9yZSwgLm1kYy1mYWI6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLWZhYjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1mYWIubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1mYWI6OmJlZm9yZSwgLm1kYy1mYWI6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtZmFiLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1mYWI6OmJlZm9yZSwgLm1kYy1mYWI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1mYWI6OmJlZm9yZSwgLm1kYy1mYWI6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc2Vjb25kYXJ5LCAjZjhmOWZhKTsgfSB9XG4gIC5tZGMtZmFiOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDg7IH1cbiAgLm1kYy1mYWI6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5tZGMtZmFiOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLWZhYjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICAubWRjLWZhYi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogMS4xNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBjdXJzb3I6IGF1dG87IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cblxuLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zdGFuZGFyZCAyNTBtcyAxOyB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXN0YW5kYXJkIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczLCAwLjQ5NTgyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQ0LCAwLjM4MTM1LCAwLjU1LCAwLjk1NjM1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTsgfSB9XG5cbi5tZGMtZm9ybS1maWVsZCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODZlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjg3KSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZGMtZm9ybS1maWVsZCA+IGxhYmVsIHtcbiAgICBvcmRlcjogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtZm9ybS1maWVsZCA+IGxhYmVsLCAubWRjLWZvcm0tZmllbGRbZGlyPVwicnRsXCJdID4gbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNHB4OyB9XG5cbi5tZGMtZm9ybS1maWVsZC0tYWxpZ24tZW5kID4gbGFiZWwge1xuICBvcmRlcjogLTE7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNHB4OyB9XG5cbltkaXI9XCJydGxcIl0gLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmQgPiBsYWJlbCwgLm1kYy1mb3JtLWZpZWxkLS1hbGlnbi1lbmRbZGlyPVwicnRsXCJdID4gbGFiZWwge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxuXG4ubWRjLWdyaWQtdGlsZV9fcHJpbWFyeSB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAxKTsgfVxuXG4ubWRjLWdyaWQtdGlsZSB7XG4gIG1hcmdpbjogMnB4IDA7XG4gIHBhZGRpbmc6IDAgMnB4OyB9XG5cbi5tZGMtZ3JpZC10aWxlX19zZWNvbmRhcnkge1xuICBsZWZ0OiAycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpOyB9XG5cbi5tZGMtZ3JpZC1saXN0X190aWxlcyB7XG4gIG1hcmdpbjogMnB4IGF1dG87IH1cblxuLm1kYy1ncmlkLWxpc3RfX3RpbGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWdyaWQtbGlzdC0tdGlsZS1ndXR0ZXItMSAubWRjLWdyaWQtdGlsZSB7XG4gIG1hcmdpbjogMC41cHggMDtcbiAgcGFkZGluZzogMCAwLjVweDsgfVxuXG4ubWRjLWdyaWQtbGlzdC0tdGlsZS1ndXR0ZXItMSAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgbGVmdDogMC41cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpOyB9XG5cbi5tZGMtZ3JpZC1saXN0LS10aWxlLWd1dHRlci0xIC5tZGMtZ3JpZC1saXN0X190aWxlcyB7XG4gIG1hcmdpbjogMC41cHggYXV0bzsgfVxuXG4ubWRjLWdyaWQtbGlzdC0tdGlsZS1hc3BlY3QtMTZ4OSAubWRjLWdyaWQtdGlsZV9fcHJpbWFyeSB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAxLjc3Nzc4KTsgfVxuXG4ubWRjLWdyaWQtbGlzdC0tdGlsZS1hc3BlY3QtM3gyIC5tZGMtZ3JpZC10aWxlX19wcmltYXJ5IHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvIDEuNSk7IH1cblxuLm1kYy1ncmlkLWxpc3QtLXRpbGUtYXNwZWN0LTJ4MyAubWRjLWdyaWQtdGlsZV9fcHJpbWFyeSB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAwLjY2NjY3KTsgfVxuXG4ubWRjLWdyaWQtbGlzdC0tdGlsZS1hc3BlY3QtNHgzIC5tZGMtZ3JpZC10aWxlX19wcmltYXJ5IHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvIDEuMzMzMzMpOyB9XG5cbi5tZGMtZ3JpZC1saXN0LS10aWxlLWFzcGVjdC0zeDQgLm1kYy1ncmlkLXRpbGVfX3ByaW1hcnkge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gMC43NSk7IH1cblxuLm1kYy1ncmlkLXRpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIHdpZHRoOiAyMDBweDtcbiAgd2lkdGg6IHZhcigtLW1kYy1ncmlkLWxpc3QtdGlsZS13aWR0aCwgMjAwcHgpOyB9XG5cbi5tZGMtZ3JpZC10aWxlX19wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtYmFja2dyb3VuZCwgI2ZmZik7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDsgfVxuXG4ubWRjLWdyaWQtdGlsZV9fcHJpbWFyeS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG4ubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7XG4gIGNvbG9yOiAjZjhmOWZhO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tcHJpbWFyeSwgI2Y4ZjlmYSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDE2cHg7IH1cblxuLm1kYy1ncmlkLXRpbGVfX3RpdGxlIHtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLm1kYy1ncmlkLXRpbGVfX3N1cHBvcnQtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDkzN2VtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGMtZ3JpZC10aWxlX19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gMjRweCAvIDIpO1xuICBmb250LXNpemU6IDA7IH1cblxuLm1kYy1ncmlkLWxpc3QtLXR3b2xpbmUtY2FwdGlvbiAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgaGVpZ2h0OiA2OHB4OyB9XG5cbi5tZGMtZ3JpZC1saXN0LS1oZWFkZXItY2FwdGlvbiAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgdG9wOiAwO1xuICBib3R0b206IGF1dG87IH1cblxuLm1kYy1ncmlkLWxpc3QtLXdpdGgtaWNvbi1hbGlnbi1zdGFydCAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDU2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogOHB4OyB9XG4gIC5tZGMtZ3JpZC1saXN0W2Rpcj1cInJ0bFwiXSAubWRjLWdyaWQtbGlzdC0td2l0aC1pY29uLWFsaWduLXN0YXJ0IC5tZGMtZ3JpZC10aWxlX19zZWNvbmRhcnksXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1ncmlkLWxpc3QgLm1kYy1ncmlkLWxpc3QtLXdpdGgtaWNvbi1hbGlnbi1zdGFydCAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7IH1cblxuLm1kYy1ncmlkLWxpc3QtLXdpdGgtaWNvbi1hbGlnbi1zdGFydCAubWRjLWdyaWQtdGlsZV9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDtcbiAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5tZGMtZ3JpZC1saXN0W2Rpcj1cInJ0bFwiXSAubWRjLWdyaWQtbGlzdC0td2l0aC1pY29uLWFsaWduLXN0YXJ0IC5tZGMtZ3JpZC10aWxlX19pY29uLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtZ3JpZC1saXN0IC5tZGMtZ3JpZC1saXN0LS13aXRoLWljb24tYWxpZ24tc3RhcnQgLm1kYy1ncmlkLXRpbGVfX2ljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDsgfVxuXG4ubWRjLWdyaWQtbGlzdC0td2l0aC1pY29uLWFsaWduLWVuZCAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNTZweDsgfVxuICAubWRjLWdyaWQtbGlzdFtkaXI9XCJydGxcIl0gLm1kYy1ncmlkLWxpc3QtLXdpdGgtaWNvbi1hbGlnbi1lbmQgLm1kYy1ncmlkLXRpbGVfX3NlY29uZGFyeSxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWdyaWQtbGlzdCAubWRjLWdyaWQtbGlzdC0td2l0aC1pY29uLWFsaWduLWVuZCAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA1NnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG5cbi5tZGMtZ3JpZC1saXN0LS13aXRoLWljb24tYWxpZ24tZW5kIC5tZGMtZ3JpZC10aWxlX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiBpbml0aWFsO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiAxNnB4O1xuICBmb250LXNpemU6IDI0cHg7IH1cbiAgLm1kYy1ncmlkLWxpc3RbZGlyPVwicnRsXCJdIC5tZGMtZ3JpZC1saXN0LS13aXRoLWljb24tYWxpZ24tZW5kIC5tZGMtZ3JpZC10aWxlX19pY29uLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtZ3JpZC1saXN0IC5tZGMtZ3JpZC1saXN0LS13aXRoLWljb24tYWxpZ24tZW5kIC5tZGMtZ3JpZC10aWxlX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cblxuLm1kYy1pY29uLWJ1dHRvbiB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLWljb24tYnV0dG9uIHN2ZyxcbiAgLm1kYy1pY29uLWJ1dHRvbiBpbWcge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDsgfVxuICAubWRjLWljb24tYnV0dG9uOmRpc2FibGVkIHtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMzgpKTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAubWRjLWljb24tYnV0dG9uX19pY29uLm1kYy1pY29uLWJ1dHRvbl9faWNvbi0tb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi0tb24gLm1kYy1pY29uLWJ1dHRvbl9faWNvbi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm1kYy1pY29uLWJ1dHRvbiB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZGMtaWNvbi1idXR0b246OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtaWNvbi1idXR0b246OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLWljb24tYnV0dG9uOjpiZWZvcmUsIC5tZGMtaWNvbi1idXR0b246OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1pY29uLWJ1dHRvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLWljb24tYnV0dG9uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbjo6YmVmb3JlLCAubWRjLWljb24tYnV0dG9uOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDsgfVxuICAubWRjLWljb24tYnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1pY29uLWJ1dHRvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLWljb24tYnV0dG9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtaWNvbi1idXR0b24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1pbWFnZS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2l0ZW0sXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gMSk7IH1cblxuLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1kYy1pbWFnZS1saXN0LS13aXRoLXRleHQtcHJvdGVjdGlvbiAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdF9fc3VwcG9ydGluZyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuXG4ubWRjLWltYWdlLWxpc3RfX2xhYmVsIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtaW1hZ2UtbGlzdC0td2l0aC10ZXh0LXByb3RlY3Rpb24gLm1kYy1pbWFnZS1saXN0X19zdXBwb3J0aW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4ubWRjLWltYWdlLWxpc3QtLW1hc29ucnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRjLWltYWdlLWxpc3QtLW1hc29ucnkgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjsgfVxuICAubWRjLWltYWdlLWxpc3QtLW1hc29ucnkgLm1kYy1pbWFnZS1saXN0X19pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbjpyb290IHtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLWRlc2t0b3A6IDI0cHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wOiAyNHB4O1xuICAtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtZGVza3RvcDogNzJweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXRhYmxldDogMTZweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldDogMTZweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLXRhYmxldDogNzJweDtcbiAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXBob25lOiAxNnB4O1xuICAtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmU6IDE2cHg7XG4gIC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC1waG9uZTogNzJweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4O1xuICAgIHBhZGRpbmc6IHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tZGVza3RvcCwgMjRweCk7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgcGFkZGluZzogdmFyKC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi10YWJsZXQsIDE2cHgpOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXBob25lLCAxNnB4KTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4NDBweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1hcmdpbjogLTEycHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkgLyAyICogLTEpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZ3JpZC1nYXA6IDI0cHg7XG4gICAgICAgIGdyaWQtZ2FwOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgbWlubWF4KDAsIDFmcikpOyB9IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1hcmdpbjogLThweDtcbiAgICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpIC8gMiAqIC0xKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGdyaWQtZ2FwOiAxNnB4O1xuICAgICAgICBncmlkLWdhcDogdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCBtaW5tYXgoMCwgMWZyKSk7IH0gfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIG1hcmdpbjogLThweDtcbiAgICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkgLyAyICogLTEpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZ3JpZC1nYXA6IDE2cHg7XG4gICAgICAgIGdyaWQtZ2FwOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMjRweCk7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkgLyAyKTsgfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNi1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNi1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDU4LjMzMzMzJSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTcsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOS1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDI0cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1kZXNrdG9wLCAyNHB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTksXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gOTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMjRweCk7XG4gICAgICB3aWR0aDogY2FsYyg4My4zMzMzMyUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAtZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEwOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEtZGVza3RvcCB7XG4gICAgICB3aWR0aDogY2FsYyg5MS42NjY2NyUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDkxLjY2NjY3JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMS1kZXNrdG9wIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTE7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMi1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLWRlc2t0b3AsIDI0cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTItZGVza3RvcCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEyOyB9IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSAvIDIpOyB9XG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEtdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMi41JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygzNy41JSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMzcuNSUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTMtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS10YWJsZXQge1xuICAgICAgd2lkdGg6IGNhbGMoNjIuNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDYyLjUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDU7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYtdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDY7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNyxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDg3LjUlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYyg4Ny41JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItdGFibGV0LCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTcsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy10YWJsZXQge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA3OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOCxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LXRhYmxldCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDg7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktdGFibGV0IHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXRhYmxldCwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTAtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTEtdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXRhYmxldCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTIsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMTItdGFibGV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gODsgfSB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpIC8gMik7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbCB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMS1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygyNSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMi1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0yLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMy1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDc1JSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tMyxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0zLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMzsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNC1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi00LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTQtcGhvbmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi01LXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTUsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNS1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTYtcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNixcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi02LXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tNy1waG9uZSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci1waG9uZSwgMTZweCkpOyB9XG4gICAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi03LFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTctcGhvbmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiA0OyB9IH1cbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi04LXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTgsXG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOC1waG9uZSB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7IH0gfVxuICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTktcGhvbmUge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItcGhvbmUsIDE2cHgpKTsgfVxuICAgICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICAgIC5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLXNwYW4tOSxcbiAgICAgICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi05LXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMCxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEwLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMSxcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTExLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0xMixcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXBob25lIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSk7IH1cbiAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLFxuICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLTEyLXBob25lIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNDsgfSB9IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTIge1xuICBvcmRlcjogMjsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTUge1xuICBvcmRlcjogNTsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItNyB7XG4gIG9yZGVyOiA3OyB9XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwtLW9yZGVyLTgge1xuICBvcmRlcjogODsgfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1vcmRlci05IHtcbiAgb3JkZXI6IDk7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMTAge1xuICBvcmRlcjogMTA7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMTEge1xuICBvcmRlcjogMTE7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tb3JkZXItMTIge1xuICBvcmRlcjogMTI7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1hbGlnbi10b3Age1xuICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7IH0gfVxuXG4ubWRjLWxheW91dC1ncmlkX19jZWxsLS1hbGlnbi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tYm90dG9tIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tYWxpZ24tYm90dG9tIHtcbiAgICAgIGFsaWduLXNlbGY6IGVuZDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4NDBweCkge1xuICAubWRjLWxheW91dC1ncmlkLS1maXhlZC1jb2x1bW4td2lkdGgge1xuICAgIHdpZHRoOiAxMTc2cHg7XG4gICAgd2lkdGg6IGNhbGMoIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtZGVza3RvcCwgNzJweCkgKiAxMiArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItZGVza3RvcCwgMjRweCkgKiAxMSArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tZGVza3RvcCwgMjRweCkgKiAyKTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDgzOXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQtLWZpeGVkLWNvbHVtbi13aWR0aCB7XG4gICAgd2lkdGg6IDcyMHB4O1xuICAgIHdpZHRoOiBjYWxjKCB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLXRhYmxldCwgNzJweCkgKiA4ICsgdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci10YWJsZXQsIDE2cHgpICogNyArIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1tYXJnaW4tdGFibGV0LCAxNnB4KSAqIDIpOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3OXB4KSB7XG4gIC5tZGMtbGF5b3V0LWdyaWQtLWZpeGVkLWNvbHVtbi13aWR0aCB7XG4gICAgd2lkdGg6IDM2OHB4O1xuICAgIHdpZHRoOiBjYWxjKCB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLXBob25lLCA3MnB4KSAqIDQgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLXBob25lLCAxNnB4KSAqIDMgKyB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLXBob25lLCAxNnB4KSAqIDIpOyB9IH1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tYWxpZ24tbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5tZGMtbGluZS1yaXBwbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMjsgfVxuXG4ubWRjLWxpbmUtcmlwcGxlLS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLWxpbmUtcmlwcGxlLS1kZWFjdGl2YXRpbmcge1xuICBvcGFjaXR5OiAwOyB9XG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczLCAwLjQ5NTgyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0NCwgMC4zODEzNSwgMC41NSwgMC45NTYzNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDgzLjY3MTQyJSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMC42MTEwNiUpOyB9IH1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH1cbiAgMzYuNjUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMzQ3MywgMC4xMjQ4MiwgMC43ODU4NCwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH1cbiAgNjkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wNiwgMC4xMSwgMC42LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjY2MTQ4KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjA4KTsgfSB9XG5cbkBrZXlmcmFtZXMgc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE1LCAwLCAwLjUxNTA2LCAwLjQwOTY5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMjUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMTAzMywgMC4yODQwNiwgMC44LCAwLjczMzcxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzcuNjUxOTElKTsgfVxuICA0OC4zNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAuNjI3MDQsIDAuNiwgMC45MDIwMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDg0LjM4NjE3JSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2MC4yNzc3OCUpOyB9IH1cblxuQGtleWZyYW1lcyBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMDUwMywgMC4wNTcwNSwgMC41NzY2MSwgMC40NTM5Nyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH1cbiAgMTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNTIzMSwgMC4xOTY0MywgMC42NDgzNywgMS4wMDQzMik7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40NTcxKTsgfVxuICA0NC4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1Nzc2LCAtMC4wMDMxNiwgMC4yMTE3NiwgMS4zODE3OSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC43Mjc5Nik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMC4wOCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJ1ZmZlcmluZyB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpOyB9IH1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MywgMC40OTU4Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDU5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDQsIDAuMzgxMzUsIDAuNTUsIDAuOTU2MzUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODMuNjcxNDIlKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMC42MTEwNiUpOyB9IH1cblxuQGtleWZyYW1lcyBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNSwgMCwgMC41MTUwNiwgMC40MDk2OSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDI1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzEwMzMsIDAuMjg0MDYsIDAuOCwgMC43MzM3MSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNy42NTE5MSUpOyB9XG4gIDQ4LjM1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMC42MjcwNCwgMC42LCAwLjkwMjAzKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTg0LjM4NjE3JSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNjAuMjc3NzglKTsgfSB9XG5cbkBrZXlmcmFtZXMgYnVmZmVyaW5nLXJldmVyc2Uge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI1MG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBhbmltYXRpb246IG5vbmU7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlcmluZy1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogYnVmZmVyaW5nIDI1MG1zIGluZmluaXRlIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDRweDsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAubWRjLWxpbmVhci1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIGxlZnQ6IC0xNDUuMTY2NjExJTtcbiAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUgMnMgaW5maW5pdGUgbGluZWFyOyB9XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyID4gLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2Jhci1pbm5lciB7XG4gICAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSAycyBpbmZpbml0ZSBsaW5lYXI7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICAgIGxlZnQ6IC01NC44ODg4OTElO1xuICAgIGFuaW1hdGlvbjogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIgPiAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgICAgIGFuaW1hdGlvbjogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUgMnMgaW5maW5pdGUgbGluZWFyOyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLFxuICAubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHJpZ2h0OyB9XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzLS1yZXZlcnNlZCAubWRjLWxpbmVhci1wcm9ncmVzc19fcHJpbWFyeS1iYXIge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2U7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICBhbmltYXRpb24tbmFtZTogc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlLXJldmVyc2U7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXJpbmctZG90cyB7XG4gICAgYW5pbWF0aW9uOiBidWZmZXJpbmctcmV2ZXJzZSAyNTBtcyBpbmZpbml0ZSBsaW5lYXI7IH1cbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWNsb3NlZCB7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLWxpbmVhci1wcm9ncmVzc19fYmFyLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2J1ZmZlcmluZy1kb3RzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA1IDInIHhtbDpzcGFjZT0ncHJlc2VydmUnIHZpZXdCb3g9JzAgMCA1IDInIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUgc2xpY2UnJTNFJTNDY2lyY2xlIGN4PScxJyBjeT0nMScgcj0nMScgZmlsbD0nJTIzZTZlNmU2Jy8lM0UlM0Mvc3ZnJTNFXCIpOyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciB7XG4gIHJpZ2h0OiAtMTQ1LjE2NjYxMSU7XG4gIGxlZnQ6IGF1dG87IH1cblxuLm1kYy1saW5lYXItcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUubWRjLWxpbmVhci1wcm9ncmVzcy0tcmV2ZXJzZWQgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICByaWdodDogLTU0Ljg4ODg5MSU7XG4gIGxlZnQ6IGF1dG87IH1cblxuLm1kYy1saXN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHggMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKTsgfVxuICAubWRjLWxpc3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWljb24tb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7IH1cblxuLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKTsgfVxuXG4ubWRjLWxpc3QtZ3JvdXBfX3N1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC44NykpOyB9XG5cbi5tZGMtbGlzdC0tZGVuc2Uge1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IC44MTJyZW07IH1cblxuLm1kYy1saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kYy1saXN0LWl0ZW06Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkLFxuLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cbiAgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICAubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfVxuXG4ubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7IH1cblxuLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMzJweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fbWV0YSB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5tZGMtbGlzdC1pdGVtX19tZXRhOm5vdCgubWF0ZXJpYWwtaWNvbnMpIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDMzMzNlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cbiAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtX19tZXRhLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5tZGMtbGlzdC1pdGVtX190ZXh0W2Zvcl0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0IHtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IC0yMHB4O1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuICAubWRjLWxpc3QtaXRlbV9fcHJpbWFyeS10ZXh0OjphZnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMjBweDsgfVxuICAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7IH1cbiAgICAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuICAgIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdmVydGljYWwtYWxpZ246IC0yMHB4OyB9XG5cbi5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODZlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGMtbGlzdC1pdGVtX19zZWNvbmRhcnktdGV4dDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cbiAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiBpbmhlcml0OyB9XG4gICAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDsgfVxuXG4ubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA0MHB4OyB9XG5cbi5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMzZweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDsgfVxuICAubWRjLWxpc3QtaXRlbVtkaXI9XCJydGxcIl0gLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDM2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiA1NnB4OyB9XG5cbi5tZGMtbGlzdC0tYXZhdGFyLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gIC5tZGMtbGlzdC1pdGVtW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljLFxuICBbZGlyPVwicnRsXCJdIC5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW1fX3RleHQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG5cbi5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW0ge1xuICBoZWlnaHQ6IDcycHg7IH1cblxuLm1kYy1saXN0LS10d28tbGluZS5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0sXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbSB7XG4gIGhlaWdodDogNjBweDsgfVxuXG4ubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4OyB9XG4gIC5tZGMtbGlzdC1pdGVtW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyxcbiAgW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtaXRlbSAubWRjLWxpc3QtLWF2YXRhci1saXN0Lm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5hLm1kYy1saXN0LWl0ZW0ge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5tZGMtbGlzdC1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgfVxuXG4ubWRjLWxpc3QtZGl2aWRlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kYy1saXN0LWRpdmlkZXItLXBhZGRlZCB7XG4gIG1hcmdpbjogMCAxNnB4OyB9XG5cbi5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDcycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNzJweCk7IH1cbiAgLm1kYy1saXN0LWdyb3VwW2Rpcj1cInJ0bFwiXSAubWRjLWxpc3QtZGl2aWRlci0taW5zZXQsXG4gIFtkaXI9XCJydGxcIl0gLm1kYy1saXN0LWdyb3VwIC5tZGMtbGlzdC1kaXZpZGVyLS1pbnNldCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDcycHg7IH1cblxuLm1kYy1saXN0LWRpdmlkZXItLWluc2V0Lm1kYy1saXN0LWRpdmlkZXItLXBhZGRlZCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA3MnB4IC0gMTZweCk7IH1cblxuLm1kYy1saXN0LWdyb3VwIC5tZGMtbGlzdCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1kYy1saXN0LWdyb3VwX19zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5MzdlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgbWFyZ2luOiAwLjc1cmVtIDE2cHg7IH1cblxuOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmJlZm9yZSwgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tYWN0aXZhdGVkOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH0gfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4xNjsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4yNDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1hY3RpdmF0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wODsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfSB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IDpub3QoLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkKS5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjsgfVxuXG46bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiAubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDsgfVxuICA6bm90KC5tZGMtbGlzdC0tbm9uLWludGVyYWN0aXZlKSA+IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cblxuLm1kYy1tZW51IHtcbiAgbWluLXdpZHRoOiAxMTJweDsgfVxuICAubWRjLW1lbnUgLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtbWVudSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC44Nyk7IH1cbiAgLm1kYy1tZW51IC5tZGMtbGlzdCB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC44Nyk7IH1cbiAgLm1kYy1tZW51IC5tZGMtbGlzdC1kaXZpZGVyIHtcbiAgICBtYXJnaW46IDhweCAwOyB9XG4gIC5tZGMtbWVudSAubWRjLWxpc3QtaXRlbSB7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm1kYy1tZW51IC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5tZGMtbWVudSBhLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX3RleHQsXG4gIC5tZGMtbWVudSBhLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIHtcbiAgcGFkZGluZzogMDtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwIC5tZGMtbGlzdC1pdGVtIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA1NnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCAubWRjLWxpc3QtaXRlbSwgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAgLm1kYy1saXN0LWl0ZW1bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7IH1cbiAgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAgLm1kYy1tZW51X19zZWxlY3Rpb24tZ3JvdXAtaWNvbiB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cC1pY29uLCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cC1pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy1tZW51LWl0ZW0tLXNlbGVjdGVkIC5tZGMtbWVudV9fc2VsZWN0aW9uLWdyb3VwLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuLm1kYy1tZW51LXN1cmZhY2Uge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gIG9wYWNpdHk6IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB6LWluZGV4OiA4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDNzIGxpbmVhciwgdHJhbnNmb3JtIDAuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlM2YyZmQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXN1cmZhY2UsICNlM2YyZmQpO1xuICBjb2xvcjogIzM0M2E0MDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMzNDNhNDApO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgdHJhbnNmb3JtLW9yaWdpbi1sZWZ0OiB0b3AgbGVmdDtcbiAgLyogQG5vZmxpcCAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luLXJpZ2h0OiB0b3AgcmlnaHQ7IH1cbiAgLm1kYy1tZW51LXN1cmZhY2U6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLm1kYy1tZW51LXN1cmZhY2UtLW9wZW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1kYy1tZW51LXN1cmZhY2UtLWFuaW1hdGluZy1vcGVuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm1kYy1tZW51LXN1cmZhY2UtLWFuaW1hdGluZy1jbG9zZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4wNzVzIGxpbmVhcjsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtbWVudS1zdXJmYWNlLCAubWRjLW1lbnUtc3VyZmFjZVtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICB0cmFuc2Zvcm0tb3JpZ2luLWxlZnQ6IHRvcCByaWdodDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdHJhbnNmb3JtLW9yaWdpbi1yaWdodDogdG9wIGxlZnQ7IH1cblxuLm1kYy1tZW51LXN1cmZhY2UtLWFuY2hvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLm1kYy1tZW51LXN1cmZhY2UtLWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBAbm9mbGlwICovXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1ub3RjaGVkLW91dGxpbmUsIC5tZGMtbm90Y2hlZC1vdXRsaW5lW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB3aWR0aDogMTJweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkOyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDtcbiAgICBmbGV4LWdyb3c6IDE7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZywgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxMnB4ICogMik7IH1cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDE3cHg7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdGV4dC1vdmVyZmxvdzogY2xpcDsgfVxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC8gLjc1KTsgfVxuXG4ubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gIGJvcmRlci10b3A6IG5vbmU7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS1ub3RjaGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4ubWRjLW5vdGNoZWQtb3V0bGluZS0tbm8tbGFiZWwgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRjLXJhZGlvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgYm9yZGVyLWNvbG9yLCBjb2xvcjsgfVxuICAubWRjLXJhZGlvIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKSArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC41NCk7IH1cbiAgLm1kYy1yYWRpbyAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDE1RTdFO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9XG4gIC5tZGMtcmFkaW8gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH1cbiAgLm1kYy1yYWRpbyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXJhZGlvIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH0gfVxuICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogNTAlOyB9XG4gICAgLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSwgdHJhbnNmb3JtIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpOyB9XG4gIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgIGJvcmRlci13aWR0aDogMTBweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSksIGJvcmRlci1jb2xvciAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTsgfVxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgICB6LWluZGV4OiAxOyB9XG5cbi5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kLFxuLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlLFxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSxcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgYm9yZGVyLWNvbG9yIDEyMG1zIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXJhZGlvLS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBib3JkZXItY29sb3IgMTIwbXMgMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmRpc2FibGVkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCxcblthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX291dGVyLWNpcmNsZSxcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjI2KTsgfVxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlLFxuICBbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0gLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2wgKyAubWRjLXJhZGlvX19iYWNrZ3JvdW5kIC5tZGMtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMjYpOyB9XG5cbi5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmZvY3VzICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgb3BhY2l0eTogMC4xMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAxMjBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy1yYWRpbyB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZGMtcmFkaW86OmJlZm9yZSwgLm1kYy1yYWRpbzo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtcmFkaW86OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXJhZGlvOjpiZWZvcmUsIC5tZGMtcmFkaW86OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1yYWRpby5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgY2FsYyg1MCUgLSA1MCUpKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1yYWRpbzo6YmVmb3JlLCAubWRjLXJhZGlvOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQxNUU3RTsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtcmFkaW86OmJlZm9yZSwgLm1kYy1yYWRpbzo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9IH1cbiAgLm1kYy1yYWRpbzpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtcmFkaW86bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yYWRpbzpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy1yYWRpbzpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJhZGlvLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmFkaW8ubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG4ubWRjLXJpcHBsZS1zdXJmYWNlIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2U6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZTo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlOjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwMCUpO1xuICAgIHdpZHRoOiAyMDAlO1xuICAgIGhlaWdodDogMjAwJTsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZVtkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXSB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgICAubWRjLXJpcHBsZS1zdXJmYWNlW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2VbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF06OmFmdGVyIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSA1MCUpO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSA1MCUpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAubWRjLXJpcHBsZS1zdXJmYWNlW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZVtkYXRhLW1kYy1yaXBwbGUtaXMtdW5ib3VuZGVkXS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgICAubWRjLXJpcHBsZS1zdXJmYWNlW2RhdGEtbWRjLXJpcHBsZS1pcy11bmJvdW5kZWRdLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5OjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnk6OmFmdGVyIHtcbiAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH0gfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tcHJpbWFyeTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnkubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1wcmltYXJ5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXByaW1hcnkubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50OjpiZWZvcmUsIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7IH1cbiAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6OmJlZm9yZSwgLm1kYy1yaXBwbGUtc3VyZmFjZS0tYWNjZW50OjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH0gfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtcmlwcGxlLXN1cmZhY2UtLWFjY2VudDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXJpcHBsZS1zdXJmYWNlLS1hY2NlbnQubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMTI7IH1cblxuQGtleWZyYW1lcyBtZGMtc2VsZWN0LWZsb2F0LW5hdGl2ZS1jb250cm9sIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb246bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX2ljb24ge1xuICBjb2xvcjogIzM0M2E0MDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXN1cmZhY2UsICMzNDNhNDApOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9faWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDE2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgb3BhY2l0eTogMC41NDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5tZGMtc2VsZWN0X19pY29uOm5vdChbdGFiaW5kZXhdKSxcbi5tZGMtc2VsZWN0X19pY29uW3RhYmluZGV4PVwiLTFcIl0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5tZGMtc2VsZWN0LWhlbHBlci10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxuICAubWRjLXNlbGVjdC1oZWxwZXItdGV4dDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdmVydGljYWwtYWxpZ246IDA7IH1cblxuLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXBlcnNpc3RlbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBvcGFjaXR5OiAxO1xuICB3aWxsLWNoYW5nZTogaW5pdGlhbDsgfVxuXG4ubWRjLXNlbGVjdCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1zaXplOiAwO1xuICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXNjYWxlOiAxO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDU2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgY29sb3I7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2ViZjU7IH1cbiAgLm1kYy1zZWxlY3Q6OmJlZm9yZSwgLm1kYy1zZWxlY3Q6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLXNlbGVjdDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1zZWxlY3Q6OmJlZm9yZSwgLm1kYy1zZWxlY3Q6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgLm1kYy1zZWxlY3Q6OmJlZm9yZSwgLm1kYy1zZWxlY3Q6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtc2VsZWN0OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXNlbGVjdC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuNik7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjQyKTsgfVxuICAubWRjLXNlbGVjdDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0IHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjYpOyB9XG4gIC5tZGMtc2VsZWN0LCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICMyMTIxMjEpOyB9XG4gIC5tZGMtc2VsZWN0Om5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMzMsIDMzLCAzMywgMC44Nyk7IH1cbiAgLm1kYy1zZWxlY3Q6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtc2VsZWN0IC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC43NSk7IH1cbiAgLm1kYy1zZWxlY3QgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsO1xuICAgIHRvcDogMjFweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QgLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy1zZWxlY3QgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiAxNnB4OyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiA0OHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiA0OHB4OyB9XG4gIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiA0cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsO1xuICAgIHRvcDogMTdweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCwgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiA0cHg7IH1cbiAgLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDM2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDM2cHg7IH1cbiAgICAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAzNnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtc2VsZWN0Lm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICByaWdodDogMzZweDsgfVxuICAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTBweCUyMiUyMGhlaWdodCUzRCUyMjVweCUyMiUyMHZpZXdCb3glM0QlMjI3JTIwMTAlMjAxMCUyMDUlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwaWQlM0QlMjJTaGFwZSUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIlMjBmaWxsJTNEJTIyJTIzMzQzYTQwJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMG9wYWNpdHklM0QlMjIwLjU0JTIyJTIwcG9pbnRzJTNEJTIyNyUyMDEwJTIwMTIlMjAxNSUyMDE3JTIwMTAlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBBJTNDJTJGc3ZnJTNFXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTZweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uLCAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbltkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogOHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGF1dG87IH1cbiAgICAubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjMyMTIxMjElMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMjElMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAgIC5tZGMtc2VsZWN0LS1hY3RpdmF0ZWQgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKC01cHgpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDsgfVxuICAubWRjLXNlbGVjdC5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGU6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDIpO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1zZWxlY3QgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dCB7XG4gIG1hcmdpbi1yaWdodDogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cblxuLm1kYy1zZWxlY3QtLW91dGxpbmVkICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XG5cbi5tZGMtc2VsZWN0LS1mb2N1c2VkICsgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQ6bm90KC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZykge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZy10b3A6IDIycHg7IH1cblxuLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA1MnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA5MzdlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTZweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCwgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA1MnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDo6LW1zLWV4cGFuZCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQ6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOjotbXMtdmFsdWUsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OjotbXMtdmFsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoXCJcIikge1xuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICB0ZXh0LWluZGVudDogLTJweDsgfSB9XG5cbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjM4KTsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6ICMyMTIxMjE7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICMyMTIxMjEpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZCAyNTBtcyAxOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLCAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOjpiZWZvcmUsIC5tZGMtc2VsZWN0LS1vdXRsaW5lZDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQ0JSkgc2NhbGUoMSk7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLCAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAgIC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCxcbiAgICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHRbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogNTJweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMTRweDsgfVxuICAubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICBjb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbGluZS1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgY29sb3I6ICNiMDAwMjA7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0taW52YWxpZCArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtc2VsZWN0LS1pbnZhbGlkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2w6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKTpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCk6bm90KC5tZGMtc2VsZWN0LS1mb2N1c2VkKSAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtc2VsZWN0LS1pbnZhbGlkLm1kYy1zZWxlY3QtLW91dGxpbmVkOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItd2lkdGg6IDJweDsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy1zZWxlY3QtLWludmFsaWQubWRjLXNlbGVjdC0tb3V0bGluZWQ6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXNlbGVjdC0taW52YWxpZC5tZGMtc2VsZWN0LS1vdXRsaW5lZDpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKS5tZGMtc2VsZWN0LS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQgLm1kYy1zZWxlY3RfX2Ryb3Bkb3duLWljb24ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjNiMDAwMjAlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMjElMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlcjsgfVxuXG4ubWRjLXNlbGVjdC0taW52YWxpZCArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy1zZWxlY3QtLXJlcXVpcmVkIC5tZGMtZmxvYXRpbmctbGFiZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCIqXCI7IH1cblxuLm1kYy1zZWxlY3QtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZWVmOTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zNyk7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMHB4JTIyJTIwaGVpZ2h0JTNEJTIyNXB4JTIyJTIwdmlld0JveCUzRCUyMjclMjAxMCUyMDEwJTIwNSUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBpZCUzRCUyMlNoYXBlJTIyJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMGZpbGwlM0QlMjIlMjMzNDNhNDAlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMjAuMzclMjIlMjBwb2ludHMlM0QlMjI3JTIwMTAlMjAxMiUyMDE1JTIwMTclMjAxMCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEElM0MlMkZzdmclM0VcIikgbm8tcmVwZWF0IGNlbnRlcjsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRjLXNlbGVjdC0tZGlzYWJsZWQgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMzcpOyB9XG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zNyk7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkOyB9XG4gIC5tZGMtc2VsZWN0LS1kaXNhYmxlZCAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGMtc2VsZWN0LS1kaXNhYmxlZC5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gICAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH1cbiAgICAubWRjLXNlbGVjdC0tZGlzYWJsZWQubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gICAgLm1kYy1zZWxlY3QtLWRpc2FibGVkLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgICAubWRjLXNlbGVjdC0tZGlzYWJsZWQubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjE2KTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX2ljb24sIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2xbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCxcbiAgLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMzJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHRyYW5zbGF0ZVgoLTMycHgpIHNjYWxlKDEpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMSk7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHRyYW5zbGF0ZVgoLTMycHgpIHNjYWxlKDAuNzUpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdLCBbZGlyPVwicnRsXCJdXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMC43NSk7IH1cblxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uLm1kYy1zZWxlY3QtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uIDI1MG1zIDE7IH1cblxuW2Rpcj1cInJ0bFwiXSAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2UsIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0LS1vdXRsaW5lZFtkaXI9XCJydGxcIl0gLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICBhbmltYXRpb246IG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCAyNTBtcyAxOyB9XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdC1pdGVtX190ZXh0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMzJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbi5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdC1pdGVtX190ZXh0LCAubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7IH1cblxuLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCB7XG4gIGNvbG9yOiAjMzQzYTQwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtb24tc3VyZmFjZSwgIzM0M2E0MCk7IH1cbiAgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YmVmb3JlLCAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDsgfVxuICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6OmJlZm9yZSwgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZDo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMzQzYTQwKTsgfSB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wNDsgfVxuICAubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtc2VsZWN0X19tZW51IC5tZGMtbGlzdCAubWRjLWxpc3QtaXRlbS0tc2VsZWN0ZWQ6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zZWxlY3RfX21lbnUgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZC5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4xMjsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS1zZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczLCAwLjQ5NTgyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQ0LCAwLjM4MTM1LCAwLjU1LCAwLjk1NjM1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAzMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDMycHgpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXNlbGVjdC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAtMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MywgMC40OTU4Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAtMzJweCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDQsIDAuMzgxMzUsIDAuNTUsIDAuOTU2MzUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIC0zMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIC0zMnB4KSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1zbGlkZXItZW1waGFzaXplIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OyB9XG4gIDUwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NzEpOyB9IH1cblxuLm1kYy1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQxNUU3RTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RyYWNrLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2NSwgOTQsIDEyNiwgMC4yNik7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjo6YWZ0ZXIsXG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQxNUU3RTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICBmaWxsOiAjNDE1RTdFO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBmaWxsOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjNDE1RTdFKTtcbiAgICBzdHJva2U6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIHN0cm9rZTogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH1cbiAgLm1kYy1zbGlkZXI6bm90KC5tZGMtc2xpZGVyLS1kaXNhYmxlZCkgLm1kYy1zbGlkZXJfX2ZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9XG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX19waW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9XG4gIC5tZGMtc2xpZGVyOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIC5tZGMtc2xpZGVyX19waW4ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tZGFyaywgd2hpdGUpOyB9XG4gIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWE5YTlhOyB9XG4gICAgLm1kYy1zbGlkZXItLWRpc2FibGVkIC5tZGMtc2xpZGVyX190cmFjay1jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTQsIDE1NCwgMTU0LCAwLjI2KTsgfVxuICAgIC5tZGMtc2xpZGVyLS1kaXNhYmxlZCAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyOjphZnRlcixcbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YTlhOWE7IH1cbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAgIGZpbGw6ICM5YTlhOWE7XG4gICAgICBzdHJva2U6ICM5YTlhOWE7IH1cbiAgICAubWRjLXNsaWRlci0tZGlzYWJsZWQgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgIHN0cm9rZTogd2hpdGU7XG4gICAgICBzdHJva2U6IHZhcigtLW1kYy1zbGlkZXItYmctY29sb3ItYmVoaW5kLWNvbXBvbmVudCwgd2hpdGUpOyB9XG4gIC5tZGMtc2xpZGVyOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtc2xpZGVyX190cmFjay1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG4gICAgLm1kYy1zbGlkZXJbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyX190cmFjayxcbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7IH1cbiAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5tZGMtc2xpZGVyW2Rpcj1cInJ0bFwiXSAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyLWNvbnRhaW5lcixcbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtc2xpZGVyIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXI6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDJweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAubWRjLXNsaWRlcl9fdHJhY2stbWFya2VyIHtcbiAgICBmbGV4OiAxOyB9XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMnB4O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IDNweDsgfVxuICAubWRjLXNsaWRlcl9fdGh1bWItY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIxcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cbiAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjU3MSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2Utb3V0LCBmaWxsIDEwMG1zIGVhc2Utb3V0LCBzdHJva2UgMTAwbXMgZWFzZS1vdXQ7XG4gICAgc3Ryb2tlLXdpZHRoOiAzLjU7IH1cbiAgLm1kYy1zbGlkZXJfX2ZvY3VzLXJpbmcge1xuICAgIHdpZHRoOiAyMXB4O1xuICAgIGhlaWdodDogMjFweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjY2LjY3bXMgZWFzZS1vdXQsIG9wYWNpdHkgMjY2LjY3bXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMjY2LjY3bXMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDApIHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgMCU7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXNsaWRlcl9fcGluLXZhbHVlLW1hcmtlciB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTc4NmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cblxuLm1kYy1zbGlkZXItLWFjdGl2ZSAubWRjLXNsaWRlcl9fdGh1bWIge1xuICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7IH1cblxuLm1kYy1zbGlkZXItLWZvY3VzIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIGFuaW1hdGlvbjogbWRjLXNsaWRlci1lbXBoYXNpemUgMjY2LjY3bXMgbGluZWFyOyB9XG5cbi5tZGMtc2xpZGVyLS1mb2N1cyAubWRjLXNsaWRlcl9fZm9jdXMtcmluZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLjU1LCAxLjU1LCAxLjU1KTtcbiAgb3BhY2l0eTogLjI1OyB9XG5cbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0IC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDE0MG1zOyB9XG5cbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0IC5tZGMtc2xpZGVyX190aHVtYi1jb250YWluZXIsXG4ubWRjLXNsaWRlci0taW4tdHJhbnNpdCAubWRjLXNsaWRlcl9fdHJhY2ssXG4ubWRjLXNsaWRlcjpmb2N1czpub3QoLm1kYy1zbGlkZXItLWFjdGl2ZSkgLm1kYy1zbGlkZXJfX3RodW1iLWNvbnRhaW5lcixcbi5tZGMtc2xpZGVyOmZvY3VzOm5vdCgubWRjLXNsaWRlci0tYWN0aXZlKSAubWRjLXNsaWRlcl9fdHJhY2sge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODBtcyBlYXNlOyB9XG5cbi5tZGMtc2xpZGVyLS1kaXNjcmV0ZS5tZGMtc2xpZGVyLS1hY3RpdmUgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgdHJhbnNmb3JtOiBzY2FsZShjYWxjKDEyIC8gMjEpKTsgfVxuXG4ubWRjLXNsaWRlci0tZGlzY3JldGUubWRjLXNsaWRlci0tYWN0aXZlIC5tZGMtc2xpZGVyX19waW4ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpIHRyYW5zbGF0ZSgxOXB4LCAtMjBweCk7IH1cblxuLm1kYy1zbGlkZXItLWRpc2NyZXRlLm1kYy1zbGlkZXItLWZvY3VzIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gIGFuaW1hdGlvbjogbm9uZTsgfVxuXG4ubWRjLXNsaWRlci0tZGlzY3JldGUubWRjLXNsaWRlci0tZGlzcGxheS1tYXJrZXJzIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4ubWRjLXNuYWNrYmFyIHtcbiAgei1pbmRleDogODtcbiAgbWFyZ2luOiA4cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NzVmNjY7IH1cblxuLm1kYy1zbmFja2Jhcl9fbGFiZWwge1xuICBjb2xvcjogcmdiYSgyMjcsIDI0MiwgMjUzLCAwLjg3KTsgfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgbWluLXdpZHRoOiAzNDRweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpLCAobWF4LXdpZHRoOiAzNDRweCkge1xuICAgIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgICAgbWluLXdpZHRoOiAxMDAlOyB9IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIG1heC13aWR0aDogNjcycHg7IH1cblxuLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG5cbi5tZGMtc25hY2tiYXItLW9wZW5pbmcsXG4ubWRjLXNuYWNrYmFyLS1vcGVuLFxuLm1kYy1zbmFja2Jhci0tY2xvc2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLm1kYy1zbmFja2Jhci0tbGVhZGluZyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubWRjLXNuYWNrYmFyLS1zdGFja2VkIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4ubWRjLXNuYWNrYmFyLS1zdGFja2VkIC5tZGMtc25hY2tiYXJfX2FjdGlvbnMge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG5cbi5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgb3BhY2l0eTogMDsgfVxuICAubWRjLXNuYWNrYmFyLS1vcGVuIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAxNTBtcyAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAubWRjLXNuYWNrYmFyLS1jbG9zaW5nIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA3NW1zIDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuXG4ubWRjLXNuYWNrYmFyX19sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDE3ODZlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgZmxleC1ncm93OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDE0cHggMTZweDsgfVxuXG4ubWRjLXNuYWNrYmFyX19sYWJlbDo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtbWRjLXNuYWNrYmFyLWxhYmVsLXRleHQpOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbnMge1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtc25hY2tiYXJfX2FjdGlvbnMsIC5tZGMtc25hY2tiYXJfX2FjdGlvbnNbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiAjYmI4NmZjOyB9XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbjo6YmVmb3JlLCAubWRjLXNuYWNrYmFyX19hY3Rpb246OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiODZmYzsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAuMDg7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zbmFja2Jhcl9fYWN0aW9uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXNuYWNrYmFyX19hY3Rpb24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc25hY2tiYXJfX2Rpc21pc3Mge1xuICBjb2xvcjogcmdiYSgyMjcsIDI0MiwgMjUzLCAwLjg3KTsgfVxuICAubWRjLXNuYWNrYmFyX19kaXNtaXNzOjpiZWZvcmUsIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNywgMjQyLCAyNTMsIDAuODcpOyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMC4wODsgfVxuICAubWRjLXNuYWNrYmFyX19kaXNtaXNzOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjI0OyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgbGluZWFyOyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3M6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXNuYWNrYmFyX19kaXNtaXNzLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDlweDtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG4gIC5tZGMtc25hY2tiYXJfX2Rpc21pc3MubWRjLXNuYWNrYmFyX19kaXNtaXNzIHN2ZyxcbiAgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcy5tZGMtc25hY2tiYXJfX2Rpc21pc3MgaW1nIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7IH1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uICsgLm1kYy1zbmFja2Jhcl9fZGlzbWlzcyB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXNuYWNrYmFyX19hY3Rpb24gKyAubWRjLXNuYWNrYmFyX19kaXNtaXNzLCAubWRjLXNuYWNrYmFyX19hY3Rpb24gKyAubWRjLXNuYWNrYmFyX19kaXNtaXNzW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4ubWRjLXN3aXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdXRsaW5lOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRjLXN3aXRjaC5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX190cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQxNUU3RTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDE1RTdFO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9XG4gIC5tZGMtc3dpdGNoLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE1RTdFO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjNDE1RTdFKTtcbiAgICBib3JkZXItY29sb3I6ICM0MTVFN0U7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXNlY29uZGFyeSwgIzQxNUU3RSk7IH1cbiAgLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzQzYTQwOyB9XG4gIC5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTNmMmZkO1xuICAgIGJvcmRlci1jb2xvcjogI2UzZjJmZDsgfVxuXG4ubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogNjhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMDsgfVxuXG4ubWRjLXN3aXRjaF9fdHJhY2sge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBvcGFjaXR5OiAuMzg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYm9yZGVyLWNvbG9yIDkwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IC0xOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTE3cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA5MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3JkZXItY29sb3IgOTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5LCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IC0xOHB4OyB9XG5cbi5tZGMtc3dpdGNoX190aHVtYiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMTBweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTsgfVxuXG4ubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdHJhY2sge1xuICBvcGFjaXR5OiAuNTQ7IH1cblxuLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5LCAubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyB9XG5cbi5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXN3aXRjaC0tY2hlY2tlZCAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wsIC5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbFtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxuXG4ubWRjLXN3aXRjaC0tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAuMzg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIGJvcmRlci13aWR0aDogMXB4OyB9XG4gIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlLCAubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWU5ZTllOyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjA4OyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZC0tYmFja2dyb3VuZC1mb2N1c2VkOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICBvcGFjaXR5OiAwLjI0OyB9XG5cbi5tZGMtc3dpdGNoOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cblxuLm1kYy1zd2l0Y2g6bm90KC5tZGMtc3dpdGNoLS1jaGVja2VkKSAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgb3BhY2l0eTogMC4yNDsgfVxuXG4ubWRjLXN3aXRjaDpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHk6IDAuMjQ7IH1cblxuLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUsIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCAwKTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXkubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjphZnRlciB7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YmVmb3JlLCAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE1RTdFOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OjpiZWZvcmUsIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheTo6YWZ0ZXIge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5OmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDAuMDQ7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Om5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGxpbmVhcjsgfVxuICAubWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXk6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTphY3RpdmU6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5Lm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLm1kYy10YWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDg5MjllbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGFiIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjYpOyB9XG4gIC5tZGMtdGFiIC5tZGMtdGFiX19pY29uIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjU0KTtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgLm1kYy10YWI6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwOyB9XG5cbi5tZGMtdGFiLS1taW4td2lkdGgge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4ubWRjLXRhYl9fcmlwcGxlIHtcbiAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gIC0tbWRjLXJpcHBsZS1sZWZ0OiAwO1xuICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kOiAwO1xuICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSwgLm1kYy10YWJfX3JpcHBsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZC0tdW5ib3VuZGVkOjphZnRlciB7XG4gICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IHZhcigtLW1kYy1yaXBwbGUtbGVmdCwgMCk7IH1cbiAgLm1kYy10YWJfX3JpcHBsZS5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtdGFiX19yaXBwbGU6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtdGFiX19yaXBwbGUubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAubWRjLXRhYl9fcmlwcGxlOjpiZWZvcmUsIC5tZGMtdGFiX19yaXBwbGU6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxOyB9XG4gICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgLm1kYy10YWJfX3JpcHBsZTo6YmVmb3JlLCAubWRjLXRhYl9fcmlwcGxlOjphZnRlciB7XG4gICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICMyMTIxMjEpOyB9IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtdGFiX19yaXBwbGU6bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgIG9wYWNpdHk6IDAuMTI7IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgLm1kYy10YWJfX3JpcHBsZTpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDc1bXM7XG4gICAgb3BhY2l0eTogMC4xMjsgfVxuICAubWRjLXRhYl9fcmlwcGxlLm1kYy1yaXBwbGUtdXBncmFkZWQge1xuICAgIC0tbWRjLXJpcHBsZS1mZy1vcGFjaXR5OiAwLjEyOyB9XG5cbi5tZGMtdGFiX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXRhYl9fdGV4dC1sYWJlbCxcbi5tZGMtdGFiX19pY29uIHtcbiAgdHJhbnNpdGlvbjogMTUwbXMgY29sb3IgbGluZWFyO1xuICB6LWluZGV4OiAyOyB9XG5cbi5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4ubWRjLXRhYl9faWNvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ubWRjLXRhYi0tc3RhY2tlZCB7XG4gIGhlaWdodDogNzJweDsgfVxuXG4ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9fY29udGVudCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4ubWRjLXRhYi0tc3RhY2tlZCAubWRjLXRhYl9faWNvbiB7XG4gIHBhZGRpbmctdG9wOiAxMnB4OyB9XG5cbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7IH1cblxuLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cblxuLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9faWNvbiB7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4ubWRjLXRhYi0tYWN0aXZlIC5tZGMtdGFiX190ZXh0LWxhYmVsLFxuLm1kYy10YWItLWFjdGl2ZSAubWRjLXRhYl9faWNvbiB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDEwMG1zOyB9XG5cbi5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24gKyAubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGFiOm5vdCgubWRjLXRhYi0tc3RhY2tlZCkgLm1kYy10YWJfX2ljb24gKyAubWRjLXRhYl9fdGV4dC1sYWJlbCwgLm1kYy10YWI6bm90KC5tZGMtdGFiLS1zdGFja2VkKSAubWRjLXRhYl9faWNvbiArIC5tZGMtdGFiX190ZXh0LWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogOHB4OyB9XG5cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4ubWRjLXRhYi1iYXIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuLm1kYy10YWItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxOyB9XG4gIC5tZGMtdGFiLWluZGljYXRvciAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjEyMTIxO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfVxuICAubWRjLXRhYi1pbmRpY2F0b3IgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDJweDsgfVxuICAubWRjLXRhYi1pbmRpY2F0b3IgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgICBjb2xvcjogIzQxNUU3RTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1zZWNvbmRhcnksICM0MTVFN0UpOyB9XG4gIC5tZGMtdGFiLWluZGljYXRvciAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICAgIGhlaWdodDogMzRweDtcbiAgICBmb250LXNpemU6IDM0cHg7IH1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgb3BhY2l0eTogMDsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IH1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS1pY29uIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3ItLWFjdGl2ZSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtdGFiLWluZGljYXRvciAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICB0cmFuc2l0aW9uOiAyNTBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3ItLW5vLXRyYW5zaXRpb24gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMTUwbXMgb3BhY2l0eSBsaW5lYXI7IH1cblxuLm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7IH1cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG4ubWRjLXRhYi1zY3JvbGxlciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fdGVzdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEge1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLm1kYy10YWItc2Nyb2xsZXJfX3Rlc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEtLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IH1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFsaWduLXN0YXJ0IC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tZW5kIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLm1kYy10YWItc2Nyb2xsZXItLWFsaWduLWNlbnRlciAubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYW5pbWF0aW5nIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvOyB9XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTsgfVxuICAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tcGVyc2lzdGVudCB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpbGwtY2hhbmdlOiBpbml0aWFsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzMzM2VtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXI6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHZlcnRpY2FsLWFsaWduOiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLCAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciwgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbixcbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLm1kYy10ZXh0LWZpZWxkX19pY29uOm5vdChbdGFiaW5kZXhdKSxcbi5tZGMtdGV4dC1maWVsZF9faWNvblt0YWJpbmRleD1cIi0xXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWRjLXRleHQtZmllbGQge1xuICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gIC0tbWRjLXJpcHBsZS10b3A6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gIC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQ6IDA7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogNTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBjb2xvcjsgfVxuICAubWRjLXRleHQtZmllbGQ6OmJlZm9yZSwgLm1kYy10ZXh0LWZpZWxkOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTVtcyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMTVtcyBsaW5lYXI7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIDIyNW1zIGZvcndhcmRzLCBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gNzVtcyBmb3J3YXJkczsgfVxuICAubWRjLXRleHQtZmllbGQubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICBhbmltYXRpb246IG1kYy1yaXBwbGUtZmctb3BhY2l0eS1vdXQgMTUwbXM7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwLjA0OyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICBvcGFjaXR5OiAwLjEyOyB9XG4gIC5tZGMtdGV4dC1maWVsZDo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQ6OmFmdGVyIHtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTAwJSk7XG4gICAgd2lkdGg6IDIwMCU7XG4gICAgaGVpZ2h0OiAyMDAlOyB9XG4gIC5tZGMtdGV4dC1maWVsZC5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC42KTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuODcpOyB9XG4gIC5tZGMtdGV4dC1maWVsZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBjYXJldC1jb2xvcjogIzIxMjEyMTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgY2FyZXQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjQyKTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjg3KTsgfVxuICAubWRjLXRleHQtZmllbGQgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICMyMTIxMjEpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMTIpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyLFxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC42KTsgfVxuICAubWRjLXRleHQtZmllbGQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC41NCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZWJmNTsgfVxuICAubWRjLXRleHQtZmllbGQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsO1xuICAgIHRvcDogMThweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZCAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDE2cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogNHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogaW5pdGlhbDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogNHB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgdG9wOiAxN3B4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbFtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDM2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IDM2cHg7IH1cbiAgICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiA0MHB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICByaWdodDogNDBweDsgfVxuXG4ubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4IDE2cHggNnB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDY3bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuNTQpOyB9XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjU0KSAhaW1wb3J0YW50OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDQwbXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTEwbXM7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aW52YWxpZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGRfX2lucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIHotaW5kZXg6IGF1dG8gIWltcG9ydGFudDsgfVxuICAubWRjLXRleHQtZmllbGQtLW5vLWxhYmVsOm5vdCgubWRjLXRleHQtZmllbGQtLW91dGxpbmVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkX19pbnB1dDotd2Via2l0LWF1dG9maWxsICsgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwLjc1KTtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQge1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMzgpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC44Nyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6ICMyMTIxMjE7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICMyMTIxMjEpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tc2hha2Uge1xuICAgIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQgMjUwbXMgMTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmdbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLCAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNDQlKSBzY2FsZSgxKTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDE0cHg7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgei1pbmRleDogMjsgfVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci13aWR0aDogMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4wNik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIGhlaWdodDogNDhweDsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzQlKSBzY2FsZSgxKTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZSAyNTBtcyAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIHBhZGRpbmc6IDEycHggMTJweCA3cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgdG9wOiAxNHB4OyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgdG9wOiAxMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAxNnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDQ4cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQ0JSkgdHJhbnNsYXRlWCgtMzJweCkgc2NhbGUoMSk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmVbZGlyPVwicnRsXCJdIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHRyYW5zbGF0ZVgoMzJweCkgc2NhbGUoMSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBmb250LXNpemU6IDAuNzVyZW07IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEzMCUpIHRyYW5zbGF0ZVgoLTMycHgpIHNjYWxlKDAuNzUpOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSwgW2Rpcj1cInJ0bFwiXVxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsXG4gIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTMwJSkgdHJhbnNsYXRlWCgzMnB4KSBzY2FsZSgwLjc1KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uIDI1MG1zIDE7IH1cblxuW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWRbZGlyPVwicnRsXCJdIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsIDI1MG1zIDE7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMzZweDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogaW5pdGlhbDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtZmxvYXRpbmctbGFiZWxbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDM2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzQlKSB0cmFuc2xhdGVYKC0yMXB4KSBzY2FsZSgxKTsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlW2Rpcj1cInJ0bFwiXSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzQlKSB0cmFuc2xhdGVYKDIxcHgpIHNjYWxlKDEpOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEyMCUpIHRyYW5zbGF0ZVgoLTIxcHgpIHNjYWxlKDAuOCk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0tZGVuc2UubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0sIFtkaXI9XCJydGxcIl1cbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZVtkaXI9XCJydGxcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTIwJSkgdHJhbnNsYXRlWCgyMXB4KSBzY2FsZSgwLjgpOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZS5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSxcbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLXNoYWtlIHtcbiAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UgMjUwbXMgMTsgfVxuXG5bZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlW2Rpcj1cInJ0bFwiXSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLWRlbnNlLXJ0bCAyNTBtcyAxOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAzMnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBpbml0aWFsOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAzMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogaW5pdGlhbDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogMTJweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogaW5pdGlhbDtcbiAgLyogQG5vZmxpcCAqL1xuICByaWdodDogMTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMTZweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IGluaXRpYWw7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNDhweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgLyogQG5vZmxpcCAqL1xuICBsZWZ0OiAxNnB4O1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBhdXRvOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTZweDsgfVxuICAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbiAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMTJweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbixcbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICBib3R0b206IDE2cHg7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDEycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbltkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBpbml0aWFsO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTJweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQsIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiA0NHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDQ0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLCAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiA0NHB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IGluaXRpYWw7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IDEycHg7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uLCAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IDEycHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiBpbml0aWFsOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNDRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0LCAubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dFtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDEycHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGF1dG87IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbiwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb25bZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bztcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDEycHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICByaWdodDogMTJweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogYXV0bzsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24gfiAubWRjLXRleHQtZmllbGRfX2ljb24sIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pY29uIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICByaWdodDogYXV0bztcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDEycHg7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDQ0cHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogNDRweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2UgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCwgLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2lucHV0W2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogNDRweDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogNDRweDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03MCUpIHNjYWxlKDAuOCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gIGFuaW1hdGlvbjogbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtZGVuc2UgMjUwbXMgMTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBwYWRkaW5nOiAxMnB4IDEycHggMDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICBmb250LXNpemU6IC44MTNyZW07IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAuODEzcmVtOyB9XG5cbi5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlcixcbi5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIGNvbnRlbnQ6IFwiKlwiOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zOCk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjg3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYTpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci1jb2xvcjogIzIxMjEyMTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZCAyNTBtcyAxOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZywgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZ1tkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhOjpiZWZvcmUsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWE6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE0NCUpIHNjYWxlKDEpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtbm90Y2hlZC1vdXRsaW5lLS11cGdyYWRlZCAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogaW5pdGlhbDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTNweDsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAxNnB4O1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgcmlnaHQ6IGluaXRpYWw7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogOHB4IDFweCAxcHggMDtcbiAgICBwYWRkaW5nOiAwIDE2cHggMTZweDtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIgKyAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgdG9wOiAxN3B4O1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIGJvcmRlci13aWR0aDogMnB4OyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGg6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5tZGMtdGV4dC1maWVsZC0tZnVsbHdpZHRoOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKTo6YmVmb3JlLCAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSk6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aDpub3QoLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSk6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGg6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgICAgcGFkZGluZzogMDsgfVxuICAubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAubWRjLXRleHQtZmllbGQtLWRlbnNlICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cbiAgLm1kYy10ZXh0LWZpZWxkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDsgfVxuXG4ubWRjLWZvcm0tZmllbGQgPiAubWRjLXRleHQtZmllbGQgKyBsYWJlbCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMzMsIDMzLCAzMywgMC44Nyk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlcixcbi5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLXRleHQtZmllbGRfX2lucHV0OnJlcXVpcmVkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgzMywgMzMsIDMzLCAwLjg3KTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0Om5vdCgubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICMyMTIxMjE7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLWxpbmUtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWludmFsaWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS12YWxpZGF0aW9uLW1zZyB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgY2FyZXQtY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY2FyZXQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlcixcbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZCAubWRjLXRleHQtZmllbGRfX2lucHV0OnJlcXVpcmVkIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIge1xuICBjb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbjpub3QoLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbik6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gIGNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0taW52YWxpZC5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pbnB1dDpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faWNvbjpob3ZlciB+IC5tZGMtbm90Y2hlZC1vdXRsaW5lIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKS5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gIGJvcmRlci1jb2xvcjogI2IwMDAyMDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLW1kYy10aGVtZS1lcnJvciwgI2IwMDAyMCk7IH1cblxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLWZvY3VzZWQpIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCkgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4gLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSAubWRjLXRleHQtZmllbGRfX2ljb246aG92ZXIgfiAubWRjLW5vdGNoZWQtb3V0bGluZSAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICBib3JkZXItY29sb3I6ICNiMDAwMjA7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApOyB9XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWludmFsaWQ6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZC5tZGMtdGV4dC1maWVsZC0taW52YWxpZDpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkubWRjLXRleHQtZmllbGQtLWZvY3VzZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjAwMDIwO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLWVycm9yLCAjYjAwMDIwKTsgfVxuXG4ubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZWVmOTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuMDYpOyB9XG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zNyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjM3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkICsgLm1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dCB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zNyk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCAubWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXIsXG4gIC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICBjb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjM3KTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4zKTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjEyKTsgfVxuICAubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcsXG4gIC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCxcbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy1ub3RjaGVkLW91dGxpbmVfX3RyYWlsaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDU4LCA2NCwgMC4wNik7IH1cbiAgLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLWRlbnNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTcwJSkgc2NhbGUoMC44KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMsIDAuNDk1ODIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC03MCUpIHNjYWxlKDAuOCk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0NCwgMC4zODEzNSwgMC41NSwgMC45NTYzNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC03MCUpIHNjYWxlKDAuOCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtNzAlKSBzY2FsZSgwLjgpOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMsIDAuNDk1ODIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICA2NiUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjMwMjQ0LCAwLjM4MTM1LCAwLjU1LCAwLjk1NjM1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MywgMC40OTU4Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwJSkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0NCwgMC4zODEzNSwgMC41NSwgMC45NTYzNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwJSkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MywgMC40OTU4Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0NCwgMC4zODEzNSwgMC41NSwgMC45NTYzNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMjFweCkpIHRyYW5zbGF0ZVkoLTEyMCUpIHNjYWxlKDAuOCk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczLCAwLjQ5NTgyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDQsIDAuMzgxMzUsIDAuNTUsIDAuOTU2MzUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIDIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAyMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLXRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDMzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC43MDE3MywgMC40OTU4Mik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0NCwgMC4zODEzNSwgMC41NSwgMC45NTYzNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCkpIHRyYW5zbGF0ZVkoLTEzMCUpIHNjYWxlKDAuNzUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAwKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1mbG9hdC1hYm92ZS10ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbi1kZW5zZS1ydGwge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIC0yMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAzMyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjUsIDAsIDAuNzAxNzMsIDAuNDk1ODIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDQlIC0gLTIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9XG4gIDY2JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzAyNDQsIDAuMzgxMzUsIDAuNTUsIDAuOTU2MzUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC00JSAtIC0yMXB4KSkgdHJhbnNsYXRlWSgtMTIwJSkgc2NhbGUoMC44KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gLTIxcHgpKSB0cmFuc2xhdGVZKC0xMjAlKSBzY2FsZSgwLjgpOyB9IH1cblxuQGtleWZyYW1lcyBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtdGV4dGFyZWEge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgMzMlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjcwMTczLCAwLjQ5NTgyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyg0JSAtIDAlKSkgdHJhbnNsYXRlWSgtMTMwJSkgc2NhbGUoMC43NSk7IH1cbiAgNjYlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zMDI0NCwgMC4zODEzNSwgMC41NSwgMC45NTYzNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTQlIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygwIC0gMCUpKSB0cmFuc2xhdGVZKC0xMzAlKSBzY2FsZSgwLjc1KTsgfSB9XG5cbjpyb290IHtcbiAgLS1tZGMtdGhlbWUtcHJpbWFyeTogIzIxMjEyMTtcbiAgLS1tZGMtdGhlbWUtc2Vjb25kYXJ5OiAjNDE1RTdFO1xuICAtLW1kYy10aGVtZS1iYWNrZ3JvdW5kOiAjZmZmO1xuICAtLW1kYy10aGVtZS1zdXJmYWNlOiAjZTNmMmZkO1xuICAtLW1kYy10aGVtZS1lcnJvcjogI2IwMDAyMDtcbiAgLS1tZGMtdGhlbWUtb24tcHJpbWFyeTogI2Y4ZjlmYTtcbiAgLS1tZGMtdGhlbWUtb24tc2Vjb25kYXJ5OiAjZjhmOWZhO1xuICAtLW1kYy10aGVtZS1vbi1zdXJmYWNlOiAjMzQzYTQwO1xuICAtLW1kYy10aGVtZS1vbi1lcnJvcjogI2Y4ZjlmYTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAtLW1kYy10aGVtZS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWxpZ2h0OiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICAtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tbGlnaHQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1saWdodDogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbiAgLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcms6IHdoaXRlO1xuICAtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1kYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1kYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tZGFyazogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAtLW1kYy10aGVtZS10ZXh0LWljb24tb24tZGFyazogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi5tZGMtdGhlbWUtLXByaW1hcnkge1xuICBjb2xvcjogIzIxMjEyMSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtcHJpbWFyeSwgIzIxMjEyMSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS1zZWNvbmRhcnkge1xuICBjb2xvcjogIzQxNUU3RSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjNDE1RTdFKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1iYWNrZ3JvdW5kLCAjZmZmKTsgfVxuXG4ubWRjLXRoZW1lLS1zdXJmYWNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjJmZDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc3VyZmFjZSwgI2UzZjJmZCk7IH1cblxuLm1kYy10aGVtZS0tZXJyb3Ige1xuICBjb2xvcjogI2IwMDAyMCAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtZXJyb3IsICNiMDAwMjApICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tb24tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZjhmOWZhICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZjhmOWZhKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLW9uLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjZjhmOWZhICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zZWNvbmRhcnksICNmOGY5ZmEpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tb24tc3VyZmFjZSB7XG4gIGNvbG9yOiAjMzQzYTQwICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1zdXJmYWNlLCAjMzQzYTQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLW9uLWVycm9yIHtcbiAgY29sb3I6ICNmOGY5ZmEgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLWVycm9yLCAjZjhmOWZhKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtcHJpbWFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuODcpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU0KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWRpc2FibGVkLW9uLWJhY2tncm91bmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1kaXNhYmxlZC1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuMzgpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtcHJpbWFyeS1vbi1saWdodCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC44NykpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1zZWNvbmRhcnktb24tbGlnaHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC41NCkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1oaW50LW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaGludC1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LWRpc2FibGVkLW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC4zOCkpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1pY29uLW9uLWxpZ2h0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtaWNvbi1vbi1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjM4KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS10ZXh0LXByaW1hcnktb24tZGFyayB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1wcmltYXJ5LW9uLWRhcmssIHdoaXRlKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtc2Vjb25kYXJ5LW9uLWRhcmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1kYXJrLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykpICFpbXBvcnRhbnQ7IH1cblxuLm1kYy10aGVtZS0tdGV4dC1oaW50LW9uLWRhcmsge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpICFpbXBvcnRhbnQ7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LWhpbnQtb24tZGFyaywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtZGlzYWJsZWQtb24tZGFyayB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtZGlzYWJsZWQtb24tZGFyaywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXRleHQtaWNvbi1vbi1kYXJrIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1pY29uLW9uLWRhcmssIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSkgIWltcG9ydGFudDsgfVxuXG4ubWRjLXRoZW1lLS1wcmltYXJ5LWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMSAhaW1wb3J0YW50O1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdGhlbWUtLXNlY29uZGFyeS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MTVFN0UgIWltcG9ydGFudDtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtc2Vjb25kYXJ5LCAjNDE1RTdFKSAhaW1wb3J0YW50OyB9XG5cbi5tZGMtdG9vbGJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWRjLXRoZW1lLXByaW1hcnksICMyMTIxMjEpO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTsgfVxuICAubWRjLXRvb2xiYXIgLm1kYy10b29sYmFyX19pY29uIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAubWRjLXRvb2xiYXIgLm1kYy10b29sYmFyX19pY29uOjpiZWZvcmUsIC5tZGMtdG9vbGJhciAubWRjLXRvb2xiYXJfX2ljb246OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gICAgLm1kYy10b29sYmFyIC5tZGMtdG9vbGJhcl9faWNvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICAgIG9wYWNpdHk6IDAuMDg7IH1cbiAgICAubWRjLXRvb2xiYXIgLm1kYy10b29sYmFyX19pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgLm1kYy10b29sYmFyIC5tZGMtdG9vbGJhcl9faWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgICAgb3BhY2l0eTogMC4yNDsgfVxuICAgIC5tZGMtdG9vbGJhciAubWRjLXRvb2xiYXJfX2ljb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgICAubWRjLXRvb2xiYXIgLm1kYy10b29sYmFyX19pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgICAgb3BhY2l0eTogMC4yNDsgfVxuICAgIC5tZGMtdG9vbGJhciAubWRjLXRvb2xiYXJfX2ljb24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuICAubWRjLXRvb2xiYXJfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA2NHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgIC5tZGMtdG9vbGJhcl9fcm93IHtcbiAgICAgICAgbWluLWhlaWdodDogNDhweDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAubWRjLXRvb2xiYXJfX3JvdyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7IH0gfVxuICAubWRjLXRvb2xiYXJfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgei1pbmRleDogMTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICAubWRjLXRvb2xiYXJfX3NlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5tZGMtdG9vbGJhcl9fc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwOyB9IH1cbiAgICAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLXN0YXJ0IHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBvcmRlcjogLTE7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLm1kYy10b29sYmFyX19zZWN0aW9uLS1hbGlnbi1zdGFydCwgLm1kYy10b29sYmFyX19zZWN0aW9uLS1hbGlnbi1zdGFydFtkaXI9XCJydGxcIl0ge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogOTU5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgICAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLXN0YXJ0IHtcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgICAgICBbZGlyPVwicnRsXCJdIC5tZGMtdG9vbGJhcl9fc2VjdGlvbi0tYWxpZ24tc3RhcnQsIC5tZGMtdG9vbGJhcl9fc2VjdGlvbi0tYWxpZ24tc3RhcnRbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgICAgLm1kYy10b29sYmFyX19zZWN0aW9uLS1hbGlnbi1zdGFydCB7XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLXN0YXJ0LCAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLXN0YXJ0W2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7IH0gfVxuICAgIC5tZGMtdG9vbGJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgb3JkZXI6IDE7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLm1kYy10b29sYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQsIC5tZGMtdG9vbGJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICAgIC5tZGMtdG9vbGJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7IH1cbiAgICAgICAgICBbZGlyPVwicnRsXCJdIC5tZGMtdG9vbGJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kLCAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLWVuZFtkaXI9XCJydGxcIl0ge1xuICAgICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgICAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogNHB4OyB9XG4gICAgICAgICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvb2xiYXJfX3NlY3Rpb24tLWFsaWduLWVuZCwgLm1kYy10b29sYmFyX19zZWN0aW9uLS1hbGlnbi1lbmRbZGlyPVwicnRsXCJdIHtcbiAgICAgICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIC5tZGMtdG9vbGJhcl9fdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTJweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgei1pbmRleDogMTsgfVxuICAgIFtkaXI9XCJydGxcIl0gLm1kYy10b29sYmFyX190aXRsZSwgLm1kYy10b29sYmFyX190aXRsZVtkaXI9XCJydGxcIl0ge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH1cbiAgLm1kYy10b29sYmFyX19pY29uLCAubWRjLXRvb2xiYXJfX21lbnUtaWNvbiB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAubWRjLXRvb2xiYXJfX2ljb246OmJlZm9yZSwgLm1kYy10b29sYmFyX19pY29uOjphZnRlciwgLm1kYy10b29sYmFyX19tZW51LWljb246OmJlZm9yZSwgLm1kYy10b29sYmFyX19tZW51LWljb246OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAubWRjLXRvb2xiYXJfX2ljb246OmJlZm9yZSwgLm1kYy10b29sYmFyX19tZW51LWljb246OmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1bXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDE1bXMgbGluZWFyO1xuICAgICAgei1pbmRleDogMTsgfVxuICAgIC5tZGMtdG9vbGJhcl9faWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAgIC5tZGMtdG9vbGJhcl9faWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciwgLm1kYy10b29sYmFyX19tZW51LWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgdG9wOiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyOyB9XG4gICAgLm1kYy10b29sYmFyX19pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIsIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApOyB9XG4gICAgLm1kYy10b29sYmFyX19pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIsIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLXJhZGl1cy1pbiAyMjVtcyBmb3J3YXJkcywgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LWluIDc1bXMgZm9yd2FyZHM7IH1cbiAgICAubWRjLXRvb2xiYXJfX2ljb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyLCAubWRjLXRvb2xiYXJfX21lbnUtaWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWRlYWN0aXZhdGlvbjo6YWZ0ZXIge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtcmlwcGxlLWZnLW9wYWNpdHktb3V0IDE1MG1zO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtZW5kLCAwKSkgc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpOyB9XG4gICAgLm1kYy10b29sYmFyX19pY29uOjpiZWZvcmUsIC5tZGMtdG9vbGJhcl9faWNvbjo6YWZ0ZXIsIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uOjpiZWZvcmUsIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uOjphZnRlciB7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNTAlKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLm1kYy10b29sYmFyX19pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy10b29sYmFyX19pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyLCAubWRjLXRvb2xiYXJfX21lbnUtaWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gNTAlKSk7XG4gICAgICB3aWR0aDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTtcbiAgICAgIGhlaWdodDogdmFyKC0tbWRjLXJpcHBsZS1mZy1zaXplLCAxMDAlKTsgfVxuICAgIC5tZGMtdG9vbGJhcl9faWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciwgLm1kYy10b29sYmFyX19tZW51LWljb24ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cblxuLm1kYy10b29sYmFyX19tZW51LWljb24gKyAubWRjLXRvb2xiYXJfX3RpdGxlIHtcbiAgLyogQG5vZmxpcCAqL1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICAvKiBAbm9mbGlwICovXG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdG9vbGJhcl9fbWVudS1pY29uICsgLm1kYy10b29sYmFyX190aXRsZSwgLm1kYy10b29sYmFyX19tZW51LWljb24gKyAubWRjLXRvb2xiYXJfX3RpdGxlW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLm1kYy10b29sYmFyX190aXRsZSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBbZGlyPVwicnRsXCJdIC5tZGMtdG9vbGJhcl9fdGl0bGUsIC5tZGMtdG9vbGJhcl9fdGl0bGVbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9IH1cblxuLm1kYy10b29sYmFyLS1maXhlZCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogNDsgfVxuXG4ubWRjLXRvb2xiYXItLWZsZXhpYmxlIHtcbiAgLS1tZGMtdG9vbGJhci1yYXRpby10by1leHRlbmQtZmxleGlibGU6IDQ7IH1cbiAgLm1kYy10b29sYmFyLS1mbGV4aWJsZSAubWRjLXRvb2xiYXJfX3JvdzpmaXJzdC1jaGlsZCB7XG4gICAgaGVpZ2h0OiAyNTZweDtcbiAgICBoZWlnaHQ6IGNhbGMoIDY0cHggKiB2YXIoLS1tZGMtdG9vbGJhci1yYXRpby10by1leHRlbmQtZmxleGlibGUsIDQpKTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgICAgLm1kYy10b29sYmFyLS1mbGV4aWJsZSAubWRjLXRvb2xiYXJfX3JvdzpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGhlaWdodDogMjI0cHg7XG4gICAgICAgIGhlaWdodDogY2FsYyggNTZweCAqIHZhcigtLW1kYy10b29sYmFyLXJhdGlvLXRvLWV4dGVuZC1mbGV4aWJsZSwgNCkpOyB9IH1cbiAgICAubWRjLXRvb2xiYXItLWZsZXhpYmxlIC5tZGMtdG9vbGJhcl9fcm93OmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5tZGMtdG9vbGJhci0tZmxleGlibGUtZGVmYXVsdC1iZWhhdmlvciAubWRjLXRvb2xiYXJfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtOyB9XG4gIC5tZGMtdG9vbGJhci0tZmxleGlibGUtZGVmYXVsdC1iZWhhdmlvciAubWRjLXRvb2xiYXJfX3JvdzpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLm1kYy10b29sYmFyLS1mbGV4aWJsZS1kZWZhdWx0LWJlaGF2aW9yLm1kYy10b29sYmFyLS1mbGV4aWJsZS1zcGFjZS1taW5pbWl6ZWQgLm1kYy10b29sYmFyX19yb3c6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5tZGMtdG9vbGJhci0tZmxleGlibGUtZGVmYXVsdC1iZWhhdmlvci5tZGMtdG9vbGJhci0tZmxleGlibGUtc3BhY2UtbWluaW1pemVkIC5tZGMtdG9vbGJhcl9fdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLm1kYy10b29sYmFyLS13YXRlcmZhbGwubWRjLXRvb2xiYXItLWZpeGVkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDI4MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHdpbGwtY2hhbmdlOiBib3gtc2hhZG93OyB9XG4gIC5tZGMtdG9vbGJhci0td2F0ZXJmYWxsLm1kYy10b29sYmFyLS1maXhlZC5tZGMtdG9vbGJhci0tZmxleGlibGUtc3BhY2UtbWluaW1pemVkIHtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRjLXRvb2xiYXItLXdhdGVyZmFsbC5tZGMtdG9vbGJhci0tZml4ZWQubWRjLXRvb2xiYXItLWZpeGVkLWxhc3Ryb3ctb25seS5tZGMtdG9vbGJhci0tZmxleGlibGUtc3BhY2UtbWluaW1pemVkIHtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kYy10b29sYmFyLS13YXRlcmZhbGwubWRjLXRvb2xiYXItLWZpeGVkLm1kYy10b29sYmFyLS1maXhlZC1sYXN0cm93LW9ubHkubWRjLXRvb2xiYXItLWZpeGVkLWF0LWxhc3Qtcm93IHtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRjLXRvb2xiYXItZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDY0cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSBhbmQgKG1heC1oZWlnaHQ6IDU5OXB4KSB7XG4gICAgLm1kYy10b29sYmFyLWZpeGVkLWFkanVzdCB7XG4gICAgICBwYWRkaW5nLXRvcDogNDhweDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAgIC5tZGMtdG9vbGJhci1maXhlZC1hZGp1c3Qge1xuICAgICAgcGFkZGluZy10b3A6IDU2cHg7IH0gfVxuXG4ubWRjLXRvb2xiYXJfX3NlY3Rpb24tLXNocmluay10by1maXQge1xuICBmbGV4OiBub25lOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1wcmltYXJ5LCAjMjEyMTIxKTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDQ7IH1cbiAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSxcbiAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIGNvbG9yOiAjZjhmOWZhO1xuICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLW9uLXByaW1hcnksICNmOGY5ZmEpOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjphZnRlcixcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhOyB9XG4gICAgICBAc3VwcG9ydHMgbm90ICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTo6YWZ0ZXIsXG4gICAgICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUsXG4gICAgICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjphZnRlciB7XG4gICAgICAgICAgLyogQGFsdGVybmF0ZSAqL1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1kYy10aGVtZS1vbi1wcmltYXJ5LCAjZjhmOWZhKTsgfSB9XG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbTpob3Zlcjo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOmhvdmVyOjpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMC4wODsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTpmb2N1czo6YmVmb3JlLCAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlLFxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSxcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6OmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zO1xuICAgICAgb3BhY2l0eTogMC4yNDsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXIgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246bm90KC5tZGMtcmlwcGxlLXVwZ3JhZGVkKTo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6YWN0aXZlOjphZnRlcixcbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICAgIG9wYWNpdHk6IDAuMjQ7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQsXG4gICAgLm1kYy10b3AtYXBwLWJhciAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZCB7XG4gICAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogMC4yNDsgfVxuICAubWRjLXRvcC1hcHAtYmFyX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2NHB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1zdGFydCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBvcmRlcjogLTE7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uLS1hbGlnbi1lbmQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG9yZGVyOiAxOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyX190aXRsZSwgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGVbZGlyPVwicnRsXCJdIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0sIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiB7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXNpemU6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWxlZnQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLXRvcDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2NhbGU6IDE7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQ6IDA7XG4gICAgLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1zdGFydDogMDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb246OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW06OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUge1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNW1zIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAxNW1zIGxpbmVhcjtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLXVuYm91bmRlZDo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICAgIHRvcDogdmFyKC0tbWRjLXJpcHBsZS10b3AsIDApO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCAwKTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtYWN0aXZhdGlvbjo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS1mb3JlZ3JvdW5kLWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gMjI1bXMgZm9yd2FyZHMsIG1kYy1yaXBwbGUtZmctb3BhY2l0eS1pbiA3NW1zIGZvcndhcmRzOyB9XG4gICAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyLCAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1kZWFjdGl2YXRpb246OmFmdGVyIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAxNTBtcztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbjo6YWZ0ZXIge1xuICAgICAgdG9wOiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDUwJSk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSwgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjpiZWZvcmUsIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbi5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciB7XG4gICAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogdmFyKC0tbWRjLXJpcHBsZS1sZWZ0LCBjYWxjKDUwJSAtIDUwJSkpO1xuICAgICAgd2lkdGg6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLW1kYy1yaXBwbGUtZmctc2l6ZSwgMTAwJSk7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbS5tZGMtcmlwcGxlLXVwZ3JhZGVkOjphZnRlciwgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsIDEwMCUpOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gIC8qIEBub2ZsaXAgKi9cbiAgYm9yZGVyLXJhZGl1czogMCAwIDI0cHggMDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCwgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDI0cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICB0b3A6IDA7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcmlnaHQ6IGF1dG87XG4gIC8qIEBub2ZsaXAgKi9cbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCwgLm1kYy10b3AtYXBwLWJhci0tc2hvcnRbZGlyPVwicnRsXCJdIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcmlnaHQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6IDU2cHg7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZzogNHB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgd2lkdGg6IDU2cHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCAubWRjLXRvcC1hcHAtYmFyX19hY3Rpb24taXRlbSB7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAxNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSB7XG4gIHdpZHRoOiAxMTJweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1oYXMtYWN0aW9uLWl0ZW0gLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XG4gICAgW2Rpcj1cInJ0bFwiXSAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1oYXMtYWN0aW9uLWl0ZW0gLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kLCAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1oYXMtYWN0aW9uLWl0ZW0gLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kW2Rpcj1cInJ0bFwiXSB7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gIGhlaWdodDogNDhweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZSAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgcGFkZGluZzogMCA0cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAvKiBAbm9mbGlwICovXG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIFtkaXI9XCJydGxcIl0gLm1kYy10b3AtYXBwLWJhci0tZGVuc2UgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUsIC5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlW2Rpcj1cInJ0bFwiXSB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgcGFkZGluZy1yaWdodDogMTJweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgaGVpZ2h0OiAxMjhweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgcGFkZGluZy1ib3R0b206IDJweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0sXG4ubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQgLm1kYy10b3AtYXBwLWJhcl9fbmF2aWdhdGlvbi1pY29uIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1maXhlZCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLXNjcm9sbGVkIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyOyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gIGhlaWdodDogOTZweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgcGFkZGluZzogMCAxMnB4OyB9XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgLyogQG5vZmxpcCAqL1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIC8qIEBub2ZsaXAgKi9cbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDlweDsgfVxuICBbZGlyPVwicnRsXCJdIC5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlLCAubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZVtkaXI9XCJydGxcIl0ge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDY0cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDQ4cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDU2cHg7IH1cblxuLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiAxMjhweDsgfVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1kZW5zZS1wcm9taW5lbnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6IDk2cHg7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiA1NnB4OyB9XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDRweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydCB7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgICAubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCwgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtY29sbGFwc2VkIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZFtkaXI9XCJydGxcIl0ge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDZweDsgfVxuICAubWRjLXRvcC1hcHAtYmFyLS1maXhlZC1hZGp1c3Qge1xuICAgIHBhZGRpbmctdG9wOiA1NnB4OyB9IH1cblxuLm1kYy10eXBvZ3JhcGh5IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTEge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiA2cmVtO1xuICBsaW5lLWhlaWdodDogNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxNTYzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAzLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMy43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwODMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTMge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMy4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAyLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA3MzVlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLWhlYWRsaW5lNSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1oZWFkbGluZTYge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tc3VidGl0bGUxIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAwOTM3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1zdWJ0aXRsZTIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMDcxNGVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tYm9keTEge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMzEyNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0OyB9XG5cbi5tZGMtdHlwb2dyYXBoeS0tYm9keTIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxNzg2ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1jYXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzMzMzZW07XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7IH1cblxuLm1kYy10eXBvZ3JhcGh5LS1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4OTI5ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ubWRjLXR5cG9ncmFwaHktLW92ZXJsaW5lIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2NjY3ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uY2FyZF9fcHJpbWFyeSB7XG4gIHBhZGRpbmc6IDFyZW07IH1cblxuLmNhcmRfX3RpdGxlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jYXJkX19zdWJ0aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICAvKiBAYWx0ZXJuYXRlICovXG4gIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU0KSk7XG4gIG1hcmdpbjogMDsgfVxuXG4uY2FyZF9fc2Vjb25kYXJ5IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgY29sb3I6IHZhcigtLW1kYy10aGVtZS10ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCByZ2JhKDAsIDAsIDAsIDAuNTQpKTtcbiAgcGFkZGluZzogMCAxcmVtIDhweCAxcmVtOyB9XG5cbi5zcGFjZXItZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5zcGFjZXItdGl0bGU6bm90KGgxKSB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDsgfVxuXG5oMS5zcGFjZXItdGl0bGUge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMnB4OyB9XG5cbi5zcGFjZXItaW5wdXQge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG5cbi5zcGFjZXItdGV4dCB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4OyB9XG5cbmh0bWwgLnNwYWNlci10b3AtY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cblxuLmNvbnRhaW5lci1mbHVpZCAucGEtY29udGVudCwgLmNvbnRhaW5lci1mbHVpZCAuc3BhY2VyLWNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDVyZW07IH1cblxuLmNvbnRhaW5lci1mbHVpZCAuZGF0YVRhYmxlc193cmFwcGVyIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi5zcGFjZXItaW5saW5lLWxpc3QtMTAgPiAqOm50aC1jaGlsZCgxbisyKSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnNwYWNlci1pbmxpbmUtbGlzdC0yMCA+ICo6bnRoLWNoaWxkKDFuKzIpIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG4uc3BhY2VyLWlubGluZS1saXN0LTMwID4gKjpudGgtY2hpbGQoMW4rMikge1xuICBtYXJnaW4tbGVmdDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5zcGFjZXItaW5saW5lLWxpc3QtNDAgPiAqOm50aC1jaGlsZCgxbisyKSB7XG4gIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnNwYWNlci1pbmxpbmUtbGlzdC01MCA+ICo6bnRoLWNoaWxkKDFuKzIpIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHggIWltcG9ydGFudDsgfVxuXG4uZmFjZWJvb2stY29sb3Ige1xuICBjb2xvcjogIzNCNTk5ODsgfVxuXG4ubGlua2VkaW4tY29sb3Ige1xuICBjb2xvcjogIzAwNzdCNTsgfVxuXG4uZmFkb3EtY29sb3Ige1xuICBjb2xvcjogIzAwNTQ5OTsgfVxuXG4ucG9pbnRlci1ldmVudC1ub25lIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmNvbG9yLXBpY2tlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAxcmVtO1xuICBsZWZ0OiAxcmVtO1xuICB6LWluZGV4OiAxOyB9XG5cbi5wb2ludGVyLWV2ZW50cy1ub25lIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLnBvaW50ZXItZXZlbnRzLWF1dG8ge1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG4ucmFkaXVzLTAge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7IH1cblxuLnctNjAtcHgge1xuICB3aWR0aDogNjBweDsgfVxuXG4ubXctMTAwLXB4IHtcbiAgbWF4LXdpZHRoOiAxMDBweDsgfVxuXG4ubXctMjAwLXB4IHtcbiAgbWF4LXdpZHRoOiAyMDBweDsgfVxuXG4ubXctMzAwLXB4IHtcbiAgbWF4LXdpZHRoOiAzMDBweDsgfVxuXG4ubXctNDAwLXB4IHtcbiAgbWF4LXdpZHRoOiA0MDBweDsgfVxuXG4ubXctNTAwLXB4IHtcbiAgbWF4LXdpZHRoOiA1MDBweDsgfVxuXG4ubXctNjAwLXB4IHtcbiAgbWF4LXdpZHRoOiA2MDBweDsgfVxuXG4ubXctNzAwLXB4IHtcbiAgbWF4LXdpZHRoOiA3MDBweDsgfVxuXG4ubXctODAwLXB4IHtcbiAgbWF4LXdpZHRoOiA4MDBweDsgfVxuXG4ubXctOTAwLXB4IHtcbiAgbWF4LXdpZHRoOiA5MDBweDsgfVxuXG4ubXctMTAwMC1weCB7XG4gIG1heC13aWR0aDogMTAwMHB4OyB9XG5cbi5tdy0xMTAwLXB4IHtcbiAgbWF4LXdpZHRoOiAxMTAwcHg7IH1cblxuLm13LTEyMDAtcHgge1xuICBtYXgtd2lkdGg6IDEyMDBweDsgfVxuXG4ubXctMTMwMC1weCB7XG4gIG1heC13aWR0aDogMTMwMHB4OyB9XG5cbi5tdy0xNDAwLXB4IHtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7IH1cblxuLm13LTE1MDAtcHgge1xuICBtYXgtd2lkdGg6IDE1MDBweDsgfVxuXG4ubXctMTYwMC1weCB7XG4gIG1heC13aWR0aDogMTYwMHB4OyB9XG5cbi5tdy0xNzAwLXB4IHtcbiAgbWF4LXdpZHRoOiAxNzAwcHg7IH1cblxuLm13LTE4MDAtcHgge1xuICBtYXgtd2lkdGg6IDE4MDBweDsgfVxuXG4ubXctMTkwMC1weCB7XG4gIG1heC13aWR0aDogMTkwMHB4OyB9XG5cbi5tdy0yMDAwLXB4IHtcbiAgbWF4LXdpZHRoOiAyMDAwcHg7IH1cblxuLmJveC1zaGFkb3ctMSB7XG4gIHotaW5kZXg6IDEwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy0yIHtcbiAgei1pbmRleDogMjA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTMge1xuICB6LWluZGV4OiAzMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLmJveC1zaGFkb3ctNCB7XG4gIHotaW5kZXg6IDQwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy01IHtcbiAgei1pbmRleDogNTA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTYge1xuICB6LWluZGV4OiA2MDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLmJveC1zaGFkb3ctNyB7XG4gIHotaW5kZXg6IDcwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy04IHtcbiAgei1pbmRleDogODA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTkge1xuICB6LWluZGV4OiA5MDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLmJveC1zaGFkb3ctMTAge1xuICB6LWluZGV4OiAxMDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTExIHtcbiAgei1pbmRleDogMTEwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy0xMiB7XG4gIHotaW5kZXg6IDEyMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLmJveC1zaGFkb3ctMTMge1xuICB6LWluZGV4OiAxMzA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTE0IHtcbiAgei1pbmRleDogMTQwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy0xNSB7XG4gIHotaW5kZXg6IDE1MDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLmJveC1zaGFkb3ctMTYge1xuICB6LWluZGV4OiAxNjA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTE3IHtcbiAgei1pbmRleDogMTcwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy0xOCB7XG4gIHotaW5kZXg6IDE4MDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLmJveC1zaGFkb3ctMTkge1xuICB6LWluZGV4OiAxOTA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5ib3gtc2hhZG93LTIwIHtcbiAgei1pbmRleDogMjAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uYm94LXNoYWRvdy0wIHtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4uYm94LXNoYWRvdy1pbm5lciB7XG4gIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDEwcHggIzAwMDAwMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMTBweCAjMDAwMDAwO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMTBweCAjMDAwMDAwOyB9XG5cbi5ib3gtc2hhZG93LWhvdmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyBlYXNlLWluIDAuM3M7IH1cbiAgLmJveC1zaGFkb3ctaG92ZXI6aG92ZXIsIC5ib3gtc2hhZG93LWhvdmVyOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDdweCAxNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAuYm94LXNoYWRvdy1ob3Zlci5idXR0b246aG92ZXIsIC5ib3gtc2hhZG93LWhvdmVyLmJ1dHRvbjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA3cHggMTVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgLmJveC1zaGFkb3ctaG92ZXIgYSB7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA3cHggMTVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciBlYXNlLWluIDAuM3M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJveC1zaGFkb3ctaG92ZXIgYTpob3ZlciwgLmJveC1zaGFkb3ctaG92ZXIgYTpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA3cHggMTVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIGVhc2UtaW4gMC4zczsgfVxuXG4ubWRjLWVsZXZhdGlvbi0temhvdmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyBlYXNlLWluIDAuM3M7IH1cbiAgLm1kYy1lbGV2YXRpb24tLXpob3Zlcjpob3ZlciwgLm1kYy1lbGV2YXRpb24tLXpob3Zlcjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA1cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA3cHggMTVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cblxuLnRleHQtc2hhZG93IHtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5oci5oci1iZWZvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMCksIHJnYmEoMCwgMCwgMCwgMC43NSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbi5oci5oci1hZnRlcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApLCByZ2JhKDAsIDAsIDAsIDAuNzUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgbWFyZ2luOiAycmVtIDAgMXJlbTsgfVxuXG4uaW1nLWJveCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnIHZpZXdCb3g9JzAgMCA0MDAgMzAwJz48bGluZSB4MT0nMCcgeTE9JzAnIHgyPSc0MDAnIHkyPSczMDAnIHN0eWxlPSdzdHJva2U6I2M4YzhjODtzdHJva2Utd2lkdGg6NHB4JyB2ZWN0b3ItZWZmZWN0PSdub24tc2NhbGluZy1zdHJva2UnIC8+PGxpbmUgeDE9JzAnIHkxPSczMDAnIHgyPSc0MDAnIHkyPScwJyBzdHlsZT0nc3Ryb2tlOiNjOGM4Yzg7c3Ryb2tlLXdpZHRoOjRweCcgdmVjdG9yLWVmZmVjdD0nbm9uLXNjYWxpbmctc3Ryb2tlJyAvPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCUgYXV0bztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuXG4uaW1nLWJveC0xIHtcbiAgd2lkdGg6IDZlbTtcbiAgaGVpZ2h0OiA2ZW07XG4gIG1pbi13aWR0aDogNmVtOyB9XG5cbi5pbWctYm94LTIge1xuICB3aWR0aDogN2VtO1xuICBoZWlnaHQ6IDdlbTtcbiAgbWluLXdpZHRoOiA3ZW07IH1cblxuLmltZy1ib3gtMyB7XG4gIHdpZHRoOiA4ZW07XG4gIGhlaWdodDogOGVtO1xuICBtaW4td2lkdGg6IDhlbTsgfVxuXG4uaW1nLWJveC00IHtcbiAgd2lkdGg6IDllbTtcbiAgaGVpZ2h0OiA5ZW07XG4gIG1pbi13aWR0aDogOWVtOyB9XG5cbi5pbWctYm94LTUge1xuICB3aWR0aDogMTBlbTtcbiAgaGVpZ2h0OiAxMGVtO1xuICBtaW4td2lkdGg6IDEwZW07IH1cblxuLmltZy1ib3gtNiB7XG4gIHdpZHRoOiAxMWVtO1xuICBoZWlnaHQ6IDExZW07XG4gIG1pbi13aWR0aDogMTFlbTsgfVxuXG4uaW1nLWJveC03IHtcbiAgd2lkdGg6IDEyZW07XG4gIGhlaWdodDogMTJlbTtcbiAgbWluLXdpZHRoOiAxMmVtOyB9XG5cbi5pbWctYm94LTgge1xuICB3aWR0aDogMTNlbTtcbiAgaGVpZ2h0OiAxM2VtO1xuICBtaW4td2lkdGg6IDEzZW07IH1cblxuLmltZy1ib3gtOSB7XG4gIHdpZHRoOiAxNGVtO1xuICBoZWlnaHQ6IDE0ZW07XG4gIG1pbi13aWR0aDogMTRlbTsgfVxuXG4uaW1nLWJveC0xMCB7XG4gIHdpZHRoOiAxNWVtO1xuICBoZWlnaHQ6IDE1ZW07XG4gIG1pbi13aWR0aDogMTVlbTsgfVxuXG4ubGluZWFyLWdyYWRpZW50LS10by1sZWZ0LXByaW1hcnksIC5saW5lYXItZ3JhZGllbnQtLXRvLXJpZ2h0LXByaW1hcnksIC5saW5lYXItZ3JhZGllbnQtLXRvLWxlZnQtc2Vjb25kYXJ5LCAubGluZWFyLWdyYWRpZW50LS10by1yaWdodC1zZWNvbmRhcnksIC5saW5lYXItZ3JhZGllbnQtLXRvLWxlZnQtbGlnaHQsIC5saW5lYXItZ3JhZGllbnQtLXRvLXJpZ2h0LWxpZ2h0LCAubGluZWFyLWdyYWRpZW50LS10by1sZWZ0LWRhcmssIC5saW5lYXItZ3JhZGllbnQtLXRvLXJpZ2h0LWRhcmssIC5saW5lYXItZ3JhZGllbnQtLXRvLWxlZnQtYmFja2dyb3VuZCwgLmxpbmVhci1ncmFkaWVudC0tdG8tcmlnaHQtYmFja2dyb3VuZCwgLmxpbmVhci1ncmFkaWVudC0tdG8tbGVmdC1zdXJmYWNlLCAubGluZWFyLWdyYWRpZW50LS10by1yaWdodC1zdXJmYWNlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIHotaW5kZXg6IDM7IH1cblxuLmxpbmVhci1ncmFkaWVudC0tdG8tbGVmdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgxNjEsIDE2MSwgMTYxLCAwLjEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuOSkgMTAwJSk7IH1cblxuLmxpbmVhci1ncmFkaWVudC0tdG8tcmlnaHQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC45KSAxMDAlKTsgfVxuXG4ubGluZWFyLWdyYWRpZW50LS10by1sZWZ0LXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjEzLCAyMjIsIDIzMywgMC4xKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjkpIDEwMCUpOyB9XG5cbi5saW5lYXItZ3JhZGllbnQtLXRvLXJpZ2h0LXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC45KSAxMDAlKTsgfVxuXG4ubGluZWFyLWdyYWRpZW50LS10by1sZWZ0LWxpZ2h0IHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMTEsIDExMSwgMTExLCAwLjkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIDAlLCByZ2JhKDExMSwgMTExLCAxMTEsIDAuOSkgMTAwJSk7IH1cblxuLmxpbmVhci1ncmFkaWVudC0tdG8tcmlnaHQtbGlnaHQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDExMSwgMTExLCAxMTEsIDAuOSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgxMTEsIDExMSwgMTExLCAwLjEpIDAlLCByZ2JhKDExMSwgMTExLCAxMTEsIDAuOSkgMTAwJSk7IH1cblxuLmxpbmVhci1ncmFkaWVudC0tdG8tbGVmdC1kYXJrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgxNjEsIDE2MSwgMTYxLCAwLjEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuOSkgMTAwJSk7IH1cblxuLmxpbmVhci1ncmFkaWVudC0tdG8tcmlnaHQtZGFyayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC45KSAxMDAlKTsgfVxuXG4ubGluZWFyLWdyYWRpZW50LS10by1sZWZ0LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuOSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgMCUsIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC45KSAxMDAlKTsgfVxuXG4ubGluZWFyLWdyYWRpZW50LS10by1yaWdodC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4xKSAwJSwgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjkpIDEwMCUpOyB9XG5cbi5saW5lYXItZ3JhZGllbnQtLXRvLWxlZnQtc3VyZmFjZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTUsIDEyOCwgMjEwLCAwLjkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIDAlLCByZ2JhKDE1LCAxMjgsIDIxMCwgMC45KSAxMDAlKTsgfVxuXG4ubGluZWFyLWdyYWRpZW50LS10by1yaWdodC1zdXJmYWNlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNSwgMTI4LCAyMTAsIDAuOSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgxNSwgMTI4LCAyMTAsIDAuMSkgMCUsIHJnYmEoMTUsIDEyOCwgMjEwLCAwLjkpIDEwMCUpOyB9XG5cbi5wb3Mge1xuICB0b3A6IGluaXRpYWw7XG4gIGJvdHRvbTogaW5pdGlhbDtcbiAgcmlnaHQ6IGluaXRpYWw7XG4gIGxlZnQ6IGluaXRpYWw7IH1cblxuLnBvcy1ib3R0b20ge1xuICBib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4ucG9zLXJpZ2h0IHtcbiAgcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4ucG9zLXRvcCB7XG4gIHRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi5wb3MtbGVmdCB7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG4ubGgtbm9ybWFsIHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50OyB9XG5cbi5tdC02IHtcbiAgbWFyZ2luLXRvcDogNnJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYi02IHtcbiAgbWFyZ2luLWJvdHRvbTogNnJlbSAhaW1wb3J0YW50OyB9XG5cbi5tci02IHtcbiAgbWFyZ2luLXJpZ2h0OiA2cmVtICFpbXBvcnRhbnQ7IH1cblxuLm1sLTYge1xuICBtYXJnaW4tbGVmdDogNnJlbSAhaW1wb3J0YW50OyB9XG5cbi5teS02IHtcbiAgbWFyZ2luLXRvcDogNnJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiA2cmVtICFpbXBvcnRhbnQ7IH1cblxuLm14LTYge1xuICBtYXJnaW4tbGVmdDogNnJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDZyZW0gIWltcG9ydGFudDsgfVxuXG4ubS02IHtcbiAgbWFyZ2luOiA2cmVtICFpbXBvcnRhbnQ7IH1cblxuLm10LTcge1xuICBtYXJnaW4tdG9wOiA3cmVtICFpbXBvcnRhbnQ7IH1cblxuLm1iLTcge1xuICBtYXJnaW4tYm90dG9tOiA3cmVtICFpbXBvcnRhbnQ7IH1cblxuLm1yLTcge1xuICBtYXJnaW4tcmlnaHQ6IDdyZW0gIWltcG9ydGFudDsgfVxuXG4ubWwtNyB7XG4gIG1hcmdpbi1sZWZ0OiA3cmVtICFpbXBvcnRhbnQ7IH1cblxuLm15LTcge1xuICBtYXJnaW4tdG9wOiA3cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDdyZW0gIWltcG9ydGFudDsgfVxuXG4ubXgtNyB7XG4gIG1hcmdpbi1sZWZ0OiA3cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogN3JlbSAhaW1wb3J0YW50OyB9XG5cbi5tLTcge1xuICBtYXJnaW46IDdyZW0gIWltcG9ydGFudDsgfVxuXG4ubXQtOCB7XG4gIG1hcmdpbi10b3A6IDhyZW0gIWltcG9ydGFudDsgfVxuXG4ubWItOCB7XG4gIG1hcmdpbi1ib3R0b206IDhyZW0gIWltcG9ydGFudDsgfVxuXG4ubXItOCB7XG4gIG1hcmdpbi1yaWdodDogOHJlbSAhaW1wb3J0YW50OyB9XG5cbi5tbC04IHtcbiAgbWFyZ2luLWxlZnQ6IDhyZW0gIWltcG9ydGFudDsgfVxuXG4ubXktOCB7XG4gIG1hcmdpbi10b3A6IDhyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogOHJlbSAhaW1wb3J0YW50OyB9XG5cbi5teC04IHtcbiAgbWFyZ2luLWxlZnQ6IDhyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiA4cmVtICFpbXBvcnRhbnQ7IH1cblxuLm0tOCB7XG4gIG1hcmdpbjogOHJlbSAhaW1wb3J0YW50OyB9XG5cbi5tdC05IHtcbiAgbWFyZ2luLXRvcDogOXJlbSAhaW1wb3J0YW50OyB9XG5cbi5tYi05IHtcbiAgbWFyZ2luLWJvdHRvbTogOXJlbSAhaW1wb3J0YW50OyB9XG5cbi5tci05IHtcbiAgbWFyZ2luLXJpZ2h0OiA5cmVtICFpbXBvcnRhbnQ7IH1cblxuLm1sLTkge1xuICBtYXJnaW4tbGVmdDogOXJlbSAhaW1wb3J0YW50OyB9XG5cbi5teS05IHtcbiAgbWFyZ2luLXRvcDogOXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiA5cmVtICFpbXBvcnRhbnQ7IH1cblxuLm14LTkge1xuICBtYXJnaW4tbGVmdDogOXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDlyZW0gIWltcG9ydGFudDsgfVxuXG4ubS05IHtcbiAgbWFyZ2luOiA5cmVtICFpbXBvcnRhbnQ7IH1cblxuLm10LTEwIHtcbiAgbWFyZ2luLXRvcDogMTByZW0gIWltcG9ydGFudDsgfVxuXG4ubWItMTAge1xuICBtYXJnaW4tYm90dG9tOiAxMHJlbSAhaW1wb3J0YW50OyB9XG5cbi5tci0xMCB7XG4gIG1hcmdpbi1yaWdodDogMTByZW0gIWltcG9ydGFudDsgfVxuXG4ubWwtMTAge1xuICBtYXJnaW4tbGVmdDogMTByZW0gIWltcG9ydGFudDsgfVxuXG4ubXktMTAge1xuICBtYXJnaW4tdG9wOiAxMHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxMHJlbSAhaW1wb3J0YW50OyB9XG5cbi5teC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDEwcmVtICFpbXBvcnRhbnQ7IH1cblxuLm0tMTAge1xuICBtYXJnaW46IDEwcmVtICFpbXBvcnRhbnQ7IH1cblxuLmhhbGYtcm91bmRlZC1ib3JkZXIge1xuICBib3JkZXItcmFkaXVzOiAxOHB4ICFpbXBvcnRhbnQ7IH1cblxuLnJvdGF0ZS05MCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG4ucm90YXRlLTE4MCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLnJvdGF0ZS0yNzAge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG5cbi5zaGFkZXItYmxhY2stLTEwIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4uc2hhZGVyLWxpZ2h0LS0xMCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cblxuLnNoYWRlci1ibGFjay0tMTAtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLnNoYWRlci1saWdodC0tMTAtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cblxuLnNoYWRlci1ibGFjay0tMjAge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5zaGFkZXItbGlnaHQtLTIwIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuXG4uc2hhZGVyLWJsYWNrLS0yMC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4uc2hhZGVyLWxpZ2h0LS0yMC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuXG4uc2hhZGVyLWJsYWNrLS0zMCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuLnNoYWRlci1saWdodC0tMzAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9XG5cbi5zaGFkZXItYmxhY2stLTMwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpOyB9XG5cbi5zaGFkZXItbGlnaHQtLTMwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9XG5cbi5zaGFkZXItYmxhY2stLTQwIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgfVxuXG4uc2hhZGVyLWxpZ2h0LS00MCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7IH1cblxuLnNoYWRlci1ibGFjay0tNDAtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7IH1cblxuLnNoYWRlci1saWdodC0tNDAtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7IH1cblxuLnNoYWRlci1ibGFjay0tNTAge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG5cbi5zaGFkZXItbGlnaHQtLTUwIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuXG4uc2hhZGVyLWJsYWNrLS01MC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuXG4uc2hhZGVyLWxpZ2h0LS01MC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuXG4uc2hhZGVyLWJsYWNrLS02MCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7IH1cblxuLnNoYWRlci1saWdodC0tNjAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpOyB9XG5cbi5zaGFkZXItYmxhY2stLTYwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG5cbi5zaGFkZXItbGlnaHQtLTYwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpOyB9XG5cbi5zaGFkZXItYmxhY2stLTcwIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuXG4uc2hhZGVyLWxpZ2h0LS03MCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cblxuLnNoYWRlci1ibGFjay0tNzAtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cblxuLnNoYWRlci1saWdodC0tNzAtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cblxuLnNoYWRlci1ibGFjay0tODAge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOyB9XG5cbi5zaGFkZXItbGlnaHQtLTgwIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsgfVxuXG4uc2hhZGVyLWJsYWNrLS04MC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsgfVxuXG4uc2hhZGVyLWxpZ2h0LS04MC1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsgfVxuXG4uc2hhZGVyLWJsYWNrLS05MCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cblxuLnNoYWRlci1saWdodC0tOTAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOyB9XG5cbi5zaGFkZXItYmxhY2stLTkwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG5cbi5zaGFkZXItbGlnaHQtLTkwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOyB9XG5cbi5zaGFkZXItYmxhY2stLTEwMCB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4uc2hhZGVyLWxpZ2h0LS0xMDAge1xuICBjb2xvcjogd2hpdGU7IH1cblxuLnNoYWRlci1ibGFjay0tMTAwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IH1cblxuLnNoYWRlci1saWdodC0tMTAwLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuLnotaW5kZXgtMSB7XG4gIHotaW5kZXg6IDE7IH1cblxuLnotaW5kZXgtMiB7XG4gIHotaW5kZXg6IDI7IH1cblxuLnotaW5kZXgtMyB7XG4gIHotaW5kZXg6IDM7IH1cblxuLnotaW5kZXgtNCB7XG4gIHotaW5kZXg6IDQ7IH1cblxuLnotaW5kZXgtNSB7XG4gIHotaW5kZXg6IDU7IH1cblxuLnotaW5kZXgtNiB7XG4gIHotaW5kZXg6IDY7IH1cblxuLnotaW5kZXgtNyB7XG4gIHotaW5kZXg6IDc7IH1cblxuLnotaW5kZXgtOCB7XG4gIHotaW5kZXg6IDg7IH1cblxuLnotaW5kZXgtOSB7XG4gIHotaW5kZXg6IDk7IH1cblxuLnotaW5kZXgtMTAge1xuICB6LWluZGV4OiAxMDsgfVxuXG4uei1pbmRleC0xMSB7XG4gIHotaW5kZXg6IDExOyB9XG5cbi56LWluZGV4LTEyIHtcbiAgei1pbmRleDogMTI7IH1cblxuLnotaW5kZXgtMTMge1xuICB6LWluZGV4OiAxMzsgfVxuXG4uei1pbmRleC0xNCB7XG4gIHotaW5kZXg6IDE0OyB9XG5cbi56LWluZGV4LTE1IHtcbiAgei1pbmRleDogMTU7IH1cblxuLnotaW5kZXgtMTYge1xuICB6LWluZGV4OiAxNjsgfVxuXG4uei1pbmRleC0xNyB7XG4gIHotaW5kZXg6IDE3OyB9XG5cbi56LWluZGV4LTE4IHtcbiAgei1pbmRleDogMTg7IH1cblxuLnotaW5kZXgtMTkge1xuICB6LWluZGV4OiAxOTsgfVxuXG4uei1pbmRleC0yMCB7XG4gIHotaW5kZXg6IDIwOyB9XG5cbi5ib3gtNSB7XG4gIHdpZHRoOiA1cHg7XG4gIG1pbi13aWR0aDogNXB4O1xuICBoZWlnaHQ6IDVweDsgfVxuXG4uYm94LTEwIHtcbiAgd2lkdGg6IDEwcHg7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4OyB9XG5cbi5ib3gtMTUge1xuICB3aWR0aDogMTVweDtcbiAgbWluLXdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7IH1cblxuLmJveC0yMCB7XG4gIHdpZHRoOiAyMHB4O1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDsgfVxuXG4uYm94LTI1IHtcbiAgd2lkdGg6IDI1cHg7XG4gIG1pbi13aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4OyB9XG5cbi5ib3gtMzAge1xuICB3aWR0aDogMzBweDtcbiAgbWluLXdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7IH1cblxuLmJveC0zNSB7XG4gIHdpZHRoOiAzNXB4O1xuICBtaW4td2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMzVweDsgfVxuXG4uYm94LTQwIHtcbiAgd2lkdGg6IDQwcHg7XG4gIG1pbi13aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4OyB9XG5cbi5ib3gtNDUge1xuICB3aWR0aDogNDVweDtcbiAgbWluLXdpZHRoOiA0NXB4O1xuICBoZWlnaHQ6IDQ1cHg7IH1cblxuLmJveC01MCB7XG4gIHdpZHRoOiA1MHB4O1xuICBtaW4td2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDsgfVxuXG4uYm94LTU1IHtcbiAgd2lkdGg6IDU1cHg7XG4gIG1pbi13aWR0aDogNTVweDtcbiAgaGVpZ2h0OiA1NXB4OyB9XG5cbi5ib3gtNjAge1xuICB3aWR0aDogNjBweDtcbiAgbWluLXdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7IH1cblxuLmJveC02NSB7XG4gIHdpZHRoOiA2NXB4O1xuICBtaW4td2lkdGg6IDY1cHg7XG4gIGhlaWdodDogNjVweDsgfVxuXG4uYm94LTcwIHtcbiAgd2lkdGg6IDcwcHg7XG4gIG1pbi13aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA3MHB4OyB9XG5cbi5ib3gtNzUge1xuICB3aWR0aDogNzVweDtcbiAgbWluLXdpZHRoOiA3NXB4O1xuICBoZWlnaHQ6IDc1cHg7IH1cblxuLmJveC04MCB7XG4gIHdpZHRoOiA4MHB4O1xuICBtaW4td2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDsgfVxuXG4uYm94LTg1IHtcbiAgd2lkdGg6IDg1cHg7XG4gIG1pbi13aWR0aDogODVweDtcbiAgaGVpZ2h0OiA4NXB4OyB9XG5cbi5ib3gtOTAge1xuICB3aWR0aDogOTBweDtcbiAgbWluLXdpZHRoOiA5MHB4O1xuICBoZWlnaHQ6IDkwcHg7IH1cblxuLmJveC05NSB7XG4gIHdpZHRoOiA5NXB4O1xuICBtaW4td2lkdGg6IDk1cHg7XG4gIGhlaWdodDogOTVweDsgfVxuXG4uYm94LTEwMCB7XG4gIHdpZHRoOiAxMDBweDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDsgfVxuXG4uYm94LTEwNSB7XG4gIHdpZHRoOiAxMDVweDtcbiAgbWluLXdpZHRoOiAxMDVweDtcbiAgaGVpZ2h0OiAxMDVweDsgfVxuXG4uYm94LTExMCB7XG4gIHdpZHRoOiAxMTBweDtcbiAgbWluLXdpZHRoOiAxMTBweDtcbiAgaGVpZ2h0OiAxMTBweDsgfVxuXG4uYm94LTExNSB7XG4gIHdpZHRoOiAxMTVweDtcbiAgbWluLXdpZHRoOiAxMTVweDtcbiAgaGVpZ2h0OiAxMTVweDsgfVxuXG4uYm94LTEyMCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgbWluLXdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAxMjBweDsgfVxuXG4uYm94LTEyNSB7XG4gIHdpZHRoOiAxMjVweDtcbiAgbWluLXdpZHRoOiAxMjVweDtcbiAgaGVpZ2h0OiAxMjVweDsgfVxuXG4uYm94LTEzMCB7XG4gIHdpZHRoOiAxMzBweDtcbiAgbWluLXdpZHRoOiAxMzBweDtcbiAgaGVpZ2h0OiAxMzBweDsgfVxuXG4uYm94LTEzNSB7XG4gIHdpZHRoOiAxMzVweDtcbiAgbWluLXdpZHRoOiAxMzVweDtcbiAgaGVpZ2h0OiAxMzVweDsgfVxuXG4uYm94LTE0MCB7XG4gIHdpZHRoOiAxNDBweDtcbiAgbWluLXdpZHRoOiAxNDBweDtcbiAgaGVpZ2h0OiAxNDBweDsgfVxuXG4uYm94LTE0NSB7XG4gIHdpZHRoOiAxNDVweDtcbiAgbWluLXdpZHRoOiAxNDVweDtcbiAgaGVpZ2h0OiAxNDVweDsgfVxuXG4uYm94LTE1MCB7XG4gIHdpZHRoOiAxNTBweDtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAxNTBweDsgfVxuXG4uYm94LTE1NSB7XG4gIHdpZHRoOiAxNTVweDtcbiAgbWluLXdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxNTVweDsgfVxuXG4uYm94LTE2MCB7XG4gIHdpZHRoOiAxNjBweDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgaGVpZ2h0OiAxNjBweDsgfVxuXG4uYm94LTE2NSB7XG4gIHdpZHRoOiAxNjVweDtcbiAgbWluLXdpZHRoOiAxNjVweDtcbiAgaGVpZ2h0OiAxNjVweDsgfVxuXG4uYm94LTE3MCB7XG4gIHdpZHRoOiAxNzBweDtcbiAgbWluLXdpZHRoOiAxNzBweDtcbiAgaGVpZ2h0OiAxNzBweDsgfVxuXG4uYm94LTE3NSB7XG4gIHdpZHRoOiAxNzVweDtcbiAgbWluLXdpZHRoOiAxNzVweDtcbiAgaGVpZ2h0OiAxNzVweDsgfVxuXG4uYm94LTE4MCB7XG4gIHdpZHRoOiAxODBweDtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgaGVpZ2h0OiAxODBweDsgfVxuXG4uYm94LTE4NSB7XG4gIHdpZHRoOiAxODVweDtcbiAgbWluLXdpZHRoOiAxODVweDtcbiAgaGVpZ2h0OiAxODVweDsgfVxuXG4uYm94LTE5MCB7XG4gIHdpZHRoOiAxOTBweDtcbiAgbWluLXdpZHRoOiAxOTBweDtcbiAgaGVpZ2h0OiAxOTBweDsgfVxuXG4uYm94LTE5NSB7XG4gIHdpZHRoOiAxOTVweDtcbiAgbWluLXdpZHRoOiAxOTVweDtcbiAgaGVpZ2h0OiAxOTVweDsgfVxuXG4uYm94LTIwMCB7XG4gIHdpZHRoOiAyMDBweDtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAyMDBweDsgfVxuXG4uYmFja2dyb3VuZC1pbWFnZSB7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwO1xuICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uYmFja2dyb3VuZC1pbWFnZS1jb250YWluLCAuYmFja2dyb3VuZC1pbWFnZS1jb3ZlciB7XG4gIGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmJhY2tncm91bmQtaW1hZ2UtY29udGFpbiB7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50OyB9XG5cbi5iYWNrZ3JvdW5kLWltYWdlLWNvdmVyIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50OyB9XG5cbi5vdXRsaW5lLW5vbmUge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLm92ZXJmbG93LXZpc2libMOrIHtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsgfVxuXG4uYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi53LTEwMCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4uY3NzLm1hcCAqL1xuLnRvZ2dsZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0LCBvcGFjaXR5IDMwMG1zIGVhc2UtaW4tb3V0O1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogaGVpZ2h0LCBvcGFjaXR5OyB9XG4gIC50b2dnbGUtY29udGVudC5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4jSW5kZWVkQWR2YW5jZWRTZWFyY2gsIC5UYXJnZXRlZFJlZ2lvbiwgI1N1YlJlZ2lvbkhvbGRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRyYW5zaXRpb246IHdpZHRoLCBoZWlnaHQsIG9wYWNpdHkgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIHdpbGwtY2hhbmdlOiB3aWR0aCwgaGVpZ2h0LCBvcGFjaXR5OyB9XG4gICNJbmRlZWRBZHZhbmNlZFNlYXJjaC5hY3RpdmUsIC5UYXJnZXRlZFJlZ2lvbi5hY3RpdmUsICNTdWJSZWdpb25Ib2xkZXIuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87IH1cblxuLypcclxuICAgIElFMTEgRklYRVNcclxuKi9cbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIGJvZHkge1xuICAgIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLm1kYy10aGVtZS0tb24tc3VyZmFjZSAuam9pbi1pY29uIHtcbiAgICBsZWZ0OiA1cHg7IH1cbiAgLm1kYy1tZW51LWFic29sdXRlIHtcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgIHdpZHRoOiA5NSU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBmb290ZXIge1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4OyB9XG4gIC5tZGMtZGlhbG9nX19jb250YWluZXIsXG4gIC5tZGMtZGlhbG9nX19zdXJmYWNlIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCB7XG4gIGFzaWRlLCBbcm9sZT1cIm5hdmlnYXRpb25cIl0sIFtyb2xlPVwiYmFubmVyXCJdLCBbcm9sZT1cImFsZXJ0ZGlhbG9nXCJdLCBbcm9sZT1cIm1lbnViYXJcIl0sIFtyb2xlPVwiYnV0dG9uXCJdLCBbcm9sZT1cInN0YXR1c1wiXSwgI21hcCwgZm9vdGVyLCAubG9hZGVyLXdyYXBwZXIsIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssIDo6LXdlYmtpdC1zY3JvbGxiYXIsXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IH1cbiAgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tLXAtMCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9IH1cblxuLyojIHNvdXJjZU1hcHBpbmdVUkw9bWFpbi5jc3MubWFwICovXG4iLCIvKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0LyBcclxuICAgdjIuMCB8IDIwMTEwMTI2XHJcbiAgIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXHJcbiovXHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcclxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXHJcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXHJcbmIsIHUsIGksIGNlbnRlcixcclxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcclxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxyXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgXHJcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgXHJcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxyXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGJvcmRlcjogMDtcclxuXHRmb250LXNpemU6IDEwMCU7XHJcblx0Zm9udDogaW5oZXJpdDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xyXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBcclxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxufVxyXG5ib2R5IHtcclxuXHRsaW5lLWhlaWdodDogMTtcclxufVxyXG5vbCwgdWwge1xyXG5cdGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuYmxvY2txdW90ZSwgcSB7XHJcblx0cXVvdGVzOiBub25lO1xyXG59XHJcbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxyXG5xOmJlZm9yZSwgcTphZnRlciB7XHJcblx0Y29udGVudDogJyc7XHJcblx0Y29udGVudDogbm9uZTtcclxufVxyXG50YWJsZSB7XHJcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuXHRib3JkZXItc3BhY2luZzogMDtcclxufSIsIu+7vy8vXHJcbi8vRk9OVCBBV0VTT01FXHJcbi8vXHJcbiRmYS1mb250LXBhdGg6IFwiL3dlYmZvbnRzXCI7XHJcbi8vXHJcbi8vIEJPT1RTVFJBUCBDT05GSUdcclxuLy9cclxuJGVuYWJsZS1ncmFkaWVudHMgOiBmYWxzZTtcclxuJGVuYWJsZS1jYXJldDogdHJ1ZSAhZ2xvYmFsO1xyXG4kZW5hYmxlLXJvdW5kZWQ6IHRydWUgIWdsb2JhbDtcclxuJGVuYWJsZS1zaGFkb3dzOiBmYWxzZSAhZ2xvYmFsO1xyXG4kZW5hYmxlLWdyYWRpZW50czogZmFsc2UgIWdsb2JhbDtcclxuJGVuYWJsZS10cmFuc2l0aW9uczogdHJ1ZSAhZ2xvYmFsO1xyXG4kZW5hYmxlLWhvdmVyLW1lZGlhLXF1ZXJ5OiBmYWxzZSAhZ2xvYmFsOyAvLyBEZXByZWNhdGVkLCBubyBsb25nZXIgYWZmZWN0cyBhbnkgY29tcGlsZWQgQ1NTXHJcbiRlbmFibGUtZ3JpZC1jbGFzc2VzOiB0cnVlICFnbG9iYWw7XHJcbiRlbmFibGUtcHJpbnQtc3R5bGVzOiB0cnVlICFnbG9iYWw7XHJcbi8vXHJcbi8vVkFSIENPTE9SU1xyXG4vL1xyXG4kd2hpdGU6ICNmZmY7XHJcbiRncmF5LTEwMDogI2Y4ZjlmYSAhZ2xvYmFsO1xyXG4kZ3JheS0yMDA6ICNlOWVjZWYgIWdsb2JhbDtcclxuJGdyYXktMzAwOiAjZGVlMmU2ICFnbG9iYWw7XHJcbiRncmF5LTQwMDogI2NlZDRkYSAhZ2xvYmFsO1xyXG4kZ3JheS01MDA6ICNhZGI1YmQgIWdsb2JhbDtcclxuJGdyYXktNjAwOiAjNmM3NTdkICFnbG9iYWw7XHJcbiRncmF5LTcwMDogIzQ5NTA1NyAhZ2xvYmFsO1xyXG4kZ3JheS04MDA6ICMzNDNhNDAgIWdsb2JhbDtcclxuJGdyYXktOTAwOiAjMjEyNTI5ICFnbG9iYWw7XHJcbiRibGFjazogIzAwMCAhZ2xvYmFsO1xyXG4kYmx1ZTogIzAwNTQ5OSAhZ2xvYmFsO1xyXG4kaW5kaWdvOiAjNjYxMGYyICFnbG9iYWw7XHJcbiRwdXJwbGU6ICM0NTI3QTAgIWdsb2JhbDtcclxuJHBpbms6ICNlODNlOGMgIWdsb2JhbDtcclxuJHJlZDogI0RCMjcyNiAhZ2xvYmFsO1xyXG4kb3JhbmdlOiAjZmQ3ZTE0ICFnbG9iYWw7XHJcbiR5ZWxsb3c6ICNmZmMxMDcgIWdsb2JhbDtcclxuJGdyZWVuOiAjMjhhNzQ1ICFnbG9iYWw7XHJcbiR0ZWFsOiAjMjBjOTk3ICFnbG9iYWw7XHJcbiRjeWFuOiAjMTdhMmI4ICFnbG9iYWw7XHJcbiRodW1hbm8tcmVkOiAjYWEzZjNiICFnbG9iYWw7XHJcbiR0ZWFsOiAjMDE4Nzg2ICFnbG9iYWw7XHJcbiRuYXZ5OiAjMDAwMDgwICFnbG9iYWw7XHJcbi8vXHJcbi8vIFRIRU1FIENPTE9SU1xyXG4vL1xyXG4kcHJpbWFyeTogJGdyYXktODAwICFnbG9iYWw7XHJcbiRzZWNvbmRhcnk6ICRncmF5LTYwMCAhZ2xvYmFsO1xyXG4kc3VjY2VzczogJGdyZWVuICFnbG9iYWw7XHJcbiRpbmZvOiAkY3lhbiAhZ2xvYmFsO1xyXG4kd2FybmluZzogJHllbGxvdyAhZ2xvYmFsO1xyXG4kZGFuZ2VyOiAkcmVkICFnbG9iYWw7XHJcbiRsaWdodDogJGdyYXktMTAwICFnbG9iYWw7XHJcbiRsaWdodC1ncmF5OiAkZ3JheS00MDAgIWdsb2JhbDtcclxuJGRhcms6ICRncmF5LTgwMCAhZ2xvYmFsO1xyXG4kZmFjZWJvb2stY29sb3I6ICMzQjU5OTggIWdsb2JhbDtcclxuJGxpbmtlZGluLWNvbG9yOiAjMDA3N0I1ICFnbG9iYWw7XHJcbiR0d2l0dGVyLWNvbG9yOiAjMURBMUYyICFnbG9iYWw7XHJcbiRnb29nbGUtY29sb3I6ICNEQjQ0MzcgIWdsb2JhbDtcclxuJHBpbnRlcmVzdC1jb2xvcjogI0JEMDgxQyAhZ2xvYmFsO1xyXG4kaW5zdGFncmFtLWNvbG9yOiAjMjYyNjI2ICFnbG9iYWw7XHJcbiRmYWRvcS1jb2xvcjogIzAwNTQ5OSAhZ2xvYmFsO1xyXG4kZmFkb3EtY29sb3Itc2Vjb25kYXJ5OiAjMzM3NEFBICFnbG9iYWw7XHJcbiRlcy1jb2xvci1wcmltYXJ5OiAjQkQyNjM0ICFnbG9iYWw7XHJcbiRlcy1jb2xvci1zZWNvbmRhcnk6ICMxMTUwNzAgIWdsb2JhbDtcclxuXHJcbi8vXHJcbi8vIFNIQURPV1NcclxuLy9cclxuJHNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XHJcbiRtYXRlcmlhbC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDVweCAwIHJnYmEoMCwwLDAsMC4xMiksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4yKTtcclxuJGhvdmVyLXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLCAwIDVweCA1cHggMCByZ2JhKDAsMCwwLC4xMiksIDAgN3B4IDE1cHggLTJweCByZ2JhKDAsMCwwLC4yNSk7XHJcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4uY3NzLm1hcCAqL1xyXG5cclxuJHRleHQtcHJpbWFyeS1vbi1saWdodDogcmdiYSgkZGFyaywwLjc1KTtcclxuJHRleHQtcHJpbWFyeS1vbi1kYXJrOiByZ2JhKCRsaWdodCwgMC43NSk7XHJcblxyXG4kdGV4dC1zZWNvbmRhcnktb24tbGlnaHQ6IHJnYmEoJGRhcmssMC43NSk7XHJcbiR0ZXh0LXNlY29uZGFyeS1vbi1kYXJrOiByZ2JhKCRsaWdodCwgMC43NSk7XHJcblxyXG5cclxuXHJcbiRtZGMtdGhlbWUtcHJpbWFyeTogIzIxMjEyMTtcclxuJG1kYy10aGVtZS1zZWNvbmRhcnk6ICM0MTVFN0U7XHJcbiRtZGMtdGhlbWUtb24tcHJpbWFyeTogcmdiYSgkbGlnaHQsIDAuNzUpO1xyXG4kbWRjLXRoZW1lLW9uLXNlY29uZGFyeTogcmdiYSgkbGlnaHQsIDAuNzUpO1xyXG5cclxuXHJcblxyXG5cclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zaGFwZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWJ1dHRvbi1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gYnV0dG9uIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWJ1dHRvbi1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtYnV0dG9uLXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgYnV0dG9uXG4gIC5tZGMtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWJhc2VfKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1zaGFwZS1yYWRpdXMoc21hbGwsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50LCAkcXVlcnkpO1xuXG4gICAgLy8gVGhlIGljb24gQ1NTIGNsYXNzIG92ZXJyaWRlcyBzdHlsZXMgZGVmaW5lZCBpbiB0aGUgLm1hdGVyaWFsLWljb25zIENTU1xuICAgIC8vIGNsYXNzLCB3aGljaCBpcyBsb2FkZWQgc2VwYXJhdGVseSBzbyB0aGUgb3JkZXIgb2YgQ1NTIGRlZmluaXRpb25zIGlzIG5vdFxuICAgIC8vIGd1YXJhbnRlZWQuIFRoZXJlZm9yZSwgaW5jcmVhc2Ugc3BlY2lmaXR5IGJ5IG5lc3RpbmcgdGhpcyBjbGFzcyB0byBlbnN1cmVcbiAgICAvLyBvdmVycmlkZXMgYXBwbHkuXG4gICAgLm1kYy1idXR0b25fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbl9faWNvbl87XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbl9faWNvbi10cmFpbGluZ187XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuICBzdmcubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tc3ZnXztcbiAgICB9XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tcmFpc2VkLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCxcbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIHtcbiAgICAubWRjLWJ1dHRvbl9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAvLyBJY29ucyBpbnNpZGUgY29udGFpbmVkIGJ1dHRvbnMgaGF2ZSBkaWZmZXJlbnQgc3R5bGVzIGR1ZSB0byBpbmNyZWFzZWQgYnV0dG9uIHBhZGRpbmdcbiAgICAgICAgQGluY2x1ZGUgbWRjLWJ1dHRvbl9faWNvbi1jb250YWluZWRfO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtYnV0dG9uX19sYWJlbCArIC5tZGMtYnV0dG9uX19pY29uIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1idXR0b25fX2ljb24tY29udGFpbmVkLXRyYWlsaW5nXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tcmFpc2VkLFxuICAubWRjLWJ1dHRvbi0tdW5lbGV2YXRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tZmlsbGVkXygkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1idXR0b24tY29udGFpbmVyLWZpbGwtY29sb3IocHJpbWFyeSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWluay1jb2xvcihvbi1wcmltYXJ5LCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi0tcmFpc2VkXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b24tLW91dGxpbmVkIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLS1vdXRsaW5lZF8oJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLW91dGxpbmUtd2lkdGgoJG1kYy1idXR0b24tb3V0bGluZWQtYm9yZGVyLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1vdXRsaW5lLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gIH1cblxuICAubWRjLWJ1dHRvbi0tZGVuc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLS1kZW5zZV87XG4gICAgfVxuICB9XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIGJ1dHRvbiBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1idXR0b24tY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWJ1dHRvbi1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHByaW1hcnksIGZhbHNlLCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1idXR0b24tLXJhaXNlZCxcbiAgLm1kYy1idXR0b24tLXVuZWxldmF0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMob24tcHJpbWFyeSwgZmFsc2UsICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tZmlsbGVkLWFjY2Vzc2libGUoJGNvbnRhaW5lci1maWxsLWNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmaWxsLXRvbmU6IG1kYy10aGVtZS10b25lKCRjb250YWluZXItZmlsbC1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkY29udGFpbmVyLWZpbGwtY29sb3IsICRxdWVyeSk7XG5cbiAgQGlmICgkZmlsbC10b25lID09IFwiZGFya1wiKSB7XG4gICAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyh0ZXh0LXByaW1hcnktb24tZGFyaywgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtZGMtYnV0dG9uLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyh0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1jb250YWluZXItZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLy8gOm5vdCg6ZGlzYWJsZWQpIGlzIHVzZWQgdG8gc3VwcG9ydCBsaW5rIHN0eWxlZCBhcyBidXR0b25cbiAgLy8gYXMgbGluayBkb2VzIG5vdCBzdXBwb3J0IDplbmFibGVkIHN0eWxlXG4gICY6bm90KDpkaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1vdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLWljb24tY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICY6bm90KDpkaXNhYmxlZCkgLm1kYy1idXR0b25fX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gICY6bm90KDpkaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoXG4gICAgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy1idXR0b24taGVpZ2h0LCAkcmFkaXVzKSxcbiAgICAkcnRsLXJlZmxleGl2ZSxcbiAgICAkcXVlcnk6ICRxdWVyeVxuICApO1xuXG4gICYubWRjLWJ1dHRvbi0tZGVuc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoXG4gICAgICBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLWRlbnNlLWJ1dHRvbi1oZWlnaHQsICRyYWRpdXMpLFxuICAgICAgJHJ0bC1yZWZsZXhpdmUsXG4gICAgICAkcXVlcnk6ICRxdWVyeVxuICAgICk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvLyAkcGFkZGluZyBzaG91bGQgYmUgYSBzaW5nbGUgdmFsdWU7IGVuZm9yY2UgaXQgYnkgc3BlY2lmeWluZyBhbGwgNCBzaWRlcyBpbiB0aGUgb3V0cHV0XG4gICAgcGFkZGluZzogMCAkcGFkZGluZyAwICRwYWRkaW5nO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLW91dGxpbmUtd2lkdGgoXG4gICRvdXRsaW5lLXdpZHRoLFxuICAkcGFkZGluZzogJG1kYy1idXR0b24tY29udGFpbmVkLWhvcml6b250YWwtcGFkZGluZyxcbiAgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKVxuKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gIC8vIE5vdGU6IEFkanVzdCBwYWRkaW5nIHRvIG1haW50YWluIGNvbnNpc3RlbnQgd2lkdGggd2l0aCBub24tb3V0bGluZWQgYnV0dG9uc1xuICAkcGFkZGluZy12YWx1ZTogbWF4KCRwYWRkaW5nIC0gJG91dGxpbmUtd2lkdGgsIDApO1xuXG4gIEBpbmNsdWRlIG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nLXZhbHVlLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyLXdpZHRoOiAkb3V0bGluZS13aWR0aDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi1iYXNlXygkcXVlcnkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYnV0dG9uLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZygkbWRjLWJ1dHRvbi1ob3Jpem9udGFsLXBhZGRpbmcsICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6ICRtZGMtYnV0dG9uLWhlaWdodDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcblxuICAgICAgY29sb3I6ICRtZGMtYnV0dG9uLWRpc2FibGVkLWluay1jb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uX19pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIHJpZ2h0LCA4cHgpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbl9faWNvbi10cmFpbGluZ18ge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgpO1xufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbl9faWNvbi1zdmdfIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbl9faWNvbi1jb250YWluZWRfIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCAtNHB4LCA4cHgpO1xufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbl9faWNvbi1jb250YWluZWQtdHJhaWxpbmdfIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCA4cHgsIC00cHgpO1xufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi0tb3V0bGluZWRfKCRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBib3JkZXItY29sb3I6ICRtZGMtYnV0dG9uLWRpc2FibGVkLWluay1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1idXR0b24tLWZpbGxlZF8oJHF1ZXJ5KSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1idXR0b24taG9yaXpvbnRhbC1wYWRkaW5nKCRtZGMtYnV0dG9uLWNvbnRhaW5lZC1ob3Jpem9udGFsLXBhZGRpbmcsICRxdWVyeSk7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjEyKTtcbiAgICAgIGNvbG9yOiAkbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtYnV0dG9uLS1yYWlzZWRfKCRxdWVyeSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDIsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdmFsdWUoKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWJ1dHRvbi0tZGVuc2VfKCkge1xuICBoZWlnaHQ6ICRtZGMtZGVuc2UtYnV0dG9uLWhlaWdodDtcbiAgZm9udC1zaXplOiAuODEyNXJlbTsgLy8gMTNzcFxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtdHlwb2dyYXBoeS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC5tZGMtdHlwb2dyYXBoeSB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZSgkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICBAZWFjaCAkc3R5bGUgaW4gbWFwLWtleXMoJG1kYy10eXBvZ3JhcGh5LXN0eWxlcykge1xuICAgIC5tZGMtdHlwb2dyYXBoeS0tI3skc3R5bGV9IHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KCRzdHlsZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXR5cG9ncmFwaHkpIHtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1kYy10eXBvZ3JhcGh5LWJhc2Uge1xuICAgICAgI3ska2V5fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHkoJHN0eWxlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcbiAgJHN0eWxlLXByb3BzOiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSk7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgI3skc3R5bGV9IGRvZXNuJ3QgZXhpc3QuIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLXR5cG9ncmFwaHktc3R5bGVzKX1cIjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkc3R5bGUtcHJvcHMge1xuICAgICAgI3ska2V5fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG4vLyBFbGVtZW50IG11c3QgYmUgYGRpc3BsYXk6IGJsb2NrYCBvciBgZGlzcGxheTogaW5saW5lLWJsb2NrYCBmb3IgdGhpcyB0byB3b3JrLlxuQG1peGluIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRkaXN0YW5jZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXN0cnV0XygkZGlzdGFuY2UpO1xuXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLWJvdHRvbSgkZGlzdGFuY2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIG1hcmdpbi1ib3R0b206IC0xICogJGRpc3RhbmNlO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1zdHJ1dF8oJGRpc3RhbmNlKTtcblxuICAgICAgdmVydGljYWwtYWxpZ246IC0xICogJGRpc3RhbmNlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtc3RydXRfKCRkaXN0YW5jZSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6ICRkaXN0YW5jZTtcbiAgY29udGVudDogXCJcIjtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuJG1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKFwiUm9ib3RvLCBzYW5zLXNlcmlmXCIpICFkZWZhdWx0O1xuXG4kbWRjLXR5cG9ncmFwaHktYmFzZTogKFxuICBmb250LWZhbWlseTogJG1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LFxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlLFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCxcbikgIWRlZmF1bHQ7XG5cbiRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXM6IChcbiAgdGhpbjogMTAwLFxuICBsaWdodDogMzAwLFxuICByZWd1bGFyOiA0MDAsXG4gIG1lZGl1bTogNTAwLFxuICBib2xkOiA3MDAsXG4gIGJsYWNrOiA5MDBcbikgIWRlZmF1bHQ7XG5cbiRtZGMtdHlwb2dyYXBoeS1zdHlsZXM6IG1kYy10eXBvZ3JhcGh5LXNldC1zdHlsZXNfKFxuICAkbWRjLXR5cG9ncmFwaHktYmFzZSxcbiAgKFxuICAgIGhlYWRsaW5lMTogKFxuICAgICAgZm9udC1zaXplOiA2cmVtLCAvLyA5NnNwXG4gICAgICBsaW5lLWhlaWdodDogNnJlbSxcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIGxpZ2h0KSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC0xLjUsIDYpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGhlYWRsaW5lMjogKFxuICAgICAgZm9udC1zaXplOiAzLjc1cmVtLCAvLyA2MHNwXG4gICAgICBsaW5lLWhlaWdodDogMy43NXJlbSxcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIGxpZ2h0KSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC0uNSwgMy43NSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgaGVhZGxpbmUzOiAoXG4gICAgICBmb250LXNpemU6IDNyZW0sIC8vIDQ4cHhcbiAgICAgIGxpbmUtaGVpZ2h0OiAzLjEyNXJlbSwgLy8gNTBweFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGhlYWRsaW5lNDogKFxuICAgICAgZm9udC1zaXplOiAyLjEyNXJlbSwgLy8gMzRzcFxuICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbSwgLy8gNDBzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguMjUsIDIuMTI1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBoZWFkbGluZTU6IChcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtLCAvLyAyNHNwXG4gICAgICBsaW5lLWhlaWdodDogMnJlbSwgLy8gMzJzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGhlYWRsaW5lNjogKFxuICAgICAgZm9udC1zaXplOiAxLjI1cmVtLCAvLyAyMHNwXG4gICAgICBsaW5lLWhlaWdodDogMnJlbSwgLy8gMzJzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgbWVkaXVtKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC4yNSwgMS4yNSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgc3VidGl0bGUxOiAoXG4gICAgICBmb250LXNpemU6IDFyZW0sIC8vIDE2c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtLCAvLyAyOHNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC4xNSwgMSksXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQsXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdFxuICAgICksXG4gICAgc3VidGl0bGUyOiAoXG4gICAgICBmb250LXNpemU6IC44NzVyZW0sIC8vIDE0c3BcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbSwgLy8gMjJzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgbWVkaXVtKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC4xLCAuODc1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBib2R5MTogKFxuICAgICAgZm9udC1zaXplOiAxcmVtLCAvLyAxNnNwXG4gICAgICBsaW5lLWhlaWdodDogMS41cmVtLCAvLyAyNHNwXG4gICAgICBmb250LXdlaWdodDogbWFwLWdldCgkbWRjLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtdmFsdWVzLCByZWd1bGFyKSxcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKC41LCAxKSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBib2R5MjogKFxuICAgICAgZm9udC1zaXplOiAuODc1cmVtLCAvLyAxNHNwXG4gICAgICBsaW5lLWhlaWdodDogMS4yNXJlbSwgLy8gMjBzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguMjUsIC44NzUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0LFxuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXRcbiAgICApLFxuICAgIGNhcHRpb246IChcbiAgICAgIGZvbnQtc2l6ZTogLjc1cmVtLCAvLyAxMnNwXG4gICAgICBsaW5lLWhlaWdodDogMS4yNXJlbSwgLy8gMjBzcFxuICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJG1kYy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXZhbHVlcywgcmVndWxhciksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXyguNCwgLjc1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdCxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0XG4gICAgKSxcbiAgICBidXR0b246IChcbiAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbSwgLy8gMTRzcFxuICAgICAgbGluZS1oZWlnaHQ6IDIuMjVyZW0sIC8vIDM2c3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIG1lZGl1bSksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXygxLjI1LCAuODc1KSxcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSxcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgICApLFxuICAgIG92ZXJsaW5lOiAoXG4gICAgICBmb250LXNpemU6IC43NXJlbSwgLy8gMTJzcFxuICAgICAgbGluZS1oZWlnaHQ6IDJyZW0sIC8vIDMyc3BcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIG1lZGl1bSksXG4gICAgICBsZXR0ZXItc3BhY2luZzogbWRjLXR5cG9ncmFwaHktZ2V0LWxldHRlci1zcGFjaW5nXygyLCAuNzUpLFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lLFxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZVxuICAgICksXG4gIClcbikgIWRlZmF1bHQ7XG4iLCJcbi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AZnVuY3Rpb24gbWRjLXR5cG9ncmFwaHktZ2V0LWdsb2JhbC12YXJpYWJsZV8oJHN0eWxlKSB7XG4gIEBpZiAkc3R5bGUgPT0gXCJoZWFkbGluZTFcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWhlYWRsaW5lMTtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJoZWFkbGluZTJcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWhlYWRsaW5lMjtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJoZWFkbGluZTNcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWhlYWRsaW5lMztcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJoZWFkbGluZTRcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWhlYWRsaW5lNDtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJoZWFkbGluZTVcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWhlYWRsaW5lNTtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJoZWFkbGluZTZcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWhlYWRsaW5lNjtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJzdWJ0aXRsZTFcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLXN1YnRpdGxlMTtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJzdWJ0aXRsZTJcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLXN1YnRpdGxlMjtcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gXCJib2R5MVwiIHtcbiAgICBAcmV0dXJuICRtZGMtdHlwb2dyYXBoeS1zdHlsZXMtYm9keTE7XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiYm9keTJcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWJvZHkyO1xuICB9IEBlbHNlIGlmICRzdHlsZSA9PSBcImNhcHRpb25cIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLWNhcHRpb247XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwiYnV0dG9uXCIge1xuICAgIEByZXR1cm4gJG1kYy10eXBvZ3JhcGh5LXN0eWxlcy1idXR0b247XG4gIH0gQGVsc2UgaWYgJHN0eWxlID09IFwib3ZlcmxpbmVcIiB7XG4gICAgQHJldHVybiAkbWRjLXR5cG9ncmFwaHktc3R5bGVzLW92ZXJsaW5lO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBtZGMtdHlwb2dyYXBoeS1zZXQtc3R5bGVzXygkYmFzZS1zdHlsZXMsICRzY2FsZS1zdHlsZXMpIHtcbiAgQGVhY2ggJHN0eWxlLCAkc3R5bGUtcHJvcHMgaW4gJHNjYWxlLXN0eWxlcyB7XG5cbiAgICAvLyBNZXJnZSBiYXNlIHByb3BlcnRpZXMgZm9yIGFsbCBzdHlsZXMuXG4gICAgJHN0eWxlLXByb3BzOiBtYXAtbWVyZ2UoJGJhc2Utc3R5bGVzLCAkc3R5bGUtcHJvcHMpO1xuXG4gICAgLy8gTWVyZ2UgZ2xvYmFsIG92ZXJyaWRlcyBvbnRvIGVhY2ggc3R5bGUuXG4gICAgQGlmIGdsb2JhbF92YXJpYWJsZV9leGlzdHModW5xdW90ZShcIm1kYy10eXBvZ3JhcGh5LXN0eWxlcy0jeyRzdHlsZX1cIikpIHtcbiAgICAgICRzdHlsZS1wcm9wczogbWFwLW1lcmdlKCRzdHlsZS1wcm9wcywgbWRjLXR5cG9ncmFwaHktZ2V0LWdsb2JhbC12YXJpYWJsZV8oI3skc3R5bGV9KSk7XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgb3JpZ2luYWwgc3R5bGVzIHdpdGggbmV3IHN0eWxlcy5cbiAgICAkc2NhbGUtc3R5bGVzOiBtYXAtbWVyZ2UoJHNjYWxlLXN0eWxlcywgKCN7JHN0eWxlfTogJHN0eWxlLXByb3BzKSk7XG4gIH1cblxuICBAcmV0dXJuICRzY2FsZS1zdHlsZXM7XG59XG5cbkBmdW5jdGlvbiBtZGMtdHlwb2dyYXBoeS1nZXQtbGV0dGVyLXNwYWNpbmdfKCR0cmFja2luZywgJGZvbnQtc2l6ZSkge1xuICBAcmV0dXJuICR0cmFja2luZyAvICgkZm9udC1zaXplICogMTYpICogMWVtO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtYnV0dG9uLWhlaWdodDogMzZweCAhZGVmYXVsdDtcbiRtZGMtYnV0dG9uLWhvcml6b250YWwtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuJG1kYy1idXR0b24tY29udGFpbmVkLWhvcml6b250YWwtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRtZGMtZGVuc2UtYnV0dG9uLWhlaWdodDogMzJweCAhZGVmYXVsdDtcbiRtZGMtYnV0dG9uLW91dGxpbmVkLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4kbWRjLWJ1dHRvbi1kaXNhYmxlZC1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zNykgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIC8vIEV2ZW4gaWYgJHJ0bC1yZWZsZXhpdmUgaXMgdHJ1ZSwgb25seSBlbWl0IFJUTCBzdHlsZXMgaWYgd2UgY2FuJ3QgZWFzaWx5IHRlbGwgdGhhdCB0aGUgZ2l2ZW4gcmFkaXVzIGlzIHN5bW1ldHJpY2FsXG4gICAgJG5lZWRzLWZsaXA6ICRydGwtcmVmbGV4aXZlIGFuZCBsZW5ndGgoJHJhZGl1cykgPiAxO1xuXG4gICAgQGlmICgkbmVlZHMtZmxpcCkge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgIH1cblxuICAgIGJvcmRlci1yYWRpdXM6IG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpO1xuXG4gICAgQGlmICgkbmVlZHMtZmxpcCkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogbWRjLXNoYXBlLWZsaXAtcmFkaXVzKG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBTaGFwZSBjYXRlZ29yaWVzXG4kbWRjLXNoYXBlLXNtYWxsLWNvbXBvbmVudC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRtZGMtc2hhcGUtbWVkaXVtLWNvbXBvbmVudC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRtZGMtc2hhcGUtbGFyZ2UtY29tcG9uZW50LXJhZGl1czogMCAhZGVmYXVsdDtcblxuLy8gU2hhcGUgY2F0ZWdvcnkgbWFwcGluZy5cbiRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzOiAoXG4gIHNtYWxsOiAkbWRjLXNoYXBlLXNtYWxsLWNvbXBvbmVudC1yYWRpdXMsXG4gIG1lZGl1bTogJG1kYy1zaGFwZS1tZWRpdW0tY29tcG9uZW50LXJhZGl1cyxcbiAgbGFyZ2U6ICRtZGMtc2hhcGUtbGFyZ2UtY29tcG9uZW50LXJhZGl1cyxcbikgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuXG5AbWl4aW4gbWRjLXRoZW1lLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgOnJvb3Qge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBlYWNoICRzdHlsZSBpbiBtYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcykge1xuICAgICAgICAtLW1kYy10aGVtZS0jeyRzdHlsZX06ICN7bWFwLWdldCgkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcywgJHN0eWxlKX07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJHN0eWxlIGluIG1hcC1rZXlzKCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzKSB7XG4gICAgQGlmICRzdHlsZSAhPSBcImJhY2tncm91bmRcIiBhbmQgJHN0eWxlICE9IFwic3VyZmFjZVwiIHtcbiAgICAgIC5tZGMtdGhlbWUtLSN7JHN0eWxlfSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJHN0eWxlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgLm1kYy10aGVtZS0tI3skc3R5bGV9IHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRzdHlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDU1MgcnVsZXMgZm9yIHVzaW5nIHByaW1hcnkgYW5kIHNlY29uZGFyeSAocGx1cyBsaWdodC9kYXJrIHZhcmlhbnRzKSBhcyBiYWNrZ3JvdW5kIGNvbG9ycy5cbiAgQGVhY2ggJHN0eWxlIGluIChcInByaW1hcnlcIiwgXCJzZWNvbmRhcnlcIikge1xuICAgIC5tZGMtdGhlbWUtLSN7JHN0eWxlfS1iZyB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRzdHlsZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgdGhlbWUgY29sb3Igc3R5bGUgdG8gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS5cbi8vICRwcm9wZXJ0eSBpcyB0eXBpY2FsbHkgY29sb3Igb3IgYmFja2dyb3VuZC1jb2xvciwgYnV0IGNhbiBiZSBhbnkgQ1NTIHByb3BlcnR5IHRoYXQgYWNjZXB0cyBjb2xvciB2YWx1ZXMuXG4vLyAkc3R5bGUgc2hvdWxkIGJlIG9uZSBvZiB0aGUgbWFwIGtleXMgaW4gJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMgKF92YXJpYWJsZXMuc2NzcyksIG9yIGEgY29sb3IgdmFsdWUuXG4vLyAkZWRnZU9wdE91dCBjb250cm9scyB3aGV0aGVyIHRvIGZlYXR1cmUtZGV0ZWN0IGFyb3VuZCBFZGdlIHRvIGF2b2lkIGVtaXR0aW5nIENTUyB2YXJpYWJsZXMgZm9yIGl0LFxuLy8gaW50ZW5kZWQgZm9yIHVzZSBpbiBjYXNlcyB3aGVyZSBpbnRlcmFjdGlvbnMgd2l0aCBwc2V1ZG8tZWxlbWVudCBzdHlsZXMgY2F1c2UgcHJvYmxlbXMgZHVlIHRvIEVkZ2UgYnVncy5cbkBtaXhpbiBtZGMtdGhlbWUtcHJvcCgkcHJvcGVydHksICRzdHlsZSwgJGltcG9ydGFudDogZmFsc2UsICRlZGdlT3B0T3V0OiBmYWxzZSkge1xuICBAaWYgbWRjLXRoZW1lLWlzLXZhci13aXRoLWZhbGxiYWNrXygkc3R5bGUpIHtcbiAgICBAaWYgJGltcG9ydGFudCB7XG4gICAgICAjeyRwcm9wZXJ0eX06IG1kYy10aGVtZS1nZXQtdmFyLWZhbGxiYWNrXygkc3R5bGUpICFpbXBvcnRhbnQ7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAjeyRwcm9wZXJ0eX06IG1kYy10aGVtZS12YXJfKCRzdHlsZSkgIWltcG9ydGFudDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICN7JHByb3BlcnR5fTogbWRjLXRoZW1lLWdldC12YXItZmFsbGJhY2tfKCRzdHlsZSk7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAjeyRwcm9wZXJ0eX06IG1kYy10aGVtZS12YXJfKCRzdHlsZSk7XG4gICAgfVxuICB9IEBlbHNlIGlmIG1kYy10aGVtZS1pcy12YWxpZC10aGVtZS1wcm9wLXZhbHVlXygkc3R5bGUpIHtcbiAgICBAaWYgJGltcG9ydGFudCB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICRzdHlsZSAhaW1wb3J0YW50O1xuICAgIH0gQGVsc2Uge1xuICAgICAgI3skcHJvcGVydHl9OiAkc3R5bGU7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpIHtcbiAgICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGU6ICcjeyRzdHlsZX0nLiBDaG9vc2Ugb25lIG9mOiAje21hcC1rZXlzKCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzKX1cIjtcbiAgICB9XG5cbiAgICAkdmFsdWU6IG1hcC1nZXQoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSk7XG5cbiAgICBAaWYgJGltcG9ydGFudCB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZSAhaW1wb3J0YW50O1xuXG4gICAgICBAaWYgJGVkZ2VPcHRPdXQge1xuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgICBAYXQtcm9vdCB7XG4gICAgICAgICAgLy8gSUUgMTEgZG9lc24ndCB1bmRlcnN0YW5kIHRoaXMgc3ludGF4IGFuZCBpZ25vcmVzIHRoZSBlbnRpcmUgYmxvY2suXG4gICAgICAgICAgLy8gRWRnZSB1bmRlcnN0YW5kcyB0aGlzIHN5bnRheCBhbmQgc2tpcHMgdGhlIGVudGlyZSBibG9jayB0byBhdm9pZCBhIG5hc3R5IDpiZWZvcmUvOmFmdGVyIHBzZXVkby1lbGVtZW50IGJ1Zy5cbiAgICAgICAgICAvLyBBbGwgb3RoZXIgYnJvd3NlcnMgYXBwbHkgdGhlIHN0eWxlcyB3aXRoaW4gdGhlIGJsb2NrLlxuICAgICAgICAgIEBzdXBwb3J0cyBub3QgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3Mvc2VsZWN0b3Itbm8tcmVkdW5kYW50LW5lc3Rpbmctc2VsZWN0b3JcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBzY3NzL3NlbGVjdG9yLW5vLXJlZHVuZGFudC1uZXN0aW5nLXNlbGVjdG9yXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG5cbiAgICAgIEBpZiAkZWRnZU9wdE91dCB7XG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gICAgICAgIEBhdC1yb290IHtcbiAgICAgICAgICAvLyBJRSAxMSBkb2Vzbid0IHVuZGVyc3RhbmQgdGhpcyBzeW50YXggYW5kIGlnbm9yZXMgdGhlIGVudGlyZSBibG9jay5cbiAgICAgICAgICAvLyBFZGdlIHVuZGVyc3RhbmRzIHRoaXMgc3ludGF4IGFuZCBza2lwcyB0aGUgZW50aXJlIGJsb2NrIHRvIGF2b2lkIGEgbmFzdHkgOmJlZm9yZS86YWZ0ZXIgcHNldWRvLWVsZW1lbnQgYnVnLlxuICAgICAgICAgIC8vIEFsbCBvdGhlciBicm93c2VycyBhcHBseSB0aGUgc3R5bGVzIHdpdGhpbiB0aGUgYmxvY2suXG4gICAgICAgICAgQHN1cHBvcnRzIG5vdCAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9zZWxlY3Rvci1uby1yZWR1bmRhbnQtbmVzdGluZy1zZWxlY3RvclxuICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgIC8qIEBhbHRlcm5hdGUgKi9cbiAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiB2YXIoLS1tZGMtdGhlbWUtI3skc3R5bGV9LCAkdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBzY3NzL3NlbGVjdG9yLW5vLXJlZHVuZGFudC1uZXN0aW5nLXNlbGVjdG9yXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICAgICN7JHByb3BlcnR5fTogdmFyKC0tbWRjLXRoZW1lLSN7JHN0eWxlfSwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBDcmVhdGVzIGEgcnVsZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB3aGVuIGFuIE1EQyBXZWIgY29tcG9uZW50IGlzIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbiBSVEwgbGF5b3V0LlxuLy9cbi8vIFVzYWdlIEV4YW1wbGU6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLyAgIGxlZnQ6IDA7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBsZWZ0OiBhdXRvO1xuLy8gICAgIHJpZ2h0OiAwO1xuLy8gICB9XG4vL1xuLy8gICAmX19iYXIge1xuLy8gICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4vLyAgICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtZm9vXCIpIHtcbi8vICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8gICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG4vL1xuLy8gLm1kYy1mb28tLW1vZCB7XG4vLyAgIHBhZGRpbmctbGVmdDogNHB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgcGFkZGluZy1sZWZ0OiBhdXRvO1xuLy8gICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gTm90ZSB0aGF0IHRoaXMgbWl4aW4gd29ya3MgYnkgY2hlY2tpbmcgZm9yIGFuIGFuY2VzdG9yIGVsZW1lbnQgd2l0aCBgW2Rpcj1cInJ0bFwiXWAuXG4vLyBBcyBhIHJlc3VsdCwgbmVzdGVkIGBkaXJgIHZhbHVlcyBhcmUgbm90IHN1cHBvcnRlZDpcbi8vXG4vLyBgYGBodG1sXG4vLyA8aHRtbCBkaXI9XCJydGxcIj5cbi8vICAgPCEtLSAuLi4gLS0+XG4vLyAgIDxkaXYgZGlyPVwibHRyXCI+XG4vLyAgICAgPGRpdiBjbGFzcz1cIm1kYy1mb29cIj5TdHlsZWQgaW5jb3JyZWN0bHkgYXMgUlRMITwvZGl2PlxuLy8gICA8L2Rpdj5cbi8vIDwvaHRtbD5cbi8vIGBgYFxuLy9cbi8vIEluIHRoZSBmdXR1cmUsIHNlbGVjdG9ycyBzdWNoIGFzIHRoZSBgOmRpcmAgcHNldWRvLWNsYXNzIChodHRwOi8vbWRuLmlvL2Nzcy86ZGlyKSB3aWxsIGhlbHAgdXMgbWl0aWdhdGUgdGhpcy5cbkBtaXhpbiBtZGMtcnRsKCRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAoJHJvb3Qtc2VsZWN0b3IpIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAjeyRyb290LXNlbGVjdG9yfVtkaXI9XCJydGxcIl0gJixcbiAgICAgIFtkaXI9XCJydGxcIl0gI3skcm9vdC1zZWxlY3Rvcn0gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgW2Rpcj1cInJ0bFwiXSAmLFxuICAgICZbZGlyPVwicnRsXCJdIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBUYWtlcyBhIGJhc2UgYm94LW1vZGVsIHByb3BlcnR5IG5hbWUgKGBtYXJnaW5gLCBgYm9yZGVyYCwgYHBhZGRpbmdgLCBldGMuKSBhbG9uZyB3aXRoIGFcbi8vIGRlZmF1bHQgZGlyZWN0aW9uIChgbGVmdGAgb3IgYHJpZ2h0YCkgYW5kIHZhbHVlLCBhbmQgZW1pdHMgcnVsZXMgd2hpY2ggYXBwbHkgdGhlIGdpdmVuIHZhbHVlIHRvIHRoZVxuLy8gc3BlY2lmaWVkIGRpcmVjdGlvbiBieSBkZWZhdWx0IGFuZCB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIGluIFJUTC5cbi8vXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDhweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbWFyZ2luLWxlZnQ6IDhweDtcbi8vICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIHdoZXJlYXM6XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgOHB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogMDtcbi8vICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4vL1xuLy8gICBAaW5jbHVkZSBtZGMtcnRsIHtcbi8vICAgICBtYXJnaW4tbGVmdDogOHB4O1xuLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gWW91IGNhbiBhbHNvIHBhc3MgYW4gb3B0aW9uYWwgNHRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgd2hpY2ggd2lsbCBiZSBmb3J3YXJkZWQgdG8gYG1kYy1ydGxgLFxuLy8gZS5nLiBgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgOHB4LCBcIi5tZGMtY29tcG9uZW50XCIpYC5cbi8vXG4vLyBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyB6ZXJvIG91dCB0aGUgb3JpZ2luYWwgdmFsdWUgaW4gYW4gUlRMIGNvbnRleHQuXG4vLyBJZiB5b3UncmUgdHJ5aW5nIHRvIGZsaXAgdGhlIHZhbHVlcywgdXNlIGBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSgpYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1ydGwtcmVmbGV4aXZlLWJveCgkYmFzZS1wcm9wZXJ0eSwgJGRlZmF1bHQtZGlyZWN0aW9uLCAkdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAoaW5kZXgoKHJpZ2h0LCBsZWZ0KSwgJGRlZmF1bHQtZGlyZWN0aW9uKSA9PSBudWxsKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBkZWZhdWx0IGRpcmVjdGlvbjogJyN7JGRlZmF1bHQtZGlyZWN0aW9ufScuIFBsZWFzZSBzcGVjaWZpeSBlaXRoZXIgJ3JpZ2h0JyBvciAnbGVmdCcuXCI7XG4gIH1cblxuICAkbGVmdC12YWx1ZTogJHZhbHVlO1xuICAkcmlnaHQtdmFsdWU6IDA7XG5cbiAgQGlmICgkZGVmYXVsdC1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICAkbGVmdC12YWx1ZTogMDtcbiAgICAkcmlnaHQtdmFsdWU6ICR2YWx1ZTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KCRiYXNlLXByb3BlcnR5LCAkbGVmdC12YWx1ZSwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIGEgYmFzZSBwcm9wZXJ0eSBhbmQgZW1pdHMgcnVsZXMgdGhhdCBhc3NpZ24gPGJhc2UtcHJvcGVydHk+LWxlZnQgdG8gPGxlZnQtdmFsdWU+IGFuZFxuLy8gPGJhc2UtcHJvcGVydHk+LXJpZ2h0IHRvIDxyaWdodC12YWx1ZT4gaW4gYSBMVFIgY29udGV4dCwgYW5kIHZpY2UgdmVyc2EgaW4gYSBSVEwgY29udGV4dC5cbi8vIEZvciBleGFtcGxlOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkobWFyZ2luLCBhdXRvLCAxMnB4KTtcbi8vIH1cbi8vIGBgYFxuLy9cbi8vIGlzIGVxdWl2YWxlbnQgdG86XG4vL1xuLy8gYGBgc2Nzc1xuLy8gLm1kYy1mb28ge1xuLy8gICBtYXJnaW4tbGVmdDogYXV0bztcbi8vICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8gICB9XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBBbiBvcHRpb25hbCA0dGggYCRyb290LXNlbGVjdG9yYCBhcmd1bWVudCBjYW4gYmUgZ2l2ZW4sIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGBtZGMtcnRsYC5cbkBtaXhpbiBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSgkYmFzZS1wcm9wZXJ0eSwgJGxlZnQtdmFsdWUsICRyaWdodC12YWx1ZSwgJHJvb3Qtc2VsZWN0b3I6IG51bGwpIHtcbiAgJHByb3AtbGVmdDogI3skYmFzZS1wcm9wZXJ0eX0tbGVmdDtcbiAgJHByb3AtcmlnaHQ6ICN7JGJhc2UtcHJvcGVydHl9LXJpZ2h0O1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKCRwcm9wLWxlZnQsICRsZWZ0LXZhbHVlLCAkcHJvcC1yaWdodCwgJHJpZ2h0LXZhbHVlLCAkcm9vdC1zZWxlY3Rvcik7XG59XG5cbi8vIFRha2VzIGFuIGFyZ3VtZW50IHNwZWNpZnlpbmcgYSBob3Jpem9udGFsIHBvc2l0aW9uIHByb3BlcnR5IChlaXRoZXIgXCJsZWZ0XCIgb3IgXCJyaWdodFwiKSBhcyB3ZWxsXG4vLyBhcyBhIHZhbHVlLCBhbmQgYXBwbGllcyB0aGF0IHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gYSBMVFIgY29udGV4dCwgYW5kIGZsaXBzIGl0IGluIGFcbi8vIFJUTCBjb250ZXh0LiBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuLy8gfVxuLy8gYGBgXG4vL1xuLy8gaXMgZXF1aXZhbGVudCB0bzpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIGxlZnQ6IDA7XG4vLyAgIHJpZ2h0OiBpbml0aWFsO1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgbGVmdDogaW5pdGlhbDtcbi8vICAgICByaWdodDogMDtcbi8vICAgfVxuLy8gfVxuLy8gYGBgXG4vL1xuLy8gQW4gb3B0aW9uYWwgdGhpcmQgJHJvb3Qtc2VsZWN0b3IgYXJndW1lbnQgbWF5IGFsc28gYmUgZ2l2ZW4sIHdoaWNoIGlzIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24oJHBvc2l0aW9uLXByb3BlcnR5LCAkdmFsdWUsICRyb290LXNlbGVjdG9yOiBudWxsKSB7XG4gIEBpZiAoaW5kZXgoKHJpZ2h0LCBsZWZ0KSwgJHBvc2l0aW9uLXByb3BlcnR5KSA9PSBudWxsKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBwb3NpdGlvbiAje3Bvc2l0aW9uLXByb3BlcnR5fS4gUGxlYXNlIHNwZWNpZml5IGVpdGhlciByaWdodCBvciBsZWZ0XCI7XG4gIH1cblxuICAvLyBUT0RPOiBcImluaXRpYWxcIiBpcyBub3Qgc3VwcG9ydGVkIGluIElFIDExLiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1pbml0aWFsLXZhbHVlXG4gICRsZWZ0LXZhbHVlOiAkdmFsdWU7XG4gICRyaWdodC12YWx1ZTogaW5pdGlhbDtcblxuICBAaWYgKCRwb3NpdGlvbi1wcm9wZXJ0eSA9PSByaWdodCkge1xuICAgICRyaWdodC12YWx1ZTogJHZhbHVlO1xuICAgICRsZWZ0LXZhbHVlOiBpbml0aWFsO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUobGVmdCwgJGxlZnQtdmFsdWUsIHJpZ2h0LCAkcmlnaHQtdmFsdWUsICRyb290LXNlbGVjdG9yKTtcbn1cblxuLy8gVGFrZXMgcGFpciBvZiBwcm9wZXJ0aWVzIHdpdGggdmFsdWVzIGFzIGFyZ3VtZW50cyBhbmQgZmxpcHMgaXQgaW4gUlRMIGNvbnRleHQuXG4vLyBGb3IgZXhhbXBsZTpcbi8vXG4vLyBgYGBzY3NzXG4vLyAubWRjLWZvbyB7XG4vLyAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKGxlZnQsIDJweCwgcmlnaHQsIDVweCk7XG4vLyB9XG4vLyBgYGBcbi8vXG4vLyBpcyBlcXVpdmFsZW50IHRvOlxuLy9cbi8vIGBgYHNjc3Ncbi8vIC5tZGMtZm9vIHtcbi8vICAgbGVmdDogMnB4O1xuLy8gICByaWdodDogNXB4O1xuLy9cbi8vICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4vLyAgICAgcmlnaHQ6IDJweDtcbi8vICAgICBsZWZ0OiA1cHg7XG4vLyAgIH1cbi8vIH1cbi8vIGBgYFxuLy9cbi8vIEFuIG9wdGlvbmFsIGZpZnRoIGAkcm9vdC1zZWxlY3RvcmAgYXJndW1lbnQgbWF5IGFsc28gYmUgZ2l2ZW4sIHdoaWNoIGlzIHBhc3NlZCB0byBgbWRjLXJ0bGAuXG5AbWl4aW4gbWRjLXJ0bC1yZWZsZXhpdmUoXG4gICRsZWZ0LXByb3BlcnR5LFxuICAkbGVmdC12YWx1ZSxcbiAgJHJpZ2h0LXByb3BlcnR5LFxuICAkcmlnaHQtdmFsdWUsXG4gICRyb290LXNlbGVjdG9yOiBudWxsXG4pIHtcbiAgLyogQG5vZmxpcCAqL1xuICAjeyRsZWZ0LXByb3BlcnR5fTogJGxlZnQtdmFsdWU7XG4gIC8qIEBub2ZsaXAgKi9cbiAgI3skcmlnaHQtcHJvcGVydHl9OiAkcmlnaHQtdmFsdWU7XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCgkcm9vdC1zZWxlY3Rvcikge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICAjeyRsZWZ0LXByb3BlcnR5fTogJHJpZ2h0LXZhbHVlO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICAjeyRyaWdodC1wcm9wZXJ0eX06ICRsZWZ0LXZhbHVlO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZWxldmF0aW9uLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAZm9yICR6LXZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAubWRjLWVsZXZhdGlvbi0teiN7JHotdmFsdWV9IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oJHotdmFsdWUsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAubWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpbGwtY2hhbmdlOiAkbWRjLWVsZXZhdGlvbi1wcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBDU1MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6LXZhbHVlLlxuLy8gVGhlICR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbi8vIElmICRjb2xvciBoYXMgYW4gYWxwaGEgY2hhbm5lbCwgaXQgd2lsbCBiZSBpZ25vcmVkIGFuZCBvdmVycmlkZGVuLiBUbyBpbmNyZWFzZSB0aGUgb3BhY2l0eSBvZiB0aGUgc2hhZG93LCB1c2Vcbi8vICRvcGFjaXR5LWJvb3N0LlxuQG1peGluIG1kYy1lbGV2YXRpb24oJHotdmFsdWUsICRjb2xvcjogJG1kYy1lbGV2YXRpb24tYmFzZWxpbmUtY29sb3IsICRvcGFjaXR5LWJvb3N0OiAwLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpZiB0eXBlLW9mKCR6LXZhbHVlKSAhPSBudW1iZXIgb3Igbm90IHVuaXRsZXNzKCR6LXZhbHVlKSB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gIEBpZiAkei12YWx1ZSA8IDAgb3IgJHotdmFsdWUgPiAyNCB7XG4gICAgQGVycm9yIFwiJHotdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LCBidXQgcmVjZWl2ZWQgJyN7JHotdmFsdWV9J1wiO1xuICB9XG5cbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJGNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuXG4gICR1bWJyYS16LXZhbHVlOiBtYXAtZ2V0KCRtZGMtZWxldmF0aW9uLXVtYnJhLW1hcCwgJHotdmFsdWUpO1xuICAkcGVudW1icmEtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1tYXAsICR6LXZhbHVlKTtcbiAgJGFtYmllbnQtei12YWx1ZTogbWFwLWdldCgkbWRjLWVsZXZhdGlvbi1hbWJpZW50LW1hcCwgJHotdmFsdWUpO1xuXG4gICR1bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLXVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRwZW51bWJyYS1jb2xvcjogcmdiYSgkY29sb3IsICRtZGMtZWxldmF0aW9uLXBlbnVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRhbWJpZW50LWNvbG9yOiByZ2JhKCRjb2xvciwgJG1kYy1lbGV2YXRpb24tYW1iaWVudC1vcGFjaXR5ICsgJG9wYWNpdHktYm9vc3QpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgI3tcIiN7JHVtYnJhLXotdmFsdWV9ICN7JHVtYnJhLWNvbG9yfVwifSxcbiAgICAgICN7XCIjeyRwZW51bWJyYS16LXZhbHVlfSAjeyRwZW51bWJyYS1jb2xvcn1cIn0sXG4gICAgICAjeyRhbWJpZW50LXotdmFsdWV9ICRhbWJpZW50LWNvbG9yO1xuICB9XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgYHRyYW5zaXRpb25gIHByb3BlcnR5IGZvciBlbGV2YXRpb24uXG4vLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgaXMgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gdHJhbnNpdGlvblxuLy8gbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cbi8vXG4vLyBgYGBzY3NzXG4vLyAuZm9vIHtcbi8vICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCksIG9wYWNpdHkgMTAwbXMgZWFzZTtcbi8vICAgd2lsbC1jaGFuZ2U6ICRtZGMtZWxldmF0aW9uLXByb3BlcnR5LCBvcGFjaXR5O1xuLy8gfVxuLy8gYGBgXG5AZnVuY3Rpb24gbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKFxuICAkZHVyYXRpb246ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRlYXNpbmc6ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4pIHtcbiAgQHJldHVybiAjeyRtZGMtZWxldmF0aW9uLXByb3BlcnR5fSAjeyRkdXJhdGlvbn0gI3skZWFzaW5nfTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcblxuJG1kYy1lbGV2YXRpb24tYmFzZWxpbmUtY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJG1kYy1lbGV2YXRpb24tdW1icmEtb3BhY2l0eTogLjIgIWRlZmF1bHQ7XG4kbWRjLWVsZXZhdGlvbi1wZW51bWJyYS1vcGFjaXR5OiAuMTQgIWRlZmF1bHQ7XG4kbWRjLWVsZXZhdGlvbi1hbWJpZW50LW9wYWNpdHk6IC4xMiAhZGVmYXVsdDtcblxuJG1kYy1lbGV2YXRpb24tdW1icmEtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDJweCAxcHggLTFweFwiLFxuICAyOiBcIjBweCAzcHggMXB4IC0ycHhcIixcbiAgMzogXCIwcHggM3B4IDNweCAtMnB4XCIsXG4gIDQ6IFwiMHB4IDJweCA0cHggLTFweFwiLFxuICA1OiBcIjBweCAzcHggNXB4IC0xcHhcIixcbiAgNjogXCIwcHggM3B4IDVweCAtMXB4XCIsXG4gIDc6IFwiMHB4IDRweCA1cHggLTJweFwiLFxuICA4OiBcIjBweCA1cHggNXB4IC0zcHhcIixcbiAgOTogXCIwcHggNXB4IDZweCAtM3B4XCIsXG4gIDEwOiBcIjBweCA2cHggNnB4IC0zcHhcIixcbiAgMTE6IFwiMHB4IDZweCA3cHggLTRweFwiLFxuICAxMjogXCIwcHggN3B4IDhweCAtNHB4XCIsXG4gIDEzOiBcIjBweCA3cHggOHB4IC00cHhcIixcbiAgMTQ6IFwiMHB4IDdweCA5cHggLTRweFwiLFxuICAxNTogXCIwcHggOHB4IDlweCAtNXB4XCIsXG4gIDE2OiBcIjBweCA4cHggMTBweCAtNXB4XCIsXG4gIDE3OiBcIjBweCA4cHggMTFweCAtNXB4XCIsXG4gIDE4OiBcIjBweCA5cHggMTFweCAtNXB4XCIsXG4gIDE5OiBcIjBweCA5cHggMTJweCAtNnB4XCIsXG4gIDIwOiBcIjBweCAxMHB4IDEzcHggLTZweFwiLFxuICAyMTogXCIwcHggMTBweCAxM3B4IC02cHhcIixcbiAgMjI6IFwiMHB4IDEwcHggMTRweCAtNnB4XCIsXG4gIDIzOiBcIjBweCAxMXB4IDE0cHggLTdweFwiLFxuICAyNDogXCIwcHggMTFweCAxNXB4IC03cHhcIlxuKSAhZGVmYXVsdDtcblxuJG1kYy1lbGV2YXRpb24tcGVudW1icmEtbWFwOiAoXG4gIDA6IFwiMHB4IDBweCAwcHggMHB4XCIsXG4gIDE6IFwiMHB4IDFweCAxcHggMHB4XCIsXG4gIDI6IFwiMHB4IDJweCAycHggMHB4XCIsXG4gIDM6IFwiMHB4IDNweCA0cHggMHB4XCIsXG4gIDQ6IFwiMHB4IDRweCA1cHggMHB4XCIsXG4gIDU6IFwiMHB4IDVweCA4cHggMHB4XCIsXG4gIDY6IFwiMHB4IDZweCAxMHB4IDBweFwiLFxuICA3OiBcIjBweCA3cHggMTBweCAxcHhcIixcbiAgODogXCIwcHggOHB4IDEwcHggMXB4XCIsXG4gIDk6IFwiMHB4IDlweCAxMnB4IDFweFwiLFxuICAxMDogXCIwcHggMTBweCAxNHB4IDFweFwiLFxuICAxMTogXCIwcHggMTFweCAxNXB4IDFweFwiLFxuICAxMjogXCIwcHggMTJweCAxN3B4IDJweFwiLFxuICAxMzogXCIwcHggMTNweCAxOXB4IDJweFwiLFxuICAxNDogXCIwcHggMTRweCAyMXB4IDJweFwiLFxuICAxNTogXCIwcHggMTVweCAyMnB4IDJweFwiLFxuICAxNjogXCIwcHggMTZweCAyNHB4IDJweFwiLFxuICAxNzogXCIwcHggMTdweCAyNnB4IDJweFwiLFxuICAxODogXCIwcHggMThweCAyOHB4IDJweFwiLFxuICAxOTogXCIwcHggMTlweCAyOXB4IDJweFwiLFxuICAyMDogXCIwcHggMjBweCAzMXB4IDNweFwiLFxuICAyMTogXCIwcHggMjFweCAzM3B4IDNweFwiLFxuICAyMjogXCIwcHggMjJweCAzNXB4IDNweFwiLFxuICAyMzogXCIwcHggMjNweCAzNnB4IDNweFwiLFxuICAyNDogXCIwcHggMjRweCAzOHB4IDNweFwiXG4pICFkZWZhdWx0O1xuXG4kbWRjLWVsZXZhdGlvbi1hbWJpZW50LW1hcDogKFxuICAwOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAxOiBcIjBweCAxcHggM3B4IDBweFwiLFxuICAyOiBcIjBweCAxcHggNXB4IDBweFwiLFxuICAzOiBcIjBweCAxcHggOHB4IDBweFwiLFxuICA0OiBcIjBweCAxcHggMTBweCAwcHhcIixcbiAgNTogXCIwcHggMXB4IDE0cHggMHB4XCIsXG4gIDY6IFwiMHB4IDFweCAxOHB4IDBweFwiLFxuICA3OiBcIjBweCAycHggMTZweCAxcHhcIixcbiAgODogXCIwcHggM3B4IDE0cHggMnB4XCIsXG4gIDk6IFwiMHB4IDNweCAxNnB4IDJweFwiLFxuICAxMDogXCIwcHggNHB4IDE4cHggM3B4XCIsXG4gIDExOiBcIjBweCA0cHggMjBweCAzcHhcIixcbiAgMTI6IFwiMHB4IDVweCAyMnB4IDRweFwiLFxuICAxMzogXCIwcHggNXB4IDI0cHggNHB4XCIsXG4gIDE0OiBcIjBweCA1cHggMjZweCA0cHhcIixcbiAgMTU6IFwiMHB4IDZweCAyOHB4IDVweFwiLFxuICAxNjogXCIwcHggNnB4IDMwcHggNXB4XCIsXG4gIDE3OiBcIjBweCA2cHggMzJweCA1cHhcIixcbiAgMTg6IFwiMHB4IDdweCAzNHB4IDZweFwiLFxuICAxOTogXCIwcHggN3B4IDM2cHggNnB4XCIsXG4gIDIwOiBcIjBweCA4cHggMzhweCA3cHhcIixcbiAgMjE6IFwiMHB4IDhweCA0MHB4IDdweFwiLFxuICAyMjogXCIwcHggOHB4IDQycHggN3B4XCIsXG4gIDIzOiBcIjBweCA5cHggNDRweCA4cHhcIixcbiAgMjQ6IFwiMHB4IDlweCA0NnB4IDhweFwiXG4pICFkZWZhdWx0O1xuXG4vLyBUaGUgY3NzIHByb3BlcnR5IHVzZWQgZm9yIGVsZXZhdGlvbi4gSW4gbW9zdCBjYXNlcyB0aGlzIHNob3VsZCBub3QgYmUgY2hhbmdlZC4gSXQgaXMgZXhwb3NlZFxuLy8gYXMgYSB2YXJpYWJsZSBmb3IgYWJzdHJhY3Rpb24gLyBlYXN5IHVzZSB3aGVuIG5lZWRpbmcgdG8gcmVmZXJlbmNlIHRoZSBwcm9wZXJ0eSBkaXJlY3RseSwgZm9yXG4vLyBleGFtcGxlIGluIGEgYHdpbGwtY2hhbmdlYCBydWxlLlxuJG1kYy1lbGV2YXRpb24tcHJvcGVydHk6IGJveC1zaGFkb3cgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIE1EQyBSaXBwbGUga2V5ZnJhbWVzIGFyZSBzcGxpdCBpbnRvIHRoZWlyIG93biBmaWxlIHNvIHRoYXQgX21peGlucy5zY3NzIGNhbiByZWx5IG9uIHRoZW0uXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtcmlwcGxlLWtleWZyYW1lc18ge1xuICBAa2V5ZnJhbWVzIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIC8vIE5PVEU6IEZvciB0aGVzZSBrZXlmcmFtZXMsIHdlIGRvIG5vdCBuZWVkIGN1c3RvbSBwcm9wZXJ0eSBmYWxsYmFja3MgYmVjYXVzZSB0aGV5IGFyZSBvbmx5XG4gICAgICAvLyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYC5tZGMtcmlwcGxlLXVwZ3JhZGVkYC4gU2luY2UgTURDUmlwcGxlRm91bmRhdGlvbiBjaGVja3MgdG8gZW5zdXJlXG4gICAgICAvLyB0aGF0IGN1c3RvbSBwcm9wZXJ0aWVzIGFyZSBzdXBwb3J0ZWQgd2l0aGluIHRoZSBicm93c2VyIGJlZm9yZSBhZGRpbmcgdGhpcyBjbGFzcywgd2UgY2FuXG4gICAgICAvLyBzYWZlbHkgdXNlIHRoZW0gd2l0aG91dCBhIGZhbGxiYWNrLlxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tbWRjLXJpcHBsZS1mZy10cmFuc2xhdGUtc3RhcnQsIDApKSBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXRyYW5zbGF0ZS1lbmQsIDApKSBzY2FsZSh2YXIoLS1tZGMtcmlwcGxlLWZnLXNjYWxlLCAxKSk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4ge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCB7XG4gICAgZnJvbSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1tZGMtcmlwcGxlLWZnLW9wYWNpdHksIDApO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIC4yLCAxKSAhZGVmYXVsdDtcbiRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSkgIWRlZmF1bHQ7XG4kbWRjLWFuaW1hdGlvbi1hY2NlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuJG1kYy1hbmltYXRpb24tc2hhcnAtY3VydmUtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjQsIDAsIC42LCAxKSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLXJpcHBsZS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHJpcHBsZS1zdXJmYWNlXG5cbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLXJpcHBsZS1zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICZbZGF0YS1tZGMtcmlwcGxlLWlzLXVuYm91bmRlZF0ge1xuICAgICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKHByaW1hcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAmLS1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWRjLXN0YXRlcyhzZWNvbmRhcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0eWxlcyBuZWVkZWQgYnkgYW55IGNvbXBvbmVudCB1c2luZyBNREMgUmlwcGxlIGFyZSBlbWl0dGVkLCBidXQgb25seSBvbmNlLlxuICAvLyAoRXZlcnkgY29tcG9uZW50IHVzaW5nIE1EQyBSaXBwbGUgaW1wb3J0cyB0aGVzZSBtaXhpbnMsIGJ1dCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGltcG9ydFxuICAvLyBtZGMtcmlwcGxlLnNjc3MuKVxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIEBpbmNsdWRlIG1kYy1iYXNlLWVtaXQtb25jZShcIm1kYy1yaXBwbGUvY29tbW9uL2FuaW1hdGlvblwiKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLWtleWZyYW1lc187XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBtZGMtYmFzZS1lbWl0LW9uY2UoXCJtZGMtcmlwcGxlL2NvbW1vbi9zdHJ1Y3R1cmVcIikge1xuICAgICAgLy8gU3R5bGVzIHVzZWQgdG8gZGV0ZWN0IGJ1Z2d5IGJlaGF2aW9yIG9mIENTUyBjdXN0b20gcHJvcGVydGllcyBpbiBFZGdlLlxuICAgICAgLy8gU2VlOiBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy8xMTQ5NTQ0OC9cbiAgICAgIC8vIFRoaXMgaXMgaW5jbHVkZWQgaW4gX21peGlucy5zY3NzIHJhdGhlciB0aGFuIG1kYy1yaXBwbGUuc2NzcyBzbyB0aGF0IGl0IHdpbGwgYmVcbiAgICAgIC8vIHByZXNlbnQgZm9yIG90aGVyIGNvbXBvbmVudHMgd2hpY2ggcmVseSBvbiByaXBwbGUgYXMgd2VsbCBhcyBtZGMtcmlwcGxlIGl0c2VsZi5cbiAgICAgIC5tZGMtcmlwcGxlLXN1cmZhY2UtLXRlc3QtZWRnZS12YXItYnVnIHtcbiAgICAgICAgLS1tZGMtcmlwcGxlLXN1cmZhY2UtdGVzdC1lZGdlLXZhcjogMXB4IHNvbGlkICMwMDA7XG5cbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyOiB2YXIoLS1tZGMtcmlwcGxlLXN1cmZhY2UtdGVzdC1lZGdlLXZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAtLW1kYy1yaXBwbGUtZmctc2l6ZTogMDtcbiAgICAtLW1kYy1yaXBwbGUtbGVmdDogMDtcbiAgICAtLW1kYy1yaXBwbGUtdG9wOiAwO1xuICAgIC0tbWRjLXJpcHBsZS1mZy1zY2FsZTogMTtcbiAgICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZDogMDtcbiAgICAtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLXN0YXJ0OiAwO1xuXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgLy8gQWxzbyB0cmFuc2l0aW9uIGJhY2tncm91bmQtY29sb3IgdG8gYXZvaWQgdW5uYXR1cmFsIGNvbG9yIGZsYXNoZXMgd2hlbiB0b2dnbGluZyBhY3RpdmF0ZWQvc2VsZWN0ZWQgc3RhdGVcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIG9wYWNpdHkgJG1kYy1zdGF0ZXMtd2FzaC1kdXJhdGlvbiBsaW5lYXIsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1kYy1zdGF0ZXMtd2FzaC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHotaW5kZXg6IDE7IC8vIEVuc3VyZSB0aGF0IHRoZSByaXBwbGUgd2FzaCBmb3IgaG92ZXIvZm9jdXMgc3RhdGVzIGlzIGRpc3BsYXllZCBvbiB0b3Agb2YgcG9zaXRpb25lZCBjaGlsZCBlbGVtZW50c1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbW1vbiBzdHlsZXMgZm9yIHVwZ3JhZGVkIHN1cmZhY2VzIChzb21lIG9mIHRoZXNlIGRlcGVuZCBvbiBjdXN0b20gcHJvcGVydGllcyBzZXQgdmlhIEpTIG9yIG90aGVyIG1peGlucylcblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tbWRjLXJpcHBsZS1mZy1zY2FsZSwgMSkpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB0b3A6IDA7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkLS11bmJvdW5kZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiB2YXIoLS1tZGMtcmlwcGxlLXRvcCwgMCk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIDApO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZC0tZm9yZWdyb3VuZC1hY3RpdmF0aW9uOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIGFuaW1hdGlvbjpcbiAgICAgICAgbWRjLXJpcHBsZS1mZy1yYWRpdXMtaW4gJG1kYy1yaXBwbGUtdHJhbnNsYXRlLWR1cmF0aW9uIGZvcndhcmRzLFxuICAgICAgICBtZGMtcmlwcGxlLWZnLW9wYWNpdHktaW4gJG1kYy1yaXBwbGUtZmFkZS1pbi1kdXJhdGlvbiBmb3J3YXJkcztcbiAgICB9XG4gIH1cblxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWZvcmVncm91bmQtZGVhY3RpdmF0aW9uOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIGFuaW1hdGlvbjogbWRjLXJpcHBsZS1mZy1vcGFjaXR5LW91dCAkbWRjLXJpcHBsZS1mYWRlLW91dC1kdXJhdGlvbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gUmV0YWluIHRyYW5zZm9ybSBmcm9tIG1kYy1yaXBwbGUtZmctcmFkaXVzLWluIGFjdGl2YXRpb25cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLW1kYy1yaXBwbGUtZmctdHJhbnNsYXRlLWVuZCwgMCkpIHNjYWxlKHZhcigtLW1kYy1yaXBwbGUtZmctc2NhbGUsIDEpKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGlmIGFscGhhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcikpID4gMCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIElmIGEgY29sb3Igd2l0aCAwIGFscGhhIGlzIHNwZWNpZmllZCwgZG9uJ3QgcmVuZGVyIHRoZSByaXBwbGUgcHNldWRvLWVsZW1lbnRzIGF0IGFsbC5cbiAgICAgICAgLy8gVGhpcyBhdm9pZHMgdW5uZWNlc3NhcnkgdHJhbnNpdGlvbnMgYW5kIG92ZXJmbG93LlxuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KCRvcGFjaXR5LCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIEJhY2tncm91bmQgd2FzaCBzdHlsZXMsIGZvciBib3RoIENTUy1vbmx5IGFuZCB1cGdyYWRlZCBzdGF0ZWZ1bCBzdXJmYWNlc1xuICAmOmhvdmVyOjpiZWZvcmUge1xuICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eSgkb3BhY2l0eSwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQ6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLy8gRm9jdXMgb3ZlcnJpZGVzIGhvdmVyIGJ5IHJldXNpbmcgdGhlIDo6YmVmb3JlIHBzZXVkby1lbGVtZW50LlxuICAvLyA6Zm9jdXMtd2l0aGluIGdlbmVyYWxseSB3b3JrcyBvbiBub24tTVMgYnJvd3NlcnMgYW5kIG1hdGNoZXMgd2hlbiBhICpjaGlsZCogb2YgdGhlIGVsZW1lbnQgaGFzIGZvY3VzLlxuICAvLyBJdCBpcyB1c2VmdWwgZm9yIGNhc2VzIHdoZXJlIGEgY29tcG9uZW50IGhhcyBhIGZvY3VzYWJsZSBlbGVtZW50IHdpdGhpbiB0aGUgcm9vdCBub2RlLCBlLmcuIHRleHQgZmllbGQsXG4gIC8vIGJ1dCB1bmRlc2lyYWJsZSBpbiBnZW5lcmFsIGluIGNhc2Ugb2YgbmVzdGVkIHN0YXRlZnVsIGNvbXBvbmVudHMuXG4gIC8vIFdlIHVzZSBhIG1vZGlmaWVyIGNsYXNzIGZvciBKUy1lbmFibGVkIHN1cmZhY2VzIHRvIHN1cHBvcnQgYWxsIHVzZSBjYXNlcyBpbiBhbGwgYnJvd3NlcnMuXG4gICRjc3NPbmx5Rm9jdXNTZWxlY3RvcjogaWYoXG4gICAgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsXG4gICAgXCImOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZSwgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpOmZvY3VzLXdpdGhpbjo6YmVmb3JlXCIsXG4gICAgXCImOm5vdCgubWRjLXJpcHBsZS11cGdyYWRlZCk6Zm9jdXM6OmJlZm9yZVwiXG4gICk7XG5cbiAgI3skY3NzT25seUZvY3VzU2VsZWN0b3J9LFxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZDo6YmVmb3JlIHtcbiAgICAvLyBOb3RlIHRoYXQgdGhpcyBkdXJhdGlvbiBpcyBvbmx5IGVmZmVjdGl2ZSBvbiBmb2N1cywgbm90IGJsdXJcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzVtcztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zdGF0ZXMtcHJlc3Mtb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBTdHlsZXMgZm9yIG5vbi11cGdyYWRlZCAoQ1NTLW9ubHkpIHN0YXRlZnVsIHN1cmZhY2VzXG5cbiAgJjpub3QoLm1kYy1yaXBwbGUtdXBncmFkZWQpIHtcbiAgICAvLyBBcHBseSBwcmVzcyBhZGRpdGl2ZWx5IGJ5IHVzaW5nIHRoZSA6OmFmdGVyIHBzZXVkby1lbGVtZW50XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLXJpcHBsZS1mYWRlLW91dC1kdXJhdGlvbiBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmU6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtcmlwcGxlLWZhZGUtaW4tZHVyYXRpb247XG4gICAgICB9XG5cbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50IGluIHR5cGljYWwgdXNhZ2VcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtcmlwcGxlLXVwZ3JhZGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAtLW1kYy1yaXBwbGUtZmctb3BhY2l0eTogI3skb3BhY2l0eX07XG4gICAgfVxuICB9XG59XG5cbi8vIFNpbXBsZSBtaXhpbiBmb3IgYmFzZSBzdGF0ZXMgd2hpY2ggYXV0b21hdGljYWxseSBzZWxlY3RzIG9wYWNpdHkgdmFsdWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGluayBjb2xvciBpc1xuLy8gbGlnaHQgb3IgZGFyay5cbkBtaXhpbiBtZGMtc3RhdGVzKFxuICAkY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLFxuICAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWludGVyYWN0aW9uc18oJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudCwgMCwgJHF1ZXJ5KTtcbn1cblxuLy8gU2ltcGxlIG1peGluIGZvciBhY3RpdmF0ZWQgc3RhdGVzIHdoaWNoIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyBvcGFjaXR5IHZhbHVlcyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBpbmsgY29sb3IgaXNcbi8vIGxpZ2h0IG9yIGRhcmsuXG5AbWl4aW4gbWRjLXN0YXRlcy1hY3RpdmF0ZWQoJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRhY3RpdmF0ZWQtb3BhY2l0eTogbWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgYWN0aXZhdGVkKTtcblxuICAmLS1hY3RpdmF0ZWQge1xuICAgIC8vIFN0eWxlbGludCBzZWVtcyB0byB0aGluayB0aGF0ICcmJyBxdWFsaWZpZXMgYXMgYSB0eXBlIHNlbGVjdG9yIGhlcmU/XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIC8vIE9wYWNpdHkgZmFsbHMgdW5kZXIgY29sb3IgYmVjYXVzZSB0aGUgY2hvc2VuIG9wYWNpdHkgaXMgY29sb3ItZGVwZW5kZW50LlxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkYWN0aXZhdGVkLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRhY3RpdmF0ZWQtb3BhY2l0eSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgbWl4aW4gZm9yIHNlbGVjdGVkIHN0YXRlcyB3aGljaCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgb3BhY2l0eSB2YWx1ZXMgYmFzZWQgb24gd2hldGhlciB0aGUgaW5rIGNvbG9yIGlzXG4vLyBsaWdodCBvciBkYXJrLlxuQG1peGluIG1kYy1zdGF0ZXMtc2VsZWN0ZWQoJGNvbG9yLCAkaGFzLW5lc3RlZC1mb2N1c2FibGUtZWxlbWVudDogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRzZWxlY3RlZC1vcGFjaXR5OiBtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBzZWxlY3RlZCk7XG5cbiAgJi0tc2VsZWN0ZWQge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICY6OmJlZm9yZSB7XG4gICAgICAvLyBPcGFjaXR5IGZhbGxzIHVuZGVyIGNvbG9yIGJlY2F1c2UgdGhlIGNob3NlbiBvcGFjaXR5IGlzIGNvbG9yLWRlcGVuZGVudC5cbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgICAgb3BhY2l0eTogJHNlbGVjdGVkLW9wYWNpdHk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKCRjb2xvciwgJGhhcy1uZXN0ZWQtZm9jdXNhYmxlLWVsZW1lbnQsICRzZWxlY3RlZC1vcGFjaXR5LCAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRyYWRpdXM6IDEwMCUsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydXR1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAjeyRyYWRpdXN9KTtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skcmFkaXVzfSk7XG4gICAgICB3aWR0aDogJHJhZGl1cyAqIDI7XG4gICAgICBoZWlnaHQ6ICRyYWRpdXMgKiAyO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkKCRyYWRpdXM6IDEwMCUsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydXR1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHRvcDogY2FsYyg1MCUgLSAjeyRyYWRpdXMgLyAyfSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KTtcbiAgICAgIHdpZHRoOiAkcmFkaXVzO1xuICAgICAgaGVpZ2h0OiAkcmFkaXVzO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YmVmb3JlLFxuICAmLm1kYy1yaXBwbGUtdXBncmFkZWQ6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnV0dXJlKSB7XG4gICAgICB0b3A6IHZhcigtLW1kYy1yaXBwbGUtdG9wLCBjYWxjKDUwJSAtICN7JHJhZGl1cyAvIDJ9KSk7XG4gICAgICAvKiBAbm9mbGlwICovXG4gICAgICBsZWZ0OiB2YXIoLS1tZGMtcmlwcGxlLWxlZnQsIGNhbGMoNTAlIC0gI3skcmFkaXVzIC8gMn0pKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXJpcHBsZS11cGdyYWRlZDo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydXR1cmUpIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1tZGMtcmlwcGxlLWZnLXNpemUsICRyYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN0YXRlcy1pbnRlcmFjdGlvbnNfKFxuICAkY29sb3IsXG4gICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAkb3BhY2l0eS1tb2RpZmllcjogMCxcbiAgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKVxuKSB7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtaG92ZXItb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkoJGNvbG9yLCBob3ZlcikgKyAkb3BhY2l0eS1tb2RpZmllciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KFxuICAgIG1kYy1zdGF0ZXMtb3BhY2l0eSgkY29sb3IsIGZvY3VzKSArICRvcGFjaXR5LW1vZGlmaWVyLFxuICAgICRoYXMtbmVzdGVkLWZvY3VzYWJsZS1lbGVtZW50LFxuICAgICRxdWVyeVxuICApO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLXByZXNzLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRjb2xvciwgcHJlc3MpICsgJG9wYWNpdHktbW9kaWZpZXIsICRxdWVyeSk7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTYgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1yaXBwbGUtZmFkZS1pbi1kdXJhdGlvbjogNzVtcyAhZGVmYXVsdDtcbiRtZGMtcmlwcGxlLWZhZGUtb3V0LWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcbiRtZGMtcmlwcGxlLXRyYW5zbGF0ZS1kdXJhdGlvbjogMjI1bXMgIWRlZmF1bHQ7XG4kbWRjLXN0YXRlcy13YXNoLWR1cmF0aW9uOiAxNW1zICFkZWZhdWx0O1xuXG4vLyBOb3RlcyBvbiBzdGF0ZXM6XG4vLyAqIGZvY3VzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBob3ZlciAoaS5lLiBpZiBhbiBlbGVtZW50IGlzIGJvdGggZm9jdXNlZCBhbmQgaG92ZXJlZCwgb25seSBmb2N1cyB2YWx1ZSBhcHBsaWVzKVxuLy8gKiBwcmVzcyBzdGF0ZSBhcHBsaWVzIHRvIGEgc2VwYXJhdGUgcHNldWRvLWVsZW1lbnQsIHNvIGl0IGhhcyBhbiBhZGRpdGl2ZSBlZmZlY3Qgb24gdG9wIG9mIG90aGVyIHN0YXRlc1xuLy8gKiBzZWxlY3RlZC9hY3RpdmF0ZWQgYXJlIGFwcGxpZWQgYWRkaXRpdmVseSB0byBob3Zlci9mb2N1cyB2aWEgY2FsY3VsYXRpb25zIGF0IHByZXByb2Nlc3NpbmcgdGltZVxuXG4kbWRjLXJpcHBsZS1kYXJrLWluay1vcGFjaXRpZXM6IChcbiAgaG92ZXI6IC4wNCxcbiAgZm9jdXM6IC4xMixcbiAgcHJlc3M6IC4xMixcbiAgc2VsZWN0ZWQ6IC4wOCxcbiAgYWN0aXZhdGVkOiAuMTJcbikgIWRlZmF1bHQ7XG5cbiRtZGMtcmlwcGxlLWxpZ2h0LWluay1vcGFjaXRpZXM6IChcbiAgaG92ZXI6IC4wOCxcbiAgZm9jdXM6IC4yNCxcbiAgcHJlc3M6IC4yNCxcbiAgc2VsZWN0ZWQ6IC4xNixcbiAgYWN0aXZhdGVkOiAuMjRcbikgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuXG4kbWRjLXJpcHBsZS1wcmVzc2VkLWRhcmstaW5rLW9wYWNpdHk6IC4xNiAhZGVmYXVsdDtcbiRtZGMtcmlwcGxlLXByZXNzZWQtbGlnaHQtaW5rLW9wYWNpdHk6IC4zMiAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtY2FyZC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1jYXJkLXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jYXJkLXJpcHBsZSgkcXVlcnkpO1xufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjYXJkIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNhcmQtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNhcmQtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBjYXJkXG5cbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1jYXJkIHtcbiAgICBAaW5jbHVkZSBtZGMtY2FyZC1zaGFwZS1yYWRpdXMobWVkaXVtLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWNhcmQtZmlsbC1jb2xvcihzdXJmYWNlLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jYXJkLWNvbnRhaW5lci1sYXlvdXRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZC0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1jYXJkLW91dGxpbmUoJG1kYy1jYXJkLW91dGxpbmUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vXG4gIC8vIE1lZGlhXG4gIC8vXG5cbiAgLm1kYy1jYXJkX19tZWRpYSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gQ2hpbGQgZWxlbWVudCBgX19tZWRpYS1jb250ZW50YCBoYXMgYHBvc2l0aW9uOiBhYnNvbHV0ZWBcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYTpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX21lZGlhOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19tZWRpYS0tc3F1YXJlIHtcbiAgICBAaW5jbHVkZSBtZGMtY2FyZC1tZWRpYS1hc3BlY3QtcmF0aW8oMSwgMSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWEtLTE2LTkge1xuICAgIEBpbmNsdWRlIG1kYy1jYXJkLW1lZGlhLWFzcGVjdC1yYXRpbygxNiwgOSwgJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2FyZF9fbWVkaWEtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gUHJpbWFyeSBhY3Rpb25cbiAgLy9cblxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtY29udGFpbmVyLWxheW91dF87XG5cbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gTmVlZGVkIHRvIHByZXZlbnQgdGhlIHJpcHBsZSB3YXNoIGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNvbnRhaW5lciBpbiBJRSBhbmQgRWRnZVxuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fcHJpbWFyeS1hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBBY3Rpb24gcm93XG4gIC8vXG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtYWN0aW9ucy1sYXlvdXRfO1xuXG4gICAgICBtaW4taGVpZ2h0OiA1MnB4O1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9ucy0tZnVsbC1ibGVlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24tYnV0dG9ucyxcbiAgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2FyZC1hY3Rpb25zLWxheW91dF87XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb24taWNvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLWNhcmQtYWN0aW9uLWljb24tY29sb3IpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLWJ1dHRvbnMgKyAubWRjLWNhcmRfX2FjdGlvbi1pY29ucyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChtYXJnaW4sIGxlZnQsIDE2cHgpO1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiBpdGVtc1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNhcmQtYWN0aW9ucy1sYXlvdXRfKGlubGluZS1mbGV4KTtcblxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gQWN0aW9uIGJ1dHRvbnNcbiAgLy9cblxuICAubWRjLWNhcmRfX2FjdGlvbi0tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgcmlnaHQsIDhweCk7XG5cbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jYXJkX19hY3Rpb25zLS1mdWxsLWJsZWVkIC5tZGMtY2FyZF9fYWN0aW9uLS1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEFjdGlvbiBpY29uc1xuICAvL1xuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLS1pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gSWNvbiBidXR0b25zIGFyZSB0YWxsZXIgdGhhbiBidXR0b25zLCBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGVpciBtYXJnaW5zIHRvIHByZXZlbnQgdGhlIGFjdGlvbiByb3cgZnJvbVxuICAgICAgLy8gZXhwYW5kaW5nLlxuICAgICAgbWFyZ2luOiAtNnB4IDA7XG5cbiAgICAgIC8vIFNhbWUgcGFkZGluZyBhcyBtZGMtaWNvbi1idXR0b24uXG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2FyZF9fYWN0aW9uLS1pY29uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJG1kYy1jYXJkLWFjdGlvbi1pY29uLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBjYXJkIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLWNhcmQtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNhcmQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLWNhcmRfX3ByaW1hcnktYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNhcmQtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jYXJkLW91dGxpbmUoJGNvbG9yLCAkdGhpY2tuZXNzOiAkbWRjLWNhcmQtb3V0bGluZS13aWR0aCwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGJvcmRlci13aWR0aDogJHRoaWNrbmVzcztcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIGJvcmRlci1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNhcmQtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtY2FyZC1tZWRpYS1hc3BlY3QtcmF0aW8oJHgsICR5LCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gVGhpcyBjbGV2ZXIgdHJpY2sgYnJvdWdodCB0byB5b3UgYnk6IGh0dHA6Ly93d3cubWFkZW15ZGF5LmRlL2Nzcy1oZWlnaHQtZXF1YWxzLXdpZHRoLXdpdGgtcHVyZS1jc3MuaHRtbFxuICAgICAgbWFyZ2luLXRvcDogcGVyY2VudGFnZSgkeSAvICR4KTtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtY2FyZC1jb250YWluZXItbGF5b3V0XyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtaXhpbiBtZGMtY2FyZC1hY3Rpb25zLWxheW91dF8oJGRpc3BsYXk6IGZsZXgpIHtcbiAgZGlzcGxheTogJGRpc3BsYXk7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCLvu78vL1xyXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vL1xyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxyXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy9cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4vLyBUSEUgU09GVFdBUkUuXHJcbi8vXHJcblxyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1wYXR0ZXJuLCBjb2xvci1oZXgtbGVuZ3RoXHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItcmVkLTUwOiAjZmZlYmVlO1xyXG4kbWF0ZXJpYWwtY29sb3ItcmVkLTEwMDogI2ZmY2RkMjtcclxuJG1hdGVyaWFsLWNvbG9yLXJlZC0yMDA6ICNlZjlhOWE7XHJcbiRtYXRlcmlhbC1jb2xvci1yZWQtMzAwOiAjZTU3MzczO1xyXG4kbWF0ZXJpYWwtY29sb3ItcmVkLTQwMDogI2VmNTM1MDtcclxuJG1hdGVyaWFsLWNvbG9yLXJlZC01MDA6ICNmNDQzMzY7XHJcbiRtYXRlcmlhbC1jb2xvci1yZWQtNjAwOiAjZTUzOTM1O1xyXG4kbWF0ZXJpYWwtY29sb3ItcmVkLTcwMDogI2QzMmYyZjtcclxuJG1hdGVyaWFsLWNvbG9yLXJlZC04MDA6ICNjNjI4Mjg7XHJcbiRtYXRlcmlhbC1jb2xvci1yZWQtOTAwOiAjYjcxYzFjO1xyXG4kbWF0ZXJpYWwtY29sb3ItcmVkLWExMDA6ICNmZjhhODA7XHJcbiRtYXRlcmlhbC1jb2xvci1yZWQtYTIwMDogI2ZmNTI1MjtcclxuJG1hdGVyaWFsLWNvbG9yLXJlZC1hNDAwOiAjZmYxNzQ0O1xyXG4kbWF0ZXJpYWwtY29sb3ItcmVkLWE3MDA6ICNkNTAwMDA7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItcGluay01MDogI2ZjZTRlYztcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstMTAwOiAjZjhiYmQwO1xyXG4kbWF0ZXJpYWwtY29sb3ItcGluay0yMDA6ICNmNDhmYjE7XHJcbiRtYXRlcmlhbC1jb2xvci1waW5rLTMwMDogI2YwNjI5MjtcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstNDAwOiAjZWM0MDdhO1xyXG4kbWF0ZXJpYWwtY29sb3ItcGluay01MDA6ICNlOTFlNjM7XHJcbiRtYXRlcmlhbC1jb2xvci1waW5rLTYwMDogI2Q4MWI2MDtcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstNzAwOiAjYzIxODViO1xyXG4kbWF0ZXJpYWwtY29sb3ItcGluay04MDA6ICNhZDE0NTc7XHJcbiRtYXRlcmlhbC1jb2xvci1waW5rLTkwMDogIzg4MGU0ZjtcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstYTEwMDogI2ZmODBhYjtcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstYTIwMDogI2ZmNDA4MTtcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstYTQwMDogI2Y1MDA1NztcclxuJG1hdGVyaWFsLWNvbG9yLXBpbmstYTcwMDogI2M1MTE2MjtcclxuXHJcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtNTA6ICNmM2U1ZjU7XHJcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtMTAwOiAjZTFiZWU3O1xyXG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLTIwMDogI2NlOTNkODtcclxuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS0zMDA6ICNiYTY4Yzg7XHJcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtNDAwOiAjYWI0N2JjO1xyXG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLTUwMDogIzljMjdiMDtcclxuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS02MDA6ICM4ZTI0YWE7XHJcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtNzAwOiAjN2IxZmEyO1xyXG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLTgwMDogIzZhMWI5YTtcclxuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS05MDA6ICM0YTE0OGM7XHJcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtYTEwMDogI2VhODBmYztcclxuJG1hdGVyaWFsLWNvbG9yLXB1cnBsZS1hMjAwOiAjZTA0MGZiO1xyXG4kbWF0ZXJpYWwtY29sb3ItcHVycGxlLWE0MDA6ICNkNTAwZjk7XHJcbiRtYXRlcmlhbC1jb2xvci1wdXJwbGUtYTcwMDogI2EwZjtcclxuXHJcbiRtYXRlcmlhbC1jb2xvci1kZWVwLXB1cnBsZS01MDogI2VkZTdmNjtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTEwMDogI2QxYzRlOTtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTIwMDogI2IzOWRkYjtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTMwMDogIzk1NzVjZDtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTQwMDogIzdlNTdjMjtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTUwMDogIzY3M2FiNztcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTYwMDogIzVlMzViMTtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTcwMDogIzUxMmRhODtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTgwMDogIzQ1MjdhMDtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLTkwMDogIzMxMWI5MjtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLWExMDA6ICNiMzg4ZmY7XHJcbiRtYXRlcmlhbC1jb2xvci1kZWVwLXB1cnBsZS1hMjAwOiAjN2M0ZGZmO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1wdXJwbGUtYTQwMDogIzY1MWZmZjtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtcHVycGxlLWE3MDA6ICM2MjAwZWE7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTUwOiAjZThlYWY2O1xyXG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTEwMDogI2M1Y2FlOTtcclxuJG1hdGVyaWFsLWNvbG9yLWluZGlnby0yMDA6ICM5ZmE4ZGE7XHJcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tMzAwOiAjNzk4NmNiO1xyXG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTQwMDogIzVjNmJjMDtcclxuJG1hdGVyaWFsLWNvbG9yLWluZGlnby01MDA6ICMzZjUxYjU7XHJcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tNjAwOiAjMzk0OWFiO1xyXG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLTcwMDogIzMwM2Y5ZjtcclxuJG1hdGVyaWFsLWNvbG9yLWluZGlnby04MDA6ICMyODM1OTM7XHJcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tOTAwOiAjMWEyMzdlO1xyXG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLWExMDA6ICM4YzllZmY7XHJcbiRtYXRlcmlhbC1jb2xvci1pbmRpZ28tYTIwMDogIzUzNmRmZTtcclxuJG1hdGVyaWFsLWNvbG9yLWluZGlnby1hNDAwOiAjM2Q1YWZlO1xyXG4kbWF0ZXJpYWwtY29sb3ItaW5kaWdvLWE3MDA6ICMzMDRmZmU7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS01MDogI2UzZjJmZDtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtMTAwOiAjYmJkZWZiO1xyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS0yMDA6ICM5MGNhZjk7XHJcbiRtYXRlcmlhbC1jb2xvci1ibHVlLTMwMDogIzY0YjVmNjtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtNDAwOiAjNDJhNWY1O1xyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS01MDA6ICMyMTk2ZjM7XHJcbiRtYXRlcmlhbC1jb2xvci1ibHVlLTYwMDogIzFlODhlNTtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtNzAwOiAjMTk3NmQyO1xyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS04MDA6ICMxNTY1YzA7XHJcbiRtYXRlcmlhbC1jb2xvci1ibHVlLTkwMDogIzBkNDdhMTtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtYTEwMDogIzgyYjFmZjtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtYTIwMDogIzQ0OGFmZjtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtYTQwMDogIzI5NzlmZjtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtYTcwMDogIzI5NjJmZjtcclxuXHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ibHVlLTUwOiAjZTFmNWZlO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS0xMDA6ICNiM2U1ZmM7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ibHVlLTIwMDogIzgxZDRmYTtcclxuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWJsdWUtMzAwOiAjNGZjM2Y3O1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS00MDA6ICMyOWI2ZjY7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ibHVlLTUwMDogIzAzYTlmNDtcclxuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWJsdWUtNjAwOiAjMDM5YmU1O1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS03MDA6ICMwMjg4ZDE7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ibHVlLTgwMDogIzAyNzdiZDtcclxuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWJsdWUtOTAwOiAjMDE1NzliO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS1hMTAwOiAjODBkOGZmO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS1hMjAwOiAjNDBjNGZmO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS1hNDAwOiAjMDBiMGZmO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtYmx1ZS1hNzAwOiAjMDA5MWVhO1xyXG5cclxuJG1hdGVyaWFsLWNvbG9yLWN5YW4tNTA6ICNlMGY3ZmE7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTEwMDogI2IyZWJmMjtcclxuJG1hdGVyaWFsLWNvbG9yLWN5YW4tMjAwOiAjODBkZWVhO1xyXG4kbWF0ZXJpYWwtY29sb3ItY3lhbi0zMDA6ICM0ZGQwZTE7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTQwMDogIzI2YzZkYTtcclxuJG1hdGVyaWFsLWNvbG9yLWN5YW4tNTAwOiAjMDBiY2Q0O1xyXG4kbWF0ZXJpYWwtY29sb3ItY3lhbi02MDA6ICMwMGFjYzE7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLTcwMDogIzAwOTdhNztcclxuJG1hdGVyaWFsLWNvbG9yLWN5YW4tODAwOiAjMDA4MzhmO1xyXG4kbWF0ZXJpYWwtY29sb3ItY3lhbi05MDA6ICMwMDYwNjQ7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLWExMDA6ICM4NGZmZmY7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLWEyMDA6ICMxOGZmZmY7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLWE0MDA6ICMwMGU1ZmY7XHJcbiRtYXRlcmlhbC1jb2xvci1jeWFuLWE3MDA6ICMwMGI4ZDQ7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItdGVhbC01MDogI2UwZjJmMTtcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtMTAwOiAjYjJkZmRiO1xyXG4kbWF0ZXJpYWwtY29sb3ItdGVhbC0yMDA6ICM4MGNiYzQ7XHJcbiRtYXRlcmlhbC1jb2xvci10ZWFsLTMwMDogIzRkYjZhYztcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtNDAwOiAjMjZhNjlhO1xyXG4kbWF0ZXJpYWwtY29sb3ItdGVhbC01MDA6ICMwMDk2ODg7XHJcbiRtYXRlcmlhbC1jb2xvci10ZWFsLTYwMDogIzAwODk3YjtcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtNzAwOiAjMDA3OTZiO1xyXG4kbWF0ZXJpYWwtY29sb3ItdGVhbC04MDA6ICMwMDY5NWM7XHJcbiRtYXRlcmlhbC1jb2xvci10ZWFsLTkwMDogIzAwNGQ0MDtcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtYTEwMDogI2E3ZmZlYjtcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtYTIwMDogIzY0ZmZkYTtcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtYTQwMDogIzFkZTliNjtcclxuJG1hdGVyaWFsLWNvbG9yLXRlYWwtYTcwMDogIzAwYmZhNTtcclxuXHJcbiRtYXRlcmlhbC1jb2xvci1ncmVlbi01MDogI2U4ZjVlOTtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTEwMDogI2M4ZTZjOTtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTIwMDogI2E1ZDZhNztcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTMwMDogIzgxYzc4NDtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTQwMDogIzY2YmI2YTtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTUwMDogIzRjYWY1MDtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTYwMDogIzQzYTA0NztcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTcwMDogIzM4OGUzYztcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTgwMDogIzJlN2QzMjtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLTkwMDogIzFiNWUyMDtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLWExMDA6ICNiOWY2Y2E7XHJcbiRtYXRlcmlhbC1jb2xvci1ncmVlbi1hMjAwOiAjNjlmMGFlO1xyXG4kbWF0ZXJpYWwtY29sb3ItZ3JlZW4tYTQwMDogIzAwZTY3NjtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZWVuLWE3MDA6ICMwMGM4NTM7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtZ3JlZW4tNTA6ICNmMWY4ZTk7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi0xMDA6ICNkY2VkYzg7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi0yMDA6ICNjNWUxYTU7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi0zMDA6ICNhZWQ1ODE7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi00MDA6ICM5Y2NjNjU7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi01MDA6ICM4YmMzNGE7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi02MDA6ICM3Y2IzNDI7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi03MDA6ICM2ODlmMzg7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi04MDA6ICM1NThiMmY7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi05MDA6ICMzMzY5MWU7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi1hMTAwOiAjY2NmZjkwO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGlnaHQtZ3JlZW4tYTIwMDogI2IyZmY1OTtcclxuJG1hdGVyaWFsLWNvbG9yLWxpZ2h0LWdyZWVuLWE0MDA6ICM3NmZmMDM7XHJcbiRtYXRlcmlhbC1jb2xvci1saWdodC1ncmVlbi1hNzAwOiAjNjRkZDE3O1xyXG5cclxuJG1hdGVyaWFsLWNvbG9yLWxpbWUtNTA6ICNmOWZiZTc7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLTEwMDogI2YwZjRjMztcclxuJG1hdGVyaWFsLWNvbG9yLWxpbWUtMjAwOiAjZTZlZTljO1xyXG4kbWF0ZXJpYWwtY29sb3ItbGltZS0zMDA6ICNkY2U3NzU7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLTQwMDogI2Q0ZTE1NztcclxuJG1hdGVyaWFsLWNvbG9yLWxpbWUtNTAwOiAjY2RkYzM5O1xyXG4kbWF0ZXJpYWwtY29sb3ItbGltZS02MDA6ICNjMGNhMzM7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLTcwMDogI2FmYjQyYjtcclxuJG1hdGVyaWFsLWNvbG9yLWxpbWUtODAwOiAjOWU5ZDI0O1xyXG4kbWF0ZXJpYWwtY29sb3ItbGltZS05MDA6ICM4Mjc3MTc7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLWExMDA6ICNmNGZmODE7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLWEyMDA6ICNlZWZmNDE7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLWE0MDA6ICNjNmZmMDA7XHJcbiRtYXRlcmlhbC1jb2xvci1saW1lLWE3MDA6ICNhZWVhMDA7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTUwOiAjZmZmZGU3O1xyXG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTEwMDogI2ZmZjljNDtcclxuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy0yMDA6ICNmZmY1OWQ7XHJcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctMzAwOiAjZmZmMTc2O1xyXG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTQwMDogI2ZmZWU1ODtcclxuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy01MDA6ICNmZmViM2I7XHJcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctNjAwOiAjZmRkODM1O1xyXG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LTcwMDogI2ZiYzAyZDtcclxuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy04MDA6ICNmOWE4MjU7XHJcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctOTAwOiAjZjU3ZjE3O1xyXG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LWExMDA6ICNmZmZmOGQ7XHJcbiRtYXRlcmlhbC1jb2xvci15ZWxsb3ctYTIwMDogI2ZmMDtcclxuJG1hdGVyaWFsLWNvbG9yLXllbGxvdy1hNDAwOiAjZmZlYTAwO1xyXG4kbWF0ZXJpYWwtY29sb3IteWVsbG93LWE3MDA6ICNmZmQ2MDA7XHJcblxyXG4kbWF0ZXJpYWwtY29sb3ItYW1iZXItNTA6ICNmZmY4ZTE7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci0xMDA6ICNmZmVjYjM7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci0yMDA6ICNmZmUwODI7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci0zMDA6ICNmZmQ1NGY7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci00MDA6ICNmZmNhMjg7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci01MDA6ICNmZmMxMDc7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci02MDA6ICNmZmIzMDA7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci03MDA6ICNmZmEwMDA7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci04MDA6ICNmZjhmMDA7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci05MDA6ICNmZjZmMDA7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci1hMTAwOiAjZmZlNTdmO1xyXG4kbWF0ZXJpYWwtY29sb3ItYW1iZXItYTIwMDogI2ZmZDc0MDtcclxuJG1hdGVyaWFsLWNvbG9yLWFtYmVyLWE0MDA6ICNmZmM0MDA7XHJcbiRtYXRlcmlhbC1jb2xvci1hbWJlci1hNzAwOiAjZmZhYjAwO1xyXG5cclxuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS01MDogI2ZmZjNlMDtcclxuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS0xMDA6ICNmZmUwYjI7XHJcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtMjAwOiAjZmZjYzgwO1xyXG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTMwMDogI2ZmYjc0ZDtcclxuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS00MDA6ICNmZmE3MjY7XHJcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtNTAwOiAjZmY5ODAwO1xyXG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTYwMDogI2ZiOGMwMDtcclxuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS03MDA6ICNmNTdjMDA7XHJcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtODAwOiAjZWY2YzAwO1xyXG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLTkwMDogI2U2NTEwMDtcclxuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS1hMTAwOiAjZmZkMTgwO1xyXG4kbWF0ZXJpYWwtY29sb3Itb3JhbmdlLWEyMDA6ICNmZmFiNDA7XHJcbiRtYXRlcmlhbC1jb2xvci1vcmFuZ2UtYTQwMDogI2ZmOTEwMDtcclxuJG1hdGVyaWFsLWNvbG9yLW9yYW5nZS1hNzAwOiAjZmY2ZDAwO1xyXG5cclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtb3JhbmdlLTUwOiAjZmJlOWU3O1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtMTAwOiAjZmZjY2JjO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtMjAwOiAjZmZhYjkxO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtMzAwOiAjZmY4YTY1O1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNDAwOiAjZmY3MDQzO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNTAwOiAjZmY1NzIyO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNjAwOiAjZjQ1MTFlO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtNzAwOiAjZTY0YTE5O1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtODAwOiAjZDg0MzE1O1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtOTAwOiAjYmYzNjBjO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtYTEwMDogI2ZmOWU4MDtcclxuJG1hdGVyaWFsLWNvbG9yLWRlZXAtb3JhbmdlLWEyMDA6ICNmZjZlNDA7XHJcbiRtYXRlcmlhbC1jb2xvci1kZWVwLW9yYW5nZS1hNDAwOiAjZmYzZDAwO1xyXG4kbWF0ZXJpYWwtY29sb3ItZGVlcC1vcmFuZ2UtYTcwMDogI2RkMmMwMDtcclxuXHJcbiRtYXRlcmlhbC1jb2xvci1icm93bi01MDogI2VmZWJlOTtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTEwMDogI2Q3Y2NjODtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTIwMDogI2JjYWFhNDtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTMwMDogI2ExODg3ZjtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTQwMDogIzhkNmU2MztcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTUwMDogIzc5NTU0ODtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTYwMDogIzZkNGM0MTtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTcwMDogIzVkNDAzNztcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTgwMDogIzRlMzQyZTtcclxuJG1hdGVyaWFsLWNvbG9yLWJyb3duLTkwMDogIzNlMjcyMztcclxuXHJcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTUwOiAjZmFmYWZhO1xyXG4kbWF0ZXJpYWwtY29sb3ItZ3JleS0xMDA6ICNmNWY1ZjU7XHJcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTIwMDogI2VlZTtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZXktMzAwOiAjZTBlMGUwO1xyXG4kbWF0ZXJpYWwtY29sb3ItZ3JleS00MDA6ICNiZGJkYmQ7XHJcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTUwMDogIzllOWU5ZTtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZXktNjAwOiAjNzU3NTc1O1xyXG4kbWF0ZXJpYWwtY29sb3ItZ3JleS03MDA6ICM2MTYxNjE7XHJcbiRtYXRlcmlhbC1jb2xvci1ncmV5LTgwMDogIzQyNDI0MjtcclxuJG1hdGVyaWFsLWNvbG9yLWdyZXktOTAwOiAjMjEyMTIxO1xyXG5cclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS01MDogI2VjZWZmMTtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS0xMDA6ICNjZmQ4ZGM7XHJcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWdyZXktMjAwOiAjYjBiZWM1O1xyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1ncmV5LTMwMDogIzkwYTRhZTtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS00MDA6ICM3ODkwOWM7XHJcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWdyZXktNTAwOiAjNjA3ZDhiO1xyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1ncmV5LTYwMDogIzU0NmU3YTtcclxuJG1hdGVyaWFsLWNvbG9yLWJsdWUtZ3JleS03MDA6ICM0NTVhNjQ7XHJcbiRtYXRlcmlhbC1jb2xvci1ibHVlLWdyZXktODAwOiAjMzc0NzRmO1xyXG4kbWF0ZXJpYWwtY29sb3ItYmx1ZS1ncmV5LTkwMDogIzI2MzIzODtcclxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiO1xuXG4kbWRjLWNhcmQtYWN0aW9uLWljb24tY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKG1lZGl1bSkpICFkZWZhdWx0O1xuJG1kYy1jYXJkLW91dGxpbmUtY29sb3I6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDEyJSkgIWRlZmF1bHQ7XG4kbWRjLWNhcmQtb3V0bGluZS13aWR0aDogMXB4ICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWNvbnRhaW5lci1rZXlmcmFtZXNfKFxuICAkZnJvbS1zdHJva2UtY29sb3IsXG4gICR0by1zdHJva2UtY29sb3IsXG4gICRmcm9tLWZpbGwtY29sb3IsXG4gICR0by1maWxsLWNvbG9yLFxuICAkdWlkKSB7XG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWZhZGUtaW4tYmFja2dyb3VuZC0jeyR1aWR9IHtcbiAgICAwJSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRmcm9tLXN0cm9rZS1jb2xvcik7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkZnJvbS1maWxsLWNvbG9yKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkdG8tc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR0by1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1mYWRlLW91dC1iYWNrZ3JvdW5kLSN7JHVpZH0ge1xuICAgIDAlLFxuICAgIDgwJSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICR0by1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJHRvLWZpbGwtY29sb3IpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkZnJvbS1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGZyb20tZmlsbC1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtbWFyay1rZXlmcmFtZXNfIHtcbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGgge1xuICAgIDAlLFxuICAgIDUwJSB7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tZGVjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LXVuY2hlY2tlZC1pbmRldGVybWluYXRlLW1peGVkbWFyayB7XG4gICAgMCUsXG4gICAgNjguMiUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgfVxuXG4gICAgNjguMiUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAsIDEpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBtZGMtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGgge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1hbmltYXRpb24tYWNjZWxlcmF0aW9uLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6ICRtZGMtY2hlY2tib3gtbWFyay1wYXRoLWxlbmd0aF8gKiAtMTtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtY2hlY2ttYXJrIHtcbiAgICBmcm9tIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWVhc2luZy1mdW5jdGlvbl87XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbWRjLWFuaW1hdGlvbi1kZWNlbGVyYXRpb24tY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hlY2tlZC1taXhlZG1hcmsge1xuICAgIGZyb20ge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtZWFzaW5nLWZ1bmN0aW9uXztcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICBAa2V5ZnJhbWVzIG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLXVuY2hlY2tlZC1taXhlZG1hcmsge1xuICAgIDAlIHtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAzMi44JSxcbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtY2hlY2tib3gtbWFyay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tcHJpbWFyeSkgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWJvcmRlci1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjU0KSAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4yNikgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWJhc2VsaW5lLXRoZW1lLWNvbG9yOiBzZWNvbmRhcnkgIWRlZmF1bHQ7XG5cbiRtZGMtY2hlY2tib3gtdG91Y2gtYXJlYTogNDBweCAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtc2l6ZTogMThweCAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtdWktcGN0OiBwZXJjZW50YWdlKCRtZGMtY2hlY2tib3gtc2l6ZSAvICRtZGMtY2hlY2tib3gtdG91Y2gtYXJlYSkgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LW1hcmstc3Ryb2tlLXNpemU6IDIvMTUgKiAkbWRjLWNoZWNrYm94LXNpemUgIWRlZmF1bHQ7XG4kbWRjLWNoZWNrYm94LWJvcmRlci13aWR0aDogMnB4ICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uOiA5MG1zICFkZWZhdWx0O1xuJG1kYy1jaGVja2JveC1pdGVtLXNwYWNpbmc6IDRweCAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtZm9jdXMtaW5kaWNhdG9yLW9wYWNpdHk6IG1hcC1nZXQoJG1kYy1yaXBwbGUtZGFyay1pbmstb3BhY2l0aWVzLCBmb2N1cykgIWRlZmF1bHQ7XG5cbi8vIE1hbnVhbCBjYWxjdWxhdGlvbiBkb25lIG9uIFNWR1xuJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXzogMjkuNzgzMzM4NSAhZGVmYXVsdDtcbiRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWVhc2luZy1mdW5jdGlvbl86IGN1YmljLWJlemllciguMTQsIDAsIDAsIDEpICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LXdpdGhvdXQtcmlwcGxlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gY2hlY2tib3ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2hlY2tib3gtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNoZWNrYm94LXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgY2hlY2tib3hcblxuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC1tYXJrLWtleWZyYW1lc187XG4gIH1cblxuICAubWRjLWNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWJhc2VfO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1jb250YWluZXItY29sb3JzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWluay1jb2xvcigkbWRjLWNoZWNrYm94LW1hcmstY29sb3IsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJG1kYy1jaGVja2JveC1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWRpc2FibGVkLWNvbnRhaW5lci1jb2xvcl87XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW46IDAgMXB4OyAvLyBFeHRyYSBob3Jpem9udGFsIHNwYWNlIGFyb3VuZCBtaXhlZG1hcmsgc3ltYm9sLlxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE5lZWRlZCB0byBkaXNhYmxlIGhvdmVyIGVmZmVjdHMgb24gQ1NTLW9ubHkgKG5vbi1KUykgY2hlY2tib3hlc1xuICAubWRjLWNoZWNrYm94LS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC0tZGlzYWJsZWRfO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fYmFja2dyb3VuZF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmtfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aCB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aF8oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19taXhlZG1hcmtfKCRxdWVyeSk7XG4gIH1cblxuICAvLyBKUyBjaGVja2JveFxuICAubWRjLWNoZWNrYm94LS11cGdyYWRlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmssXG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgsXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fY2hpbGQtLXVwZ3JhZGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94LS1hbmltIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LS1hbmltXztcbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDpjaGVja2VkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCxcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2JhY2tncm91bmQtLW1hcmtlZF87XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aC0tbWFya2VkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaGUgZnJhbWUncyA6OmJlZm9yZSBlbGVtZW50IGlzIHVzZWQgYXMgYSBmb2N1cyBpbmRpY2F0b3IgZm9yIHRoZSBjaGVja2JveFxuICAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fZm9jdXMtaW5kaWNhdG9yXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6Zm9jdXMgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fZm9jdXMtaW5kaWNhdG9yLS1mb2N1c2VkXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sXztcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveC0tZGlzYWJsZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94X19jaGVja21hcmstLWNoZWNrZWRfKCRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fbWl4ZWRtYXJrLS1jaGVja2VkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDppbmRldGVybWluYXRlIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrLS1pbmRldGVybWluYXRlXygkcXVlcnkpO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX21peGVkbWFyay0taW5kZXRlcm1pbmF0ZV87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gY2hlY2tib3ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtY2hlY2tib3gtY29yZS1zdHlsZXNgIGluc3RlYWQuXG5AbWl4aW4gbWRjLWNoZWNrYm94LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLWNoZWNrYm94IHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRtZGMtY2hlY2tib3gtYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LWNvbnRhaW5lci1jb2xvcnMoXG4gICR1bm1hcmtlZC1zdHJva2UtY29sb3I6ICRtZGMtY2hlY2tib3gtYm9yZGVyLWNvbG9yLFxuICAkdW5tYXJrZWQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQsXG4gICRtYXJrZWQtc3Ryb2tlLWNvbG9yOiAkbWRjLWNoZWNrYm94LWJhc2VsaW5lLXRoZW1lLWNvbG9yLFxuICAkbWFya2VkLWZpbGwtY29sb3I6ICRtZGMtY2hlY2tib3gtYmFzZWxpbmUtdGhlbWUtY29sb3IsXG4gICRnZW5lcmF0ZS1rZXlmcmFtZXM6IHRydWUsXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtdW5tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1lbmFibGVkXyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkdW5tYXJrZWQtc3Ryb2tlLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR1bm1hcmtlZC1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtY2hlY2tib3gtbWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZW5hYmxlZF8ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJG1hcmtlZC1zdHJva2UtY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJG1hcmtlZC1maWxsLWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJGdlbmVyYXRlLWtleWZyYW1lcyB7XG4gICAgJHVpZDogbWRjLWNoZWNrYm94LWNvbnRhaW5lci1rZXlmcmFtZXMtdWlkXygpO1xuICAgICRhbmltLXNlbGVjdG9yOiBpZigmLCBcIiYubWRjLWNoZWNrYm94LS1hbmltXCIsIFwiLm1kYy1jaGVja2JveC0tYW5pbVwiKTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uLCAkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoZWNrYm94LWNvbnRhaW5lci1rZXlmcmFtZXNfKFxuICAgICAgICAkZnJvbS1zdHJva2UtY29sb3I6ICR1bm1hcmtlZC1zdHJva2UtY29sb3IsXG4gICAgICAgICR0by1zdHJva2UtY29sb3I6ICRtYXJrZWQtc3Ryb2tlLWNvbG9yLFxuICAgICAgICAkZnJvbS1maWxsLWNvbG9yOiAkdW5tYXJrZWQtZmlsbC1jb2xvcixcbiAgICAgICAgJHRvLWZpbGwtY29sb3I6ICRtYXJrZWQtZmlsbC1jb2xvcixcbiAgICAgICAgJHVpZDogJHVpZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuXG4gICAgI3skYW5pbS1zZWxlY3Rvcn0ge1xuICAgICAgJi11bmNoZWNrZWQtY2hlY2tlZCxcbiAgICAgICYtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUge1xuICAgICAgICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkIH4gLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBtZGMtY2hlY2tib3gtZmFkZS1pbi1iYWNrZ3JvdW5kLSN7JHVpZH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtY2hlY2tlZC11bmNoZWNrZWQsXG4gICAgICAmLWluZGV0ZXJtaW5hdGUtdW5jaGVja2VkIHtcbiAgICAgICAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogbWRjLWNoZWNrYm94LWZhZGUtb3V0LWJhY2tncm91bmQtI3skdWlkfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoXG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBUaGUgOjpiZWZvcmUgZWxlbWVudCBpcyB1c2VkIGFzIGEgZm9jdXMgaW5kaWNhdG9yIGZvciB0aGUgY2hlY2tib3hcbiAgLm1kYy1jaGVja2JveF9fYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtYmFzZV8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAwICRtZGMtY2hlY2tib3gtc2l6ZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHdpZHRoOiAkbWRjLWNoZWNrYm94LXNpemU7XG4gIGhlaWdodDogJG1kYy1jaGVja2JveC1zaXplO1xuICBwYWRkaW5nOiAoJG1kYy1jaGVja2JveC10b3VjaC1hcmVhIC0gJG1kYy1jaGVja2JveC1zaXplKSAvIDI7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29udGFpbmVyLWNvbG9yXyB7XG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC11bm1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWRpc2FibGVkXyB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkbWRjLWNoZWNrYm94LWRpc2FibGVkLWNvbG9yKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1jaGVja2JveC1tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1kaXNhYmxlZF8ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRtZGMtY2hlY2tib3gtZGlzYWJsZWQtY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtLWRpc2FibGVkXyB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoaWxkLS1jb3Zlci1wYXJlbnRfIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2NoaWxkLS11cGdyYWRlZF8ge1xuICAvLyBEdWUgdG8gdGhlIG15cmlhZCBvZiBzZWxlY3RvciBjb21ib3MgdXNlZCB0byBwcm9wZXJseSBzdHlsZSBhIENTUy1vbmx5IGNoZWNrYm94LCBhbGwgb2ZcbiAgLy8gd2hpY2ggaGF2ZSB2YXJ5aW5nIHNlbGVjdG9yIHByZWNlZGVuY2UgYW5kIG1ha2UgdXNlIG9mIHRyYW5zaXRpb25zLCBpdCBpcyBjbGVhbmVyIGFuZCBtb3JlXG4gIC8vIGVmZmljaWVudCBoZXJlIHRvIHNpbXBseSB1c2UgIWltcG9ydGFudCwgc2luY2UgdGhlIG1kYy1jaGVja2JveC0tYW5pbS0qIGNsYXNzZXMgd2lsbCB0YWtlXG4gIC8vIG92ZXIgZnJvbSBoZXJlLlxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFuaW1hdGlvblxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LS1hbmltXyB7XG4gICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fOiA1MDBtcztcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuXG4gICYtdW5jaGVja2VkLWNoZWNrZWQsXG4gICYtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUsXG4gICYtY2hlY2tlZC11bmNoZWNrZWQsXG4gICYtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgIH1cbiAgfVxuXG4gICYtdW5jaGVja2VkLWNoZWNrZWQge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyay1wYXRoIHtcbiAgICAgIC8vIEluc3RlYWQgb2YgZGVsYXlpbmcgdGhlIGFuaW1hdGlvbiwgd2Ugc2ltcGx5IG11bHRpcGx5IGl0cyBsZW5ndGggYnkgMiBhbmQgYmVnaW4gdGhlXG4gICAgICAvLyBhbmltYXRpb24gYXQgNTAlIGluIG9yZGVyIHRvIHByZXZlbnQgYSBmbGFzaCBvZiBzdHlsZXMgYXBwbGllZCB0byBhIGNoZWNrZWQgY2hlY2ttYXJrXG4gICAgICAvLyBhcyB0aGUgYmFja2dyb3VuZCBpcyBmYWRpbmcgaW4gYmVmb3JlIHRoZSBhbmltYXRpb24gYmVnaW5zLlxuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtdW5jaGVja2VkLWNoZWNrZWQtY2hlY2ttYXJrLXBhdGggJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uICogMiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtdW5jaGVja2VkLWluZGV0ZXJtaW5hdGUge1xuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC11bmNoZWNrZWQtaW5kZXRlcm1pbmF0ZS1taXhlZG1hcmsgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1jaGVja2VkLXVuY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fY2hlY2ttYXJrLXBhdGgge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtY2hlY2tlZC11bmNoZWNrZWQtY2hlY2ttYXJrLXBhdGggJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1jaGVja2VkLWluZGV0ZXJtaW5hdGUge1xuICAgIC5tZGMtY2hlY2tib3hfX2NoZWNrbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtY2hlY2ttYXJrICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1jaGVja2VkLWluZGV0ZXJtaW5hdGUtbWl4ZWRtYXJrICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYtaW5kZXRlcm1pbmF0ZS1jaGVja2VkIHtcbiAgICAubWRjLWNoZWNrYm94X19jaGVja21hcmsge1xuICAgICAgYW5pbWF0aW9uOiBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGVja2VkLWNoZWNrbWFyayAkbWRjLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtY2hhbmdlLWR1cmF0aW9uXyBsaW5lYXIgMHM7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5tZGMtY2hlY2tib3hfX21peGVkbWFyayB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGVja2JveC1pbmRldGVybWluYXRlLWNoZWNrZWQtbWl4ZWRtYXJrICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fIGxpbmVhciAwcztcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1pbmRldGVybWluYXRlLXVuY2hlY2tlZCB7XG4gICAgLm1kYy1jaGVja2JveF9fbWl4ZWRtYXJrIHtcbiAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1jb2xvbi1zcGFjZS1hZnRlclxuICAgICAgYW5pbWF0aW9uOlxuICAgICAgICBtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS11bmNoZWNrZWQtbWl4ZWRtYXJrICRtZGMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1jaGFuZ2UtZHVyYXRpb25fICogLjYgbGluZWFyIDBzO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC10eXBlXG59XG5cbi8vIEJhY2tncm91bmRcblxuQG1peGluIG1kYy1jaGVja2JveC11bm1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWVuYWJsZWRfIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC1zcGVjaWZpY2l0eVxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtdW5tYXJrZWQtYmFja2dyb3VuZC1zZWxlY3Rvci1kaXNhYmxlZF8ge1xuICAvLyBOb3RlOiB3ZSBtdXN0IHVzZSBgW2Rpc2FibGVkXWAgaW5zdGVhZCBvZiBgOmRpc2FibGVkYCBiZWxvdyBiZWNhdXNlIEVkZ2UgZG9lcyBub3QgYWx3YXlzIHJlY2FsY3VsYXRlIHRoZSBzdHlsZVxuICAvLyBwcm9wZXJ0eSB3aGVuIHRoZSBgOmRpc2FibGVkYCBwc2V1ZG8tY2xhc3MgaXMgZm9sbG93ZWQgYnkgYSBzaWJsaW5nIGNvbWJpbmF0b3IuIFNlZTpcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTEyOTUyMzEvXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOm5vdCg6Y2hlY2tlZCk6bm90KDppbmRldGVybWluYXRlKSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3gtbWFya2VkLWJhY2tncm91bmQtc2VsZWN0b3ItZW5hYmxlZF8ge1xuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbDplbmFibGVkOmluZGV0ZXJtaW5hdGUgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94LW1hcmtlZC1iYWNrZ3JvdW5kLXNlbGVjdG9yLWRpc2FibGVkXyB7XG4gIC8vIE5vdGU6IHdlIG11c3QgdXNlIGBbZGlzYWJsZWRdYCBpbnN0ZWFkIG9mIGA6ZGlzYWJsZWRgIGJlbG93IGJlY2F1c2UgRWRnZSBkb2VzIG5vdCBhbHdheXMgcmVjYWxjdWxhdGUgdGhlIHN0eWxlXG4gIC8vIHByb3BlcnR5IHdoZW4gdGhlIGA6ZGlzYWJsZWRgIHBzZXVkby1jbGFzcyBpcyBmb2xsb3dlZCBieSBhIHNpYmxpbmcgY29tYmluYXRvci4gU2VlOlxuICAvLyBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy8xMTI5NTIzMS9cbiAgLm1kYy1jaGVja2JveF9fbmF0aXZlLWNvbnRyb2xbZGlzYWJsZWRdOmNoZWNrZWQgfiAubWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLFxuICAubWRjLWNoZWNrYm94X19uYXRpdmUtY29udHJvbFtkaXNhYmxlZF06aW5kZXRlcm1pbmF0ZSB+IC5tZGMtY2hlY2tib3hfX2JhY2tncm91bmQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX2JhY2tncm91bmRfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICgkbWRjLWNoZWNrYm94LXRvdWNoLWFyZWEgLSAkbWRjLWNoZWNrYm94LXNpemUpIC8gMiwgXCIubWRjLWNoZWNrYm94XCIpO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogKCRtZGMtY2hlY2tib3gtdG91Y2gtYXJlYSAtICRtZGMtY2hlY2tib3gtc2l6ZSkgLyAyO1xuICAgIGJvdHRvbTogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRtZGMtY2hlY2tib3gtdWktcGN0O1xuICAgIGhlaWdodDogJG1kYy1jaGVja2JveC11aS1wY3Q7XG4gICAgLy8gYm9yZGVyLWNvbG9yIGlzIG92ZXJyaWRkZW4gYnkgdGhlIG1kYy1jaGVja2JveC11bm1hcmtlZC1zdHJva2UtY29sb3IoKSBtaXhpblxuICAgIGJvcmRlcjogJG1kYy1jaGVja2JveC1ib3JkZXItd2lkdGggc29saWQgY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChiYWNrZ3JvdW5kLWNvbG9yKSxcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQoYm9yZGVyLWNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19iYWNrZ3JvdW5kLS1tYXJrZWRfIHtcbiAgdHJhbnNpdGlvbjpcbiAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1lbnRlcihib3JkZXItY29sb3IpLFxuICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWVudGVyKGJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBGb2N1cyBpbmRpY2F0b3JcblxuQG1peGluIG1kYy1jaGVja2JveF9fZm9jdXMtaW5kaWNhdG9yXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hlY2tib3hfX2NoaWxkLS1jb3Zlci1wYXJlbnRfO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChvcGFjaXR5KSxcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQodHJhbnNmb3JtKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19mb2N1cy1pbmRpY2F0b3ItLWZvY3VzZWRfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMi43NSwgMi43NSk7XG4gICAgb3BhY2l0eTogJG1kYy1jaGVja2JveC1mb2N1cy1pbmRpY2F0b3Itb3BhY2l0eTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWVudGVyKG9wYWNpdHksIDBtcywgODBtcyksXG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1lbnRlcih0cmFuc2Zvcm0sIDBtcywgODBtcyk7XG4gIH1cbn1cblxuLy8gTmF0aXZlIGlucHV0XG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX25hdGl2ZS1jb250cm9sXyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogaW5oZXJpdDtcbn1cblxuLy8gQ2hlY2sgbWFya1xuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19jaGVja21hcmtfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpbmNsdWRlIG1kYy1jaGVja2JveF9fY2hpbGQtLWNvdmVyLXBhcmVudF87XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KG9wYWNpdHksIDBtcywgJG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWR1cmF0aW9uICogMik7XG4gIH1cblxuICAubWRjLWNoZWNrYm94LS11cGdyYWRlZCAmIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fY2hlY2ttYXJrLS1jaGVja2VkXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZW50ZXIob3BhY2l0eSwgMG1zLCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyKSxcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWVudGVyKHRyYW5zZm9ybSwgMG1zLCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19jaGVja21hcmstLWluZGV0ZXJtaW5hdGVfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChvcGFjaXR5LCAwbXMsICRtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1kdXJhdGlvbiksXG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSwgMG1zLCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICB9XG59XG5cbi8vIENoZWNrIG1hcmsgcGF0aFxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChzdHJva2UtZGFzaG9mZnNldCwgMG1zLCAkbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZHVyYXRpb24gKiAyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gICAgc3Ryb2tlLXdpZHRoOiAkbWRjLWNoZWNrYm94LW1hcmstc3Ryb2tlLXNpemUgKiAxLjM7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6ICRtZGMtY2hlY2tib3gtbWFyay1wYXRoLWxlbmd0aF87XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19jaGVja21hcmstcGF0aC0tbWFya2VkXyB7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xufVxuXG4vLyBNaXhlZCBtYXJrXG5cbkBtaXhpbiBtZGMtY2hlY2tib3hfX21peGVkbWFya18oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApIHJvdGF0ZSgwZGVnKTtcbiAgICBib3JkZXItd2lkdGg6IGZsb29yKCRtZGMtY2hlY2tib3gtbWFyay1zdHJva2Utc2l6ZSkgLyAyO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1jaGVja2JveC10cmFuc2l0aW9uLWV4aXQob3BhY2l0eSksXG4gICAgICBtZGMtY2hlY2tib3gtdHJhbnNpdGlvbi1leGl0KHRyYW5zZm9ybSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGVja2JveF9fbWl4ZWRtYXJrLS1jaGVja2VkXyB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpIHJvdGF0ZSgtNDVkZWcpO1xufVxuXG5AbWl4aW4gbWRjLWNoZWNrYm94X19taXhlZG1hcmstLWluZGV0ZXJtaW5hdGVfIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2NoZWNrYm94L2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9jaGVja2JveC92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zaGFwZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWNoaXAtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtY2hpcC13aXRob3V0LXJpcHBsZSgkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLXJpcHBsZSgkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC13aXRob3V0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1jb2xvcigkbWRjLWNoaXAtaWNvbi1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC10cmFpbGluZy1pY29uLWNvbG9yKCRtZGMtY2hpcC1pY29uLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplKCRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC10cmFpbGluZy1pY29uLXNpemUoJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tc2l6ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbigkcXVlcnk6ICRxdWVyeSk7XG5cbiAgLm1kYy1jaGlwIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zaGFwZS1yYWRpdXMoNTAlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtZmlsbC1jb2xvcigkbWRjLWNoaXAtZmlsbC1jb2xvci1kZWZhdWx0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtaW5rLWNvbG9yLXdpdGhvdXQtcmlwcGxlXygkbWRjLWNoaXAtaW5rLWNvbG9yLWRlZmF1bHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWhlaWdodCgkbWRjLWNoaXAtaGVpZ2h0LWRlZmF1bHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogJG1kYy1jaGlwLXZlcnRpY2FsLXBhZGRpbmcgJG1kYy1jaGlwLWhvcml6b250YWwtcGFkZGluZztcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgb24tc3VyZmFjZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGlwLS1leGl0IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkbWRjLWNoaXAtZXhpdC10cmFuc2l0aW9uO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hpcF9fdGV4dCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGlwX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1jaGlwX19jaGVja21hcmsge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZTtcbiAgICB9XG4gIH1cblxuICAubWRjLWNoaXBfX2NoZWNrbWFyay1wYXRoIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgbWRjLWNoZWNrYm94LXRyYW5zaXRpb24tZXhpdChcbiAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldCxcbiAgICAgICAgICAkbWRjLWNoaXAtY2hlY2ttYXJrLWFuaW1hdGlvbi1kZWxheSxcbiAgICAgICAgICAkbWRjLWNoaXAtY2hlY2ttYXJrLWFuaW1hdGlvbi1kdXJhdGlvblxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAkbWRjLWNoZWNrYm94LW1hcmstcGF0aC1sZW5ndGhfO1xuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogJG1kYy1jaGVja2JveC1tYXJrLXBhdGgtbGVuZ3RoXztcbiAgICB9XG4gIH1cblxuICAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDaGFuZ2UgY29sb3Igb2Ygc2VsZWN0ZWQgY2hvaWNlIGNoaXBzXG5cbiAgLm1kYy1jaGlwLXNldC0tY2hvaWNlIHtcbiAgICAubWRjLWNoaXAge1xuICAgICAgQGluY2x1ZGUgbWRjLWNoaXAtc2VsZWN0ZWQtaW5rLWNvbG9yLXdpdGhvdXQtcmlwcGxlXyhwcmltYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgfVxuXG4gICAgLm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsIHN1cmZhY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCBsZWFkaW5nIGNoZWNrbWFyayB0byBmaWx0ZXIgY2hpcHMgd2l0aCBubyBsZWFkaW5nIGljb25cblxuICAubWRjLWNoaXBfX2NoZWNrbWFyay1zdmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAkbWRjLWNoaXAtd2lkdGgtYW5pbWF0aW9uLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICB9XG4gIH1cblxuICAubWRjLWNoaXAtLXNlbGVjdGVkIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXN2ZyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGxlYWRpbmcgY2hlY2ttYXJrIHRvIGZpbHRlciBjaGlwcyB3aXRoIGEgbGVhZGluZyBpY29uXG5cbiAgLm1kYy1jaGlwLXNldC0tZmlsdGVyIHtcbiAgICAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWRjLWNoaXAtb3BhY2l0eS1hbmltYXRpb24tZHVyYXRpb24gbGluZWFyO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLWRlbGF5O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZGMtY2hpcC1vcGFjaXR5LWFuaW1hdGlvbi1kdXJhdGlvbiBsaW5lYXI7XG5cbiAgICAgICAgICAvLyBEZWxheSB0aGUgY2hlY2ttYXJrIHRyYW5zaXRpb24uXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogJG1kYy1jaGlwLWNoZWNrbWFyay13aXRoLWxlYWRpbmctaWNvbi1kZWxheTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXN2ZyB7XG4gICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcblxuICAgICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwbXM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZSBtYXgtbmVzdGluZy1kZXB0aFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1jaGlwLS1zZWxlY3RlZCAubWRjLWNoaXBfX2ljb24tLWxlYWRpbmcge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgKyAubWRjLWNoaXBfX2NoZWNrbWFyayB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGNoZWNrbWFyayBoYXMgemVybyB3aWR0aCB3aGlsZSB0aGUgbGVhZGluZyBpY29uIGlzIHN0aWxsIGFuaW1hdGluZy5cbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbi5tZGMtY2hpcF9faWNvbi0tbGVhZGluZyB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGxlYWRpbmcgaWNvbiBkb2Vzbid0IGZhZGUgaW4gd2hpbGUgdGhlIGNoZWNrbWFyayBpcyBmYWRpbmcgb3V0LlxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICArIC5tZGMtY2hpcF9fY2hlY2ttYXJrIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICB3aWR0aDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1zaXplO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pbmstY29sb3ItcmlwcGxlXygkbWRjLWNoaXAtaW5rLWNvbG9yLWRlZmF1bHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtY2hpcC1zZXQtLWNob2ljZSB7XG4gICAgLm1kYy1jaGlwIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1jaGlwLXNlbGVjdGVkLWluay1jb2xvci1yaXBwbGVfKHByaW1hcnksICRxdWVyeTogJHF1ZXJ5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXNldC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICBAa2V5ZnJhbWVzIG1kYy1jaGlwLWVudHJ5IHtcbiAgICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC44KTtcbiAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICB9XG5cbiAgICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWNoaXAtc2V0IHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zZXQtc3BhY2luZyg4cHgsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICAubWRjLWNoaXAtc2V0LS1pbnB1dCAubWRjLWNoaXAge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICBhbmltYXRpb246IG1kYy1jaGlwLWVudHJ5IDEwMG1zICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoXG4gICAgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1yYWRpdXMoJG1kYy1jaGlwLWhlaWdodC1kZWZhdWx0LCAkcmFkaXVzKSxcbiAgICAkcnRsLXJlZmxleGl2ZSxcbiAgICAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1maWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmaWxsLXRvbmU6IG1kYy10aGVtZS10b25lKCRjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWNoaXAtZmlsbC1jb2xvcigkY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaWYgKCRmaWxsLXRvbmUgPT0gXCJkYXJrXCIpIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1sZWFkaW5nLWljb24tY29sb3IodGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC10cmFpbGluZy1pY29uLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1kYXJrLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtbGVhZGluZy1pY29uLWNvbG9yKHRleHQtcHJpbWFyeS1vbi1saWdodCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLWluay1jb2xvci1yaXBwbGVfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC1pbmstY29sb3Itd2l0aG91dC1yaXBwbGVfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtaW5rLWNvbG9yLXdpdGhvdXQtcmlwcGxlXygkY29sb3IsICRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLWluay1jb2xvci1yaXBwbGVfKCRjb2xvciwgJHF1ZXJ5KSB7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLXNlbGVjdGVkLWluay1jb2xvci1yaXBwbGVfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtY2hpcC1zZWxlY3RlZC1pbmstY29sb3Itd2l0aG91dC1yaXBwbGVfKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLWNoaXAtc2VsZWN0ZWQtaW5rLWNvbG9yLXdpdGhvdXQtcmlwcGxlXygkY29sb3IsICRxdWVyeSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1jaGlwLS1zZWxlY3RlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWNoaXAtbGVhZGluZy1pY29uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtY2hpcF9fY2hlY2ttYXJrLXBhdGgge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKHN0cm9rZSwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXNlbGVjdGVkLWluay1jb2xvci1yaXBwbGVfKCRjb2xvciwgJHF1ZXJ5KSB7XG4gICYubWRjLWNoaXAge1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtc2VsZWN0ZWQoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLW91dGxpbmUoXG4gICR3aWR0aDogMXB4LFxuICAkc3R5bGU6IHNvbGlkLFxuICAkY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLW91dGxpbmUtd2lkdGgoJHdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLW91dGxpbmUtc3R5bGUoJHN0eWxlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1jaGlwLW91dGxpbmUtY29sb3IoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1vdXRsaW5lLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC1vdXRsaW5lLXN0eWxlKCRzdHlsZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm9yZGVyLXN0eWxlOiAkc3R5bGU7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLW91dGxpbmUtd2lkdGgoJHdpZHRoLCAkaG9yaXpvbnRhbC1wYWRkaW5nOiAkbWRjLWNoaXAtaG9yaXpvbnRhbC1wYWRkaW5nLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLy8gTm90ZTogQWRqdXN0IHBhZGRpbmcgdG8gbWFpbnRhaW4gY29uc2lzdGVudCB3aWR0aCB3aXRoIG5vbi1vdXRsaW5lZCBjaGlwc1xuICAkaG9yaXpvbnRhbC1wYWRkaW5nLXZhbHVlOiBtYXgoJGhvcml6b250YWwtcGFkZGluZyAtICR3aWR0aCwgMCk7XG4gICR2ZXJ0aWNhbC1wYWRkaW5nLXZhbHVlOiBtYXgoJG1kYy1jaGlwLXZlcnRpY2FsLXBhZGRpbmcgLSAkd2lkdGgsIDApO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgcGFkZGluZzogJHZlcnRpY2FsLXBhZGRpbmctdmFsdWUgJGhvcml6b250YWwtcGFkZGluZy12YWx1ZTtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtaG9yaXpvbnRhbC1wYWRkaW5nKCRwYWRkaW5nLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwYWRkaW5nOiAkbWRjLWNoaXAtdmVydGljYWwtcGFkZGluZyAkcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtaGVpZ2h0KCRoZWlnaHQsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtc2V0LXNwYWNpbmcoJGdhcC1zaXplLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBwYWRkaW5nOiAkZ2FwLXNpemUgLyAyO1xuICB9XG5cbiAgLm1kYy1jaGlwIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbWFyZ2luOiAkZ2FwLXNpemUgLyAyO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtbGVhZGluZy1pY29uLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtY2hpcC1pY29uLW9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtY2hpcC10cmFpbGluZy1pY29uLWNvbG9yKFxuICAkY29sb3IsXG4gICRvcGFjaXR5OiAkbWRjLWNoaXAtaWNvbi1vcGFjaXR5LFxuICAkaG92ZXItb3BhY2l0eTogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24taG92ZXItb3BhY2l0eSxcbiAgJGZvY3VzLW9wYWNpdHk6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLWZvY3VzLW9wYWNpdHksXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkaG92ZXItb3BhY2l0eSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRmb2N1cy1vcGFjaXR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRm9yIGN1c3RvbWl6aW5nIGljb24gc2l6ZSwgd2UgbmVlZCB0byBpbmNyZWFzZSBzcGVjaWZpdHkgdG8gZW5zdXJlXG4vLyBvdmVycmlkZXMgYXBwbHkuIFN0eWxlcyBkZWZpbmVkIGluIHRoZSAubWF0ZXJpYWwtaWNvbnMgQ1NTIGNsYXNzIGFyZVxuLy8gbG9hZGVkIHNlcGFyYXRlbHksIHNvIHRoZSBvcmRlciBvZiBDU1MgZGVmaW5pdGlvbnMgaXMgbm90IGd1YXJhbnRlZWQuXG5cbkBtaXhpbiBtZGMtY2hpcC1sZWFkaW5nLWljb24tc2l6ZSgkc2l6ZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLWNoaXBfX2ljb24ubWRjLWNoaXBfX2ljb24tLWxlYWRpbmc6bm90KC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZy1oaWRkZW4pIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pY29uLXNpemVfKCRzaXplLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tc2l6ZSgkc2l6ZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLWNoaXBfX2ljb24ubWRjLWNoaXBfX2ljb24tLXRyYWlsaW5nIHtcbiAgICBAaW5jbHVkZSBtZGMtY2hpcC1pY29uLXNpemVfKCRzaXplLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLWljb24tc2l6ZV8oJHNpemUsICRxdWVyeSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbihcbiAgJHRvcDogJG1kYy1jaGlwLWxlYWRpbmctaWNvbi1tYXJnaW4tdG9wLFxuICAkcmlnaHQ6ICRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLXJpZ2h0LFxuICAkYm90dG9tOiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1ib3R0b20sXG4gICRsZWZ0OiAkbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1sZWZ0LFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgJi5tZGMtY2hpcC0tc2VsZWN0ZWQgLm1kYy1jaGlwX19jaGVja21hcmssXG4gIC5tZGMtY2hpcF9faWNvbi0tbGVhZGluZzpub3QoLm1kYy1jaGlwX19pY29uLS1sZWFkaW5nLWhpZGRlbikge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sICRsZWZ0LCAkcmlnaHQpO1xuXG4gICAgICBtYXJnaW4tdG9wOiAkdG9wO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGJvdHRvbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luKFxuICAkdG9wOiAkbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4tdG9wLFxuICAkcmlnaHQ6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1yaWdodCxcbiAgJGJvdHRvbTogJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLWJvdHRvbSxcbiAgJGxlZnQ6ICRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1sZWZ0LFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1jaGlwX19pY29uLS10cmFpbGluZyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1hcmdpbjogJHRvcCAkcmlnaHQgJGJvdHRvbSAkbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1jaGlwLWVsZXZhdGlvbi10cmFuc2l0aW9uKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246IG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpO1xuICB9XG5cbiAgJi5tZGMtY2hpcC0tZXhpdCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi12YWx1ZSgpLFxuICAgICAgICAkbWRjLWNoaXAtZXhpdC10cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1jaGlwLWZpbGwtY29sb3ItZGVmYXVsdDogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgMTIlKSAhZGVmYXVsdDtcbiRtZGMtY2hpcC1pbmstY29sb3ItZGVmYXVsdDogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtY2hpcC1ob3Jpem9udGFsLXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdmVydGljYWwtcGFkZGluZzogN3B4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLWhlaWdodC1kZWZhdWx0OiAzMnB4ICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtaWNvbi1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtaWNvbi1vcGFjaXR5OiAuNTQgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1ob3Zlci1vcGFjaXR5OiAuNjIgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1mb2N1cy1vcGFjaXR5OiAuODcgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLXNpemU6IDIwcHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1zaXplOiAxOHB4ICFkZWZhdWx0O1xuLy8gU3BlZWQgdXAgZGVsYXkgdG8gYnJpZGdlIGdhcCBiZXR3ZWVuIGxlYWRpbmcgaWNvbiBhbmQgY2hlY2ttYXJrIHRyYW5zaXRpb24uXG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLWRlbGF5OiAtNTBtcyAhZGVmYXVsdDtcbiRtZGMtY2hpcC1jaGVja21hcmstd2l0aC1sZWFkaW5nLWljb24tZGVsYXk6IDgwbXMgIWRlZmF1bHQ7XG5cbiRtZGMtY2hpcC1jaGVja21hcmstYW5pbWF0aW9uLWRlbGF5OiA1MG1zICFkZWZhdWx0O1xuJG1kYy1jaGlwLWNoZWNrbWFyay1hbmltYXRpb24tZHVyYXRpb246IDE1MG1zICFkZWZhdWx0O1xuJG1kYy1jaGlwLXdpZHRoLWFuaW1hdGlvbi1kdXJhdGlvbjogMTUwbXMgIWRlZmF1bHQ7XG4kbWRjLWNoaXAtb3BhY2l0eS1hbmltYXRpb24tZHVyYXRpb246IDc1bXMgIWRlZmF1bHQ7XG5cbiRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLXRvcDogLTRweCAhZGVmYXVsdDtcbiRtZGMtY2hpcC1sZWFkaW5nLWljb24tbWFyZ2luLXJpZ2h0OiA0cHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1ib3R0b206IC00cHggIWRlZmF1bHQ7XG4kbWRjLWNoaXAtbGVhZGluZy1pY29uLW1hcmdpbi1sZWZ0OiAtNHB4ICFkZWZhdWx0O1xuXG4kbWRjLWNoaXAtdHJhaWxpbmctaWNvbi1tYXJnaW4tdG9wOiAwICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLXJpZ2h0OiAtNHB4ICFkZWZhdWx0O1xuJG1kYy1jaGlwLXRyYWlsaW5nLWljb24tbWFyZ2luLWJvdHRvbTogMCAhZGVmYXVsdDtcbiRtZGMtY2hpcC10cmFpbGluZy1pY29uLW1hcmdpbi1sZWZ0OiA0cHggIWRlZmF1bHQ7XG5cbiRtZGMtY2hpcC1leGl0LXRyYW5zaXRpb246XG4gIG9wYWNpdHkgNzVtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb24sXG4gIHdpZHRoIDE1MG1zICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb24sXG4gIHBhZGRpbmcgMTAwbXMgbGluZWFyLFxuICBtYXJnaW4gMTAwbXMgbGluZWFyICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gRmxpcHMgdGhlIHJhZGl1cyB2YWx1ZXMgYmFzZWQgb24gUlRMIGNvbnRleHQuXG4vL1xuLy8gRXhhbXBsZXM6XG4vL1xuLy8gMS4gbWRjLXNoYXBlLWZsaXAtcmFkaXVzKCgwLCA0cHgsIDRweCwgMCkpID0+IDRweCAwIDAgNHB4XG4vLyAyLiBtZGMtc2hhcGUtZmxpcC1yYWRpdXMoKDAsIDhweCkpID0+IDhweCAwXG4vL1xuQGZ1bmN0aW9uIG1kYy1zaGFwZS1mbGlwLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibGlzdFwiIHtcbiAgICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gNCB7XG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHJhZGl1cykgPT0gNCB7XG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMikgbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCA0KSBudGgoJHJhZGl1cywgMyk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAxKSBudGgoJHJhZGl1cywgMikgbnRoKCRyYWRpdXMsIDMpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHJhZGl1cztcbiAgfVxufVxuXG4vL1xuLy8gUmVzb2x2ZXMgdGhlIHBlcmNlbnRhZ2UgdW5pdCByYWRpdXMgdG8gYXBwcm9wcmlhdGUgYWJzb2x1dGUgcmFkaXVzIHZhbHVlIGJhc2VkIG9uIGNvbXBvbmVudCBoZWlnaHQuXG4vLyBVc2UgdGhpcyBmb3IgZml4ZWQgaGVpZ2h0IGNvbXBvbmVudHMgb25seS5cbi8vXG4vLyBFeGFtcGxlczpcbi8vXG4vLyBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygzNnB4LCA1MCUpID0+IGAxOHB4YCAoaS5lLiwgMzZweCAvIDIpXG4vL1xuQGZ1bmN0aW9uIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRjb21wb25lbnQtaGVpZ2h0LCAkcmFkaXVzKSB7XG4gICRyYWRpdXM6IG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpO1xuXG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibGlzdFwiIHtcbiAgICAkcmFkaXVzLXZhbHVlOiAoKTtcblxuICAgIEBlYWNoICRjb3JuZXIgaW4gJHJhZGl1cyB7XG4gICAgICAkcmFkaXVzLXZhbHVlOiBhcHBlbmQoJHJhZGl1cy12YWx1ZSwgbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1mb3ItY29ybmVyXygkY29tcG9uZW50LWhlaWdodCwgJGNvcm5lcikpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJhZGl1cy12YWx1ZTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLWZvci1jb3JuZXJfKCRjb21wb25lbnQtaGVpZ2h0LCAkcmFkaXVzKTtcbiAgfVxufVxuXG4vL1xuLy8gUmV0dXJucyAkcmFkaXVzIHZhbHVlIG9mIHNoYXBlIGNhdGVnb3J5IC0gYGxhcmdlYCwgYG1lZGl1bWAgb3IgYHNtYWxsYC5cbi8vIE90aGVyd2lzZSwgaXQgcmV0dXJucyB0aGUgJHJhZGl1cyBpdHNlbGYgaWYgdmFsaWQuXG4vLyAkcmFkaXVzIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgb3IgYSBsaXN0IG9mIHVwIHRvIDQgdmFsdWVzLlxuLy9cbi8vIEV4YW1wbGVzOlxuLy9cbi8vIG1kYy1zaGFwZS1wcm9wLXZhbHVlKHNtYWxsKSA9PiA0cHhcbi8vIG1kYy1zaGFwZS1wcm9wLXZhbHVlKHNtYWxsIHNtYWxsIDAgMCkgPT4gNHB4IDRweCAwIDBcbi8vXG5AZnVuY3Rpb24gbWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cykge1xuICBAaWYgdHlwZS1vZigkcmFkaXVzKSA9PSBcImxpc3RcIiB7XG4gICAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDQge1xuICAgICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBpcyBtb3JlIHRoYW4gNCB2YWx1ZXNcIjtcbiAgICB9XG5cbiAgICAkcmFkaXVzLXZhbHVlczogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkcmFkaXVzKSB7XG4gICAgICAkY29ybmVyOiBudGgoJHJhZGl1cywgJGkpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG1kYy1zaGFwZS1jYXRlZ29yeS12YWx1ZXMsICRjb3JuZXIpIHtcbiAgICAgICAgLy8gSWYgYSBjYXRlZ29yeSBpcyBlbmNvdW50ZXJlZCB3aXRoaW4gYSBsaXN0IG9mIHJhZGlpLCBhcHBseSB0aGUgY2F0ZWdvcnkncyB2YWx1ZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgY29ybmVyXG4gICAgICAgICRyYWRpdXMtdmFsdWVzOlxuICAgICAgICAgIGFwcGVuZCgkcmFkaXVzLXZhbHVlcywgbnRoKG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyhtYXAtZ2V0KCRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzLCAkY29ybmVyKSksICRpKSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHJhZGl1cy12YWx1ZXM6IGFwcGVuZCgkcmFkaXVzLXZhbHVlcywgbWRjLXNoYXBlLXZhbGlkYXRlLXJhZGl1cy12YWx1ZV8oJGNvcm5lcikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHJhZGl1cy12YWx1ZXM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkbWRjLXNoYXBlLWNhdGVnb3J5LXZhbHVlcywgJHJhZGl1cykge1xuICAgICAgQHJldHVybiBtYXAtZ2V0KCRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzLCAkcmFkaXVzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbWRjLXNoYXBlLXZhbGlkYXRlLXJhZGl1cy12YWx1ZV8oJHJhZGl1cyk7XG4gICAgfVxuICB9XG59XG5cbi8vXG4vLyBBY2NlcHRzIHJhZGl1cyBudW1iZXIgb3IgbGlzdCBvZiAyLTQgcmFkaXVzIHZhbHVlcyBhbmQgcmV0dXJucyA0IHZhbHVlIGxpc3Qgd2l0aFxuLy8gbWFza2VkIGNvcm5lcnMgYXMgbWVudGlvbmVkIGluIGAkbWFza2VkLWNvcm5lcnNgXG4vL1xuLy8gRXhhbXBsZTpcbi8vXG4vLyAxLiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoMnB4IDNweCwgMSAxIDAgMCkgPT4gMnB4IDNweCAwIDBcbi8vIDIuIG1kYy1zaGFwZS1tYXNrLXJhZGl1cyg4cHgsIDAgMCAxIDEpID0+IDAgMCA4cHggOHB4XG4vLyAzLiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoNHB4IDRweCA0cHggNHB4LCAwIDEgMSAwKSA9PiAwIDRweCA0cHggMFxuLy9cbkBmdW5jdGlvbiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgJG1hc2tlZC1jb3JuZXJzKSB7XG4gIEBpZiB0eXBlLW9mKCRyYWRpdXMpID09IFwibGlzdFwiIHtcbiAgICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gNCB7XG4gICAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBsZW5ndGgoJG1hc2tlZC1jb3JuZXJzKSAhPSA0IHtcbiAgICBAZXJyb3IgXCJFeHBlY3RlZCBtYXNrZWQtY29ybmVycyBvZiBsZW5ndGggNCBidXQgZ290ICcje2xlbmd0aCgkbWFza2VkLWNvcm5lcnMpfScuXCI7XG4gIH1cblxuICAkcmFkaXVzOiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oJHJhZGl1cyk7XG5cbiAgQHJldHVybiBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCAxKSA9PSAxLCBudGgoJHJhZGl1cywgMSksIDApXG4gICAgaWYobnRoKCRtYXNrZWQtY29ybmVycywgMikgPT0gMSwgbnRoKCRyYWRpdXMsIDIpLCAwKVxuICAgIGlmKG50aCgkbWFza2VkLWNvcm5lcnMsIDMpID09IDEsIG50aCgkcmFkaXVzLCAzKSwgMClcbiAgICBpZihudGgoJG1hc2tlZC1jb3JuZXJzLCA0KSA9PSAxLCBudGgoJHJhZGl1cywgNCksIDApO1xufVxuXG4vL1xuLy8gVW5wYWNrcyBzaG9ydGhhbmQgdmFsdWVzIGZvciBib3JkZXItcmFkaXVzIChpLmUuIGxpc3RzIG9mIDEtMyB2YWx1ZXMpLlxuLy8gSWYgYSBsaXN0IG9mIDQgdmFsdWVzIGlzIGdpdmVuLCBpdCBpcyByZXR1cm5lZCBhcy1pcy5cbi8vXG4vLyBFeGFtcGxlczpcbi8vXG4vLyAxLiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oNHB4KSA9PiA0cHggNHB4IDRweCA0cHhcbi8vIDIuIG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyg0cHggMnB4KSA9PiA0cHggMnB4IDRweCAycHhcbi8vIDMuIG1kYy1zaGFwZS11bnBhY2stcmFkaXVzXyg0cHggMnB4IDJweCkgPT4gNHB4IDJweCAycHggMnB4XG4vLyAyLiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oNHB4IDJweCAwIDJweCkgPT4gNHB4IDJweCAwIDJweFxuLy9cbi8vIFRPRE86IFRoaXMgaXMgcHJpdmF0ZSBmb3IgcHVycG9zZXMgb2YgZ2V0dGluZyBpdCBpbnRvIGEgcGF0Y2g7IG1ha2UgaXQgcHVibGljIGZvciBhIGZ1dHVyZSBtaW5vci9tYWpvciByZWxlYXNlLlxuLy9cbkBmdW5jdGlvbiBtZGMtc2hhcGUtdW5wYWNrLXJhZGl1c18oJHJhZGl1cykge1xuICBAaWYgbGVuZ3RoKCRyYWRpdXMpID09IDQge1xuICAgIEByZXR1cm4gJHJhZGl1cztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpIG50aCgkcmFkaXVzLCAzKSBudGgoJHJhZGl1cywgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRyYWRpdXMpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRyYWRpdXMsIDEpIG50aCgkcmFkaXVzLCAyKSBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkcmFkaXVzKSA9PSAxIHtcbiAgICBAcmV0dXJuICRyYWRpdXMgJHJhZGl1cyAkcmFkaXVzICRyYWRpdXM7XG4gIH1cblxuICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGlzIG1vcmUgdGhhbiA0IHZhbHVlc1wiO1xufVxuXG5AZnVuY3Rpb24gbWRjLXNoYXBlLXJlc29sdmUtcGVyY2VudGFnZS1mb3ItY29ybmVyXygkY29tcG9uZW50LWhlaWdodCwgJHJhZGl1cykge1xuICBAaWYgdHlwZS1vZigkcmFkaXVzKSA9PSBcIm51bWJlclwiIGFuZCB1bml0KCRyYWRpdXMpID09IFwiJVwiIHtcbiAgICAvLyBDb252ZXJ0cyB0aGUgcGVyY2VudGFnZSB0byBudW1iZXIgd2l0aG91dCB1bml0LiBFeGFtcGxlOiA1MCUgPT4gNTAuXG4gICAgJHBlcmNlbnRhZ2U6ICRyYWRpdXMgLyAoJHJhZGl1cyAqIDAgKyAxKTtcblxuICAgIEByZXR1cm4gJGNvbXBvbmVudC1oZWlnaHQgKiAoJHBlcmNlbnRhZ2UgLyAxMDApO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRyYWRpdXM7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIG1kYy1zaGFwZS12YWxpZGF0ZS1yYWRpdXMtdmFsdWVfKCRyYWRpdXMpIHtcbiAgJGlzLW51bWJlcjogdHlwZS1vZigkcmFkaXVzKSA9PSBcIm51bWJlclwiO1xuXG4gIEBpZiBub3QgKCRpcy1udW1iZXIgb3Igc3RyX2luZGV4KCRyYWRpdXMsIFwidmFyKFwiKSBvciBzdHJfaW5kZXgoJHJhZGl1cywgXCJjYWxjKFwiKSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAjeyRyYWRpdXN9XCI7XG4gIH1cblxuICBAcmV0dXJuICRyYWRpdXM7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2VsZXZhdGlvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZVxuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtZGlhbG9nLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBkaWFsb2dcblxuICAubWRjLWRpYWxvZyxcbiAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZyB7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1jb250YWluZXItZmlsbC1jb2xvcihzdXJmYWNlLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1zY3JpbS1jb2xvcigkbWRjLWRpYWxvZy1zY3JpbS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctdGl0bGUtaW5rLWNvbG9yKCRtZGMtZGlhbG9nLXRpdGxlLWluay1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1kaWFsb2ctY29udGVudC1pbmstY29sb3IoJG1kYy1kaWFsb2ctY29udGVudC1pbmstY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLWNvbG9yKCRtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1taW4td2lkdGgoJG1kYy1kaWFsb2ctbWluLXdpZHRoLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1tYXgtd2lkdGgoJG1kYy1kaWFsb2ctbWF4LXdpZHRoLCAkbWRjLWRpYWxvZy1tYXJnaW4sICRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtZGlhbG9nLW1heC1oZWlnaHQobnVsbCwgJG1kYy1kaWFsb2ctbWFyZ2luLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWRpYWxvZy1zaGFwZS1yYWRpdXMobWVkaXVtLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gVXNlIGBkaXNwbGF5OiBub25lYCBpbnN0ZWFkIG9mIGB2aXNpYmlsaXR5OiBoaWRkZW5gIHRvIGF2b2lkIHJlY2FsY3VsYXRpbmcgbGF5b3V0IHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgei1pbmRleDogJG1kYy1kaWFsb2ctei1pbmRleDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyB3cmFwcGVyIGVsZW1lbnQgaXMgbmVlZGVkIHRvIG1ha2UgbWF4LWhlaWdodCB3b3JrIGluIElFIDExLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvMjE2XG4gIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLy8gSUUgMTFcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyAvLyBFbnN1cmUgU2FmYXJpIGNlbnRlcnMgdGhlIGRpYWxvZyAoYmVjYXVzZSBpdCB0cmVhdHMgdGhlIGNvbnRhaW5lcidzIHdpZHRoIG9kZGx5KVxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigyNCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleC1ncm93OiAwOyAvLyBJRSAxMVxuICAgICAgZmxleC1zaHJpbms6IDA7IC8vIElFIDExXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBJRSAxMVxuICAgICAgbWF4LWhlaWdodDogMTAwJTsgLy8gSUUgMTFcblxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtZGlhbG9nXCIpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoNDBweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGhlYWRsaW5lNiwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAyNHB4ICRtZGMtZGlhbG9nLXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1kaWFsb2dcIikge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIEFkanVzdCBib3R0b20gcGFkZGluZyB0byBtYWtlIHRpdGxlIGhlaWdodCBhbGlnbiB0byBzcGVjIHdoZW4gZGl2aWRlciBpcyBwcmVzZW50LlxuICAgICAgLy8gKFRpdGxlcyBmb3IgYWxlcnQgZGlhbG9ncyB3L28gZGl2aWRlcnMgYWxpZ24gYmFzZWQgb24gdGV4dCBiYXNlbGluZS4gQWxsIHNwZWMgdmFsdWVzIGFyZSBkaXZpc2libGUgYnkgNC4pXG4gICAgICBwYWRkaW5nLWJvdHRvbTogJG1kYy1kaWFsb2ctdGl0bGUtYm90dG9tLXBhZGRpbmcgKyA2cHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkxLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsgLy8gTm90ZTogdGhlIHRvcCBwYWRkaW5nIGlzIG9ubHkgMjBweCBmb3IgZGlhbG9ncyB3aXRob3V0IHRpdGxlczsgc2VlIGJlbG93IGZvciBvdmVycmlkZVxuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgfVxuXG4gICAgLy8gVGhlIGNvbnRlbnQgZWxlbWVudCBhbHJlYWR5IGhhcyB0b3AvYm90dG9tIHBhZGRpbmcsIHNvIHdlIG5lZWQgdG8gc3VwcHJlc3MgbWFyZ2lucyBvbiBpdHMgZmlyc3QvbGFzdCBjaGlsZHJlbi5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBjb250ZW50IGVsZW1lbnQgYWxyZWFkeSBoYXMgdG9wL2JvdHRvbSBwYWRkaW5nLCBzbyB3ZSBuZWVkIHRvIHN1cHByZXNzIG1hcmdpbnMgb24gaXRzIGZpcnN0L2xhc3QgY2hpbGRyZW4uXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlICsgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBFbGltaW5hdGUgcGFkZGluZyB0byBicmluZyBhcyBjbG9zZSB0byBzcGVjIGFzIHBvc3NpYmxlLCByZWx5aW5nIG9uIHRpdGxlIHBhZGRpbmcuXG4gICAgICAvLyAoU3BlYyBzZWVtcyBpbmNvbnNpc3RlbnQgUkUgdGl0bGUvYm9keSBzcGFjaW5nIG9uIGFsZXJ0IHZzLiBzaW1wbGUgdmFyaWFudHMuKVxuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWRpYWxvZy0tc2Nyb2xsYWJsZSAubWRjLWRpYWxvZ19fY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFJlZHVjZSBhbmQgZXF1YWxpemUgdmVydGljYWwgcGFkZGluZ3Mgd2hlbiBzY3JvbGxhYmxlIGRpdmlkZXJzIGFyZSBwcmVzZW50XG4gICAgICAvLyAoTm90ZTogdGhpcyBpcyBpbnRlbnRpb25hbGx5IGFmdGVyIHRpdGxlICsgY29udGVudCB0byB0YWtlIHByZWNlZGVuY2UpXG4gICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtZGlhbG9nX19jb250ZW50IC5tZGMtbGlzdDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCAubWRjLWxpc3QgcGFkZGluZyBmb3IgY29udGVudCBjb25zaXN0aW5nIGV4Y2x1c2l2ZWx5IG9mIGEgTURDIExpc3RcbiAgICAgIHBhZGRpbmc6IDZweCAwIDA7IC8vIFRvcCBwYWRkaW5nIGJhbGFuY2VzIHdpdGggdGl0bGUgaGVpZ2h0XG4gICAgfVxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVybiwgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtZGlhbG9nLS1zY3JvbGxhYmxlIC5tZGMtZGlhbG9nX19jb250ZW50IC5tZGMtbGlzdDpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCAubWRjLWxpc3QgcGFkZGluZyBmb3IgY29udGVudCBjb25zaXN0aW5nIGV4Y2x1c2l2ZWx5IG9mIGEgTURDIExpc3RcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBtaW4taGVpZ2h0OiA1MnB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nLS1zdGFja2VkICYge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nX19idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCA4cHgpO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgLy8gUHJldmVudCBsb25nIHRleHQgZnJvbSBvdmVyZmxvd2luZyBwYXJlbnQgZWxlbWVudCBpbiBJRSAxMVxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwoXCIubWRjLWRpYWxvZ1wiKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kaWFsb2ctLXN0YWNrZWQgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1vcGVuLFxuICAubWRjLWRpYWxvZy0tb3BlbmluZyxcbiAgLm1kYy1kaWFsb2ctLWNsb3Npbmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1vcGVuaW5nIHtcbiAgICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyLCBtZGMtYW5pbWF0aW9uLWVudGVyKHRyYW5zZm9ybSwgMTUwbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZGlhbG9nLS1jbG9zaW5nIHtcbiAgICAubWRjLWRpYWxvZ19fc2NyaW0sXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDc1bXMgbGluZWFyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgLy8gRGlhbG9nIGNvbnRhaW5lciBzY2FsZXMgdXAgd2hpbGUgb3BlbmluZywgYnV0IHNob3VsZCByZW1haW4gc2NhbGVkIHVwIHdoaWxlIGNsb3NpbmdcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWRpYWxvZy0tb3BlbiB7XG4gICAgLm1kYy1kaWFsb2dfX3NjcmltIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1kaWFsb2dfX2NvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG5cbiAgLy8gQ2xhc3MgYXBwbGllZCB0byBib2R5IHdoaWxlIGRpYWxvZyBpcyBvcGVuLCB0byBwcmV2ZW50IHNjcm9sbGluZyBiZWhpbmQgdGhlIGRpYWxvZ1xuICAubWRjLWRpYWxvZy1zY3JvbGwtbG9jayB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1kaWFsb2ctc2NyaW0tY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogJG1kYy1kaWFsb2ctc2NyaW0tb3BhY2l0eSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWRpYWxvZ19fc2NyaW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG9wYWNpdHkpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy10aXRsZS1pbmstY29sb3IoJGNvbG9yLCAkb3BhY2l0eTogJG1kYy1kaWFsb2ctdGl0bGUtaW5rLW9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBjb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLWNvbG9yKCRjb2xvciwgJG9wYWNpdHk6ICRtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLW9wYWNpdHksICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1kaWFsb2dfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRvcGFjaXR5KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1kaWFsb2ctc2Nyb2xsLWRpdmlkZXItY29sb3IoXG4gICRjb2xvcixcbiAgJG9wYWNpdHk6ICRtZGMtZGlhbG9nLXNjcm9sbC1kaXZpZGVyLW9wYWNpdHksXG4gICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKClcbikge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX3RpdGxlLFxuICAmLm1kYy1kaWFsb2ctLXNjcm9sbGFibGUgLm1kYy1kaWFsb2dfX2FjdGlvbnMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLW1pbi13aWR0aCgkbWluLXdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtaW4td2lkdGg6ICRtaW4td2lkdGg7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZGlhbG9nLW1heC13aWR0aCgkbWF4LXdpZHRoLCAkbWFyZ2luLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRtYXgtc2l6ZS1jYWxjLWV4cHI6IGNhbGMoMTAwdncgLSAjeyRtYXJnaW4gKiAyfSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaWYgJG1heC13aWR0aCB7XG4gICAgICAgICRtYXgtd2lkdGgtYnJlYWtwb2ludDogJG1heC13aWR0aCArICgkbWFyZ2luICogMik7XG5cbiAgICAgICAgLy8gRml0IHNudWdseSB3aXRoaW4gdGhlIHZpZXdwb3J0IGF0IHNtYWxsZXIgc2NyZWVuIHNpemVzLlxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heC13aWR0aC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25jZSB0aGUgc2NyZWVuIGdldHMgYmlnIGVub3VnaCwgYXBwbHkgYSBmaXhlZCBtYXhpbXVtIHdpZHRoLlxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1heC13aWR0aC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRpYWxvZy1tYXgtaGVpZ2h0KCRtYXgtaGVpZ2h0LCAkbWFyZ2luLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRtYXgtc2l6ZS1jYWxjLWV4cHI6IGNhbGMoMTAwdmggLSAjeyRtYXJnaW4gKiAyfSk7XG5cbiAgLm1kYy1kaWFsb2dfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaWYgJG1heC1oZWlnaHQge1xuICAgICAgICAkbWF4LWhlaWdodC1icmVha3BvaW50OiAkbWF4LWhlaWdodCArICgkbWFyZ2luICogMik7XG5cbiAgICAgICAgLy8gRml0IHNudWdseSB3aXRoaW4gdGhlIHZpZXdwb3J0IGF0IHNtYWxsZXIgc2NyZWVuIHNpemVzLlxuICAgICAgICBAbWVkaWEgKG1heC1oZWlnaHQ6ICRtYXgtaGVpZ2h0LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25jZSB0aGUgc2NyZWVuIGdldHMgYmlnIGVub3VnaCwgYXBwbHkgYSBmaXhlZCBtYXhpbXVtIGhlaWdodC5cbiAgICAgICAgQG1lZGlhIChtaW4taGVpZ2h0OiAkbWF4LWhlaWdodC1icmVha3BvaW50KSB7XG4gICAgICAgICAgbWF4LWhlaWdodDogJG1heC1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbWF4LXNpemUtY2FsYy1leHByO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZGlhbG9nLXNjcmltLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctdGl0bGUtaW5rLWNvbG9yOiBvbi1zdXJmYWNlICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctY29udGVudC1pbmstY29sb3I6IG9uLXN1cmZhY2UgIWRlZmF1bHQ7XG4kbWRjLWRpYWxvZy1zY3JvbGwtZGl2aWRlci1jb2xvcjogb24tc3VyZmFjZSAhZGVmYXVsdDtcblxuJG1kYy1kaWFsb2ctc2NyaW0tb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctdGl0bGUtaW5rLW9wYWNpdHk6IC44NyAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLWNvbnRlbnQtaW5rLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctc2Nyb2xsLWRpdmlkZXItb3BhY2l0eTogLjEyICFkZWZhdWx0O1xuXG4kbWRjLWRpYWxvZy1taW4td2lkdGg6IDI4MHB4ICFkZWZhdWx0O1xuJG1kYy1kaWFsb2ctbWF4LXdpZHRoOiA1NjBweCAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLW1hcmdpbjogMTZweCAhZGVmYXVsdDtcbiRtZGMtZGlhbG9nLXRpdGxlLWJvdHRvbS1wYWRkaW5nOiA5cHggIWRlZmF1bHQ7XG5cbiRtZGMtZGlhbG9nLXotaW5kZXg6IDcgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBkcmF3ZXJcblxuLm1kYy1kcmF3ZXIge1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXRpdGxlLWluay1jb2xvcigkbWRjLWRyYXdlci10aXRsZS1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcigkbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWJvcmRlci1jb2xvcigkbWRjLWRyYXdlci1kaXZpZGVyLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3IoJG1kYy1kcmF3ZXItc3VyZmFjZS1maWxsLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLWljb24taW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLXRleHQtaW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pY29uLWluay1jb2xvcigkbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLXRleHQtaW5rLWNvbG9yKCRtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItc2hhcGUtcmFkaXVzKGxhcmdlKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLXNoYXBlLXJhZGl1cyg0cHgpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXotaW5kZXgoJG1kYy1kcmF3ZXItei1pbmRleCk7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItd2lkdGgoJG1kYy1kcmF3ZXItd2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgLyogQG5vZmxpcCAqL1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMik7XG5cbiAgICBoZWlnaHQ6IGNhbGMoNDhweCAtIDIgKiAjeyRtZGMtZHJhd2VyLWxpc3QtaXRlbS1zcGFjaW5nfSk7XG4gICAgLy8gVG8gYWNjb21vZGF0ZSBtYXJnaW4gY29uZmxpY3QuXG4gICAgbWFyZ2luOiAoJG1kYy1kcmF3ZXItbGlzdC1pdGVtLXNwYWNpbmcgKiAyKSA4cHg7XG4gICAgcGFkZGluZzogMCAkbWRjLWRyYXdlci1zdXJmYWNlLXBhZGRpbmcgLyAyO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWl0ZW06bnRoLWNoaWxkKDEpIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtaXRlbTpudGgtbGFzdC1jaGlsZCgxKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogaWdub3JlXG4gIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5Mik7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDI0cHgpO1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgJG1kYy1kcmF3ZXItc3VyZmFjZS1wYWRkaW5nO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBpZ25vcmVcbiAgLm1kYy1saXN0LWRpdmlkZXIge1xuICAgIG1hcmdpbjogM3B4IDAgNHB4IDA7XG4gIH1cblxuICAvLyBQcmV2ZW50cyBsaXN0IGl0ZW0gY2hpbGRyZW4gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiB0aGUgY2xpY2sgdGFyZ2V0LlxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICAubWRjLWxpc3QtaXRlbV9fdGV4dCxcbiAgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi5tZGMtZHJhd2VyLS1hbmltYXRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcblxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItLW9wZW5pbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtZHJhd2VyLWFuaW1hdGlvbi1lbnRlcjtcblxuICAvLyBSZXF1aXJlZCB0byBsZXZlbCB0aGUgc3BlY2lmaWNpdHkgd2l0aCBhbmltYXRlIGNsYXNzLlxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXItLWNsb3Npbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLWRyYXdlci1hbmltYXRpb24tZXhpdDtcblxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cblxuLm1kYy1kcmF3ZXJfX2hlYWRlciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA2NHB4OyAvLyBzYW1lIGFzICRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodFxuICBwYWRkaW5nOiAwICRtZGMtZHJhd2VyLXN1cmZhY2UtcGFkZGluZyA0cHg7XG59XG5cbi5tZGMtZHJhd2VyX190aXRsZSB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGhlYWRsaW5lNik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgzNnB4KTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtYm90dG9tKDIwcHgpO1xufVxuXG4ubWRjLWRyYXdlcl9fc3VidGl0bGUge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5Mik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgyMHB4KTtcblxuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWRjLWRyYXdlcl9fY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2xpc3QvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1kcmF3ZXItYWN0aXZhdGVkLW92ZXJsYXktY29sb3IoJGNvbG9yKSB7XG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYWN0aXZhdGVkKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItYm9yZGVyLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItZGl2aWRlci1vcGFjaXR5KTtcblxuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWl0ZW0tc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiB0cnVlKSB7XG4gIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItc2hhcGUtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDIge1xuICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgY29tcG9uZW50IGRvZXNuJ3QgYWxsb3cgY3VzdG9taXppbmcgYWxsIGNvcm5lcnNcIjtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHJhZGl1cykgPT0gMiB7XG4gICAgJHJhZGl1czogMCBudGgoJHJhZGl1cywgMSkgbnRoKCRyYWRpdXMsIDIpIDA7XG4gIH0gQGVsc2Uge1xuICAgICRyYWRpdXM6IDAgJHJhZGl1cyAkcmFkaXVzIDA7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiB0cnVlKTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItZGl2aWRlci1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLWRpdmlkZXItb3BhY2l0eSk7XG5cbiAgQGluY2x1ZGUgbWRjLWxpc3QtZGl2aWRlci1jb2xvcigkdmFsdWUpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci10aXRsZS1pbmstY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci10aXRsZS1pbmstb3BhY2l0eSk7XG5cbiAgLm1kYy1kcmF3ZXJfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJHZhbHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstb3BhY2l0eSk7XG5cbiAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JvdXAtc3ViaGVhZGVyLWluay1jb2xvcigkdmFsdWUpO1xuXG4gIC5tZGMtZHJhd2VyX19zdWJ0aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItZmlsbC1jb2xvci1hY2Nlc3NpYmxlKCRjb2xvcikge1xuICAkYWNjZXNzaWJsZUNvbG9yOiBtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3IoJGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXRpdGxlLWluay1jb2xvcigkYWNjZXNzaWJsZUNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstY29sb3IoJGFjY2Vzc2libGVDb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1kcmF3ZXItaXRlbS10ZXh0LWluay1jb2xvcigkYWNjZXNzaWJsZUNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1pdGVtLWljb24taW5rLWNvbG9yKCRhY2Nlc3NpYmxlQ29sb3IpO1xuICBAaW5jbHVkZSBtZGMtZHJhd2VyLXN1cmZhY2UtZmlsbC1jb2xvcigkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLWRyYXdlci1pdGVtLWljb24taW5rLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItaXRlbS1pbmFjdGl2ZS1pY29uLWluay1vcGFjaXR5KTtcblxuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWdyYXBoaWMtaW5rLWNvbG9yKCR2YWx1ZSk7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLWljb24taW5rLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmUtaWNvbi1pbmstb3BhY2l0eSk7XG5cbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1ncmFwaGljLWluay1jb2xvcigkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLWl0ZW0tYWN0aXZhdGVkLXRleHQtaW5rLWNvbG9yKCRjb2xvcikge1xuICAkdmFsdWU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSwgJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmUtdGV4dC1pbmstb3BhY2l0eSk7XG5cbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKCR2YWx1ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1kcmF3ZXItaXRlbS10ZXh0LWluay1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvciksICRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtdGV4dC1pbmstb3BhY2l0eSk7XG5cbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcigkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXN1cmZhY2UtZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgJHZhbHVlOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXNjcmltLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gICR2YWx1ZTogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkbWRjLWRyYXdlci1tb2RhbC1zY3JpbS1vcGFjaXR5KTtcblxuICArIC5tZGMtZHJhd2VyLXNjcmltIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkdmFsdWUpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZHJhd2VyLXotaW5kZXgoJHZhbHVlKSB7XG4gIHotaW5kZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIG1kYy1kcmF3ZXItd2lkdGgoJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG5cbiAgJi5tZGMtZHJhd2VyLS1vcGVuOm5vdCgubWRjLWRyYXdlci0tY2xvc2luZykgKyAubWRjLWRyYXdlci1hcHAtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgJHdpZHRoKTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbi8vIENvbG9yc1xuJG1kYy1kcmF3ZXItdGl0bGUtaW5rLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLXN1YnRpdGxlLWluay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWluYWN0aXZlLWluay1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWFjdGl2YXRlZC1pbmstY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKHByaW1hcnkpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItZGl2aWRlci1jb2xvcjogbWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1zdXJmYWNlLWZpbGwtY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpICFkZWZhdWx0O1xuXG4vLyBPcGFjaXR5XG4kbWRjLWRyYXdlci10aXRsZS1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1zdWJ0aXRsZS1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMobWVkaXVtKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtaWNvbi1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMobWVkaXVtKSAhZGVmYXVsdDtcbiRtZGMtZHJhd2VyLWl0ZW0taW5hY3RpdmUtdGV4dC1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1pdGVtLWFjdGl2ZS1pY29uLWluay1vcGFjaXR5OiAxICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItaXRlbS1hY3RpdmUtdGV4dC1pbmstb3BhY2l0eTogbWRjLXRoZW1lLXRleHQtZW1waGFzaXMoaGlnaCkgIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1kaXZpZGVyLW9wYWNpdHk6IC4xMiAhZGVmYXVsdDtcblxuLy8gV2lkdGhzXG4kbWRjLWRyYXdlci13aWR0aDogMjU2cHggIWRlZmF1bHQ7XG4kbWRjLWRyYXdlci1saXN0LWl0ZW0tc3BhY2luZzogNHB4ICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItc3VyZmFjZS1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBBbmltYXRpb25zXG4kbWRjLWRyYXdlci1hbmltYXRpb24tZW50ZXI6IDI1MG1zICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItYW5pbWF0aW9uLWV4aXQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vLyBTY3JpbVxuJG1kYy1kcmF3ZXItbW9kYWwtc2NyaW0tY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItbW9kYWwtc2NyaW0tb3BhY2l0eTogLjMyICFkZWZhdWx0O1xuXG4kbWRjLWRyYXdlci16LWluZGV4OiA2ICFkZWZhdWx0O1xuJG1kYy1kcmF3ZXItbW9kYWwtZWxldmF0aW9uOiAxNiAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRjLWRyYXdlci0tZGlzbWlzc2libGUge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAwKTtcblxuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgJi5tZGMtZHJhd2VyLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5tZGMtZHJhd2VyLWFwcC1jb250ZW50IHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgMCk7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kYy1kcmF3ZXItLW1vZGFsIHtcbiAgQGluY2x1ZGUgbWRjLWRyYXdlci1zY3JpbS1maWxsLWNvbG9yKCRtZGMtZHJhd2VyLW1vZGFsLXNjcmltLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigkbWRjLWRyYXdlci1tb2RhbC1lbGV2YXRpb24pO1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAwKTtcblxuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgJi5tZGMtZHJhd2VyLS1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG5cbi5tZGMtZHJhd2VyLXNjcmltIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gIHotaW5kZXg6ICRtZGMtZHJhd2VyLXotaW5kZXggLSAxO1xuXG4gIC5tZGMtZHJhd2VyLS1vcGVuICsgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAubWRjLWRyYXdlci0tYW5pbWF0ZSArICYge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAubWRjLWRyYXdlci0tb3BlbmluZyArICYge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRtZGMtZHJhd2VyLWFuaW1hdGlvbi1lbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLm1kYy1kcmF3ZXItLWNsb3NpbmcgKyAmIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbWRjLWRyYXdlci1hbmltYXRpb24tZXhpdDtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2VsZXZhdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWZhYi1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1mYWItd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWZhYi1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuQG1peGluIG1kYy1mYWItd2l0aG91dC1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBmYWJcblxuICAubWRjLWZhYiB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1iYXNlXygkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1jb250YWluZXItY29sb3Ioc2Vjb25kYXJ5LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1pY29uLXNpemUoMjRweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1mYWItaW5rLWNvbG9yKG9uLXNlY29uZGFyeSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1mYWItLW1pbmkge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItLW1pbmlfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZmFiLS1leHRlbmRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi0tZXh0ZW5kZWRfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZmFiX19sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi0tbGFiZWxfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZmFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiX19pY29uXygkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAvLyBJbmNyZWFzZSBzcGVjaWZpY2l0eSBmb3IgRkFCIGljb24gc3R5bGVzIHRoYXQgbmVlZCB0byBvdmVycmlkZSBzdHlsZXMgZGVmaW5lZCBmb3IgLm1hdGVyaWFsLWljb25zXG4gIC8vICh3aGljaCBpcyBsb2FkZWQgc2VwYXJhdGVseSBzbyB0aGUgb3JkZXIgb2YgQ1NTIGRlZmluaXRpb25zIGlzIG5vdCBndWFyYW50ZWVkKVxuICAubWRjLWZhYiAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYl9faWNvbi1vdmVycmlkZXNfKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZmFiLS1leGl0ZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mYWItLWV4aXRlZF8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1mYWItcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBmYWJcblxuICAubWRjLWZhYiB7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy1ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKG9uLXNlY29uZGFyeSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1mYWItYWNjZXNzaWJsZSgkY29udGFpbmVyLWNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1mYWItY29udGFpbmVyLWNvbG9yKCRjb250YWluZXItY29sb3IsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAkZmlsbC10b25lOiBtZGMtdGhlbWUtdG9uZSgkY29udGFpbmVyLWNvbG9yKTtcblxuICBAaWYgKCRmaWxsLXRvbmUgPT0gXCJkYXJrXCIpIHtcbiAgICBAaW5jbHVkZSBtZGMtZmFiLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tZGFyaywgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXModGV4dC1wcmltYXJ5LW9uLWRhcmssICRxdWVyeTogJHF1ZXJ5KTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWRjLWZhYi1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWxpZ2h0LCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcyh0ZXh0LXByaW1hcnktb24tbGlnaHQsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1jb250YWluZXItY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IsICRlZGdlT3B0T3V0OiB0cnVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi1pY29uLXNpemUoJHdpZHRoLCAkaGVpZ2h0OiAkd2lkdGgsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBmb250LXNpemU6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWV4dGVuZGVkLWZsdWlkKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWV4dGVuZGVkLXBhZGRpbmcoJGljb24tcGFkZGluZywgJGxhYmVsLXBhZGRpbmcsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmcoJGxhYmVsLXBhZGRpbmcsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAvLyBPZmZzZXRzIHRoZSBvdXRlciBsYWJlbCBwYWRkaW5nIGJ5IGRlZHVjdGluZyBpdCBmcm9tIGljb24gcGFkZGluZy5cbiAgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sICRpY29uLXBhZGRpbmcgLSAkbGFiZWwtcGFkZGluZywgJGljb24tcGFkZGluZyk7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9yIEV4dGVuZGVkIEZBQiB3aXRoIHRleHQgbGFiZWwgZm9sbG93ZWQgYnkgaWNvbi5cbiAgLm1kYy1mYWJfX2xhYmVsICsgLm1kYy1mYWJfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sICRpY29uLXBhZGRpbmcsICRpY29uLXBhZGRpbmcgLSAkbGFiZWwtcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiLWV4dGVuZGVkLWxhYmVsLXBhZGRpbmcoJGxhYmVsLXBhZGRpbmcsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHBhZGRpbmc6IDAgJGxhYmVsLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAmOm5vdCgubWRjLWZhYi0tZXh0ZW5kZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItZXh0ZW5kZWQtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKFxuICAgIG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtZmFiLWV4dGVuZGVkLWhlaWdodCwgJHJhZGl1cyksXG4gICAgJHJ0bC1yZWZsZXhpdmUsXG4gICAgJHF1ZXJ5OiAkcXVlcnlcbiAgKTtcbn1cblxuJG1kYy1mYWItaWNvbi1lbnRlci1kZWxheV86IDkwbXM7XG4kbWRjLWZhYi1pY29uLWVudGVyLWR1cmF0aW9uXzogMTgwbXM7XG5cbkBtaXhpbiBtZGMtZmFiLWJhc2VfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig2LCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1mYWItc2hhcGUtcmFkaXVzKDUwJSwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gICRmZWF0LWFuaW1hdGlvbjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkbWRjLWZhYi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkbWRjLWZhYi1oZWlnaHQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBib3gtc2hhZG93ICRtZGMtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24gJG1kYy1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sXG4gICAgICBvcGFjaXR5IDE1bXMgbGluZWFyIDMwbXMsXG4gICAgICBtZGMtYW5pbWF0aW9uLWVudGVyKHRyYW5zZm9ybSwgJG1kYy1mYWItaWNvbi1lbnRlci1kdXJhdGlvbl8gKyAkbWRjLWZhYi1pY29uLWVudGVyLWRlbGF5Xyk7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDEyLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgLy8gVE9ETyhhY2R2b3Jhayk6IFNob3VsZCB0aGlzIGJlIHBhaXJlZCB3aXRoIHN0YXRlcyBhbmQvb3IgcmlwcGxlPyBXZSBkb24ndCB3YW50IHRvIGRpc2FibGUgb3V0bGluZVxuICAgIC8vIChhbiBhY2Nlc3NpYmlsaXR5L3VzYWJpbGl0eSBmZWF0dXJlKSB1bmxlc3Mgd2UncmUgY29uZmlkZW50IHRoYXQgdGhlcmUgaXMgYWxzbyBhIHZpc3VhbCBpbmRpY2F0aW9uIHRoYXQgdGhlXG4gICAgLy8gZWxlbWVudCBoYXMgZm9jdXMuIElmIHRoZSBjbGllbnQgaGFzIGN1c3RvbWl6ZWQgdGhlIERPTSBpbiBzb21lIHVuZXhwZWN0ZWQgd2F5LCBhbmQgaXMgY2VydGFpbiB0aGF0IGFub3RoZXJcbiAgICAvLyBlbGVtZW50IHdpbGwgcmVjZWl2ZSBmb2N1cyBpbnN0ZWFkLCB0aGV5IGNhbiBhbHdheXMgb3ZlcnJpZGUgdGhpcyBwcm9wZXJ0eSBtYW51YWxseSBpbiB0aGVpciBDU1MuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIGFsbG93cyBmb3IgdXNpbmcgU1ZHcyB3aXRoaW4gdGhlbSB0byBhbGlnbiBwcm9wZXJseSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIENhbiByZW1vdmUgb25jZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDUxNSBpcyByZXNvbHZlZC5cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuICA+IHN2ZyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC10eXBlXG59XG5cbkBtaXhpbiBtZGMtZmFiLS1taW5pXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogJG1kYy1mYWItbWluaS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkbWRjLWZhYi1taW5pLWhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYi0tZXh0ZW5kZWRfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYnV0dG9uLCAkcXVlcnk6ICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1mYWItZXh0ZW5kZWQtc2hhcGUtcmFkaXVzKDUwJSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtZmFiLWV4dGVuZGVkLXBhZGRpbmcoJG1kYy1mYWItZXh0ZW5kZWQtaWNvbi1wYWRkaW5nLCAkbWRjLWZhYi1leHRlbmRlZC1sYWJlbC1wYWRkaW5nLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRtZGMtZmFiLWV4dGVuZGVkLWhlaWdodDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYl9faWNvbl8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogbWRjLWFuaW1hdGlvbi1lbnRlcih0cmFuc2Zvcm0sICRtZGMtZmFiLWljb24tZW50ZXItZHVyYXRpb25fLCAkbWRjLWZhYi1pY29uLWVudGVyLWRlbGF5Xyk7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtZmFiX19sYWJlbF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWZhYl9faWNvbi1vdmVycmlkZXNfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mYWItLWV4aXRlZF8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgb3BhY2l0eSAxNW1zIGxpbmVhciAxNTBtcyxcbiAgICAgIG1kYy1hbmltYXRpb24tZXhpdC1wZXJtYW5lbnQodHJhbnNmb3JtLCAxODBtcyk7XG4gIH1cblxuICAubWRjLWZhYl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZXhpdC1wZXJtYW5lbnQodHJhbnNmb3JtLCAxMzVtcyk7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1mYWItZXh0ZW5kZWQtaWNvbi1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuJG1kYy1mYWItZXh0ZW5kZWQtbGFiZWwtcGFkZGluZzogMjBweCAhZGVmYXVsdDtcbiRtZGMtZmFiLWhlaWdodDogNTZweCAhZGVmYXVsdDtcbiRtZGMtZmFiLW1pbmktaGVpZ2h0OiA0MHB4ICFkZWZhdWx0O1xuJG1kYy1mYWItZXh0ZW5kZWQtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIEZsb2F0aW5nIExhYmVsIGlzIGludGVuZGVkIGZvciB1c2UgYnkgbXVsdGlwbGUgY29tcG9uZW50cywgYnV0IGl0cyBzdHlsZXMgc2hvdWxkIG9ubHkgYmUgZW1pdHRlZCBvbmNlIHdoZW4gYnVuZGxlZFxuQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLWZsb2F0aW5nLWxhYmVsXCIpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZmxvYXRpbmctbGFiZWxcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxKTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgbGVmdDogMDtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIHRyYW5zZm9ybSAkbWRjLWZsb2F0aW5nLWxhYmVsLXRyYW5zaXRpb24tZHVyYXRpb24gJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uLFxuICAgICAgY29sb3IgJG1kYy1mbG9hdGluZy1sYWJlbC10cmFuc2l0aW9uLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IDEuMTVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogdGV4dDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8vIEZvcmNlIHRoZSBsYWJlbCBpbnRvIGl0cyBvd24gbGF5ZXIgdG8gcHJldmVudCB2aXNpYmxlIGxheWVyIHByb21vdGlvbiBhZGp1c3RtZW50c1xuICAgIC8vIHdoZW4gdGhlIHJpcHBsZSBpcyBhY3RpdmF0ZWQgYmVoaW5kIGl0LlxuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cblxuICBAYXQtcm9vdCB7XG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRtZGMtZmxvYXRpbmctbGFiZWwtcG9zaXRpb24teSk7XG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbihzdGFuZGFyZCk7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKHN0YW5kYXJkLCAkbWRjLWZsb2F0aW5nLWxhYmVsLXBvc2l0aW9uLXkpO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWZsb2F0aW5nLWxhYmVsLWluay1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG59XG5cbi8vIFVzZWQgZm9yIHRleHRhcmVhIGluIGNhc2Ugb2Ygc2Nyb2xsaW5nXG5AbWl4aW4gbWRjLWZsb2F0aW5nLWxhYmVsLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKCRtb2RpZmllciwgJHBvc2l0aW9uWSwgJHBvc2l0aW9uWDogMCUsICRzY2FsZTogLjc1KSB7XG4gIEBrZXlmcmFtZXMgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWZsb2F0LWFib3ZlLSN7JG1vZGlmaWVyfSB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMCAtICN7JHBvc2l0aW9uWH0pKSB0cmFuc2xhdGVZKC0jeyRwb3NpdGlvbll9KSBzY2FsZSgjeyRzY2FsZX0pO1xuICAgIH1cblxuICAgIDMzJSB7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjUsIDAsIC43MDE3MzIsIC40OTU4MTkpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoNCUgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG5cbiAgICA2NiUge1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMDI0MzUsIC4zODEzNTIsIC41NSwgLjk1NjM1Mik7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNCUgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDAgLSAjeyRwb3NpdGlvblh9KSkgdHJhbnNsYXRlWSgtI3skcG9zaXRpb25ZfSkgc2NhbGUoI3skc2NhbGV9KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkcG9zaXRpb25ZLCAkcG9zaXRpb25YOiAwJSwgJHNjYWxlOiAuNzUpIHtcbiAgLm1kYy1mbG9hdGluZy1sYWJlbC0tZmxvYXQtYWJvdmUge1xuICAgIEBpZiAkcG9zaXRpb25YID4gMCBvciAkcG9zaXRpb25YIDwgMCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEgKiAkcG9zaXRpb25ZKSB0cmFuc2xhdGVYKC0xICogJHBvc2l0aW9uWCkgc2NhbGUoJHNjYWxlKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMSAqICRwb3NpdGlvblkpIHRyYW5zbGF0ZVgoJHBvc2l0aW9uWCkgc2NhbGUoJHNjYWxlKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMSAqICRwb3NpdGlvblkpIHNjYWxlKCRzY2FsZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKCRtb2RpZmllcikge1xuICAubWRjLWZsb2F0aW5nLWxhYmVsLS1zaGFrZSB7XG4gICAgYW5pbWF0aW9uOiBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtZmxvYXQtYWJvdmUtI3skbW9kaWZpZXJ9IDI1MG1zIDE7XG4gIH1cbn1cblxuQG1peGluIG1kYy1mbG9hdGluZy1sYWJlbC1tYXgtd2lkdGgoJG1heC13aWR0aCkge1xuICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTkgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1mb3JtLWZpZWxkLWNvcmUtc3R5bGVzKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1mb3JtLWZpZWxkIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5MiwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgPiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkbWRjLWZvcm0tZmllbGQtaXRlbS1zcGFjaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRtZGMtZm9ybS1maWVsZC1pdGVtLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLWZvcm0tZmllbGQtLWFsaWduLWVuZCB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gICAgPiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogJG1kYy1mb3JtLWZpZWxkLWl0ZW0tc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtdHlwZVxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAvKiBAbm9mbGlwICovXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbWRjLWZvcm0tZmllbGQtaXRlbS1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5cbi8vXG4vLyBNYWluIHRoZW1lIGNvbG9ycyBmb3IgeW91ciBicmFuZC5cbi8vXG4vLyBJZiB5b3UncmUgYSB1c2VyIGN1c3RvbWl6aW5nIHlvdXIgY29sb3Igc2NoZW1lIGluIFNBU1MsIHRoZXNlIGFyZSBwcm9iYWJseSB0aGUgb25seSB2YXJpYWJsZXMgeW91IG5lZWQgdG8gY2hhbmdlLlxuLy9cblxuJG1kYy10aGVtZS1wcmltYXJ5OiAjNjIwMGVlICFkZWZhdWx0OyAvLyBiYXNlbGluZSBwdXJwbGUsIDUwMCB0b25lXG4kbWRjLXRoZW1lLW9uLXByaW1hcnk6IGlmKG1kYy10aGVtZS1jb250cmFzdC10b25lKCRtZGMtdGhlbWUtcHJpbWFyeSkgPT0gXCJkYXJrXCIsICMwMDAsICNmZmYpICFkZWZhdWx0O1xuXG4vLyBUaGUgJG1kYy10aGVtZS1hY2NlbnQgdmFyaWFibGUgaXMgREVQUkVDQVRFRCAtIGl0IGV4aXN0cyBwdXJlbHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4vLyBUaGUgJG1kYy10aGVtZS1zZWNvbmRhcnkqIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBmb3IgYWxsIG5ldyBwcm9qZWN0cy5cbiRtZGMtdGhlbWUtYWNjZW50OiAjMDE4Nzg2ICFkZWZhdWx0OyAvLyBiYXNlbGluZSB0ZWFsLCA2MDAgdG9uZVxuJG1kYy10aGVtZS1zZWNvbmRhcnk6ICRtZGMtdGhlbWUtYWNjZW50ICFkZWZhdWx0O1xuJG1kYy10aGVtZS1vbi1zZWNvbmRhcnk6IGlmKG1kYy10aGVtZS1jb250cmFzdC10b25lKCRtZGMtdGhlbWUtc2Vjb25kYXJ5KSA9PSBcImRhcmtcIiwgIzAwMCwgI2ZmZikgIWRlZmF1bHQ7XG4kbWRjLXRoZW1lLWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7IC8vIFdoaXRlXG5cbiRtZGMtdGhlbWUtc3VyZmFjZTogI2ZmZiAhZGVmYXVsdDtcbiRtZGMtdGhlbWUtb24tc3VyZmFjZTogaWYobWRjLXRoZW1lLWNvbnRyYXN0LXRvbmUoJG1kYy10aGVtZS1zdXJmYWNlKSA9PSBcImRhcmtcIiwgIzAwMCwgI2ZmZikgIWRlZmF1bHQ7XG5cbiRtZGMtdGhlbWUtZXJyb3I6ICNiMDAwMjAgIWRlZmF1bHQ7XG4kbWRjLXRoZW1lLW9uLWVycm9yOiBpZihtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkbWRjLXRoZW1lLWVycm9yKSA9PSBcImRhcmtcIiwgIzAwMCwgI2ZmZikgIWRlZmF1bHQ7XG5cbi8vXG4vLyBUZXh0IGNvbG9ycyBhY2NvcmRpbmcgdG8gbGlnaHQgdnMgZGFyayBhbmQgdGV4dCB0eXBlLlxuLy9cblxuJG1kYy10aGVtZS10ZXh0LWNvbG9yczogKFxuICBkYXJrOiAoXG4gICAgcHJpbWFyeTogcmdiYShibGFjaywgLjg3KSxcbiAgICBzZWNvbmRhcnk6IHJnYmEoYmxhY2ssIC41NCksXG4gICAgaGludDogcmdiYShibGFjaywgLjM4KSxcbiAgICBkaXNhYmxlZDogcmdiYShibGFjaywgLjM4KSxcbiAgICBpY29uOiByZ2JhKGJsYWNrLCAuMzgpXG4gICksXG4gIGxpZ2h0OiAoXG4gICAgcHJpbWFyeTogd2hpdGUsXG4gICAgc2Vjb25kYXJ5OiByZ2JhKHdoaXRlLCAuNyksXG4gICAgaGludDogcmdiYSh3aGl0ZSwgLjUpLFxuICAgIGRpc2FibGVkOiByZ2JhKHdoaXRlLCAuNSksXG4gICAgaWNvbjogcmdiYSh3aGl0ZSwgLjUpXG4gIClcbikgIWRlZmF1bHQ7XG5cbiRtZGMtdGhlbWUtdGV4dC1lbXBoYXNpczogKFxuICBoaWdoOiAuODcsXG4gIG1lZGl1bTogLjYsXG4gIGRpc2FibGVkOiAuMzgsXG4pICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oJHRleHQtc3R5bGUsICRmaWxsLWNvbG9yKSB7XG4gICRjb250cmFzdC10b25lOiBtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkZmlsbC1jb2xvcik7XG5cbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJG1kYy10aGVtZS10ZXh0LWNvbG9ycywgJGNvbnRyYXN0LXRvbmUpLCAkdGV4dC1zdHlsZSk7XG59XG5cbi8vXG4vLyBQcmltYXJ5IHRleHQgY29sb3JzIGZvciBlYWNoIG9mIHRoZSB0aGVtZSBjb2xvcnMuXG4vL1xuXG4kbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlczogKFxuICAvLyBQcmltYXJ5XG4gIHByaW1hcnk6ICRtZGMtdGhlbWUtcHJpbWFyeSxcbiAgLy8gU2Vjb25kYXJ5XG4gIHNlY29uZGFyeTogJG1kYy10aGVtZS1zZWNvbmRhcnksXG4gIC8vIEJhY2tncm91bmRcbiAgYmFja2dyb3VuZDogJG1kYy10aGVtZS1iYWNrZ3JvdW5kLFxuICAvLyBTdXJmYWNlXG4gIHN1cmZhY2U6ICRtZGMtdGhlbWUtc3VyZmFjZSxcbiAgLy8gRXJyb3JcbiAgZXJyb3I6ICRtZGMtdGhlbWUtZXJyb3IsXG4gIG9uLXByaW1hcnk6ICRtZGMtdGhlbWUtb24tcHJpbWFyeSxcbiAgb24tc2Vjb25kYXJ5OiAkbWRjLXRoZW1lLW9uLXNlY29uZGFyeSxcbiAgb24tc3VyZmFjZTogJG1kYy10aGVtZS1vbi1zdXJmYWNlLFxuICBvbi1lcnJvcjogJG1kYy10aGVtZS1vbi1lcnJvcixcbiAgLy8gVGV4dC1wcmltYXJ5IG9uIFwiYmFja2dyb3VuZFwiIGJhY2tncm91bmRcbiAgdGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHByaW1hcnksICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHNlY29uZGFyeSwgJG1kYy10aGVtZS1iYWNrZ3JvdW5kKSxcbiAgdGV4dC1oaW50LW9uLWJhY2tncm91bmQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGhpbnQsICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtZGlzYWJsZWQtb24tYmFja2dyb3VuZDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oZGlzYWJsZWQsICRtZGMtdGhlbWUtYmFja2dyb3VuZCksXG4gIHRleHQtaWNvbi1vbi1iYWNrZ3JvdW5kOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhpY29uLCAkbWRjLXRoZW1lLWJhY2tncm91bmQpLFxuICAvLyBUZXh0LXByaW1hcnkgb24gXCJsaWdodFwiIGJhY2tncm91bmRcbiAgdGV4dC1wcmltYXJ5LW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhwcmltYXJ5LCBsaWdodCksXG4gIHRleHQtc2Vjb25kYXJ5LW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhzZWNvbmRhcnksIGxpZ2h0KSxcbiAgdGV4dC1oaW50LW9uLWxpZ2h0OiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhoaW50LCBsaWdodCksXG4gIHRleHQtZGlzYWJsZWQtb24tbGlnaHQ6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKGRpc2FibGVkLCBsaWdodCksXG4gIHRleHQtaWNvbi1vbi1saWdodDogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8oaWNvbiwgbGlnaHQpLFxuICAvLyBUZXh0LXByaW1hcnkgb24gXCJkYXJrXCIgYmFja2dyb3VuZFxuICB0ZXh0LXByaW1hcnktb24tZGFyazogbWRjLXRoZW1lLWluay1jb2xvci1mb3ItZmlsbF8ocHJpbWFyeSwgZGFyayksXG4gIHRleHQtc2Vjb25kYXJ5LW9uLWRhcms6IG1kYy10aGVtZS1pbmstY29sb3ItZm9yLWZpbGxfKHNlY29uZGFyeSwgZGFyayksXG4gIHRleHQtaGludC1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhoaW50LCBkYXJrKSxcbiAgdGV4dC1kaXNhYmxlZC1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhkaXNhYmxlZCwgZGFyayksXG4gIHRleHQtaWNvbi1vbi1kYXJrOiBtZGMtdGhlbWUtaW5rLWNvbG9yLWZvci1maWxsXyhpY29uLCBkYXJrKVxuKSAhZGVmYXVsdDtcblxuLy8gSWYgYCRzdHlsZWAgaXMgYSBjb2xvciAoYSBsaXRlcmFsIGNvbG9yIHZhbHVlLCBgY3VycmVudENvbG9yYCwgb3IgYSBDU1MgY3VzdG9tIHByb3BlcnR5KSwgaXQgaXMgcmV0dXJuZWQgdmVyYmF0aW0uXG4vLyBPdGhlcndpc2UsIGAkc3R5bGVgIGlzIHRyZWF0ZWQgYXMgYSB0aGVtZSBwcm9wZXJ0eSBuYW1lLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZnJvbVxuLy8gYCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzYCBpcyByZXR1cm5lZC4gSWYgdGhpcyBhbHNvIGZhaWxzLCBhbiBlcnJvciBpcyB0aHJvd24uXG4vL1xuLy8gVGhpcyBpcyBtYWlubHkgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYG1kYy10aGVtZS1wcm9wYCBjYW5ub3QgYmUgdXNlZCBkaXJlY3RseSAoZS5nLiwgYGJveC1zaGFkb3dgKS5cbi8vXG4vLyBFeGFtcGxlczpcbi8vXG4vLyAxLiBtZGMtdGhlbWUtcHJvcC12YWx1ZShwcmltYXJ5KSA9PiBcIiM2MjAwZWVcIlxuLy8gMi4gbWRjLXRoZW1lLXByb3AtdmFsdWUoYmx1ZSkgICAgPT4gXCJibHVlXCJcbi8vXG4vLyBOT1RFOiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgZGVmaW5lZCBpbiBfdmFyaWFibGVzLnNjc3MgaW5zdGVhZCBvZiBfZnVuY3Rpb25zLnNjc3MgdG8gYXZvaWQgY2lyY3VsYXIgaW1wb3J0cy5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkc3R5bGUpIHtcbiAgQGlmIG1kYy10aGVtZS1pcy12YXItd2l0aC1mYWxsYmFja18oJHN0eWxlKSB7XG4gICAgQHJldHVybiBtZGMtdGhlbWUtZ2V0LXZhci1mYWxsYmFja18oJHN0eWxlKTtcbiAgfVxuXG4gIEBpZiBtZGMtdGhlbWUtaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gICAgQHJldHVybiAkc3R5bGU7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtdGhlbWUtcHJvcGVydHktdmFsdWVzLCAkc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHRoZW1lIHByb3BlcnR5OiAnI3skc3R5bGV9Jy4gQ2hvb3NlIG9uZSBvZjogI3ttYXAta2V5cygkbWRjLXRoZW1lLXByb3BlcnR5LXZhbHVlcyl9XCI7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1nZXQoJG1kYy10aGVtZS1wcm9wZXJ0eS12YWx1ZXMsICRzdHlsZSk7XG59XG5cbi8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBkZWZpbmVkIGluIF92YXJpYWJsZXMuc2NzcyBpbnN0ZWFkIG9mIF9mdW5jdGlvbnMuc2NzcyB0byBhdm9pZCBjaXJjdWxhciBpbXBvcnRzLlxuQGZ1bmN0aW9uIG1kYy10aGVtZS1hY2Nlc3NpYmxlLWluay1jb2xvcigkZmlsbC1jb2xvciwgJHRleHQtc3R5bGU6IHByaW1hcnkpIHtcbiAgJGZpbGwtY29sb3ItdmFsdWU6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRmaWxsLWNvbG9yKTtcbiAgJGNvbG9yLW1hcC1mb3ItdG9uZTogbWFwLWdldCgkbWRjLXRoZW1lLXRleHQtY29sb3JzLCBtZGMtdGhlbWUtY29udHJhc3QtdG9uZSgkZmlsbC1jb2xvci12YWx1ZSkpO1xuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGNvbG9yLW1hcC1mb3ItdG9uZSwgJHRleHQtc3R5bGUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkICR0ZXh0LXN0eWxlOiAnI3skdGV4dC1zdHlsZX0nLiBDaG9vc2Ugb25lIG9mOiAje21hcC1rZXlzKCRjb2xvci1tYXAtZm9yLXRvbmUpfVwiO1xuICB9XG5cbiAgQHJldHVybiBtYXAtZ2V0KCRjb2xvci1tYXAtZm9yLXRvbmUsICR0ZXh0LXN0eWxlKTtcbn1cblxuLy8gTk9URTogVGhpcyBmdW5jdGlvbiBpcyBkZXBlbmRlZCB1cG9uIGJ5IG1kYy10aGVtZS1wcm9wLXZhbHVlIChhYm92ZSkgYW5kIHRodXMgbXVzdCBiZSBkZWZpbmVkIGluIHRoaXMgZmlsZS5cbkBmdW5jdGlvbiBtZGMtdGhlbWUtaXMtdmFsaWQtdGhlbWUtcHJvcC12YWx1ZV8oJHN0eWxlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkc3R5bGUpID09IFwiY29sb3JcIiBvciAkc3R5bGUgPT0gXCJjdXJyZW50Q29sb3JcIiBvciBzdHJfc2xpY2UoJHN0eWxlLCAxLCA0KSA9PSBcInZhcihcIjtcbn1cblxuQGZ1bmN0aW9uIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKCRlbXBoYXNpcykge1xuICBAcmV0dXJuIG1hcC1nZXQoJG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzLCAkZW1waGFzaXMpO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZm9ybS1maWVsZC1pdGVtLXNwYWNpbmc6IDRweCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWdyaWQtbGlzdC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC10eXBvZ3JhcGh5OiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZ3JpZC1saXN0XG4gIEBpbmNsdWRlIG1kYy1ncmlkLWxpc3QtdGlsZS1hc3BlY3QoMSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtZ3JpZC1saXN0LXRpbGUtZ3V0dGVyKDRweCwgJHF1ZXJ5OiAkcXVlcnkpO1xuXG4gIC5tZGMtZ3JpZC1saXN0X190aWxlcyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWdyaWQtbGlzdC0tdGlsZS1ndXR0ZXItMSB7XG4gICAgQGluY2x1ZGUgbWRjLWdyaWQtbGlzdC10aWxlLWd1dHRlcigxcHgsICRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtZ3JpZC1saXN0LS10aWxlLWFzcGVjdC0xNng5IHtcbiAgICBAaW5jbHVkZSBtZGMtZ3JpZC1saXN0LXRpbGUtYXNwZWN0KDE2IC8gOSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1ncmlkLWxpc3QtLXRpbGUtYXNwZWN0LTN4MiB7XG4gICAgQGluY2x1ZGUgbWRjLWdyaWQtbGlzdC10aWxlLWFzcGVjdCgzIC8gMiwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1ncmlkLWxpc3QtLXRpbGUtYXNwZWN0LTJ4MyB7XG4gICAgQGluY2x1ZGUgbWRjLWdyaWQtbGlzdC10aWxlLWFzcGVjdCgyIC8gMywgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1ncmlkLWxpc3QtLXRpbGUtYXNwZWN0LTR4MyB7XG4gICAgQGluY2x1ZGUgbWRjLWdyaWQtbGlzdC10aWxlLWFzcGVjdCg0IC8gMywgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1ncmlkLWxpc3QtLXRpbGUtYXNwZWN0LTN4NCB7XG4gICAgQGluY2x1ZGUgbWRjLWdyaWQtbGlzdC10aWxlLWFzcGVjdCgzIC8gNCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgZ3JpZC10aWxlXG4gIC5tZGMtZ3JpZC10aWxlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICB3aWR0aDogJG1kYy1ncmlkLWxpc3QtdGlsZS13aWR0aDtcbiAgICAgIHdpZHRoOiB2YXIoLS1tZGMtZ3JpZC1saXN0LXRpbGUtd2lkdGgsICRtZGMtZ3JpZC1saXN0LXRpbGUtd2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZ3JpZC10aWxlX19wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAubWRjLWdyaWQtdGlsZV9fcHJpbWFyeS1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG4gIH1cblxuICAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCBwcmltYXJ5KTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCBvbi1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGhlaWdodDogJG1kYy1ncmlkLWxpc3Qtb25lbGluZS1jYXAtc2Vjb25kYXJ5LWhlaWdodDtcbiAgICAgIHBhZGRpbmc6ICRtZGMtZ3JpZC1saXN0LXRpbGUtc2Vjb25kYXJ5LXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1ncmlkLXRpbGVfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1vdmVyZmxvdy1lbGxpcHNpcygkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC10eXBvZ3JhcGh5KSB7XG4gICAgICBmb250LXdlaWdodDogI3ttYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIG1lZGl1bSl9O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZ3JpZC10aWxlX19zdXBwb3J0LXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KHN1YnRpdGxlMSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeTogJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1ncmlkLXRpbGVfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoNTAlIC0gI3skbWRjLWdyaWQtbGlzdC10aWxlLXNlY29uZGFyeS1pY29uLXNpemV9IC8gMik7XG4gICAgICBmb250LXNpemU6IDA7XG4gICAgfVxuICB9XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG5cbiAgLy8gTGludGVyIGRpc2FibGVkIGJlY2F1c2Ugd2UgYXJlIG5lc3RpbmcgZ3JpZC10aWxlIHVuZGVyIGdyaWQtbGlzdC5cbiAgLm1kYy1ncmlkLWxpc3QtLXR3b2xpbmUtY2FwdGlvbiAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgaGVpZ2h0OiAkbWRjLWdyaWQtbGlzdC10d29saW5lLWNhcC1zZWNvbmRhcnktaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZ3JpZC1saXN0LS1oZWFkZXItY2FwdGlvbiAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZ3JpZC1saXN0LS13aXRoLWljb24tYWxpZ24tc3RhcnQge1xuICAgIC5tZGMtZ3JpZC10aWxlX19zZWNvbmRhcnkge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkoXG4gICAgICAgICAgcGFkZGluZyxcbiAgICAgICAgICAkbWRjLWdyaWQtbGlzdC10aWxlLXNlY29uZGFyeS1wYWRkaW5nICogMiArICRtZGMtZ3JpZC1saXN0LXRpbGUtc2Vjb25kYXJ5LWljb24tc2l6ZSxcbiAgICAgICAgICAkbWRjLWdyaWQtbGlzdC10aWxlLXNlY29uZGFyeS1wYWRkaW5nLW5hcnJvdyxcbiAgICAgICAgICBcIi5tZGMtZ3JpZC1saXN0XCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWdyaWQtdGlsZV9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLWdyaWQtbGlzdC10aWxlLXNlY29uZGFyeS1wYWRkaW5nLCBcIi5tZGMtZ3JpZC1saXN0XCIpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJG1kYy1ncmlkLWxpc3QtdGlsZS1zZWNvbmRhcnktaWNvbi1zaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtZ3JpZC1saXN0LS13aXRoLWljb24tYWxpZ24tZW5kIHtcbiAgICAubWRjLWdyaWQtdGlsZV9fc2Vjb25kYXJ5IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KFxuICAgICAgICAgIHBhZGRpbmcsXG4gICAgICAgICAgJG1kYy1ncmlkLWxpc3QtdGlsZS1zZWNvbmRhcnktcGFkZGluZyxcbiAgICAgICAgICAkbWRjLWdyaWQtbGlzdC10aWxlLXNlY29uZGFyeS1wYWRkaW5nICogMiArICRtZGMtZ3JpZC1saXN0LXRpbGUtc2Vjb25kYXJ5LWljb24tc2l6ZSxcbiAgICAgICAgICBcIi5tZGMtZ3JpZC1saXN0XCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLWdyaWQtdGlsZV9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihyaWdodCwgJG1kYy1ncmlkLWxpc3QtdGlsZS1zZWNvbmRhcnktcGFkZGluZywgXCIubWRjLWdyaWQtbGlzdFwiKTtcblxuICAgICAgICBmb250LXNpemU6ICRtZGMtZ3JpZC1saXN0LXRpbGUtc2Vjb25kYXJ5LWljb24tc2l6ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1ncmlkLWxpc3QtdGlsZS1hc3BlY3QoJHdpZHRoLWhlaWdodC1yYXRpbywgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIC5tZGMtZ3JpZC10aWxlX19wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICN7JHdpZHRoLWhlaWdodC1yYXRpb30pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWdyaWQtbGlzdC10aWxlLWd1dHRlcigkZ3V0dGVyLXdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1ncmlkLXRpbGUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXJnaW46ICRndXR0ZXItd2lkdGgvMiAwO1xuICAgICAgcGFkZGluZzogMCAkZ3V0dGVyLXdpZHRoLzI7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1ncmlkLXRpbGVfX3NlY29uZGFyeSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGxlZnQ6ICRndXR0ZXItd2lkdGgvMjtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRndXR0ZXItd2lkdGh9KTtcbiAgICB9XG4gIH1cblxuICAubWRjLWdyaWQtbGlzdF9fdGlsZXMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXJnaW46ICRndXR0ZXItd2lkdGgvMiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtZ3JpZC1saXN0LXRpbGUtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuJG1kYy1ncmlkLWxpc3QtdGlsZS1zZWNvbmRhcnktcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRtZGMtZ3JpZC1saXN0LXRpbGUtc2Vjb25kYXJ5LXBhZGRpbmctbmFycm93OiA4cHggIWRlZmF1bHQ7XG4kbWRjLWdyaWQtbGlzdC1vbmVsaW5lLWNhcC1zZWNvbmRhcnktaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy1ncmlkLWxpc3QtdHdvbGluZS1jYXAtc2Vjb25kYXJ5LWhlaWdodDogNjhweCAhZGVmYXVsdDtcbiRtZGMtZ3JpZC1saXN0LXRpbGUtc2Vjb25kYXJ5LWljb24tc2l6ZTogMjRweCAhZGVmYXVsdDtcbiIsIi8vVE9ETyA6IEZBTExCQUNLIFNZU1RFTSAoSk9ITiAtIDIwMTgvMTEpXHJcbkBpbXBvcnQgXCJwYXJ0aWFscy9yZXNldFwiO1xyXG4vLyBJTVBPUlQgVkFSSUFCTEVcclxuLy9cclxuQGltcG9ydCBcInBhcnRpYWxzL2NvbG9yLXBhbGV0dGVzXCI7XHJcbkBpbXBvcnQgXCJ2YXJpYWJsZVwiO1xyXG5cclxuLy9cclxuLy8gTE9BRCBUSEVNRSBDT0xPUlMgSU5UTyBMSVNUIChKT0hOIC0gMjAxOC8xMSlcclxuLy9cclxuLy9UaGVtZSBiYWNrZ3JvdW5kXHJcbi8vJG1kLXRoZW1lLWNvbG9ycy0tYmdfX21hcDogKCdtZGMtdGhlbWUtLXByaW1hcnktYmcnOiRtZGMtdGhlbWUtcHJpbWFyeSwgJ21kYy10aGVtZS0tc2Vjb25kYXJ5LWJnJzokbWRjLXRoZW1lLXNlY29uZGFyeSk7XHJcbiRtZGMtdGhlbWUtcHJpbWFyeTogIzYyMDBlZSAhZGVmYXVsdDsgLy8gYmFzZWxpbmUgcHVycGxlLCA1MDAgdG9uZVxyXG4kbWRjLXRoZW1lLW9uLXByaW1hcnk6ICRsaWdodCAhZ2xvYmFsO1xyXG5cclxuLy8gVGhlICRtZGMtdGhlbWUtYWNjZW50IHZhcmlhYmxlIGlzIERFUFJFQ0FURUQgLSBpdCBleGlzdHMgcHVyZWx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxyXG4vLyBUaGUgJG1kYy10aGVtZS1zZWNvbmRhcnkqIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBmb3IgYWxsIG5ldyBwcm9qZWN0cy5cclxuJG1kYy10aGVtZS1zZWNvbmRhcnk6ICMwMTg3ODYgIWRlZmF1bHQ7XHJcbiRtZGMtdGhlbWUtb24tc2Vjb25kYXJ5OiAkbGlnaHQgIWdsb2JhbDtcclxuJG1kYy10aGVtZS1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0OyAvLyBXaGl0ZVxyXG5cclxuJG1kYy10aGVtZS1zdXJmYWNlOiAkbWF0ZXJpYWwtY29sb3ItYmx1ZS01MCAhZGVmYXVsdDtcclxuJG1kYy10aGVtZS1vbi1zdXJmYWNlOiAkZGFyayAhZ2xvYmFsO1xyXG5cclxuJG1kYy10aGVtZS1lcnJvcjogI2IwMDAyMCAhZGVmYXVsdDtcclxuJG1kYy10aGVtZS1vbi1lcnJvcjogJGxpZ2h0ICFnbG9iYWw7XHJcblxyXG4kbWRjLXRoZW1lLWxpZ2h0OiAkbWF0ZXJpYWwtY29sb3ItZ3JleS0yMDA7XHJcbiRtZGMtdGhlbWUtZGFyazogJG1hdGVyaWFsLWNvbG9yLWdyZXktOTAwO1xyXG5cclxuLy9UaGlzIGtleXZhbHVlIGFycmF5IGlzIHVzZWQgaW4gb3JkZXIgdG8gY3JlYXRlIHRoZSB0aGVtZSBzZWxlY3RvclxyXG4vLyhOYW1lLCBDb2xvclRvQmluZClcclxuLy9JdCBjcmVhdGUgcGFyZW50IGNsYXNzIC5tZGMtdGhlbWUtLW9uLTxOYW1lPlxyXG4vL1VzZSB0aG9zZSB0byBjcmVhdGUgem9uZSBvZiBpbnRlbGlnZW50IFN0eWxlcyBhbmQgdGhlbWUgTURDXHJcbiRtZGMtdGhlbWUtY29sb3JzOiAoIHByaW1hcnk6ICRtZGMtdGhlbWUtcHJpbWFyeSwgc2Vjb25kYXJ5OiAkbWRjLXRoZW1lLXNlY29uZGFyeSwgbGlnaHQ6ICRtZGMtdGhlbWUtbGlnaHQsIGRhcms6ICRtZGMtdGhlbWUtZGFyaywgYmFja2dyb3VuZDogJG1kYy10aGVtZS1iYWNrZ3JvdW5kLCBzdXJmYWNlOiAkbWRjLXRoZW1lLXN1cmZhY2UgKTtcclxuXHJcbi8vXHJcbi8vIElNUE9SVCBUSElSRCBQQVJUWSBMSUJSQVJZXHJcbi8vXHJcblxyXG4vL1xyXG4vLyBNQVRFUklBTCBERVNJR05cclxuLy9cclxuXHJcbkBpbXBvcnQgJy4vLi4vLi4vbm9kZV9tb2R1bGVzL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViJztcclxuQGltcG9ydCAncGFydGlhbHMvbWRjLXN0eWxlcyc7XHJcblxyXG4vL1xyXG4vLyBQQVJUSUFMU1xyXG4vL1xyXG5cclxuQGltcG9ydCAncGFydGlhbHMvc3BhY2VyJztcclxuQGltcG9ydCAncGFydGlhbHMvdXRpbGl0aWUnO1xyXG5AaW1wb3J0ICdwYXJ0aWFscy9hbmltYXRlJztcclxuXHJcblxyXG4vL1RoZSB0aGVtZSBjb25zdHJ1Y3RvciBzaG91bGQgYmUgbG9hZGVkIGF0IHRoZSBlbmRcclxuLy9Bdm9pZCBvdmVyaWRpbmcgc3R5bGUgYnkgYWNjaWRlbnRcclxuLy9BbHNvIGdpdmUgYWNjZXNzIHRvIFNhc3MgVmFyaWFibGVzXHJcblxyXG5cclxuLy9JRTExIEZJWFxyXG5AaW1wb3J0ICdwYXJ0aWFscy9pZS1maXgnO1xyXG5cclxuLy9NZWRpYSBxdWVyeSBAd2lkdGhcclxuQGltcG9ydCAncGFydGlhbHMvcmVzcG9uc2l2ZSc7XHJcblxyXG4vL01lZGlhIHF1ZXJ5IEBwcmludFxyXG5AaW1wb3J0ICdwYXJ0aWFscy9wcmludCc7IiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtaWNvbi1idXR0b24tY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24td2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXJpcHBsZSgkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLWljb24tYnV0dG9uLXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBpY29uLWJ1dHRvblxuICAubWRjLWljb24tYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tYmFzZV8oJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1pY29uLWJ1dHRvbl9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gICAgJi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pY29uLWJ1dHRvbi0tb24ge1xuICAgIC5tZGMtaWNvbi1idXR0b25fX2ljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgICAgJi5tZGMtaWNvbi1idXR0b25fX2ljb24tLW9uIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1pY29uLWJ1dHRvbi1yaXBwbGUoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtaWNvbi1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkKCRxdWVyeTogJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRxdWVyeTogJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWljb24tYnV0dG9uLXNpemUoJHdpZHRoLCAkaGVpZ2h0OiAkd2lkdGgsICRwYWRkaW5nOiBtYXgoJHdpZHRoLCAkaGVpZ2h0KS8yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICB3aWR0aDogJHdpZHRoICsgJHBhZGRpbmcgKiAyO1xuICAgIGhlaWdodDogJGhlaWdodCArICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBmb250LXNpemU6IG1heCgkd2lkdGgsICRoZWlnaHQpO1xuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW1heC10eXBlXG4gIHN2ZyxcbiAgaW1nIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1pY29uLWJ1dHRvbi1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtaWNvbi1idXR0b24tYmFzZV8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtaWNvbi1idXR0b24tc2l6ZSgkbWRjLWljb24tYnV0dG9uLXNpemUsICRxdWVyeTogJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LWRpc2FibGVkLW9uLWxpZ2h0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy1pY29uLWJ1dHRvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuIiwiLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3QtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSBpbWFnZS1saXN0XG4gIC5tZGMtaW1hZ2UtbGlzdCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAvLyBNYXJnaW4gYW5kIHBhZGRpbmcgYXJlIHNldCB0byBvdmVycmlkZSBkZWZhdWx0IHVzZXIgYWdlbnQgc3R5bGVzIGZvciBsaXN0cywgYW5kIGFsc28gdG8gY2VudGVyIHRoZSBJbWFnZSBMaXN0XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pdGVtLFxuICAubWRjLWltYWdlLWxpc3RfX2ltYWdlLWFzcGVjdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBTdXBwb3J0cyBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiBwcm90ZWN0ZWQgc3VwcG9ydGluZyBjb250ZW50IGZvciBpdGVtLCBhbmQgaW1hZ2UgZm9yIGltYWdlLWFzcGVjdC1jb250YWluZXJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAvLyBEZXNjZW5kYW50IHNlbGVjdG9yIGFsbG93cyBpbWFnZS1hc3BlY3QtY29udGFpbmVyIHRvIGJlIG9wdGlvbmFsIGluIERPTSBzdHJ1Y3R1cmVcbiAgLm1kYy1pbWFnZS1saXN0X19pbWFnZS1hc3BlY3QtY29udGFpbmVyIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAvLyBCYWNrZ3JvdW5kIHN0eWxlcyB0byBzdXBwb3J0IGRpdiBpbnN0ZWFkIG9mIGltZ1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWRjLWltYWdlLWxpc3QtYXNwZWN0KDEsICRxdWVyeTogJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWltYWdlLWxpc3Qtc2hhcGUtcmFkaXVzKDAsICRxdWVyeTogJHF1ZXJ5KTtcblxuICAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCB0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgbGluZS1oZWlnaHQ6ICRtZGMtaW1hZ2UtbGlzdC1pY29uLXNpemU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1pbWFnZS1saXN0X19sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG5cbiAgLy8gTW9kaWZpZXIgZm9yIGxhYmVscy9pY29ucyB3aXRoIHRleHQgcHJvdGVjdGlvbiwgb3ZlcmxheWluZyBpbWFnZXMuXG5cbiAgLm1kYy1pbWFnZS1saXN0LS13aXRoLXRleHQtcHJvdGVjdGlvbiAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1oZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAwICRtZGMtaW1hZ2UtbGlzdC10ZXh0LXByb3RlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZGMtaW1hZ2UtbGlzdC10ZXh0LXByb3RlY3Rpb24tYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1hc29ucnkgSW1hZ2UgTGlzdCwgdXNpbmcgQ1NTIGNvbHVtbnMgKGkuZS4gcmVuZGVycyBkb3duIHRoZW4gYWNyb3NzKVxuXG4gIC5tZGMtaW1hZ2UtbGlzdC0tbWFzb25yeSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyAvLyBPdmVycmlkZSBmbGV4XG4gICAgfVxuXG4gICAgLm1kYy1pbWFnZS1saXN0X19pdGVtIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtaW1hZ2UtbGlzdF9faW1hZ2Uge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbn1cblxuQG1peGluIG1kYy1pbWFnZS1saXN0LWFzcGVjdCgkd2lkdGgtaGVpZ2h0LXJhdGlvLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1pbWFnZS1saXN0X19pbWFnZS1hc3BlY3QtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAvICN7JHdpZHRoLWhlaWdodC1yYXRpb30pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3Qtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLWltYWdlLWxpc3RfX2ltYWdlIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cblxuICAkc2VsZWN0b3I6IGlmKCYsIFwiJi5tZGMtaW1hZ2UtbGlzdC0td2l0aC10ZXh0LXByb3RlY3Rpb25cIiwgXCIubWRjLWltYWdlLWxpc3QtLXdpdGgtdGV4dC1wcm90ZWN0aW9uXCIpO1xuXG4gICN7JHNlbGVjdG9yfSAubWRjLWltYWdlLWxpc3RfX3N1cHBvcnRpbmcge1xuICAgICRtYXNrZWQtcmFkaXVzOiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgMCAwIDEgMSk7XG5cbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKCRtYXNrZWQtcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbi8vIFN0YW5kYXJkIEltYWdlIExpc3RcblxuQG1peGluIG1kYy1pbWFnZS1saXN0LXN0YW5kYXJkLWNvbHVtbnMoXG4gICRjb2x1bW4tY291bnQsXG4gICRndXR0ZXItc2l6ZTogJG1kYy1pbWFnZS1saXN0LXN0YW5kYXJkLWd1dHRlci1zaXplLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAvLyBUaGlzIHVzZXMgbWFyZ2luIHJhdGhlciB0aGFuIHBhZGRpbmcgdG8gZmFjaWxpdGF0ZSBwcm9wZXJseSBwb3NpdGlvbmluZyB0aGUgc3VwcG9ydGluZyBjb250ZW50IGVsZW1lbnQgd2hlblxuICAvLyAtLXdpdGgtdGV4dC1wcm90ZWN0aW9uIGlzIHVzZWQuXG4gIC5tZGMtaW1hZ2UtbGlzdF9faXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIFN1YnRyYWN0IGV4dHJhIGZyYWN0aW9uIGZyb20gZWFjaCBpdGVtJ3Mgd2lkdGggdG8gZW5zdXJlIGNvcnJlY3Qgd3JhcHBpbmcgaW4gSUUvRWRnZSB3aGljaCByb3VuZCBkaWZmZXJlbnRseVxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvICN7JGNvbHVtbi1jb3VudH0gLSAjeyRndXR0ZXItc2l6ZSArIDEgLyAkY29sdW1uLWNvdW50fSk7XG4gICAgICBtYXJnaW46ICRndXR0ZXItc2l6ZSAvIDI7XG4gICAgfVxuICB9XG59XG5cbi8vIE1hc29ucnkgSW1hZ2UgTGlzdFxuXG5AbWl4aW4gbWRjLWltYWdlLWxpc3QtbWFzb25yeS1jb2x1bW5zKFxuICAkY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyLXNpemU6ICRtZGMtaW1hZ2UtbGlzdC1tYXNvbnJ5LWd1dHRlci1zaXplLFxuICAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGNvbHVtbi1jb3VudDogJGNvbHVtbi1jb3VudDtcbiAgICBjb2x1bW4tZ2FwOiAkZ3V0dGVyLXNpemU7XG4gIH1cblxuICAubWRjLWltYWdlLWxpc3RfX2l0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyLXNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbiRtZGMtaW1hZ2UtbGlzdC1zdGFuZGFyZC1ndXR0ZXItc2l6ZTogNHB4ICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LW1hc29ucnktZ3V0dGVyLXNpemU6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLWltYWdlLWxpc3QtaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC42KSAhZGVmYXVsdDtcbiRtZGMtaW1hZ2UtbGlzdC10ZXh0LXByb3RlY3Rpb24taGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy1pbWFnZS1saXN0LXRleHQtcHJvdGVjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4iLCIvLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbjpyb290IHtcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKSB7XG4gICAgLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLSN7JHNpemV9OiAje21hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbiwgJHNpemUpfTtcbiAgICAtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItI3skc2l6ZX06ICN7bWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyLCAkc2l6ZSl9O1xuICAgIC0tbWRjLWxheW91dC1ncmlkLWNvbHVtbi13aWR0aC0jeyRzaXplfTogI3ttYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLCAkc2l6ZSl9O1xuICB9XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIGxheW91dC1ncmlkXG4ubWRjLWxheW91dC1ncmlkIHtcbiAgQGVhY2ggJHNpemUgaW4gbWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKSB7XG4gICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLW1lZGlhLXF1ZXJ5Xygkc2l6ZSkge1xuICAgICAgJG1hcmdpbjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtbWFyZ2luLCAkc2l6ZSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZCgkc2l6ZSwgJG1hcmdpbiwgJG1kYy1sYXlvdXQtZ3JpZC1tYXgtd2lkdGgpO1xuICAgIH1cbiAgfVxufVxuXG4ubWRjLWxheW91dC1ncmlkX19pbm5lciB7XG4gIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucykge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1tZWRpYS1xdWVyeV8oJHNpemUpIHtcbiAgICAgICRtYXJnaW46IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbiwgJHNpemUpO1xuICAgICAgJGd1dHRlcjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyLCAkc2l6ZSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1pbm5lcigkc2l6ZSwgJG1hcmdpbiwgJGd1dHRlcik7XG4gICAgfVxuICB9XG59XG5cbi5tZGMtbGF5b3V0LWdyaWRfX2NlbGwge1xuICAvLyBzZWxlY3QgdGhlIHVwcGVyIGJyZWFrcG9pbnRcbiAgJHVwcGVyLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpLCAxKTtcblxuICBAZWFjaCAkc2l6ZSBpbiBtYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtbWVkaWEtcXVlcnlfKCRzaXplKSB7XG4gICAgICAkZ3V0dGVyOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1ndXR0ZXIsICRzaXplKTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWxheW91dC1ncmlkLWNlbGwoJHNpemUsICRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1jb2x1bW4tc3BhbiwgJGd1dHRlcik7XG5cbiAgICAgIEBmb3IgJHNwYW4gZnJvbSAxIHRocm91Z2ggbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICR1cHBlci1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIFNwYW4gY2xhc3Nlcy5cbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgICAgQGF0LXJvb3QgLm1kYy1sYXlvdXQtZ3JpZF9fY2VsbC0tc3Bhbi0jeyRzcGFufSxcbiAgICAgICAgICAubWRjLWxheW91dC1ncmlkX19jZWxsLS1zcGFuLSN7JHNwYW59LSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1zcGFuXygkc2l6ZSwgJHNwYW4sICRndXR0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1lbmFibGUgbWF4LW5lc3RpbmctZGVwdGhcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBPcmRlciBvdmVycmlkZSBjbGFzc2VzLlxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkdXBwZXItYnJlYWtwb2ludCkge1xuICAgICYtLW9yZGVyLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLW9yZGVyKCRpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGlnbm1lbnQgY2xhc3Nlcy5cbiAgJi0tYWxpZ24tdG9wIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbih0b3ApO1xuICB9XG5cbiAgJi0tYWxpZ24tbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbihtaWRkbGUpO1xuICB9XG5cbiAgJi0tYWxpZ24tYm90dG9tIHtcbiAgICBAaW5jbHVkZSBtZGMtbGF5b3V0LWdyaWQtY2VsbC1hbGlnbihib3R0b20pO1xuICB9XG59XG5cbi5tZGMtbGF5b3V0LWdyaWQtLWZpeGVkLWNvbHVtbi13aWR0aCB7XG4gIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucykge1xuICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1tZWRpYS1xdWVyeV8oJHNpemUpIHtcbiAgICAgICRtYXJnaW46IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbiwgJHNpemUpO1xuICAgICAgJGd1dHRlcjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyLCAkc2l6ZSk7XG4gICAgICAkY29sdW1uLXdpZHRoOiBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoLCAkc2l6ZSk7XG5cbiAgICAgIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1maXhlZC1jb2x1bW4td2lkdGgoJHNpemUsICRtYXJnaW4sICRndXR0ZXIsICRjb2x1bW4td2lkdGgpO1xuICAgIH1cbiAgfVxufVxuXG4ubWRjLWxheW91dC1ncmlkLS1hbGlnbi1sZWZ0IHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm1kYy1sYXlvdXQtZ3JpZC0tYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHJldHVybnMgdGhlIGxvd2VyIGdyaWQgYm91bmRhcnkgb3IgbnVsbCBpZiB0aGUgc21hbGxlc3QgZ3JpZCBpcyBzZWxlY3RlZFxuQGZ1bmN0aW9uIG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50LW1pbigkc2l6ZSkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cbiAgJG1pbjogbWFwLWdldCgkbWRjLWxheW91dC1ncmlkLWJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgQHJldHVybiBpZigkbWluID4gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIHJldHVybnMgdGhlIHVwcGVyIGdyaWQgYm91bmRhcnkgb3IgbnVsbCBpZiB0aGUgbGFyZ2VzdCBncmlkIGlzIHNlbGVjdGVkXG5AZnVuY3Rpb24gbWRjLWxheW91dC1ncmlkLWJyZWFrcG9pbnQtbWF4KCRzaXplKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuICAkbmFtZXM6IG1hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyk7XG4gICRuOiBpbmRleCgkbmFtZXMsICRzaXplKTtcbiAgJHByZXY6IGlmKCRuID4gMSwgbnRoKCRuYW1lcywgJG4gLSAxKSwgbnVsbCk7XG5cbiAgQHJldHVybiBpZigkcHJldiwgKG1kYy1sYXlvdXQtZ3JpZC1icmVha3BvaW50LW1pbigkcHJldikgLSAxcHgpLCBudWxsKTtcbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnMsIG1lYW50IGZvciBpbnRlcm5hbCB1c2UuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLW1lZGlhLXF1ZXJ5Xygkc2l6ZSkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cblxuICAkbWluOiBtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludC1taW4oJHNpemUpO1xuICAkbWF4OiBtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludC1tYXgoJHNpemUpO1xuXG4gIEBpZiAkbWluID09IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgLy8gUGhvbmVcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAvLyBUYWJsZXRcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluICE9IG51bGwgYW5kICRtYXggPT0gbnVsbCB7XG4gICAgLy8gRGVza3RvcFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrIC0gbm8gYnJlYWtwb2ludHMgZGVmaW5lZFxuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtY2VsbC1zcGFuXygkc2l6ZSwgJHNwYW4sICRndXR0ZXIpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG5cbiAgJHBlcmNlbnQ6IHBlcmNlbnRhZ2UoJHNwYW4gLyBtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpKTtcblxuICBAaWYgJHBlcmNlbnQgPiAxMDAlIHtcbiAgICAkcGVyY2VudDogMTAwJTtcbiAgfVxuXG4gIHdpZHRoOiBjYWxjKCN7JHBlcmNlbnR9IC0gI3skZ3V0dGVyfSk7XG4gIHdpZHRoOiBjYWxjKCN7JHBlcmNlbnR9IC0gdmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkpO1xuXG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiBtaW4oJHNwYW4sIG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkpO1xuICB9XG59XG5cbi8vIFB1YmxpYyBtaXhpbnMsIG1lYW50IGZvciBkZXZlbG9wZXIgdXNhZ2UuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkKCRzaXplLCAkbWFyZ2luLCAkbWF4LXdpZHRoOiBudWxsKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAkbWFyZ2luO1xuICBwYWRkaW5nOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtbWFyZ2luLSN7JHNpemV9LCAjeyRtYXJnaW59KTtcblxuICBAaWYgJG1heC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGF5b3V0LWdyaWQtaW5uZXIoJHNpemUsICRtYXJnaW4sICRndXR0ZXIpIHtcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMsICRzaXplKSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCBzdHlsZSBzcGVjaWZpZWQhIENob29zZSBvbmUgb2YgI3ttYXAta2V5cygkbWRjLWxheW91dC1ncmlkLWNvbHVtbnMpfVwiO1xuICB9XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbjogLSRndXR0ZXIgLyAyO1xuICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkgLyAyICogLTEpO1xuXG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1tZGMtbGF5b3V0LWdyaWQtZ3V0dGVyLSN7JHNpemV9LCAkZ3V0dGVyKTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChtYXAtZ2V0KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1sYXlvdXQtZ3JpZC1jZWxsKCRzaXplLCAkZGVmYXVsdC1zcGFuLCAkZ3V0dGVyKSB7XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSkge1xuICAgIEBlcnJvciBcIkludmFsaWQgc3R5bGUgc3BlY2lmaWVkISBDaG9vc2Ugb25lIG9mICN7bWFwLWtleXMoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zKX1cIjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLXNwYW5fKCRzaXplLCAkZGVmYXVsdC1zcGFuLCAkZ3V0dGVyKTtcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46ICRndXR0ZXIgLyAyO1xuICBtYXJnaW46IGNhbGModmFyKC0tbWRjLWxheW91dC1ncmlkLWd1dHRlci0jeyRzaXplfSwgI3skZ3V0dGVyfSkgLyAyKTtcblxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIG1kYy1sYXlvdXQtZ3JpZC1jZWxsLW9yZGVyKCRvcmRlcikge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLWNlbGwtYWxpZ24oJHBvc2l0aW9uKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gXCJ0b3BcIiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcblxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBcIm1pZGRsZVwiIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICBAaWYgJHBvc2l0aW9uID09IFwiYm90dG9tXCIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBcInN0cmV0Y2hcIiB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLWxheW91dC1ncmlkLWZpeGVkLWNvbHVtbi13aWR0aCgkc2l6ZSwgJG1hcmdpbiwgJGd1dHRlciwgJGNvbHVtbi13aWR0aCkge1xuICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucywgJHNpemUpIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHN0eWxlIHNwZWNpZmllZCEgQ2hvb3NlIG9uZSBvZiAje21hcC1rZXlzKCRtZGMtbGF5b3V0LWdyaWQtY29sdW1ucyl9XCI7XG4gIH1cblxuICAkY29sdW1uQ291bnQ6IG1hcC1nZXQoJG1kYy1sYXlvdXQtZ3JpZC1jb2x1bW5zLCAkc2l6ZSk7XG4gICRndXR0ZXItbnVtYmVyOiAkY29sdW1uQ291bnQgLSAxO1xuICAkbWFyZ2luLW51bWJlcjogMjtcblxuICB3aWR0aDogJGNvbHVtbi13aWR0aCAqICRjb2x1bW5Db3VudCArICRndXR0ZXIgKiAkZ3V0dGVyLW51bWJlciArICRtYXJnaW4gKiAkbWFyZ2luLW51bWJlcjtcbiAgd2lkdGg6XG4gICAgY2FsYyhcbiAgICAgIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1jb2x1bW4td2lkdGgtI3skc2l6ZX0sICN7JGNvbHVtbi13aWR0aH0pICogI3skY29sdW1uQ291bnR9ICtcbiAgICAgIHZhcigtLW1kYy1sYXlvdXQtZ3JpZC1ndXR0ZXItI3skc2l6ZX0sICN7JGd1dHRlcn0pICogI3skZ3V0dGVyLW51bWJlcn0gK1xuICAgICAgdmFyKC0tbWRjLWxheW91dC1ncmlkLW1hcmdpbi0jeyRzaXplfSwgI3skbWFyZ2lufSkgKiAjeyRtYXJnaW4tbnVtYmVyfVxuICAgICk7XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbiRtZGMtbGF5b3V0LWdyaWQtYnJlYWtwb2ludHM6IChcbiAgZGVza3RvcDogODQwcHgsXG4gIHRhYmxldDogNDgwcHgsXG4gIHBob25lOiAwcHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtY29sdW1uczogKFxuICBkZXNrdG9wOiAxMixcbiAgdGFibGV0OiA4LFxuICBwaG9uZTogNFxuKSAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1kZWZhdWx0LW1hcmdpbjogKFxuICBkZXNrdG9wOiAyNHB4LFxuICB0YWJsZXQ6IDE2cHgsXG4gIHBob25lOiAxNnB4XG4pICFkZWZhdWx0O1xuXG4kbWRjLWxheW91dC1ncmlkLWRlZmF1bHQtZ3V0dGVyOiAoXG4gIGRlc2t0b3A6IDI0cHgsXG4gIHRhYmxldDogMTZweCxcbiAgcGhvbmU6IDE2cHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtY29sdW1uLXdpZHRoOiAoXG4gIGRlc2t0b3A6IDcycHgsXG4gIHRhYmxldDogNzJweCxcbiAgcGhvbmU6IDcycHhcbikgIWRlZmF1bHQ7XG5cbiRtZGMtbGF5b3V0LWdyaWQtZGVmYXVsdC1jb2x1bW4tc3BhbjogNCAhZGVmYXVsdDtcblxuJG1kYy1sYXlvdXQtZ3JpZC1tYXgtd2lkdGg6IG51bGwgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9iYXNlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5cbi8vIExpbmUgUmlwcGxlIGlzIGludGVuZGVkIGZvciB1c2UgYnkgbXVsdGlwbGUgY29tcG9uZW50cywgYnV0IGl0cyBzdHlsZXMgc2hvdWxkIG9ubHkgYmUgZW1pdHRlZCBvbmNlIHdoZW4gYnVuZGxlZFxuQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLWxpbmUtcmlwcGxlXCIpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbGluZS1yaXBwbGVcbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zaXRpb246IG1kYy1saW5lLXJpcHBsZS10cmFuc2l0aW9uLXZhbHVlKHRyYW5zZm9ybSksIG1kYy1saW5lLXJpcHBsZS10cmFuc2l0aW9uLXZhbHVlKG9wYWNpdHkpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gIC5tZGMtbGluZS1yaXBwbGUtLWFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5tZGMtbGluZS1yaXBwbGUtLWRlYWN0aXZhdGluZyB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBrZXlmcmFtZXMgcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNSwgMCwgLjcwMTczMiwgLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjMwMjQzNSwgLjM4MTM1MiwgLjU1LCAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODMuNjcxNDIlKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAuNjExMDU3JSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwcmltYXJ5LWluZGV0ZXJtaW5hdGUtc2NhbGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjA4KTtcbiAgfVxuXG4gIDM2LjY1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMzQ3MzEsIC4xMjQ4MiwgLjc4NTg0NCwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjA4KTtcbiAgfVxuXG4gIDY5LjE1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4wNiwgLjExLCAuNiwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjY2MTQ3OSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCguMDgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2Vjb25kYXJ5LWluZGV0ZXJtaW5hdGUtdHJhbnNsYXRlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTUsIDAsIC41MTUwNTgsIC40MDk2ODUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDI1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMTAzMywgLjI4NDA1OCwgLjgsIC43MzM3MTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNy42NTE5MTMlKTtcbiAgfVxuXG4gIDQ4LjM1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC40LCAuNjI3MDM1LCAuNiwgLjkwMjAyNik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDg0LjM4NjE2NSUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2MC4yNzc3ODIlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlY29uZGFyeS1pbmRldGVybWluYXRlLXNjYWxlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjA1MDI4LCAuMDU3MDUxLCAuNTc2NjEsIC40NTM5NzEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC4wOCk7XG4gIH1cblxuICAxOS4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTUyMzEzLCAuMTk2NDMyLCAuNjQ4Mzc0LCAxLjAwNDMxNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjQ1NzEwNCk7XG4gIH1cblxuICA0NC4xNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjU3NzU5LCAtLjAwMzE2MywgLjIxMTc2MiwgMS4zODE3OSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoLjcyNzk2KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKC4wOCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBidWZmZXJpbmcge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAyMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNSwgMCwgLjcwMTczMiwgLjQ5NTgxOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNTkuMTUlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjMwMjQzNSwgLjM4MTM1MiwgLjU1LCAuOTU2MzUyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTgzLjY3MTQyJSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMC42MTEwNTclKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlIHtcbiAgMCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTUsIDAsIC41MTUwNTgsIC40MDk2ODUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDI1JSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4zMTAzMywgLjI4NDA1OCwgLjgsIC43MzM3MTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzcuNjUxOTEzJSk7XG4gIH1cblxuICA0OC4zNSUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwgLjYyNzAzNSwgLjYsIC45MDIwMjYpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODQuMzg2MTY1JSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2MC4yNzc3ODIlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJ1ZmZlcmluZy1yZXZlcnNlIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLm1kYy1saW5lYXItcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtdGVtcG9yYXJ5KG9wYWNpdHksIDI1MG1zKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmX19iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zaXRpb246IG1kYy1hbmltYXRpb24tZXhpdC10ZW1wb3JhcnkodHJhbnNmb3JtLCAyNTBtcyk7XG4gIH1cblxuICAmX19iYXItaW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuXG4gICZfX2J1ZmZlcmluZy1kb3RzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFuaW1hdGlvbjogYnVmZmVyaW5nIDI1MG1zIGluZmluaXRlIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMHB4IDRweDtcbiAgfVxuXG4gICZfX2J1ZmZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtdGVtcG9yYXJ5KHRyYW5zZm9ybSwgMjUwbXMpO1xuICB9XG5cbiAgJl9fcHJpbWFyeS1iYXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG5cbiAgJl9fc2Vjb25kYXJ5LWJhciB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgJi0taW5kZXRlcm1pbmF0ZSB7XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhciB7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciB7XG4gICAgICBsZWZ0OiAtMTQ1LjE2NjYxMSU7XG4gICAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUgMnMgaW5maW5pdGUgbGluZWFyO1xuXG4gICAgICA+IC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgICAgICBhbmltYXRpb246IHByaW1hcnktaW5kZXRlcm1pbmF0ZS1zY2FsZSAycyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3NlY29uZGFyeS1iYXIge1xuICAgICAgbGVmdDogLTU0Ljg4ODg5MSU7XG4gICAgICBhbmltYXRpb246IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZSAycyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gICAgICA+IC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgICAgICBhbmltYXRpb246IHNlY29uZGFyeS1pbmRldGVybWluYXRlLXNjYWxlIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLS1yZXZlcnNlZCB7XG4gICAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX2JhcixcbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHJpZ2h0O1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19wcmltYXJ5LWJhciB7XG4gICAgICBhbmltYXRpb24tbmFtZTogcHJpbWFyeS1pbmRldGVybWluYXRlLXRyYW5zbGF0ZS1yZXZlcnNlO1xuICAgIH1cblxuICAgIC5tZGMtbGluZWFyLXByb2dyZXNzX19zZWNvbmRhcnktYmFyIHtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBzZWNvbmRhcnktaW5kZXRlcm1pbmF0ZS10cmFuc2xhdGUtcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyaW5nLWRvdHMge1xuICAgICAgYW5pbWF0aW9uOiBidWZmZXJpbmctcmV2ZXJzZSAyNTBtcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgfVxuICB9XG5cbiAgJi0tY2xvc2VkIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBhdC1yb290IHtcbiAgQGluY2x1ZGUgbWRjLWxpbmVhci1wcm9ncmVzcy1iYXItY29sb3IocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy1saW5lYXItcHJvZ3Jlc3MtYnVmZmVyLWNvbG9yKCRtZGMtbGluZWFyLXByb2dyZXNzLWJhc2VsaW5lLWJ1ZmZlci1jb2xvcik7XG59XG5cbi5tZGMtbGluZWFyLXByb2dyZXNzLS1pbmRldGVybWluYXRlLm1kYy1saW5lYXItcHJvZ3Jlc3MtLXJldmVyc2VkIHtcbiAgLm1kYy1saW5lYXItcHJvZ3Jlc3NfX3ByaW1hcnktYmFyIHtcbiAgICByaWdodDogLTE0NS4xNjY2MTElO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fc2Vjb25kYXJ5LWJhciB7XG4gICAgcmlnaHQ6IC01NC44ODg4OTElO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZVxuXG5AbWl4aW4gbWRjLWxpbmVhci1wcm9ncmVzcy1iYXItY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19iYXItaW5uZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1saW5lYXItcHJvZ3Jlc3MtYnVmZmVyLWNvbG9yKCRjb2xvcikge1xuICAvLyBXZSBuZWVkIHRvIGVzY2FwZSB0aGUgJyMnIGNoYXJhY3RlciBhcyBcIiUyM1wiIGZvciBTVkcgYmVjYXVzZSAnIycgaXMgYSByZXNlcnZlZCBjaGFyYWN0ZXIgaW4gVVJJcy5cbiAgJGNvbG9yLXZhbHVlLWZvci1jc3M6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcik7XG4gICRjb2xvci12YWx1ZS1mb3Itc3ZnOiBtZGMtbGluZWFyLXByb2dyZXNzLXN0ci1yZXBsYWNlXyh1bnF1b3RlKFwiI3skY29sb3ItdmFsdWUtZm9yLWNzc31cIiksIFwiI1wiLCBcIiUyM1wiKTtcblxuICAubWRjLWxpbmVhci1wcm9ncmVzc19fYnVmZmVyaW5nLWRvdHMge1xuICAgIC8vIFNWRyBpcyBvcHRpbWl6ZWQgZm9yIGRhdGEgVVJJIChodHRwczovL2NvZGVwZW4uaW8vdGlndC9wb3N0L29wdGltaXppbmctc3Zncy1pbi1kYXRhLXVyaXMpXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmN0aW9uLXVybC1xdW90ZXNcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIGVuYWJsZS1iYWNrZ3JvdW5kPSduZXcgMCAwIDUgMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdmlld0JveD0nMCAwIDUgMicgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZSBzbGljZSclM0UlM0NjaXJjbGUgY3g9JzEnIGN5PScxJyByPScxJyBmaWxsPScjeyRjb2xvci12YWx1ZS1mb3Itc3ZnfScvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgfVxuXG4gIC5tZGMtbGluZWFyLXByb2dyZXNzX19idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci12YWx1ZS1mb3ItY3NzO1xuICB9XG59XG5cbi8vIEJhc2VkIG9uIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9zdHItcmVwbGFjZS1mdW5jdGlvbi9cbkBmdW5jdGlvbiBtZGMtbGluZWFyLXByb2dyZXNzLXN0ci1yZXBsYWNlXygkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZSkge1xuICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VhcmNoKTtcblxuICBAaWYgJGluZGV4IHtcbiAgICAkaGVhZDogc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICR0YWlsOiBtZGMtbGluZWFyLXByb2dyZXNzLXN0ci1yZXBsYWNlXyhzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcblxuICAgIEByZXR1cm4gJGhlYWQgKyAkcmVwbGFjZSArICR0YWlsO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuIiwiLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4kbWRjLWxpbmVhci1wcm9ncmVzcy1iYXNlbGluZS1idWZmZXItY29sb3I6ICNlNmU2ZTYgIWRlZmF1bHQ7XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLWxpc3QtY29yZS1zdHlsZXMoJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtbGlzdC13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtbGlzdC1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gbGlzdCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1saXN0LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1saXN0LXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG4gICRmZWF0LXR5cG9ncmFwaHk6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCB0eXBvZ3JhcGh5KTtcblxuICAkaXRlbS1wcmltYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0OiAzMnB4O1xuICAkaXRlbS1zZWNvbmRhcnktdGV4dC1iYXNlbGluZS1oZWlnaHQ6IDIwcHg7XG4gICRkZW5zZS1pdGVtLXByaW1hcnktdGV4dC1iYXNlbGluZS1oZWlnaHQ6IDI0cHg7XG4gICRkaXZpZGVyLWNvbG9yOiBpZihcbiAgICBtZGMtdGhlbWUtdG9uZSgkbWRjLXRoZW1lLWJhY2tncm91bmQpID09IFwiZGFya1wiLFxuICAgICRtZGMtbGlzdC1kaXZpZGVyLWNvbG9yLW9uLWRhcmstYmcsXG4gICAgJG1kYy1saXN0LWRpdmlkZXItY29sb3Itb24tbGlnaHQtYmdcbiAgKTtcblxuICAubWRjLWxpc3Qge1xuICAgIEBpbmNsdWRlIG1kYy1saXN0LWJhc2VfKCRxdWVyeSk7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXNlY29uZGFyeS10ZXh0LWluay1jb2xvcih0ZXh0LXNlY29uZGFyeS1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWdyYXBoaWMtZmlsbC1jb2xvcih0cmFuc3BhcmVudCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1ncmFwaGljLWluay1jb2xvcih0ZXh0LWljb24tb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1tZXRhLWluay1jb2xvcih0ZXh0LWhpbnQtb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JvdXAtc3ViaGVhZGVyLWluay1jb2xvcih0ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZCwgJHF1ZXJ5KTtcblxuICAubWRjLWxpc3QtLWRlbnNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICBmb250LXNpemU6IC44MTJyZW07XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLWJhc2VfO1xuICAgIH1cbiAgfVxuXG4gIC8vIFwiU2VsZWN0ZWRcIiBpcyBlcGhlbWVyYWwgYW5kIGxpa2VseSB0byBjaGFuZ2Ugc29vbi4gRS5nLiwgc2VsZWN0aW5nIG9uZSBvciBtb3JlIHBob3RvcyB0byBzaGFyZSBpbiBHb29nbGUgUGhvdG9zLlxuICAvLyBcIkFjdGl2YXRlZFwiIGlzIG1vcmUgcGVybWFuZW50LiBFLmcuLCB0aGUgY3VycmVudGx5IGhpZ2hsaWdodGVkIG5hdmlnYXRpb24gZGVzdGluYXRpb24gaW4gYSBkcmF3ZXIuXG4gIC5tZGMtbGlzdC1pdGVtLS1zZWxlY3RlZCxcbiAgLm1kYy1saXN0LWl0ZW0tLWFjdGl2YXRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1wcmltYXJ5LXRleHQtaW5rLWNvbG9yKHByaW1hcnksICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1ncmFwaGljLWluay1jb2xvcihwcmltYXJ5LCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IodGV4dC1kaXNhYmxlZC1vbi1iYWNrZ3JvdW5kLCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW1fX2dyYXBoaWMge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtbGlzdC1ncmFwaGljLXNpemVfKDI0cHgpO1xuXG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBFeHRyYSBzcGVjaWZpY2l0eSBpcyB0byBvdmVycmlkZSAubWF0ZXJpYWwtaWNvbnMgZGlzcGxheSBzdHlsZSBpZiB1c2VkIGluXG4gIC8vIGNvbmp1bmN0aW9uIHdpdGggbWRjLWxpc3QtaXRlbV9fZ3JhcGhpY1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgLm1kYy1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuICB9XG4gIC8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG5cbiAgLm1kYy1saXN0LWl0ZW1fX21ldGEge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLWNsYXNzLXBhdHRlcm5cbiAgICAmOm5vdCgubWF0ZXJpYWwtaWNvbnMpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGNhcHRpb24sICRxdWVyeSk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItY2xhc3MtcGF0dGVyblxuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgYXV0bywgMCwgXCIubWRjLWxpc3QtaXRlbVwiKTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5KTtcbiAgfVxuXG4gIC8vIERpc2FibGUgaW50ZXJhY3Rpb24gb24gbGFiZWwgZWxlbWVudHMgdGhhdCBtYXkgYXV0b21hdGljYWxseVxuICAvLyB0b2dnbGUgY29ycmVzcG9uZGluZyBjaGVja2JveCAvIHJhZGlvIGlucHV0LlxuICAubWRjLWxpc3QtaXRlbV9fdGV4dFtmb3JdIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktb3ZlcmZsb3ctZWxsaXBzaXMoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoJGl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS1ib3R0b20oJGl0ZW0tc2Vjb25kYXJ5LXRleHQtYmFzZWxpbmUtaGVpZ2h0LCAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgIC5tZGMtbGlzdC0tZGVuc2UgJiB7XG4gICAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoJGRlbnNlLWl0ZW0tcHJpbWFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLWJvdHRvbSgkaXRlbS1zZWNvbmRhcnktdGV4dC1iYXNlbGluZS1oZWlnaHQsICRxdWVyeSk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIH1cblxuICAubWRjLWxpc3QtaXRlbV9fc2Vjb25kYXJ5LXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGJvZHkyLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LW92ZXJmbG93LWVsbGlwc2lzKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgICAubWRjLWxpc3QtLWRlbnNlICYge1xuICAgICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKCRpdGVtLXNlY29uZGFyeS10ZXh0LWJhc2VsaW5lLWhlaWdodCwgJHF1ZXJ5KTtcblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICB9XG5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LS1kZW5zZSAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1saXN0LWdyYXBoaWMtc2l6ZV8oMjBweCk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LS1hdmF0YXItbGlzdCAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGhlaWdodDogNTZweDtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtLWF2YXRhci1saXN0IC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JhcGhpYy1zaXplXyg0MHB4KTtcblxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW1fX3RleHQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC0tdHdvLWxpbmUgLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBoZWlnaHQ6IDcycHg7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LS10d28tbGluZS5tZGMtbGlzdC0tZGVuc2UgLm1kYy1saXN0LWl0ZW0sXG4gIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC0tYXZhdGFyLWxpc3QubWRjLWxpc3QtLWRlbnNlIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLWxpc3QtZ3JhcGhpYy1zaXplXygzNnB4KTtcbiAgICB9XG4gIH1cblxuICAvLyBPbmx5IGNoYW5nZSBtb3VzZSBjdXJzb3IgZm9yIGludGVyYWN0aXZlIGxpc3QgaXRlbXMgd2hpY2ggYXJlIG5vdCBkaXNhYmxlZC5cbiAgOm5vdCgubWRjLWxpc3QtLW5vbi1pbnRlcmFjdGl2ZSkgPiA6bm90KC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCkubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVycmlkZSBhbmNob3IgdGFnIHN0eWxlcyBmb3IgdGhlIHVzZS1jYXNlIG9mIGEgbGlzdCBiZWluZyB1c2VkIGZvciBuYXZpZ2F0aW9uXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlLHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuICBhLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1tYXgtdHlwZSxzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vdGU6IGlkZWFsbHkgd2UnZCBiZSBhYmxlIHRvIGhvaXN0IHRoaXMgdG8gdGhlIHRvcC1sZXZlbCBgJGZlYXQtY29sb3JgLCBidXQgZG9pbmcgc29cbiAgLy8gd2lsbCBjYXVzZSB0aGUgYGJvcmRlcmAgZGVjbGFyYXRpb24gb24gYC5tZGMtbGlzdC1kaXZpZGVyYCBhYm92ZSB0byBvdmVycmlkZSBpdC5cbiAgQGluY2x1ZGUgbWRjLWxpc3QtZGl2aWRlci1jb2xvcigkZGl2aWRlci1jb2xvciwgJHF1ZXJ5KTtcblxuICAubWRjLWxpc3QtZGl2aWRlci0tcGFkZGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgLy8gTGVhdmUgZ2FwcyBvbiBlYWNoIHNpZGUgdG8gbWF0Y2ggdGhlIHBhZGRpbmcgb24gbGlzdCBpdGVtc1xuICAgICAgbWFyZ2luOiAwICRtZGMtbGlzdC1zaWRlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWRpdmlkZXItLWluc2V0IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgJG1kYy1saXN0LXRleHQtb2Zmc2V0LCBcIi5tZGMtbGlzdC1ncm91cFwiKTtcblxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JG1kYy1saXN0LXRleHQtb2Zmc2V0fSk7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1saXN0LWRpdmlkZXItLWluc2V0Lm1kYy1saXN0LWRpdmlkZXItLXBhZGRlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRtZGMtbGlzdC10ZXh0LW9mZnNldH0gLSAjeyRtZGMtbGlzdC1zaWRlLXBhZGRpbmd9KTtcbiAgICB9XG4gIH1cblxuICAubWRjLWxpc3QtZ3JvdXAge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAvLyBDYW5jZWwgdG9wL2JvdHRvbSBwYWRkaW5nIG9uIGluZGl2aWR1YWwgbGlzdHMgd2l0aGluIGdyb3VwXG4gICAgICAubWRjLWxpc3Qge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICAkbWRjLWxpc3Qtc3ViaGVhZGVyLXZpcnR1YWwtaGVpZ2h0OiAzcmVtO1xuICAgICRtZGMtbGlzdC1zdWJoZWFkZXItbGVhZGluZzogbWFwLWdldChtYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1zdHlsZXMsIGJvZHkxKSwgbGluZS1oZWlnaHQpO1xuICAgICRtZGMtbGlzdC1zdWJoZWFkZXItbWFyZ2luOiAoJG1kYy1saXN0LXN1YmhlYWRlci12aXJ0dWFsLWhlaWdodCAtICRtZGMtbGlzdC1zdWJoZWFkZXItbGVhZGluZykgLyAyO1xuXG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnkpO1xuXG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIG1hcmdpbjogJG1kYy1saXN0LXN1YmhlYWRlci1tYXJnaW4gJG1kYy1saXN0LXNpZGUtcGFkZGluZztcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gbGlzdCBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1saXN0LWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1saXN0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XG5cbiAgLy8gTGlzdCBpdGVtcyBzaG91bGQgc3VwcG9ydCBzdGF0ZXMgYnkgZGVmYXVsdCwgYnV0IGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBvcHQgb3V0LlxuICAvLyBEaXJlY3QgY2hpbGQgY29tYmluYXRvciBpcyBuZWNlc3NhcnkgZm9yIG5vbi1pbnRlcmFjdGl2ZSBtb2RpZmllciBvbiBwYXJlbnQgdG8gbm90XG4gIC8vIG1hdGNoIHRoaXMgc2VsZWN0b3IuXG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gOm5vdCgubWRjLWxpc3QtaXRlbS0tZGlzYWJsZWQpLm1kYy1saXN0LWl0ZW0ge1xuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0taW50ZXJhY3RpdmUtcmlwcGxlXygkcXVlcnkpO1xuICB9XG5cbiAgLy8gU2V0IHN0eWxlcyBvbmx5IGZvciBmb2N1cyBzdGF0ZSBvbiBkaXNhYmxlZCBsaXN0IGl0ZW0uXG4gIDpub3QoLm1kYy1saXN0LS1ub24taW50ZXJhY3RpdmUpID4gLm1kYy1saXN0LWl0ZW0tLWRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcihtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMtZm9jdXMtb3BhY2l0eShtZGMtc3RhdGVzLW9wYWNpdHkocHJpbWFyeSwgZm9jdXMpLCAkcXVlcnk6ICRxdWVyeSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1saXN0LWl0ZW0tcHJpbWFyeS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGlzdC1pdGVtLXNlY29uZGFyeS10ZXh0LWluay1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgLm1kYy1saXN0LWl0ZW1fX3NlY29uZGFyeS10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtaXRlbV9fZ3JhcGhpYyB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1saXN0LWl0ZW0tbWV0YS1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1pdGVtX19tZXRhIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1saXN0LWl0ZW0tc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAubWRjLWxpc3QtaXRlbSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtbGlzdC1kaXZpZGVyLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1saXN0LWdyb3VwLXN1YmhlYWRlci1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC5tZGMtbGlzdC1ncm91cF9fc3ViaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtbGlzdC1iYXNlXygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC10eXBvZ3JhcGh5OiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgdHlwb2dyYXBoeSk7XG5cbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxLCAkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtdHlwb2dyYXBoeSkge1xuICAgIC8vIEFjY29yZGluZyB0byB0aGUgbW9ja3MgYW5kIHN0aWNrZXJzaGVldCwgdGhlIGxpbmUtaGVpZ2h0IGlzXG4gICAgLy8gYWRqdXN0ZWQgdG8gMjRweCBmb3IgdGV4dCBjb250ZW50LCBzYW1lIGFzIGZvciBib2R5MS5cbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgbGluZS1oZWlnaHQ6IG1hcC1nZXQobWFwLWdldCgkbWRjLXR5cG9ncmFwaHktc3R5bGVzLCBib2R5MSksIGxpbmUtaGVpZ2h0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IodGV4dC1wcmltYXJ5LW9uLWJhY2tncm91bmQsICRxdWVyeSk7XG59XG5cbkBtaXhpbiBtZGMtbGlzdC1pdGVtLWJhc2VfIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAkbWRjLWxpc3Qtc2lkZS1wYWRkaW5nO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuLy8gUmlwcGxlIHN0eWxlcyBmb3IgYW4gaW50ZXJhY3RpdmUgbGlzdCBpdGVtIChvbmUgdGhhdCBpcyBlbmFibGVkIGFuZCBpbnNpZGUgYW4gaW50ZXJhY3RpdmUgbGlzdCkuXG5AbWl4aW4gbWRjLWxpc3QtaXRlbS1pbnRlcmFjdGl2ZS1yaXBwbGVfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlKCRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQoJHF1ZXJ5OiAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBmYWxzZSwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1hY3RpdmF0ZWQocHJpbWFyeSwgZmFsc2UsICRxdWVyeSk7XG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtc2VsZWN0ZWQocHJpbWFyeSwgZmFsc2UsICRxdWVyeSk7XG59XG5cbi8vIFNldHMgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGdyYXBoaWMgZWxlbWVudCwgYXMgd2VsbCBhcyBjYWxjdWxhdGVzIHRoZSBtYXJnaW5zIGZvclxuLy8gdGhlIGdyYXBoaWMgZWxlbWVudCBzdWNoIHRoYXQgdGhlIHRleHQgaXMgYWx3YXlzIG9mZnNldCBieSA3MnB4LCB3aGljaCBpcyBkZWZpbmVkIHdpdGhpblxuLy8gdGhlIHNwZWMuXG5AbWl4aW4gbWRjLWxpc3QtZ3JhcGhpYy1zaXplXygkc2l6ZSkge1xuICAkdGV4dC1vZmZzZXQ6IDcycHg7XG4gICRzaWRlLXBhZGRpbmc6ICRtZGMtbGlzdC1zaWRlLXBhZGRpbmc7XG4gICRtYXJnaW4tdmFsdWU6ICR0ZXh0LW9mZnNldCAtICRzaWRlLXBhZGRpbmcgLSAkc2l6ZTtcblxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCByaWdodCwgJG1hcmdpbi12YWx1ZSwgXCIubWRjLWxpc3QtaXRlbVwiKTtcblxuICB3aWR0aDogJHNpemU7XG4gIGhlaWdodDogJHNpemU7XG59XG4iLCIvLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbiRtZGMtbGlzdC1kaXZpZGVyLWNvbG9yLW9uLWxpZ2h0LWJnOiByZ2JhKDAsIDAsIDAsIC4xMikgIWRlZmF1bHQ7XG4kbWRjLWxpc3QtZGl2aWRlci1jb2xvci1vbi1kYXJrLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKSAhZGVmYXVsdDtcbiRtZGMtbGlzdC1zaWRlLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLWxpc3QtdGV4dC1vZmZzZXQ6IDcycHggIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvbGlzdC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvbGlzdC92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtbWVudS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtY29tbW9uKCRxdWVyeSk7XG5cbiAgLy8gQ3VzdG9taXplIHRoZSBtZW51LXN1cmZhY2UgYW5kIGNvbnRhaW5lZCBsaXN0IHRvIG1hdGNoIHRoZSBtZGMtbWVudSBzdHlsZXMuXG4gIC5tZGMtbWVudSB7XG4gICAgQGluY2x1ZGUgbWRjLWxpc3QtaXRlbS1tZXRhLWluay1jb2xvcigkbWRjLW1lbnUtaW5rLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1saXN0LWl0ZW0tZ3JhcGhpYy1pbmstY29sb3IoJG1kYy1tZW51LWluay1jb2xvciwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBtaW4td2lkdGg6ICRtZGMtbWVudS1taW4td2lkdGg7XG4gICAgfVxuXG4gICAgLy8gSW5jbHVkZSBtZGMtbGlzdCBzZWxlY3RvciB0byBlbnN1cmUgbGlzdC1pbnNpZGUtbWVudSBvdmVycmlkZXMgZGVmYXVsdCBsaXN0IHN0eWxlc1xuICAgIC5tZGMtbGlzdCB7XG4gICAgICBAaW5jbHVkZSBtZGMtbGlzdC1pdGVtLXByaW1hcnktdGV4dC1pbmstY29sb3IoJG1kYy1tZW51LWluay1jb2xvciwgJHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAubWRjLWxpc3QtZGl2aWRlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtbGlzdC1pdGVtIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtbGlzdC1pdGVtLS1kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9zdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgICBhLm1kYy1saXN0LWl0ZW0gLm1kYy1saXN0LWl0ZW1fX3RleHQsXG4gICAgYS5tZGMtbGlzdC1pdGVtIC5tZGMtbGlzdC1pdGVtX19ncmFwaGljIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuICB9XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbWVudVxuICAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuXG4gICAgLm1kYy1saXN0LWl0ZW0ge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgNTZweCwgJG1kYy1saXN0LXNpZGUtcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXh0cmEgc3BlY2lmaWNpdHkgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYGRpc3BsYXlgIHByb3BlcnR5IG9uIGBtZGMtbGlzdC1pdGVtX19ncmFwaGljYC5cbiAgICAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cC1pY29uIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDE2cHgpO1xuXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4gIC5tZGMtbWVudS1pdGVtLS1zZWxlY3RlZCAubWRjLW1lbnVfX3NlbGVjdGlvbi1ncm91cC1pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLW1lbnUtd2lkdGgoJHdpZHRoLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIEBpZiB1bml0bGVzcygkd2lkdGgpIHtcbiAgICAgIHdpZHRoOiAkd2lkdGggKiAkbWRjLW1lbnUtd2lkdGgtYmFzZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtbWVudS1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS10ZXh0LWVtcGhhc2lzKGhpZ2gpKSAhZGVmYXVsdDtcblxuJG1kYy1tZW51LXdpZHRoLWJhc2U6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLW1lbnUtbWluLXdpZHRoOiAyICogJG1kYy1tZW51LXdpZHRoLWJhc2UgIWRlZmF1bHQ7XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLW1lbnUtc3VyZmFjZS1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgbWVudS1zdXJmYWNlXG4gIC5tZGMtbWVudS1zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtbWVudS1zdXJmYWNlLWJhc2VfKCRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbigkei12YWx1ZTogOCwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1tZW51LXN1cmZhY2UtZmlsbC1jb2xvcihzdXJmYWNlLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1tZW51LXN1cmZhY2UtaW5rLWNvbG9yKG9uLXN1cmZhY2UsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLW1lbnUtc3VyZmFjZS1zaGFwZS1yYWRpdXMobWVkaXVtLCBmYWxzZSwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eSh0cmFuc2Zvcm0tb3JpZ2luLCB0b3AgbGVmdCwgdG9wIHJpZ2h0KTtcbiAgICB9XG4gIH1cblxuICAubWRjLW1lbnUtc3VyZmFjZS0tYW5jaG9yIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgLm1kYy1tZW51LXN1cmZhY2UtLWZpeGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG5AbWl4aW4gbWRjLW1lbnUtc3VyZmFjZS1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLW1lbnUtc3VyZmFjZS1maWxsLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLW1lbnUtc3VyZmFjZS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUsICRxdWVyeTogJHF1ZXJ5KTtcbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtbWVudS1zdXJmYWNlLWJhc2VfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skbWRjLW1lbnUtc3VyZmFjZS1taW4tZGlzdGFuY2UtZnJvbS1lZGdlfSk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1kYy1tZW51LXN1cmZhY2UtbWluLWRpc3RhbmNlLWZyb20tZWRnZX0pO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIHotaW5kZXg6ICRtZGMtbWVudS1zdXJmYWNlLXotaW5kZXg7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBvcGFjaXR5ICRtZGMtbWVudS1zdXJmYWNlLWZhZGUtaW4tZHVyYXRpb24gbGluZWFyLFxuICAgICAgdHJhbnNmb3JtICRtZGMtbWVudS1zdXJmYWNlLXNjYWxlLWR1cmF0aW9uICRtZGMtYW5pbWF0aW9uLWRlY2VsZXJhdGlvbi1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXR5cGVcbiAgJi0tb3BlbiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gICYtLWFuaW1hdGluZy1vcGVuIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSguOCk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gICYtLWFuaW1hdGluZy1jbG9zZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZGMtbWVudS1zdXJmYWNlLWZhZGUtb3V0LWR1cmF0aW9uIGxpbmVhcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLW1lbnUtc3VyZmFjZS1mYWRlLWluLWR1cmF0aW9uOiAuMDNzICFkZWZhdWx0O1xuJG1kYy1tZW51LXN1cmZhY2UtZmFkZS1vdXQtZHVyYXRpb246IC4wNzVzICFkZWZhdWx0O1xuJG1kYy1tZW51LXN1cmZhY2Utc2NhbGUtZHVyYXRpb246IC4xMnMgIWRlZmF1bHQ7XG4kbWRjLW1lbnUtc3VyZmFjZS1taW4tZGlzdGFuY2UtZnJvbS1lZGdlOiAzMnB4ICFkZWZhdWx0O1xuJG1kYy1tZW51LXN1cmZhY2Utei1pbmRleDogOCAhZGVmYXVsdDsgLy8gT25lIGFib3ZlIG1kYy1kaWFsb2dcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYmFzZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gTm90Y2hlZCBPdXRsaW5lIGlzIGludGVuZGVkIGZvciB1c2UgYnkgbXVsdGlwbGUgY29tcG9uZW50cywgYnV0IGl0cyBzdHlsZXMgc2hvdWxkIG9ubHkgYmUgZW1pdHRlZCBvbmNlIHdoZW4gYnVuZGxlZFxuQGluY2x1ZGUgbWRjLWJhc2UtZW1pdC1vbmNlKFwibWRjLW5vdGNoZWQtb3V0bGluZVwiKSB7XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAvKiBAbm9mbGlwICovXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgJl9fbGVhZGluZyxcbiAgICAmX19ub3RjaCxcbiAgICAmX190cmFpbGluZyB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyICRtZGMtbm90Y2hlZC1vdXRsaW5lLXRyYW5zaXRpb24tZHVyYXRpb24gJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fbGVhZGluZyB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShib3JkZXIsIDFweCBzb2xpZCwgbm9uZSk7XG5cbiAgICAgIHdpZHRoOiAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoO1xuICAgIH1cblxuICAgICZfX3RyYWlsaW5nIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KGJvcmRlciwgbm9uZSwgMXB4IHNvbGlkKTtcblxuICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgICZfX25vdGNoIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICN7JG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aH0gKiAyKTtcbiAgICB9XG5cbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMTdweDtcbiAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgIH1cblxuICAgICYtLXVwZ3JhZGVkIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC8gLjc1KTtcbiAgICB9XG4gIH1cblxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm90Y2hlZCB7XG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCByaWdodCwgOHB4KTtcblxuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tbm8tbGFiZWwge1xuICAgIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19ub3RjaCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtbm90Y2hlZC1vdXRsaW5lLXRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zICFkZWZhdWx0O1xuLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCBjb25zdGFudHMubnVtYmVycy5NSU5fTEVBRElOR19TVFJPS0VfRURHRV9QT1NJVElPTlxuJG1kYy1ub3RjaGVkLW91dGxpbmUtbWluLWxlYWRpbmctc3Ryb2tlLWVkZ2UtcG9zaXRpb246IDEycHggIWRlZmF1bHQ7XG4vLyBUaGUgZ2FwIGJldHdlZW4gdGhlIHN0cm9rZSBlbmQgYW5kIGZsb2F0aW5nIGxhYmVsXG4vLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIGNvbnN0YW50cy5udW1iZXJzLk5PVENIX0dVVFRFUl9TSVpFXG4kbWRjLW5vdGNoZWQtb3V0bGluZS1ub3RjaC1ndXR0ZXItc2l6ZTogNHB4ICFkZWZhdWx0O1xuJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aDogMTJweCAhZGVmYXVsdDtcbiRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmc6IDRweCAhZGVmYXVsdDtcbi8vIFRoaXMgdmFyaWFibGUga2VlcHMgdGhlIGJlZm9yZS9hZnRlciBKUyBsYWJlbCBjZW50ZXJlZCBpbiB0aGUgbm90Y2ggd2hlbiB0aGUgZm9udC1zaXplIGlzIGNoYW5nZWQuXG4kbWRjLW5vdGNoZWQtb3V0bGluZS1sYWJlbC1hZGp1c3Q6IDE0JSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2ZlYXR1cmUtdGFyZ2V0aW5nL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIG1kYy1yYWRpby1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1yYWRpby13aXRob3V0LXJpcHBsZSgkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtcmFkaW8tcmlwcGxlKCRxdWVyeSk7XG59XG5cbi8vIFRoaXMgQVBJIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZnJhbWV3b3JrcyB0aGF0IG1heSB3YW50IHRvIHNlcGFyYXRlIHRoZSByaXBwbGUtcmVsYXRlZCBzdHlsZXMgZnJvbSB0aGUgb3RoZXJcbi8vIHJhZGlvIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXJhZGlvLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1yYWRpby13aXRob3V0LXJpcHBsZSgkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIC8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHJhZGlvXG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgLm1kYy1yYWRpbyB7XG4gICAgQGluY2x1ZGUgbWRjLXJhZGlvLXVuY2hlY2tlZC1zdHJva2UtY29sb3IoJG1kYy1yYWRpby11bmNoZWNrZWQtY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJhZGlvLWNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRtZGMtcmFkaW8tYmFzZWxpbmUtdGhlbWUtY29sb3IsICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXJhZGlvLWluay1jb2xvcigkbWRjLXJhZGlvLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yYWRpby1mb2N1cy1pbmRpY2F0b3ItY29sb3IoJG1kYy1yYWRpby1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcblxuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogJG1kYy1yYWRpby10b3VjaC1hcmVhO1xuICAgICAgaGVpZ2h0OiAkbWRjLXJhZGlvLXRvdWNoLWFyZWE7XG4gICAgICBwYWRkaW5nOiAoJG1kYy1yYWRpby10b3VjaC1hcmVhIC0gJG1kYy1yYWRpby11aS1zaXplKSAvIDI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBib3JkZXItY29sb3IsIGNvbG9yO1xuICAgIH1cblxuICAgIC8vIENvbnRhaW5lciBmb3IgcmFkaW8gY2lyY2xlcyBhbmQgcmlwcGxlLlxuICAgICZfX2JhY2tncm91bmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6ICgkbWRjLXJhZGlvLXRvdWNoLWFyZWEgLSAkbWRjLXJhZGlvLXVpLXNpemUpIC8gMjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6ICRtZGMtcmFkaW8tdWktcGN0O1xuICAgICAgICBoZWlnaHQ6ICRtZGMtcmFkaW8tdWktcGN0O1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBtZGMtcmFkaW8tZXhpdChvcGFjaXR5KSwgbWRjLXJhZGlvLWV4aXQodHJhbnNmb3JtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICZfX291dGVyLWNpcmNsZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbWRjLXJhZGlvLWV4aXQoYm9yZGVyLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbm5lci1jaXJjbGUge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMTBweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG1kYy1yYWRpby1leGl0KHRyYW5zZm9ybSksXG4gICAgICAgICAgbWRjLXJhZGlvLWV4aXQoYm9yZGVyLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYXRpdmUtY29udHJvbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6Y2hlY2tlZCxcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZGlzYWJsZWQge1xuICAgICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihvcGFjaXR5KSxcbiAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKTtcbiAgICAgIH1cblxuICAgICAgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1hbmltYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBtZGMtcmFkaW8tZW50ZXIoYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKSxcbiAgICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihib3JkZXItY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kYy1yYWRpby0tZGlzYWJsZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpjaGVja2VkIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIG1kYy1yYWRpby1lbnRlcih0cmFuc2Zvcm0pLFxuICAgICAgICAgICAgbWRjLXJhZGlvLWVudGVyKGJvcmRlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRjLXJhZGlvX19uYXRpdmUtY29udHJvbDpkaXNhYmxlZCxcbiAgW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuXG4gICAgICAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWRjLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWRjLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWRjLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmZvY3VzIHtcbiAgICArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQ6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgICAgICBvcGFjaXR5OiBtYXAtZ2V0KCRtZGMtcmlwcGxlLWRhcmstaW5rLW9wYWNpdGllcywgZm9jdXMpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG1kYy1yYWRpby1lbnRlcihvcGFjaXR5KSxcbiAgICAgICAgICBtZGMtcmFkaW8tZW50ZXIodHJhbnNmb3JtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyByYWRpbyBzdHlsZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgbW9zdCB1c2VycyB1c2UgYG1kYy1yYWRpby1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtcmFkaW8tcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBtZGMtcmlwcGxlLWNvbW1vbigkcXVlcnkpO1xuXG4gIC5tZGMtcmFkaW8ge1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZSgkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLXVuYm91bmRlZCgkcXVlcnk6ICRxdWVyeSk7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcygkbWRjLXJhZGlvLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgICAmLm1kYy1yaXBwbGUtdXBncmFkZWQtLWJhY2tncm91bmQtZm9jdXNlZCB7XG4gICAgICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1yYWRpby11bmNoZWNrZWQtc3Ryb2tlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItbWF4LXNwZWNpZmljaXR5XG4gIC5tZGMtcmFkaW9fX25hdGl2ZS1jb250cm9sOmVuYWJsZWQ6bm90KDpjaGVja2VkKSArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmFkaW8tY2hlY2tlZC1zdHJva2UtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZDpjaGVja2VkICsgLm1kYy1yYWRpb19fYmFja2dyb3VuZCAubWRjLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1yYWRpby1pbmstY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gICRmZWF0LWNvbG9yOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1tYXgtc3BlY2lmaWNpdHlcbiAgLm1kYy1yYWRpb19fbmF0aXZlLWNvbnRyb2w6ZW5hYmxlZCArIC5tZGMtcmFkaW9fX2JhY2tncm91bmQgLm1kYy1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItY29sb3IsICRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmFkaW8tZm9jdXMtaW5kaWNhdG9yLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAubWRjLXJhZGlvX19iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvciwgJGVkZ2VPcHRPdXQ6IHRydWUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtcmFkaW8tdG91Y2gtYXJlYTogNDBweCAhZGVmYXVsdDtcbiRtZGMtcmFkaW8tdWktc2l6ZTogMjBweCAhZGVmYXVsdDtcbiRtZGMtcmFkaW8tdWktcGN0OiBwZXJjZW50YWdlKCRtZGMtcmFkaW8tdWktc2l6ZSAvICRtZGMtcmFkaW8tdG91Y2gtYXJlYSkgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLXRyYW5zaXRpb24tZHVyYXRpb246IDEyMG1zICFkZWZhdWx0O1xuJG1kYy1yYWRpby1yaXBwbGUtb3BhY2l0eTogLjE0ICFkZWZhdWx0O1xuJG1kYy1yYWRpby1iYXNlbGluZS10aGVtZS1jb2xvcjogc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG1kYy1yYWRpby11bmNoZWNrZWQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG4kbWRjLXJhZGlvLWNpcmNsZS1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjI2KSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5Aa2V5ZnJhbWVzIG1kYy1zZWxlY3QtZmxvYXQtbmF0aXZlLWNvbnRyb2wge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCIvLyAgQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6L1xuLy9cbi8vICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLi9cbi8vXG4vLyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIFB1YmxpYyBtaXhpbnNcblxuQG1peGluIG1kYy1zZWxlY3QtaWNvbi1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1pY29uLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbi8vIFByaXZhdGUgbWl4aW5zXG5cbkBtaXhpbiBtZGMtc2VsZWN0LWljb25fIHtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1pY29uLWNvbG9yKG9uLXN1cmZhY2UpO1xuXG4gIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkbWRjLXNlbGVjdC1pY29uLXNpemU7XG4gICAgaGVpZ2h0OiAkbWRjLXNlbGVjdC1pY29uLXNpemU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBvcGFjaXR5OiAkbWRjLXNlbGVjdC1pY29uLW9wYWNpdHk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1pY29uLWNvbG9yXygkY29sb3IpIHtcbiAgLm1kYy1zZWxlY3RfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oJGljb25Qb3NpdGlvbiwgJGlucHV0UGFkZGluZykge1xuICAubWRjLXNlbGVjdF9faWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJGljb25Qb3NpdGlvbik7XG4gIH1cblxuICAvLyBNb3ZlIHRoZSBpbnB1dCdzIHBvc2l0aW9uLCB0byBhbGxvdyByb29tIGZvciB0aGUgaWNvblxuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkaW5wdXRQYWRkaW5nIC8qIGxlZnQgKi8sICRtZGMtc2VsZWN0LWljb24tcmlnaHQtcGFkZGluZyAvKiByaWdodCAqLyk7XG4gIH1cbn1cbiIsIi8vICBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vICB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczovXG4vL1xuLy8gIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuL1xuLy9cbi8vICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtc2VsZWN0LWljb24tc2l6ZTogMjRweCAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWljb24tb3BhY2l0eTogLjU0ICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtaWNvbi1jb2xvcjogb24tc3VyZmFjZSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWljb24tcmlnaHQtcGFkZGluZzogMzJweCAhZGVmYXVsdDtcbiIsIi8vICBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vICB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczovXG4vL1xuLy8gIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuL1xuLy9cbi8vICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4ubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWljb25fO1xufVxuXG4ubWRjLXNlbGVjdF9faWNvbjpub3QoW3RhYmluZGV4XSksXG4ubWRjLXNlbGVjdF9faWNvblt0YWJpbmRleD1cIi0xXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8vICBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vICB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczovXG4vL1xuLy8gIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuL1xuLy9cbi8vICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHNlbGVjdC1oZWxwZXItdGV4dFxuLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShjYXB0aW9uKTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHktYmFzZWxpbmUtdG9wKDE2cHgpO1xuXG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogbWRjLXNlbGVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXBlcnNpc3RlbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBvcGFjaXR5OiAxO1xuICB3aWxsLWNoYW5nZTogaW5pdGlhbDtcbn1cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4va2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2xpbmUtcmlwcGxlL21kYy1saW5lLXJpcHBsZVwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvbWRjLW5vdGNoZWQtb3V0bGluZVwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mbG9hdGluZy1sYWJlbC9tZGMtZmxvYXRpbmctbGFiZWxcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL2NvbW1vblwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL2ljb24vbWRjLXNlbGVjdC1pY29uXCI7XG5AaW1wb3J0IFwiLi9oZWxwZXItdGV4dC9tZGMtc2VsZWN0LWhlbHBlci10ZXh0XCI7XG5AaW1wb3J0IFwiLi9oZWxwZXItdGV4dC9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc2VsZWN0XG4ubWRjLXNlbGVjdCB7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3IoJG1kYy1zZWxlY3QtZmlsbC1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcbiAgLy8gU2VsZWN0IGludGVudGlvbmFsbHkgb21pdHMgcHJlc3MgcmlwcGxlLCBzbyBlYWNoIHN0YXRlIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbmRpdmlkdWFsbHkuXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkbWRjLXNlbGVjdC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWhvdmVyLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRtZGMtc2VsZWN0LWluay1jb2xvciwgaG92ZXIpKTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1mb2N1cy1vcGFjaXR5KG1kYy1zdGF0ZXMtb3BhY2l0eSgkbWRjLXNlbGVjdC1pbmstY29sb3IsIGZvY3VzKSk7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaW5rLWNvbG9yKCRtZGMtc2VsZWN0LWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtbGFiZWwtY29sb3IoJG1kYy1zZWxlY3QtbGFiZWwtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWlkbGUtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yKCRtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1zaGFwZS1yYWRpdXMoc21hbGwpO1xuXG4gIC8vIEZvY3VzZWQgc3RhdGUgY29sb3JzXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1ib3R0b20tbGluZS1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWxhYmVsLWNvbG9yKCRtZGMtc2VsZWN0LWZvY3VzZWQtbGFiZWwtY29sb3IpO1xuXG4gIC8vIEhvdmVyIHN0YXRlIGNvbG9yc1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWhvdmVyLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRtZGMtc2VsZWN0LWxhYmVsLXBvc2l0aW9uLXkpO1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZsb2F0aW5nLWxhYmVsXztcblxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6ICRtZGMtc2VsZWN0LWhlaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogQGFsdGVybmF0ZSAqL1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtLCBjb2xvcjtcblxuICAmX19kcm9wZG93bi1pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJG1kYy1zZWxlY3QtZHJvcGRvd24tY29sb3IsICRtZGMtc2VsZWN0LWRyb3Bkb3duLW9wYWNpdHkpO1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKGxlZnQsIGF1dG8sIHJpZ2h0LCA4cHgpO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTZweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRtZGMtc2VsZWN0LWRyb3Bkb3duLXRyYW5zaXRpb24tZHVyYXRpb24gJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLm1kYy1zZWxlY3QtLWZvY3VzZWQgJiB7XG4gICAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18obWRjLXRoZW1lLXByb3AtdmFsdWUocHJpbWFyeSksIDEpO1xuICAgIH1cblxuICAgIC5tZGMtc2VsZWN0LS1hY3RpdmF0ZWQgJiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG1kYy1zZWxlY3QtZHJvcGRvd24tdHJhbnNpdGlvbi1kdXJhdGlvbiAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgfVxuICB9XG5cbiAgJl9fbmF0aXZlLWNvbnRyb2wge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLWxpbmUtcmlwcGxlXyB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAyKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1kYy1zZWxlY3QtaGVscGVyLXRleHRfO1xuQGluY2x1ZGUgbWRjLXNlbGVjdC10ZXh0LWFuZC1jb250cm9sXygpO1xuXG4ubWRjLXNlbGVjdC0tb3V0bGluZWQge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LW91dGxpbmVkXztcbn1cblxuLm1kYy1zZWxlY3QtLWludmFsaWQge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWxhYmVsLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1sYWJlbC1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaGVscGVyLXRleHQtdmFsaWRhdGlvbi1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XG5cbiAgLy8gSG92ZXIgc3RhdGUgY29sb3JzXG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtaG92ZXItYm90dG9tLWxpbmUtY29sb3IoJG1kYy1zZWxlY3QtZXJyb3ItY29sb3IpO1xuXG4gICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZS1jb2xvcigkbWRjLXNlbGVjdC1lcnJvci1jb2xvcik7XG4gIH1cblxuICAubWRjLXNlbGVjdF9fZHJvcGRvd24taWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1kZC1hcnJvdy1zdmctYmdfKCRtZGMtc2VsZWN0LWVycm9yLWNvbG9yLCAxKTtcbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbiAgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLm1kYy1zZWxlY3QtLXJlcXVpcmVkIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAubWRjLWZsb2F0aW5nLWxhYmVsOjphZnRlciB7XG4gICAgY29udGVudDogXCIqXCI7XG4gIH1cbn1cblxuLm1kYy1zZWxlY3QtLWRpc2FibGVkIHtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1kaXNhYmxlZF87XG59XG5cbi5tZGMtc2VsZWN0LS13aXRoLWxlYWRpbmctaWNvbiB7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3Qtd2l0aC1sZWFkaW5nLWljb25fO1xufVxuXG4ubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QgLm1kYy1saXN0LWl0ZW0tLXNlbGVjdGVkIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsIG9uLXN1cmZhY2UpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzKG9uLXN1cmZhY2UpO1xufVxuXG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICBzZWxlY3Qtb3V0bGluZWQtbGVhZGluZy1pY29uLFxuICAkbWRjLXNlbGVjdC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15LFxuICAkbWRjLXNlbGVjdC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14XG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwsXG4gICRtZGMtc2VsZWN0LW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXG4gIC0kbWRjLXNlbGVjdC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14XG4pO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvYW5pbWF0aW9uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIjtcblxuJG1kYy1zZWxlY3QtYXJyb3ctcGFkZGluZzogNTJweCAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWxhYmVsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1oZWlnaHQ6IDU2cHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1pY29uLXBhZGRpbmc6IDQ4cHggIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRyb3Bkb3duLWNvbG9yOiBtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWljb24tY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1sYWJlbC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZm9jdXNlZC1sYWJlbC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShwcmltYXJ5KSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWJvdHRvbS1saW5lLWlkbGUtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC40MikgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1ib3R0b20tbGluZS1ob3Zlci1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWhlbHBlci10ZXh0LWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNikgIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LWZpbGwtY29sb3I6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDQlKSAhZGVmYXVsdDtcblxuJG1kYy1zZWxlY3QtZHJvcGRvd24tb3BhY2l0eTogLjU0ICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlZCBTdHlsZXNcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWxhYmVsLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuMzcpICFkZWZhdWx0O1xuJG1kYy1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWZpbGwtY29sb3I6IG1peChtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgbWRjLXRoZW1lLXByb3AtdmFsdWUoc3VyZmFjZSksIDIlKSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LWRpc2FibGVkLWRyb3Bkb3duLW9wYWNpdHk6IC4zNyAhZGVmYXVsdDtcblxuJG1kYy1zZWxlY3Qtb3V0bGluZWQtaWRsZS1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zOCkgIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1vdXRsaW5lZC1ob3Zlci1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC44NykgIWRlZmF1bHQ7XG5cbi8vIHNob3VsZCBiZSAuMDYgYWZ0ZXIgbWRjLXNlbGVjdCBvcGFjaXR5IGlzIGFwcGxpZWRcbiRtZGMtc2VsZWN0LW91dGxpbmVkLWRpc2FibGVkLWJvcmRlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjE2KSAhZGVmYXVsdDtcblxuJG1kYy1zZWxlY3QtbGFiZWwtcG9zaXRpb24teTogNzAlICFkZWZhdWx0O1xuJG1kYy1zZWxlY3Qtb3V0bGluZS1sYWJlbC1vZmZzZXQ6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXNlbGVjdC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15OiAxMzAlICFkZWZhdWx0O1xuJG1kYy1zZWxlY3Qtb3V0bGluZWQtZGVuc2UtbGFiZWwtcG9zaXRpb24teTogMTEwJSAhZGVmYXVsdDtcbiRtZGMtc2VsZWN0LW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXg6IDMycHggIWRlZmF1bHQ7XG5cbiRtZGMtc2VsZWN0LWRyb3Bkb3duLXRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zICFkZWZhdWx0O1xuXG4vLyBFcnJvciBjb2xvcnNcbiRtZGMtc2VsZWN0LWVycm9yLWNvbG9yOiBlcnJvciAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2Zsb2F0aW5nLWxhYmVsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9saW5lLXJpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvbm90Y2hlZC1vdXRsaW5lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9pY29uL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIFB1YmxpY1xuXG5AbWl4aW4gbWRjLXNlbGVjdC1pbmstY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtaW5rLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWZvY3VzZWQtbGFiZWwtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgICYubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1pbmstY29sb3IobWRjLXRoZW1lLXByb3AtdmFsdWUoJGNvbG9yKSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB7XG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1uYXRpdmUtY29udHJvbC1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNlbGVjdC1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtbGluZS1yaXBwbGUtY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3QtbGFiZWwtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWluay1jb2xvcigkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LW91dGxpbmUtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtc2VsZWN0LS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhvdmVyLW91dGxpbmUtY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNlbGVjdC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZS1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XG4gIEBpZiBsZW5ndGgoJHJhZGl1cykgPiAyIHtcbiAgICBAZXJyb3IgXCJJbnZhbGlkIHJhZGl1czogJyN7JHJhZGl1c30nIGNvbXBvbmVudCBkb2Vzbid0IGFsbG93IGN1c3RvbWl6aW5nIGFsbCBjb3JuZXJzXCI7XG4gIH1cblxuICAkbWFza2VkLXJhZGl1czogbWRjLXNoYXBlLW1hc2stcmFkaXVzKCRyYWRpdXMsIDEgMSAwIDApO1xuXG4gICYsXG4gICZfX25hdGl2ZS1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBtZGMtc2hhcGUtcmFkaXVzKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtc2VsZWN0LWhlaWdodCwgJG1hc2tlZC1yYWRpdXMpLCAkcnRsLXJlZmxleGl2ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3Qtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmU6IGZhbHNlKSB7XG4gICRyZXNvbHZlZC1yYWRpdXM6IG50aChtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLXNlbGVjdC1oZWlnaHQsIG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpKSwgMSk7XG5cbiAgQGlmIChsZW5ndGgobWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cykpID4gMSkge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGhcbiAgICBAd2FybiBcIm1kYy1zZWxlY3Qtb3V0bGluZS1zaGFwZS1yYWRpdXMgb25seSBzdXBwb3J0cyBhIHNpbmdsZSByYWRpdXM7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0ZXJpYWwtY29tcG9uZW50cy9tYXRlcmlhbC1jb21wb25lbnRzLXdlYi9pc3N1ZXMvNDE0MFwiO1xuICB9XG5cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyZXNvbHZlZC1yYWRpdXMsICRydGwtcmVmbGV4aXZlKTtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmVzb2x2ZWQtcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSk7XG4gIH1cblxuICBAaWYgKCRyZXNvbHZlZC1yYWRpdXMgPiAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSB7XG4gICAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KFxuICAgICAgICBwYWRkaW5nLFxuICAgICAgICAkcmVzb2x2ZWQtcmFkaXVzICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZyxcbiAgICAgICAgJG1kYy1zZWxlY3QtYXJyb3ctcGFkZGluZ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICArIC5tZGMtc2VsZWN0LWhlbHBlci10ZXh0IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgICRyZXNvbHZlZC1yYWRpdXMgKyAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nLFxuICAgICAgICAkbWRjLXNlbGVjdC1vdXRsaW5lLWxhYmVsLW9mZnNldFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUHJpdmF0ZVxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZV8ge1xuICAmLm1kYy1zZWxlY3QtLWZvY3VzZWQgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1vdXRsaW5lXyB7XG4gICYubWRjLXNlbGVjdC0tZm9jdXNlZCAubWRjLW5vdGNoZWQtb3V0bGluZSB7XG4gICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1zdHJva2Utd2lkdGgoMnB4KTtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtaWRsZV8ge1xuICAmLm1kYy1zZWxlY3QtLWZvY3VzZWQge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWluay1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXygkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1zZWxlY3QtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LW5hdGl2ZS1jb250cm9sLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LW5hdGl2ZS1jb250cm9sLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtZm9jdXNlZC1saW5lLXJpcHBsZV8ge1xuICAgIEBpbmNsdWRlIG1kYy1saW5lLXJpcHBsZS1jb2xvcigkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJGZpbGwtaGV4LW51bWJlciwgJG9wYWNpdHkpIHtcbiAgLy8gTG9va3VwIGNvbG9yIGFuZCByZW1vdmUgbGVhZGluZyAjLlxuICAkZmlsbC1oZXgtbnVtYmVyOiBtZGMtdGhlbWUtcHJvcC12YWx1ZSgkZmlsbC1oZXgtbnVtYmVyKTtcbiAgJGZpbGwtaGV4LW51bWJlcjogc3RyLXNsaWNlKHVucXVvdGUoXCIjeyRmaWxsLWhleC1udW1iZXJ9XCIpLCAyKTtcblxuICBiYWNrZ3JvdW5kOlxuICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCUyMjEwcHglMjIlMjBoZWlnaHQlM0QlMjI1cHglMjIlMjB2aWV3Qm94JTNEJTIyNyUyMDEwJTIwMTAlMjA1JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGlkJTNEJTIyU2hhcGUlMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwZmlsbCUzRCUyMiUyMyN7JGZpbGwtaGV4LW51bWJlcn0lMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwb3BhY2l0eSUzRCUyMiN7JG9wYWNpdHl9JTIyJTIwcG9pbnRzJTNEJTIyNyUyMDEwJTIwMTIlMjAxNSUyMDE3JTIwMTAlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBBJTNDJTJGc3ZnJTNFXCIpXG4gICAgbm8tcmVwZWF0XG4gICAgY2VudGVyO1xufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1vdXRsaW5lLWNvbG9yXygkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1ob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWNvbWJpbmF0b3Itc3BhY2UtYWZ0ZXJcbiAgJjpub3QoLm1kYy1zZWxlY3QtLWZvY3VzZWQpIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbDpob3ZlciB+LFxuICAmOm5vdCgubWRjLXNlbGVjdC0tZm9jdXNlZCkgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQ6aG92ZXIgfiB7XG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xuICAgICAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWZvY3VzZWQtb3V0bGluZV8ge1xuICAgIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtY29sb3IoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1mbG9hdGluZy1sYWJlbF8ge1xuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXNlbGVjdC1vdXRsaW5lLWxhYmVsLW9mZnNldCk7XG5cbiAgICB0b3A6IDIxcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLm1kYy1zZWxlY3QtLXdpdGgtbGVhZGluZy1pY29uIHtcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtc2VsZWN0LWljb24tcGFkZGluZyk7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtc2VsZWN0LS1vdXRsaW5lZCB7XG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nKTtcblxuICAgICAgdG9wOiAxN3B4O1xuICAgIH1cblxuICAgICYubWRjLXNlbGVjdC0td2l0aC1sZWFkaW5nLWljb24ge1xuICAgICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtc2VsZWN0LWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpO1xuXG4gICAgICAgICYtLWZsb2F0LWFib3ZlIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXNlbGVjdC1pY29uLXBhZGRpbmcgLSAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC13aXRoLWxlYWRpbmctaWNvbl8ge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oMTZweCwgJG1kYy1zZWxlY3QtaWNvbi1wYWRkaW5nKTtcblxuICAmLm1kYy1zZWxlY3QtLW91dGxpbmVkIHtcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKFxuICAgICAgJG1kYy1zZWxlY3Qtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSxcbiAgICAgICRtZGMtc2VsZWN0LW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXhcbiAgICApO1xuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24oc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbik7XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24oc2VsZWN0LW91dGxpbmVkLWxlYWRpbmctaWNvbi1ydGwpO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXNlbGVjdF9fbWVudSAubWRjLWxpc3QtaXRlbV9fdGV4dCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgMzJweCAvKiBsZWZ0LXZhbHVlICovLCAzMnB4IC8qIHJpZ2h0LXZhbHVlICovKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC10ZXh0LWFuZC1jb250cm9sXyB7XG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMnB4O1xuICB9XG5cbiAgLm1kYy1zZWxlY3RfX25hdGl2ZS1jb250cm9sLFxuICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgJG1kYy1zZWxlY3QtbGFiZWwtcGFkZGluZywgJG1kYy1zZWxlY3QtYXJyb3ctcGFkZGluZyk7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoc3VidGl0bGUxKTtcblxuICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOjotbXMtdmFsdWUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAvLyBjb3VudGVyYWN0cyB0aGUgZXh0cmEgdGV4dCBwYWRkaW5nIHRoYXQgRmlyZWZveCBhZGRzIGJ5IGRlZmF1bHRcbiAgICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KFwiXCIpIHtcbiAgICAgIHRleHQtaW5kZW50OiAtMnB4O1xuICAgIH1cblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkbWRjLXNlbGVjdC1oZWlnaHQ7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8vIE92ZXJyaWRlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHlsZXNoZWV0XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNlbGVjdC1kaXNhYmxlZF8ge1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yXygkbWRjLXNlbGVjdC1kaXNhYmxlZC1maWxsLWNvbG9yKTtcblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtaW5rLWNvbG9yKCRtZGMtc2VsZWN0LWRpc2FibGVkLWxhYmVsLWNvbG9yKTtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19kcm9wZG93bi1pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtc2VsZWN0LWRkLWFycm93LXN2Zy1iZ18oJG1kYy1zZWxlY3QtZHJvcGRvd24tY29sb3IsICRtZGMtc2VsZWN0LWRpc2FibGVkLWRyb3Bkb3duLW9wYWNpdHkpO1xuICB9XG5cbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJG1kYy1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcik7XG4gIH1cblxuICAubWRjLXNlbGVjdF9fbmF0aXZlLWNvbnRyb2wsXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJG1kYy1zZWxlY3QtZGlzYWJsZWQtaW5rLWNvbG9yKTtcblxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gICYubWRjLXNlbGVjdC0tb3V0bGluZWQge1xuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3JfKHRyYW5zcGFyZW50KTtcblxuICAgIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbiAgICAubWRjLXNlbGVjdF9fc2VsZWN0ZWQtdGV4dCB7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1jb2xvcl8oJG1kYy1zZWxlY3Qtb3V0bGluZWQtZGlzYWJsZWQtYm9yZGVyKTtcbiAgfVxuXG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtaXhpbiBtZGMtc2VsZWN0LW91dGxpbmVkXyB7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3QtY29udGFpbmVyLWZpbGwtY29sb3IodHJhbnNwYXJlbnQpO1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LW91dGxpbmUtY29sb3IoJG1kYy1zZWxlY3Qtb3V0bGluZWQtaWRsZS1ib3JkZXIpO1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy1zZWxlY3Qtb3V0bGluZWQtaG92ZXItYm9yZGVyKTtcbiAgQGluY2x1ZGUgbWRjLXNlbGVjdC1mb2N1c2VkLW91dGxpbmUtY29sb3IocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZCk7XG4gIEBpbmNsdWRlIG1kYy1zZWxlY3Qtb3V0bGluZS1zaGFwZS1yYWRpdXMoc21hbGwpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQpO1xuICBAaW5jbHVkZSBtZGMtc2VsZWN0LWNvbnRhaW5lci1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkbWRjLXNlbGVjdC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15LCAwKTtcblxuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gIC5tZGMtc2VsZWN0X19uYXRpdmUtY29udHJvbCxcbiAgLm1kYy1zZWxlY3RfX3NlbGVjdGVkLXRleHQge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRtZGMtc2VsZWN0LWxhYmVsLXBhZGRpbmcsICRtZGMtc2VsZWN0LWFycm93LXBhZGRpbmcpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19zZWxlY3RlZC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgfVxuXG4gIC5tZGMtc2VsZWN0X19pY29uIHtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTVyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cbn1cblxuQG1peGluIG1kYy1zZWxlY3QtaGVscGVyLXRleHRfIHtcbiAgLm1kYy1zZWxlY3QtaGVscGVyLXRleHQge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAgIC5tZGMtc2VsZWN0ICsgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICB9XG5cbiAgICAubWRjLXNlbGVjdC0tb3V0bGluZWQgKyAmIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICB9XG5cbiAgLm1kYy1zZWxlY3QtLWZvY3VzZWQgKyAubWRjLXNlbGVjdC1oZWxwZXItdGV4dDpub3QoLm1kYy1zZWxlY3QtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnKSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zaGFwZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbkBtaXhpbiBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcikge1xuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbGVhZGluZyxcbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoLFxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fdHJhaWxpbmcge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLW5vdGNoZWQtb3V0bGluZS1zdHJva2Utd2lkdGgoJHdpZHRoKSB7XG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX19sZWFkaW5nLFxuICAubWRjLW5vdGNoZWQtb3V0bGluZV9fbm90Y2gsXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGg7XG4gIH1cbn1cblxuQG1peGluIG1kYy1ub3RjaGVkLW91dGxpbmUtc2hhcGUtcmFkaXVzKCRyYWRpdXMsICRydGwtcmVmbGV4aXZlOiBmYWxzZSkge1xuICAkcmFkaXVzOiBtZGMtc2hhcGUtcHJvcC12YWx1ZSgkcmFkaXVzKTtcblxuICBAaWYgKGxlbmd0aCgkcmFkaXVzKSA+IDEpIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmUtbGVuZ3RoXG4gICAgQHdhcm4gXCJtZGMtbm90Y2hlZC1vdXRsaW5lLXNoYXBlLXJhZGl1cyBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIHJhZGl1czsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRlcmlhbC1jb21wb25lbnRzL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViL2lzc3Vlcy80MTQwXCI7XG4gIH1cblxuICAkcmFkaXVzOiBudGgoJHJhZGl1cywgMSk7XG5cbiAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX2xlYWRpbmcge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMobWRjLXNoYXBlLW1hc2stcmFkaXVzKCRyYWRpdXMsIDEgMCAwIDEpLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSk7XG5cbiAgICBAaWYgKCRyYWRpdXMgPiAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSB7XG4gICAgICB3aWR0aDogJHJhZGl1cztcbiAgICB9XG4gIH1cblxuICBAaWYgKCRyYWRpdXMgPiAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSB7XG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmVfX25vdGNoIHtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gI3skcmFkaXVzfSAqIDIpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lX190cmFpbGluZyB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgMCAxIDEgMCksICRydGwtcmVmbGV4aXZlOiB0cnVlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkcG9zaXRpb25ZLCAkcG9zaXRpb25YOiAwJSwgJHNjYWxlOiAuNzUpIHtcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKCRwb3NpdGlvblkgKyAkbWRjLW5vdGNoZWQtb3V0bGluZS1sYWJlbC1hZGp1c3QsICRwb3NpdGlvblgsIDEpO1xuXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwtLWZsb2F0LWFib3ZlIHtcbiAgICBmb250LXNpemU6ICgkc2NhbGUgKiAxcmVtKTtcbiAgfVxuXG4gIC8vIFR3byBzZWxlY3RvcnMgdG8gZW5zdXJlIHdlIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgY2xhc3Mgd2hlbiBhcHBsaWVkIGZyb20gdGhpcyBjb21wb25lbnQgb3IgYSBwYXJlbnQgY29tcG9uZW50LlxuICAmLm1kYy1ub3RjaGVkLW91dGxpbmUtLXVwZ3JhZGVkLFxuICAubWRjLW5vdGNoZWQtb3V0bGluZS0tdXBncmFkZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkcG9zaXRpb25ZLCAkcG9zaXRpb25YLCAkc2NhbGUpO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAubWRjLWZsb2F0aW5nLWxhYmVsLS1mbG9hdC1hYm92ZSB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGtleWZyYW1lcyBtZGMtc2xpZGVyLWVtcGhhc2l6ZSB7XG4gIDAlIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDUwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC44NSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC41NzEpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHNsaWRlclxuXG4ubWRjLXNsaWRlciB7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItY29sb3ItYWNjZXNzaWJsZShzZWNvbmRhcnkpO1xuXG4gICYtLWRpc2FibGVkIHtcbiAgICAkZGlzYWJsZWQtY29sb3I6ICM5YTlhOWE7XG5cbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLWhpZ2hsaWdodC1jb2xvcl8oJGRpc2FibGVkLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXJhaWwtY29sb3JfKCRkaXNhYmxlZC1jb2xvcik7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci1yYWlsLXRpY2stbWFyay1jb2xvcl8oJGRpc2FibGVkLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtc2xpZGVyLXRodW1iLWNvbG9yXygkZGlzYWJsZWQtY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy1zbGlkZXItdGh1bWItc3Ryb2tlLWN1dG91dF8od2hpdGUpO1xuXG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0OHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYShibGFjaywgMCk7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICZfX3RyYWNrLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX190cmFjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgbWRjLXJ0bChcIi5tZGMtc2xpZGVyXCIpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgICB9XG4gIH1cblxuICAmX190cmFjay1tYXJrZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBAaW5jbHVkZSBtZGMtcnRsKFwiLm1kYy1zbGlkZXJcIikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLy8gTGFzdCBtYXJrZXIgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBzbGlkZXIgKHJpZ2h0LW1vc3QgaW4gTFRSLCBsZWZ0LW1vc3QgaW4gUlRMKVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDJweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG4gIH1cblxuICAmX190cmFjay1tYXJrZXIge1xuICAgIGZsZXg6IDE7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAycHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IDNweDtcbiAgICB9XG4gIH1cblxuICAmX190aHVtYi1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE1cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMjFweDtcbiAgICAvLyBFbnN1cmUgdGhhdCB0b3VjaGluZyBhbnl3aGVyZSB3aXRoaW4gdGhlIFktY29vcmRpbmF0ZSBzcGFjZSBvZiB0aHVtYlxuICAgIC8vIGlzIGNvbnNpZGVyZWQgXCJjbGlja2luZyBvbiB0aGUgdGh1bWJcIi5cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgfVxuXG4gICZfX3RodW1iIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguNTcxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQsIGZpbGwgMTAwbXMgZWFzZS1vdXQsIHN0cm9rZSAxMDBtcyBlYXNlLW91dDtcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgfVxuXG4gICZfX2ZvY3VzLXJpbmcge1xuICAgIHdpZHRoOiAyMXB4O1xuICAgIGhlaWdodDogMjFweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjY2LjY3bXMgZWFzZS1vdXQsIG9wYWNpdHkgMjY2LjY3bXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMjY2LjY3bXMgZWFzZS1vdXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmX19waW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKSB0cmFuc2xhdGUoMCwgMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2Utb3V0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSA1MCUgNTAlIDAlO1xuXG4gICAgLy8gRW5zdXJpbmcgdGhhdCB0aGUgcGluIGlzIGhpZ2hlciB0aGFuIHRoZSB0aHVtYiBpbiB0aGUgc3RhY2tpbmcgb3JkZXJcbiAgICAvLyByZW1vdmVzIHNvbWUgcmVuZGVyaW5nIGphbmsgb2JzZXJ2ZWQgaW4gQ2hyb21lLlxuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuICAmX19waW4tdmFsdWUtbWFya2VyIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShib2R5Mik7XG5cbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIH1cbn1cblxuLm1kYy1zbGlkZXItLWFjdGl2ZSB7XG4gIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi5tZGMtc2xpZGVyLS1mb2N1cyB7XG4gIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgYW5pbWF0aW9uOiBtZGMtc2xpZGVyLWVtcGhhc2l6ZSAyNjYuNjdtcyBsaW5lYXI7XG4gIH1cblxuICAubWRjLXNsaWRlcl9fZm9jdXMtcmluZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuNTUsIDEuNTUsIDEuNTUpO1xuICAgIG9wYWNpdHk6IC4yNTtcbiAgfVxufVxuXG4ubWRjLXNsaWRlci0taW4tdHJhbnNpdCB7XG4gIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMTQwbXM7XG4gIH1cbn1cblxuLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogVGhlcmUgYXJlIG11bHRpcGxlIGNhc2VzIHdoZXJlIHdlIHdhbnQgdGhlIHNsaWRlciB0b1xuLy8gdHJhbnNpdGlvbiBzZWFtbGVzc2x5IGV2ZW4gdGhvdWdoIHdlJ3JlIGp1bXBpbmcgdG8gYSBzcG90LiBUaGUgc2VsZWN0b3JzXG4vLyBiZWxvdyBoaWdobGlnaHQgdGhlc2UgY2FzZXMuIFRoZSBzZWxlY3RvcnMgYXJlIHN1cHBsZW1lbnRlZCBieSBhIGNvbW1lbnRcbi8vIGRlbm90aW5nIHRoZWlyIHNlbWFudGljIG1lYW5pbmcgd2l0aGluIHRoZSBzbGlkZXIuXG5cbi8vIFdoZW4gYSB1c2VyIGNsaWNrcyBzb21ld2hlcmUgb24gdGhlIHRyYWNrIHRoYXQgaXMgbm90IGRpcmVjdGx5IHRoZSBzbGlkZXJcbi8vIHRodW1iIGNvbnRhaW5lciwgd2UgdHJhbnNpdGlvbiB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIHVzZXIgY2xpY2tlZC5cbi5tZGMtc2xpZGVyLS1pbi10cmFuc2l0LFxuLy8gV2hlbiBhIHVzZXIgaXMgdXNpbmcgdGhlIGFycm93IGtleXMgdG8gbW9kaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgc2xpZGVyIHJhdGhlclxuLy8gdGhhbiBkcmFnZ2luZyB3aXRoIGEgcG9pbnRlciwgd2UgdHJhbnNpdGlvbiBmcm9tIG9uZSB2YWx1ZSB0byBhbm90aGVyLlxuLm1kYy1zbGlkZXI6Zm9jdXM6bm90KC5tZGMtc2xpZGVyLS1hY3RpdmUpIHtcbiAgLm1kYy1zbGlkZXJfX3RodW1iLWNvbnRhaW5lcixcbiAgLm1kYy1zbGlkZXJfX3RyYWNrIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gODBtcyBlYXNlO1xuICB9XG59XG5cbi5tZGMtc2xpZGVyLS1kaXNjcmV0ZSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAmLm1kYy1zbGlkZXItLWFjdGl2ZSB7XG4gICAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoY2FsYygxMiAvIDIxKSk7XG4gICAgfVxuXG4gICAgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpIHRyYW5zbGF0ZSgxOXB4LCAtMjBweCk7XG4gICAgfVxuICB9XG5cbiAgJi5tZGMtc2xpZGVyLS1mb2N1cyB7XG4gICAgLm1kYy1zbGlkZXJfX3RodW1iIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLm1kYy1zbGlkZXItLWRpc3BsYXktbWFya2VycyB7XG4gICAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlci1jb250YWluZXIge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG4gIH1cbiAgLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZVxuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtc2xpZGVyLWhpZ2hsaWdodC1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci1oaWdobGlnaHQtY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItcmFpbC1jb2xvcigkY29sb3IsICRvcGFjaXR5OiAkbWRjLXNsaWRlci1iYXNlbGluZS1yYWlsLW9wYWNpdHkpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci1yYWlsLWNvbG9yXygkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci1yYWlsLXRpY2stbWFyay1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci1yYWlsLXRpY2stbWFyay1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci10aHVtYi1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXNsaWRlci10aHVtYi1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci1mb2N1cy1oYWxvLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICAubWRjLXNsaWRlcl9fZm9jdXMtcmluZyB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci12YWx1ZS1waW4taW5rLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXNsaWRlci0tZGlzYWJsZWQpIHtcbiAgICAubWRjLXNsaWRlcl9fcGluIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci12YWx1ZS1waW4tZmlsbC1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy1zbGlkZXItLWRpc2FibGVkKSB7XG4gICAgLm1kYy1zbGlkZXJfX3BpbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci12YWx1ZS1waW4tZmlsbC1jb2xvci1hY2Nlc3NpYmxlKCRjb2xvcikge1xuICAkY29sb3ItdmFsdWU6IG1kYy10aGVtZS1wcm9wLXZhbHVlKCRjb2xvcik7XG4gICRpbmstY29sb3I6IGlmKG1kYy10aGVtZS10b25lKCRjb2xvci12YWx1ZSkgPT0gXCJsaWdodFwiLCB0ZXh0LXByaW1hcnktb24tbGlnaHQsIHRleHQtcHJpbWFyeS1vbi1kYXJrKTtcblxuICBAaW5jbHVkZSBtZGMtc2xpZGVyLXZhbHVlLXBpbi1maWxsLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItdmFsdWUtcGluLWluay1jb2xvcigkaW5rLWNvbG9yKTtcbn1cblxuLy8gTk9URTogVGhpcyBtaXhpbiBzZXRzIHRoZSBjb2xvciBvZiBBTEwgY3VzdG9taXphYmxlIGVsZW1lbnRzIGluIHRoZSBzbGlkZXIuIElmIG5ldyBlbGVtZW50cyBhcmUgYWRkZWQsIHRoaXMgbWl4aW5cbi8vIHNob3VsZCBiZSB1cGRhdGVkIHRvIGNvdmVyIHRob3NlIGFkZGl0aW9uYWwgZWxlbWVudHMuXG5AbWl4aW4gbWRjLXNsaWRlci1jb2xvci1hY2Nlc3NpYmxlKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLWhpZ2hsaWdodC1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLXJhaWwtY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNsaWRlci1yYWlsLXRpY2stbWFyay1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLXRodW1iLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbGlkZXItZm9jdXMtaGFsby1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtc2xpZGVyLXZhbHVlLXBpbi1maWxsLWNvbG9yLWFjY2Vzc2libGUoJGNvbG9yKTtcbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbkBtaXhpbiBtZGMtc2xpZGVyLWhpZ2hsaWdodC1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtc2xpZGVyX190cmFjayB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci1yYWlsLWNvbG9yXygkY29sb3IsICRvcGFjaXR5OiAkbWRjLXNsaWRlci1iYXNlbGluZS1yYWlsLW9wYWNpdHkpIHtcbiAgLm1kYy1zbGlkZXJfX3RyYWNrLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZSgkY29sb3IpLCAkb3BhY2l0eSkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc2xpZGVyLXJhaWwtdGljay1tYXJrLWNvbG9yXygkY29sb3IpIHtcbiAgLm1kYy1zbGlkZXJfX3RyYWNrLW1hcmtlcjo6YWZ0ZXIsXG4gIC5tZGMtc2xpZGVyX190cmFjay1tYXJrZXItY29udGFpbmVyOjphZnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNsaWRlci10aHVtYi1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoZmlsbCwgJGNvbG9yKTtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChzdHJva2UsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbGlkZXItdGh1bWItc3Ryb2tlLWN1dG91dF8oJGNvbG9yKSB7XG4gIC5tZGMtc2xpZGVyX190aHVtYiB7XG4gICAgLyogQGFsdGVybmF0ZSAqL1xuICAgIHN0cm9rZTogJGNvbG9yO1xuICAgIHN0cm9rZTogdmFyKC0tbWRjLXNsaWRlci1iZy1jb2xvci1iZWhpbmQtY29tcG9uZW50LCAkY29sb3IpO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2J1dHRvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvaWNvbi1idXR0b24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc25hY2tiYXJcbi5tZGMtc25hY2tiYXIge1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItei1pbmRleCgkbWRjLXNuYWNrYmFyLXotaW5kZXgpO1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItdmlld3BvcnQtbWFyZ2luKCRtZGMtc25hY2tiYXItdmlld3BvcnQtbWFyZ2luLW5hcnJvdyk7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAvLyBJZ25vcmUgbW91c2UgZXZlbnRzIG9uIHRoZSByb290IGxheW91dCBlbGVtZW50LlxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAvLyBGb3Igc29tZSByZWFzb24sIGlPUyBTYWZhcmkgZGlzcGxheXMgYSB0YXAgaGlnaGxpZ2h0IG9uIHRoZSBlbnRpcmUgc25hY2tiYXIgZWxlbWVudC5cbiAgLy8gTW9iaWxlIFNhZmFyaSBvbmx5IHN1cHBvcnRzIGByZ2JhYCB2YWx1ZXMgZm9yIHRoaXMgcHJvcGVydHk7IG5hbWVkIHZhbHVlcyBsaWtlIGB0cmFuc3BhcmVudGAgYXJlIGlnbm9yZWQuXG4gIC8vIEZyb20gQXBwbGUncyBkb2NzOlxuICAvLyA+IFRoaXMgcHJvcGVydHkgb2JleXMgdGhlIGFscGhhIHZhbHVlLCBpZiBzcGVjaWZpZWQuXG4gIC8vID4gSWYgeW91IGRvbuKAmXQgc3BlY2lmeSBhbiBhbHBoYSB2YWx1ZSwgU2FmYXJpIG9uIGlPUyBhcHBsaWVzIGEgZGVmYXVsdCBhbHBoYSB2YWx1ZSB0byB0aGUgY29sb3IuXG4gIC8vID4gVG8gZGlzYWJsZSB0YXAgaGlnaGxpZ2h0aW5nLCBzZXQgdGhlIGFscGhhIHZhbHVlIHRvIDAgKGludmlzaWJsZSkuXG4gIC8vID4gSWYgeW91IHNldCB0aGUgYWxwaGEgdmFsdWUgdG8gMS4wIChvcGFxdWUpLCB0aGUgZWxlbWVudCBpcyBub3QgdmlzaWJsZSB3aGVuIHRhcHBlZC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iZW4tZWIvcG9zdGNzcy1jb2xvcm1pbi9pc3N1ZXMvMVxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5cbkBhdC1yb290IHtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLWZpbGwtY29sb3IoJG1kYy1zbmFja2Jhci1maWxsLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLWxhYmVsLWluay1jb2xvcigkbWRjLXNuYWNrYmFyLWxhYmVsLWluay1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1taW4td2lkdGgoJG1kYy1zbmFja2Jhci1taW4td2lkdGgpO1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItbWF4LXdpZHRoKCRtZGMtc25hY2tiYXItbWF4LXdpZHRoKTtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLWVsZXZhdGlvbigkbWRjLXNuYWNrYmFyLWVsZXZhdGlvbik7XG4gIEBpbmNsdWRlIG1kYy1zbmFja2Jhci1zaGFwZS1yYWRpdXMoJG1kYy1zbmFja2Jhci1zaGFwZS1yYWRpdXMpO1xufVxuXG4ubWRjLXNuYWNrYmFyLS1vcGVuaW5nLFxuLm1kYy1zbmFja2Jhci0tb3Blbixcbi5tZGMtc25hY2tiYXItLWNsb3Npbmcge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWRjLXNuYWNrYmFyLS1sZWFkaW5nIHtcbiAgQGluY2x1ZGUgbWRjLXNuYWNrYmFyLXBvc2l0aW9uLWxlYWRpbmc7XG59XG5cbi5tZGMtc25hY2tiYXItLXN0YWNrZWQge1xuICBAaW5jbHVkZSBtZGMtc25hY2tiYXItbGF5b3V0LXN0YWNrZWQ7XG59XG5cbi5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xuICBvcGFjaXR5OiAwO1xuXG4gIC5tZGMtc25hY2tiYXItLW9wZW4gJiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgbWRjLWFuaW1hdGlvbi1lbnRlcihvcGFjaXR5LCAkbWRjLXNuYWNrYmFyLWVudGVyLWR1cmF0aW9uKSxcbiAgICAgIG1kYy1hbmltYXRpb24tZW50ZXIodHJhbnNmb3JtLCAkbWRjLXNuYWNrYmFyLWVudGVyLWR1cmF0aW9uKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyAvLyBBbGxvdyBtb3VzZSBldmVudHMgb24gc3VyZmFjZSBlbGVtZW50IHdoaWxlIHNuYWNrYmFyIGlzIG9wZW5cbiAgfVxuXG4gIC5tZGMtc25hY2tiYXItLWNsb3NpbmcgJiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiBtZGMtYW5pbWF0aW9uLWV4aXQtcGVybWFuZW50KG9wYWNpdHksICRtZGMtc25hY2tiYXItZXhpdC1kdXJhdGlvbik7XG4gIH1cbn1cblxuLm1kYy1zbmFja2Jhcl9fbGFiZWwge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeSgkbWRjLXNuYWNrYmFyLWxhYmVsLXR5cGUtc2NhbGUpO1xuXG4gIGZsZXgtZ3JvdzogMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuXG4gIC8vIDE0cHggdG9wL2JvdHRvbSBwYWRkaW5nIG5lZWRlZCB0byBtYWtlIHRoZSBoZWlnaHQgNDhweC5cbiAgcGFkZGluZzogMTRweCAxNnB4O1xufVxuXG4vLyBVc2VkIHRvIHByZXZlbnQgdmlzdWFsIGphbmsgd2hlbiBhbm5vdW5jaW5nIGxhYmVsIHRleHQgdG8gc2NyZWVuIHJlYWRlcnMuXG4vLyBTZWUgdGhlIGBhbm5vdW5jZSgpYCBmdW5jdGlvbiBpbiB1dGlsLmpzIGZvciBkZXRhaWxzLlxuLm1kYy1zbmFja2Jhcl9fbGFiZWw6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgY29udGVudDogYXR0cihkYXRhLW1kYy1zbmFja2Jhci1sYWJlbC10ZXh0KTtcbn1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9ucyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KG1hcmdpbiwgMCwgJG1kYy1zbmFja2Jhci1wYWRkaW5nKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1kYy1zbmFja2Jhcl9fYWN0aW9uIHtcbiAgQGluY2x1ZGUgbWRjLWJ1dHRvbi1pbmstY29sb3IoJG1kYy1zbmFja2Jhci1hY3Rpb24taW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcygkbWRjLXNuYWNrYmFyLWFjdGlvbi1pbmstY29sb3IpO1xufVxuXG4ubWRjLXNuYWNrYmFyX19kaXNtaXNzIHtcbiAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLWluay1jb2xvcigkbWRjLXNuYWNrYmFyLWRpc21pc3MtaW5rLWNvbG9yKTtcbn1cblxuLy8gVHdvIHNlbGVjdG9ycyBhcmUgbmVlZGVkIHRvIGluY3JlYXNlIHNwZWNpZmljaXR5IGFib3ZlIGAubWF0ZXJpYWwtaWNvbnNgLlxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWNsYXNzLXBhdHRlcm5cbi5tZGMtc25hY2tiYXJfX2Rpc21pc3MubWRjLXNuYWNrYmFyX19kaXNtaXNzIHtcbiAgQGluY2x1ZGUgbWRjLWljb24tYnV0dG9uLXNpemUoJG1kYy1zbmFja2Jhci1kaXNtaXNzLWljb24tc2l6ZSk7XG59XG5cbi5tZGMtc25hY2tiYXJfX2FjdGlvbiArIC5tZGMtc25hY2tiYXJfX2Rpc21pc3Mge1xuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShtYXJnaW4sICRtZGMtc25hY2tiYXItcGFkZGluZywgMCk7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLWZpbGwtY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1sYWJlbC1pbmstY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtc25hY2tiYXJfX2xhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcbiAgLm1kYy1zbmFja2Jhcl9fc3VyZmFjZSB7XG4gICAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci1taW4td2lkdGgoJG1pbi13aWR0aCwgJG1vYmlsZS1icmVha3BvaW50OiAkbWRjLXNuYWNrYmFyLW1vYmlsZS1icmVha3BvaW50KSB7XG4gIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIG1pbi13aWR0aDogJG1pbi13aWR0aDtcblxuICAgIC8vIFRoZSBmaXJzdCBtZWRpYSBxdWVyeSBlbnN1cmVzIHRoYXQgc25hY2tiYXJzIGFyZSBhbHdheXMgMTAwJSB3aWR0aCBvbiBtb2JpbGUgZGV2aWNlcywgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMuXG4gICAgLy8gVGhlIHNlY29uZCBtZWRpYSBxdWVyeSBwcmV2ZW50cyBzbmFja2JhcnMgZnJvbSBiZWluZyB3aWRlciB0aGFuIHRoZSB2aWV3cG9ydCBmb3IgbGFyZ2UgbWluLXdpZHRoIHZhbHVlcy5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1vYmlsZS1icmVha3BvaW50KSwgKG1heC13aWR0aDogJG1pbi13aWR0aCkge1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLW1heC13aWR0aCgkbWF4LXdpZHRoKSB7XG4gIC5tZGMtc25hY2tiYXJfX3N1cmZhY2Uge1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLWVsZXZhdGlvbigkei1pbmRleCkge1xuICAubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKCR6LWluZGV4KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLXZpZXdwb3J0LW1hcmdpbigkbWFyZ2luKSB7XG4gIG1hcmdpbjogJG1hcmdpbjtcbn1cblxuQG1peGluIG1kYy1zbmFja2Jhci16LWluZGV4KCR6LWluZGV4KSB7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xufVxuXG5AbWl4aW4gbWRjLXNuYWNrYmFyLXBvc2l0aW9uLWxlYWRpbmcge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbkBtaXhpbiBtZGMtc25hY2tiYXItbGF5b3V0LXN0YWNrZWQge1xuICAubWRjLXNuYWNrYmFyX19zdXJmYWNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgLm1kYy1zbmFja2Jhcl9fYWN0aW9ucyB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1kYy1zbmFja2Jhci1wYWRkaW5nO1xuICB9XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7IC8vIGZvciBtZGMtdGhlbWUtcHJvcC12YWx1ZSgpIGZ1bmN0aW9uXG5cbiRtZGMtc25hY2tiYXItZmlsbC1jb2xvcjogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgODAlKSAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItbGFiZWwtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCBtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcyhoaWdoKSkgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLWFjdGlvbi1pbmstY29sb3I6ICNiYjg2ZmMgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLWRpc21pc3MtaW5rLWNvbG9yOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCBtZGMtdGhlbWUtdGV4dC1lbXBoYXNpcyhoaWdoKSkgIWRlZmF1bHQ7XG5cbiRtZGMtc25hY2tiYXItbGFiZWwtdHlwZS1zY2FsZTogYm9keTIgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLWRpc21pc3MtaWNvbi1zaXplOiAxOHB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1taW4td2lkdGg6IDM0NHB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1tYXgtd2lkdGg6IDY3MnB4ICFkZWZhdWx0O1xuJG1kYy1zbmFja2Jhci1tb2JpbGUtYnJlYWtwb2ludDogNDgwcHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLXZpZXdwb3J0LW1hcmdpbi1uYXJyb3c6IDhweCAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItdmlld3BvcnQtbWFyZ2luLXdpZGU6IDI0cHggIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLXBhZGRpbmc6IDhweCAhZGVmYXVsdDtcblxuJG1kYy1zbmFja2Jhci1lbGV2YXRpb246IDYgIWRlZmF1bHQ7XG4kbWRjLXNuYWNrYmFyLXNoYXBlLXJhZGl1czogc21hbGwgIWRlZmF1bHQ7IC8vIEtleSBmcm9tICRtZGMtc2hhcGUtY2F0ZWdvcnktdmFsdWVzIG9yIENTUyBsZW5ndGggdmFsdWUgKGUuZy4sIDRweClcbiRtZGMtc25hY2tiYXItei1pbmRleDogOCAhZGVmYXVsdDsgLy8gT25lIGFib3ZlIG1kYy1kaWFsb2dcblxuLy8gVGhlc2UgdmFyaWFibGVzIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIHZhbHVlcyBpbiBjb25zdGFudHMuanMuXG4kbWRjLXNuYWNrYmFyLWVudGVyLWR1cmF0aW9uOiAxNTBtcyAhZGVmYXVsdDtcbiRtZGMtc25hY2tiYXItZXhpdC1kdXJhdGlvbjogNzVtcyAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vL1xuLy8gUHVibGljXG4vL1xuXG5AbWl4aW4gbWRjLXN3aXRjaC1jb3JlLXN0eWxlcygkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtd2l0aG91dC1yaXBwbGUoJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN3aXRjaC1yaXBwbGUoJHF1ZXJ5KTtcbn1cblxuLy8gVGhpcyBBUEkgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBmcmFtZXdvcmtzIHRoYXQgbWF5IHdhbnQgdG8gc2VwYXJhdGUgdGhlIHJpcHBsZS1yZWxhdGVkIHN0eWxlcyBmcm9tIHRoZSBvdGhlclxuLy8gc3dpdGNoIHN0eWxlcy4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBtb3N0IHVzZXJzIHVzZSBgbWRjLXN3aXRjaC1jb3JlLXN0eWxlc2AgaW5zdGVhZC5cbkBtaXhpbiBtZGMtc3dpdGNoLXdpdGhvdXQtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgc3dpdGNoXG5cbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtc3RydWN0dXJlOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICAubWRjLXN3aXRjaCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtYmFzZV87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRyYWNrLWNvbG9yKCRtZGMtc3dpdGNoLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vbi10aHVtYi1jb2xvcigkbWRjLXN3aXRjaC1iYXNlbGluZS10aGVtZS1jb2xvciwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yKCRtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yLCAkcXVlcnkpO1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdGh1bWItY29sb3IoJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdGh1bWItY29sb3IsICRxdWVyeSk7XG4gIH1cblxuICAubWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbF87XG4gICAgfVxuICB9XG5cbiAgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190cmFja18oJHF1ZXJ5KTtcbiAgfVxuXG4gIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheSB7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlfKCRxdWVyeSk7XG4gIH1cblxuICAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX3RodW1iXygkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1zd2l0Y2gtLWNoZWNrZWQge1xuICAgIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgICAubWRjLXN3aXRjaF9fdHJhY2sge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190cmFjay1jaGVja2VkXztcbiAgICAgIH1cblxuICAgICAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXktY2hlY2tlZF87XG4gICAgICB9XG5cbiAgICAgIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sLWNoZWNrZWRfO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGMtc3dpdGNoLS1kaXNhYmxlZCB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2gtLWRpc2FibGVkLWJhc2VfO1xuXG4gICAgICAubWRjLXN3aXRjaF9fdGh1bWIge1xuICAgICAgICBAaW5jbHVkZSBtZGMtc3dpdGNoX190aHVtYi1kaXNhYmxlZF87XG4gICAgICB9XG5cbiAgICAgIC5tZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sLWRpc2FibGVkXztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxufVxuXG4vLyBUaGlzIEFQSSBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGZyYW1ld29ya3MgdGhhdCBtYXkgd2FudCB0byBzZXBhcmF0ZSB0aGUgcmlwcGxlLXJlbGF0ZWQgc3R5bGVzIGZyb20gdGhlIG90aGVyXG4vLyBzd2l0Y2ggc3R5bGVzLiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IG1vc3QgdXNlcnMgdXNlIGBtZGMtc3dpdGNoLWNvcmUtc3R5bGVzYCBpbnN0ZWFkLlxuQG1peGluIG1kYy1zd2l0Y2gtcmlwcGxlKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1jb21tb24oJHF1ZXJ5KTtcblxuICAubWRjLXN3aXRjaCB7XG4gICAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3IoJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtcmlwcGxlLWNvbG9yLCAkcXVlcnkpO1xuICB9XG5cbiAgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXN1cmZhY2UoJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQoMTAwJSwgJHF1ZXJ5KTtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRtZGMtc3dpdGNoLWJhc2VsaW5lLXRoZW1lLWNvbG9yLCBmYWxzZSwgJHF1ZXJ5KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdHJhY2stY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tdGh1bWItY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb24tcmlwcGxlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbn1cblxuQG1peGluIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtY29sb3IoJGNvbG9yLCAkcXVlcnk6IG1kYy1mZWF0dXJlLWFsbCgpKSB7XG4gIEBpbmNsdWRlIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdHJhY2stY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xuICBAaW5jbHVkZSBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRodW1iLWNvbG9yKCRjb2xvciwgJHF1ZXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXN3aXRjaC10b2dnbGVkLW9mZi1yaXBwbGUtY29sb3IoJGNvbG9yLCAkcXVlcnkpO1xufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRyYWNrLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLXRodW1iLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmLm1kYy1zd2l0Y2gtLWNoZWNrZWQgLm1kYy1zd2l0Y2hfX3RodW1iIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9uLXJpcHBsZS1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJi5tZGMtc3dpdGNoLS1jaGVja2VkIC5tZGMtc3dpdGNoX190aHVtYi11bmRlcmxheSB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcygkY29sb3IsIGZhbHNlLCAkcXVlcnkpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoLXRvZ2dsZWQtb2ZmLXRyYWNrLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAmOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RyYWNrIHtcbiAgICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWNvbG9yKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaC10b2dnbGVkLW9mZi10aHVtYi1jb2xvcigkY29sb3IsICRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgJjpub3QoLm1kYy1zd2l0Y2gtLWNoZWNrZWQpIC5tZGMtc3dpdGNoX190aHVtYiB7XG4gICAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYmFja2dyb3VuZC1jb2xvciwgJGNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1jb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtcmlwcGxlLWNvbG9yKCRjb2xvciwgJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAmOm5vdCgubWRjLXN3aXRjaC0tY2hlY2tlZCkgLm1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5IHtcbiAgICBAaW5jbHVkZSBtZGMtc3RhdGVzKCRjb2xvciwgZmFsc2UsICRxdWVyeSk7XG4gIH1cbn1cblxuLy9cbi8vIFByaXZhdGVcbi8vXG5cbi8vIFN0cnVjdHVyZVxuQG1peGluIG1kYy1zd2l0Y2gtYmFzZV8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX190cmFja18oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1hbmltYXRpb246IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtc3RydWN0dXJlKSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJG1kYy1zd2l0Y2gtdHJhY2std2lkdGg7XG4gICAgaGVpZ2h0OiAkbWRjLXN3aXRjaC10cmFjay1oZWlnaHQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogJG1kYy1zd2l0Y2gtdHJhY2staGVpZ2h0IC8gMjtcbiAgICBvcGFjaXR5OiAuMzg7XG4gIH1cblxuICBAaW5jbHVkZSBtZGMtZmVhdHVyZS10YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgIHRyYW5zaXRpb246XG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24ob3BhY2l0eSksXG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciksXG4gICAgICBtZGMtc3dpdGNoLXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fdGh1bWItdW5kZXJsYXlfKCRxdWVyeTogbWRjLWZlYXR1cmUtYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBtZGMtZmVhdHVyZS1jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgYW5pbWF0aW9uKTtcbiAgJGZlYXQtY29sb3I6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG4gICRmZWF0LXN0cnVjdHVyZTogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LWluaXRpYWwtcG9zaXRpb24pO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gRW5zdXJlcyB0aGUga25vYiBpcyBjZW50ZXJlZCBvbiB0aGUgdHJhY2suXG4gICAgdG9wOiAtKCgkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemUgLSAkbWRjLXN3aXRjaC10cmFjay1oZWlnaHQpIC8gMik7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplO1xuICAgIGhlaWdodDogJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1kYy1mZWF0dXJlLXRhcmdldHMoJGZlYXQtYW5pbWF0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG1kYy1zd2l0Y2gtdHJhbnNpdGlvbih0cmFuc2Zvcm0pLFxuICAgICAgbWRjLXN3aXRjaC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpLFxuICAgICAgbWRjLXN3aXRjaC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX25hdGl2ZS1jb250cm9sXyB7XG4gIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsIDApO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogJG1kYy1zd2l0Y2gtbmF0aXZlLWNvbnRyb2wtd2lkdGg7XG4gIGhlaWdodDogJG1kYy1zd2l0Y2gtdGFwLXRhcmdldC1zaXplO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX190aHVtYl8oJHF1ZXJ5OiBtZGMtZmVhdHVyZS1hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IG1kYy1mZWF0dXJlLWNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuICAkZmVhdC1jb2xvcjogbWRjLWZlYXR1cmUtY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKCR6LXZhbHVlOiAyLCAkcXVlcnk6ICRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgbWRjLWZlYXR1cmUtdGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAkbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyO1xuICAgIGJvcmRlcjogJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXIgLyAyIHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvLyBBbGxvdyBldmVudHMgdG8gZ28gdGhyb3VnaCB0byB0aGUgbmF0aXZlIGNvbnRyb2wsIG5lY2Vzc2FyeSBmb3IgSUUgYW5kIEVkZ2UuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuXG4vLyBDaGVja2VkIHN0YXRlXG5cbkBtaXhpbiBtZGMtc3dpdGNoX190cmFjay1jaGVja2VkXyB7XG4gIG9wYWNpdHk6IC41NDtcbn1cblxuQG1peGluIG1kYy1zd2l0Y2hfX3RodW1iLXVuZGVybGF5LWNoZWNrZWRfIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRtZGMtc3dpdGNoLXRodW1iLWFjdGl2ZS1tYXJnaW4pO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtKCRtZGMtc3dpdGNoLXRodW1iLWFjdGl2ZS1tYXJnaW4pKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fbmF0aXZlLWNvbnRyb2wtY2hlY2tlZF8ge1xuICAvLyBUcmFuc2xhdGUgdGhlIG5hdGl2ZSBjb250cm9sIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24gc28gdGhhdCB0aGUgdGFwIHRhcmdldCBzdGF5cyB0aGUgc2FtZS5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0oJG1kYy1zd2l0Y2gtdGh1bWItYWN0aXZlLW1hcmdpbikpO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkbWRjLXN3aXRjaC10aHVtYi1hY3RpdmUtbWFyZ2luKTtcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZVxuXG5AbWl4aW4gbWRjLXN3aXRjaC0tZGlzYWJsZWQtYmFzZV8ge1xuICBvcGFjaXR5OiAuMzg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWl4aW4gbWRjLXN3aXRjaF9fdGh1bWItZGlzYWJsZWRfIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7ICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIG9ubHkgc2hvdyBvdXRsaW5lIG9mIGtub2IuXG59XG5cbkBtaXhpbiBtZGMtc3dpdGNoX19uYXRpdmUtY29udHJvbC1kaXNhYmxlZF8ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCI7XG5cbiRtZGMtc3dpdGNoLXRyYWNrLXdpZHRoOiAzMnB4ICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtdHJhY2staGVpZ2h0OiAxNHB4ICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXI6IDIwcHggIWRlZmF1bHQ7XG4kbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemU6IDQ4cHggIWRlZmF1bHQ7XG5cbi8vIEFtb3VudCB0aGUgZWRnZSBvZiB0aGUgdGh1bWIgc2hvdWxkIGJlIG9mZnNldCBmcm9tIHRoZSBlZGdlIG9mIHRoZSB0cmFjay5cbiRtZGMtc3dpdGNoLXRodW1iLW9mZnNldDogNHB4ICFkZWZhdWx0O1xuXG4vLyBQb3NpdGlvbiBmb3IgdGhlIHRhcCB0YXJnZXQgdGhhdCBjb250YWlucyB0aGUgdGh1bWIgdG8gYWxpZ24gdGhlIHRodW1iIGNvcnJlY3RseSBvZmZzZXQgZnJvbSB0aGUgdHJhY2suXG4kbWRjLXN3aXRjaC10YXAtdGFyZ2V0LWluaXRpYWwtcG9zaXRpb246XG4gIC0kbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemUgLyAyICsgJG1kYy1zd2l0Y2gtdGh1bWItZGlhbWV0ZXIgLyAyIC1cbiAgJG1kYy1zd2l0Y2gtdGh1bWItb2Zmc2V0ICFkZWZhdWx0O1xuXG4vLyBWYWx1ZSB0byBjb3ZlciB0aGUgd2hvbGUgc3dpdGNoIGFyZWEgKGluY2x1ZGluZyB0aGUgcmlwcGxlKSB3aXRoIHRoZSBuYXRpdmUgY29udHJvbC5cbiRtZGMtc3dpdGNoLW5hdGl2ZS1jb250cm9sLXdpZHRoOlxuICAkbWRjLXN3aXRjaC10cmFjay13aWR0aCArXG4gICgkbWRjLXN3aXRjaC10YXAtdGFyZ2V0LXNpemUgLSAkbWRjLXN3aXRjaC10aHVtYi1kaWFtZXRlcikgK1xuICAkbWRjLXN3aXRjaC10aHVtYi1vZmZzZXQgKiAyICFkZWZhdWx0O1xuXG4kbWRjLXN3aXRjaC10aHVtYi1hY3RpdmUtbWFyZ2luOlxuICAkbWRjLXN3aXRjaC10cmFjay13aWR0aCAtICRtZGMtc3dpdGNoLXRodW1iLWRpYW1ldGVyICsgJG1kYy1zd2l0Y2gtdGh1bWItb2Zmc2V0ICogMiAhZGVmYXVsdDtcblxuJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdGh1bWItY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtdHJhY2stY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtdG9nZ2xlZC1vZmYtcmlwcGxlLWNvbG9yOiAjOWU5ZTllICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtZGlzYWJsZWQtdGh1bWItY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpICFkZWZhdWx0O1xuJG1kYy1zd2l0Y2gtZGlzYWJsZWQtdHJhY2stY29sb3I6IG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpICFkZWZhdWx0O1xuXG4kbWRjLXN3aXRjaC1iYXNlbGluZS10aGVtZS1jb2xvcjogc2Vjb25kYXJ5ICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci1zdXJmYWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWl4aW4gbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWNvbG9yKCRjb2xvcikge1xuICAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLXVuZGVybGluZSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci11bmRlcmxpbmUtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICAgIGJvcmRlci10b3Atd2lkdGg6ICRoZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIG1kYy10YWItaW5kaWNhdG9yLXVuZGVybGluZS10b3AtY29ybmVyLXJhZGl1cygkcmFkaXVzKSB7XG4gIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0tdW5kZXJsaW5lIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci1pY29uLWNvbG9yKCRjb2xvcikge1xuICAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWluZGljYXRvci1pY29uLWhlaWdodCgkaGVpZ2h0KSB7XG4gIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudC0taWNvbiB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGhlaWdodDtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL2NvbW1vblwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGFiLWluZGljYXRvci9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRhYlxuXG4ubWRjLXRhYiB7XG4gIEBpbmNsdWRlIG1kYy10YWItdGV4dC1sYWJlbC1jb2xvcigkbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yLWRlZmF1bHQpO1xuICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3IoJG1kYy10YWItaWNvbi1jb2xvci1kZWZhdWx0KTtcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3Itc3VyZmFjZTtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoYnV0dG9uKTtcbiAgQGluY2x1ZGUgbWRjLXRhYi1ob3Jpem9udGFsLXBhZGRpbmcoJG1kYy10YWItaG9yaXpvbnRhbC1wYWRkaW5nKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogJG1kYy10YWItaGVpZ2h0O1xuICAvLyBFeHBsaWNpdGx5IHNldHRpbmcgbWFyZ2luIHRvIDAgaXMgdG8gb3ZlcnJpZGUgc2FmYXJpIGRlZmF1bHQgbWFyZ2luIGZvciBidXR0b24gZWxlbWVudHMuXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG5cbiAgLy8gRmlyZWZveCBzdGlsbCBkcmF3cyBhIGRvdHRlZCBib3JkZXIgYXJvdW5kIGZvY3VzZWQgYnV0dG9ucyB1bmxlc3Mgc3BlY2lmaWNhbGx5IG92ZXJyaWRkZW4uXG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi5tZGMtdGFiLS1taW4td2lkdGgge1xuICBmbGV4OiAwIDEgYXV0bztcbn1cblxuLm1kYy10YWJfX3JpcHBsZSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtYm91bmRlZDtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcyhwcmltYXJ5KTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1kYy10YWJfX2NvbnRlbnQge1xuICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci1zdXJmYWNlO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubWRjLXRhYl9fdGV4dC1sYWJlbCxcbi5tZGMtdGFiX19pY29uIHtcbiAgdHJhbnNpdGlvbjogMTUwbXMgY29sb3IgbGluZWFyO1xuICB6LWluZGV4OiAyO1xufVxuXG4ubWRjLXRhYl9fdGV4dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLy8gU2V0dGluZyBsaW5lLWhlaWdodCBoZXJlIG92ZXJyaWRlcyB0aGUgbGluZS1oZWlnaHQgZnJvbSB0aGUgdHlwb2dyYXBoeVxuICAvLyBtaXhpbiBhYm92ZS4gVGhlIGxpbmUtaGVpZ2h0IG5lZWRzIHRvIGJlIG92ZXJyaWRkZW4gc28gdGhhdCB0aGUgc3BhY2luZ1xuICAvLyBiZXR3ZWVuIHRoZSB0ZXh0IGxhYmVsIGFuZCB0aGUgaWNvbiBhcyB3ZWxsIGFzIHRoZSB0ZXh0IGxhYmVsIGFuZCB0aGVcbiAgLy8gYm90dG9tIG9mIHRoZSB0YWIgcmVtYWluIHRoZSBzYW1lLlxuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1kYy10YWJfX2ljb24ge1xuICB3aWR0aDogJG1kYy10YWItaWNvbi1zaXplO1xuICBoZWlnaHQ6ICRtZGMtdGFiLWljb24tc2l6ZTtcbiAgZm9udC1zaXplOiAkbWRjLXRhYi1pY29uLXNpemU7XG59XG5cbi5tZGMtdGFiLS1zdGFja2VkIHtcbiAgaGVpZ2h0OiAkbWRjLXRhYi1zdGFja2VkLWhlaWdodDtcbn1cblxuLm1kYy10YWItLXN0YWNrZWQgLm1kYy10YWJfX2NvbnRlbnQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX19pY29uIHtcbiAgcGFkZGluZy10b3A6IDEycHg7XG59XG5cbi5tZGMtdGFiLS1zdGFja2VkIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi5tZGMtdGFiLS1hY3RpdmUge1xuICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IoJG1kYy10YWItdGV4dC1sYWJlbC1jb2xvci1hY3RpdmUpO1xuICBAaW5jbHVkZSBtZGMtdGFiLWljb24tY29sb3IoJG1kYy10YWItaWNvbi1jb2xvci1hY3RpdmUpO1xuXG4gIC5tZGMtdGFiX190ZXh0LWxhYmVsLFxuICAubWRjLXRhYl9faWNvbiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG4gIH1cbn1cblxuLm1kYy10YWI6bm90KC5tZGMtdGFiLS1zdGFja2VkKSAubWRjLXRhYl9faWNvbiArIC5tZGMtdGFiX190ZXh0LWxhYmVsIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsIDhweCk7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGFiLWhvcml6b250YWwtcGFkZGluZygkcGFkZGluZykge1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuQG1peGluIG1kYy10YWItdGV4dC1sYWJlbC1jb2xvcigkY29sb3IpIHtcbiAgLm1kYy10YWJfX3RleHQtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWljb24tY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtdGFiX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcblxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRhYi1zdGF0ZXMtY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtdGFiX19yaXBwbGUge1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRhYi1pbmstY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10YWItaWNvbi1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGFiLXN0YXRlcy1jb2xvcigkY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy10YWItYWN0aXZlLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKSB7XG4gICYubWRjLXRhYi0tYWN0aXZlIHtcbiAgICBAaW5jbHVkZSBtZGMtdGFiLXRleHQtbGFiZWwtY29sb3IoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRhYi1hY3RpdmUtaWNvbi1jb2xvcigkY29sb3IpIHtcbiAgJi5tZGMtdGFiLS1hY3RpdmUge1xuICAgIEBpbmNsdWRlIG1kYy10YWItaWNvbi1jb2xvcigkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLWFjdGl2ZS1zdGF0ZXMtY29sb3IoJGNvbG9yKSB7XG4gICYubWRjLXRhYi0tYWN0aXZlIHtcbiAgICBAaW5jbHVkZSBtZGMtdGFiLXN0YXRlcy1jb2xvcigkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGFiLXBhcmVudC1wb3NpdGlvbmluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1peGluIG1kYy10YWItZml4ZWQtd2lkdGgoJHdpZHRoKSB7XG4gIGZsZXg6IDAgMSAkd2lkdGg7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuJG1kYy10YWItaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJG1kYy10YWItaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy10YWItc3RhY2tlZC1oZWlnaHQ6IDcycHggIWRlZmF1bHQ7XG4kbWRjLXRhYi1ob3Jpem9udGFsLXBhZGRpbmc6IDI0cHggIWRlZmF1bHQ7XG4kbWRjLXRhYi10ZXh0LWxhYmVsLW9wYWNpdHk6IC42ICFkZWZhdWx0O1xuJG1kYy10YWItaWNvbi1vcGFjaXR5OiAuNTQgIWRlZmF1bHQ7XG4kbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yLWRlZmF1bHQ6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksICRtZGMtdGFiLXRleHQtbGFiZWwtb3BhY2l0eSkgIWRlZmF1bHQ7XG4kbWRjLXRhYi1pY29uLWNvbG9yLWRlZmF1bHQ6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksICRtZGMtdGFiLWljb24tb3BhY2l0eSkgIWRlZmF1bHQ7XG4kbWRjLXRhYi10ZXh0LWxhYmVsLWNvbG9yLWFjdGl2ZTogcHJpbWFyeSAhZGVmYXVsdDtcbiRtZGMtdGFiLWljb24tY29sb3ItYWN0aXZlOiBwcmltYXJ5ICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0YWItYmFyXG5cbi5tZGMtdGFiLWJhciB7XG4gIEBpbmNsdWRlIG1kYy10YWItYmFyLXdpZHRoKDEwMCUpO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuICogVEhFIFNPRlRXQVJFLlxuICovXG5cbkBtaXhpbiBtZGMtdGFiLWJhci13aWR0aCgkd2lkdGgpIHtcbiAgd2lkdGg6ICR3aWR0aDtcbn1cbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0YWItaW5kaWNhdG9yXG5cbi5tZGMtdGFiLWluZGljYXRvciB7XG4gIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLXVuZGVybGluZS1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXRhYi1pbmRpY2F0b3ItdW5kZXJsaW5lLWhlaWdodCgycHgpO1xuICBAaW5jbHVkZSBtZGMtdGFiLWluZGljYXRvci1pY29uLWNvbG9yKHNlY29uZGFyeSk7XG4gIEBpbmNsdWRlIG1kYy10YWItaW5kaWNhdG9yLWljb24taGVpZ2h0KDM0cHgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50LS11bmRlcmxpbmUge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xufVxuXG4ubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQtLWljb24ge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ubWRjLXRhYi1pbmRpY2F0b3ItLWFjdGl2ZSAubWRjLXRhYi1pbmRpY2F0b3JfX2NvbnRlbnQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vLyBTbGlkZSBieSBkZWZhdWx0XG4ubWRjLXRhYi1pbmRpY2F0b3IgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgdHJhbnNmb3JtICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbn1cblxuLy8gLS1uby10cmFuc2l0aW9uIGlzIGFwcGxpZWQgaW4gY2FzZXMgd2hlcmUgc3R5bGVzIG5lZWQgdG8gYmUgYXBwbGllZCBpbW1lZGlhdGVseSB0byBzZXQgdXAgYSB0cmFuc2l0aW9uXG4ubWRjLXRhYi1pbmRpY2F0b3ItLW5vLXRyYW5zaXRpb24gLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLm1kYy10YWItaW5kaWNhdG9yLS1mYWRlIC5tZGMtdGFiLWluZGljYXRvcl9fY29udGVudCB7XG4gIHRyYW5zaXRpb246IDE1MG1zIG9wYWNpdHkgbGluZWFyO1xufVxuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGlnbm9yZVxuLm1kYy10YWItaW5kaWNhdG9yLS1hY3RpdmUubWRjLXRhYi1pbmRpY2F0b3ItLWZhZGUgLm1kYy10YWItaW5kaWNhdG9yX19jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMTAwbXM7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9hbmltYXRpb24vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RhYi9taXhpbnNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGFiLXNjcm9sbGVyXG4ubWRjLXRhYi1zY3JvbGxlciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuLy8gU2VsZWN0b3IgZm9yIHRlc3QgZWxlbWVudCB1c2VkIHRvIGZlYXR1cmUtZGV0ZWN0IGhvcml6b250YWwgc2Nyb2xsYmFyIGhlaWdodFxuLm1kYy10YWItc2Nyb2xsZXJfX3Rlc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWFyZWEsXG4ubWRjLXRhYi1zY3JvbGxlcl9fdGVzdCB7XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFRoaXMgbW9kaWZpZXIgY2xhc3Mgd2lsbCBiZSBhZGRlZCBpbiBKUyBhZnRlciBjb21wdXRpbmcgdGhlIE9TIHNjcm9sbGJhciBzaXplIGluIG9yZGVyIHRvIGhpZGUgdGhlIHNjcm9sbGJhci5cbi5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtYXJlYS0tc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlcl9fc2Nyb2xsLWNvbnRlbnQge1xuICBAaW5jbHVkZSBtZGMtdGFiLXBhcmVudC1wb3NpdGlvbmluZztcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgdHJhbnNmb3JtOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tc3RhcnQgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ubWRjLXRhYi1zY3JvbGxlci0tYWxpZ24tZW5kIC5tZGMtdGFiLXNjcm9sbGVyX19zY3JvbGwtY29udGVudCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbGlnbi1jZW50ZXIgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1hcmVhIHtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IGF1dG87XG59XG5cbi5tZGMtdGFiLXNjcm9sbGVyLS1hbmltYXRpbmcgLm1kYy10YWItc2Nyb2xsZXJfX3Njcm9sbC1jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogMjUwbXMgdHJhbnNmb3JtICRtZGMtYW5pbWF0aW9uLXN0YW5kYXJkLWN1cnZlLXRpbWluZy1mdW5jdGlvbjtcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBlbmRcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0ZXh0LWZpZWxkLWhlbHBlci10ZXh0XG5cbi5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dCB7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGNhcHRpb24pO1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1iYXNlbGluZS10b3AoMTZweCk7XG5cbiAgbWFyZ2luOiAwO1xuICB0cmFuc2l0aW9uOiBtZGMtdGV4dC1maWVsZC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICBvcGFjaXR5OiAwO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS1wZXJzaXN0ZW50IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lsbC1jaGFuZ2U6IGluaXRpYWw7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTkgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ydGwvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXJcblxuLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoY2FwdGlvbik7XG4gIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5LWJhc2VsaW5lLXRvcCgxNnB4KTtcbiAgLy8gS2VlcCBmbGV4IGl0ZW0gYWxpZ24gdG8gdHJhaWxpbmcgc2lkZSBvbiBhYnNlbmNlIG9mIGhlbHBlciB0ZXh0LlxuICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCBhdXRvKTtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsIDE2cHgpO1xuXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uLFxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1kYy10ZXh0LWZpZWxkX19pY29uOm5vdChbdGFiaW5kZXhdKSxcbi5tZGMtdGV4dC1maWVsZF9faWNvblt0YWJpbmRleD1cIi0xXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZmxvYXRpbmctbGFiZWwvbWRjLWZsb2F0aW5nLWxhYmVsXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2xpbmUtcmlwcGxlL21kYy1saW5lLXJpcHBsZVwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvbWRjLW5vdGNoZWQtb3V0bGluZVwiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3JpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdHlwb2dyYXBoeS92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vaGVscGVyLXRleHQvbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHRcIjtcbkBpbXBvcnQgXCIuL2NoYXJhY3Rlci1jb3VudGVyL21kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyXCI7XG5AaW1wb3J0IFwiLi9pY29uL21kYy10ZXh0LWZpZWxkLWljb25cIjtcbkBpbXBvcnQgXCIuL21peGluc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZGVmaW5lIHRleHQtZmllbGRcblxuLm1kYy10ZXh0LWZpZWxkIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xuICAvLyBUZXh0IEZpZWxkIGludGVudGlvbmFsbHkgb21pdHMgcHJlc3MgcmlwcGxlLCBzbyBlYWNoIHN0YXRlIG5lZWRzIHRvIGJlIHNwZWNpZmllZCBpbmRpdmlkdWFsbHkuXG4gIEBpbmNsdWRlIG1kYy1zdGF0ZXMtYmFzZS1jb2xvcigkbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcy1ob3Zlci1vcGFjaXR5KG1kYy1zdGF0ZXMtb3BhY2l0eSgkbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yLCBob3ZlcikpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWZvY3VzLW9wYWNpdHkobWRjLXN0YXRlcy1vcGFjaXR5KCRtZGMtdGV4dC1maWVsZC1pbmstY29sb3IsIGZvY3VzKSk7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtcmFkaXVzLWJvdW5kZWQ7XG5cbiAgLy8gU2hhcGVcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtc2hhcGUtcmFkaXVzKHNtYWxsKTtcblxuICAvLyBDb2xvcnNcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtbGFiZWwtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWxhYmVsKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jYXJldC1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWlkbGUpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtaG92ZXIpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcl8ocHJpbWFyeSk7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItY29sb3IoJG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcigkbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWJhY2tncm91bmQpO1xuXG4gIC8vIEZsb2F0aW5nIExhYmVsXG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZsb2F0aW5nLWxhYmVsXztcblxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6ICRtZGMtdGV4dC1maWVsZC1oZWlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIEBhbHRlcm5hdGUgKi9cbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybSwgY29sb3I7XG59XG5cbi5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShzdWJ0aXRsZTEpO1xuXG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4IDE2cHggNnB4O1xuICB0cmFuc2l0aW9uOiBtZGMtdGV4dC1maWVsZC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogbWRjLXRleHQtZmllbGQtdHJhbnNpdGlvbihvcGFjaXR5LCAkZHVyYXRpb246IDY3bXMpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgY29sb3I6ICRtZGMtdGV4dC1maWVsZC1wbGFjZWhvbGRlci1pbmstY29sb3I7XG4gIH1cblxuICAvLyBPdmVycmlkZSB0aGUgcGxhY2Vob2xkZXIgc3R5bGVzIGluIElFIHdpdGggaW1wb3J0YW50IHJ1bGUgdG8gaW1wcm92ZSBzcGVjaWZpY2l0eS5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLW5vLXZlbmRvci1wcmVmaXhcbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkbWRjLXRleHQtZmllbGQtcGxhY2Vob2xkZXItaW5rLWNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBBbHdheXMgc2hvdyBwbGFjZWhvbGRlciBmb3IgdGV4dCBmaWVsZHMgdGhhdCBoYXMgbm8gbGFiZWwgYW5kIHNob3cgb25seSBvbiBmb2N1c2VkIHN0YXRlIHdoZW4gbGFiZWwgaXMgcHJlc2VudC5cbiAgLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGggJjo6cGxhY2Vob2xkZXIsXG4gIC5tZGMtdGV4dC1maWVsZC0tbm8tbGFiZWwgJjo6cGxhY2Vob2xkZXIsXG4gIC5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCAmOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogNDBtcztcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxMTBtcztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSByZWQgb3V0bGluZSBvbiBmaXJlZm94XG4gICY6aW52YWxpZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC8vIEtlZXAgQ2hyb21lIGF1dG9maWxsIGJlaGluZCB0aGUgbm90Y2hlZCBvdXRsaW5lXG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgei1pbmRleDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gVmVydGljYWxseSBjZW50ZXIgYWxpZ25zIHRoZSB0ZXh0IGlucHV0IHBsYWNlaG9sZGVyIGFuZCB2YWx1ZSBmb3Igb25seSBmaWxsZWQgdmFyaWFudC5cbiAgLm1kYy10ZXh0LWZpZWxkLS1uby1sYWJlbDpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpICYge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICB9XG59XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4vLyBNb3ZlIGxhYmVsIHdoZW4gdGV4dC1maWVsZCBnZXRzIGF1dG8tZmlsbGVkIGluIENocm9tZS5cbi5tZGMtdGV4dC1maWVsZF9faW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCArIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoLjc1KTtcbiAgY3Vyc29yOiBhdXRvO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZm9jdXNlZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGlzYWJsZWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbiB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXdpdGgtbGVhZGluZy1pY29uXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbl87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC13aXRoLXRyYWlsaW5nLWljb25fO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS13aXRoLXRyYWlsaW5nLWljb24ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC13aXRoLWJvdGgtaWNvbnNfO1xufVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLWRlbnNlIC5tZGMtdGV4dC1maWVsZF9faWNvbixcbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICBib3R0b206IDE2cHg7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjgpO1xufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cblxuLm1kYy10ZXh0LWZpZWxkLS13aXRoLWxlYWRpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1kZW5zZS13aXRoLWxlYWRpbmctaWNvbl87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtdHJhaWxpbmctaWNvbl87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ubWRjLXRleHQtZmllbGQtLXdpdGgtdHJhaWxpbmctaWNvbi5tZGMtdGV4dC1maWVsZC0tZGVuc2Uge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1kZW5zZS13aXRoLWJvdGgtaWNvbnNfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLWRlbnNlIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZGVuc2VfO1xufVxuXG5AaW5jbHVkZSBtZGMtcmVxdWlyZWQtdGV4dC1maWVsZC1sYWJlbC1hc3Rlcmlza18ge1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBjb250ZW50OiBcIipcIjtcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYSB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS1mdWxsd2lkdGgge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGhfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLWZ1bGx3aWR0aC5tZGMtdGV4dC1maWVsZC0taW52YWxpZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1pbnZhbGlkXztcbn1cblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdGV4dC1maWVsZC1oZWxwZXItdGV4dFxuLy8gc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4ubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLm1kYy10ZXh0LWZpZWxkLS1kZW5zZSArICYge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuXG4gIC5tZGMtdGV4dC1maWVsZCArICYge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRtZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZS1wYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJG1kYy10ZXh0LWZpZWxkLWhlbHBlci1saW5lLXBhZGRpbmc7XG4gIH1cbn1cbi8vIHN0eWxlbGludC1lbmFibGUgcGx1Z2luL3NlbGVjdG9yLWJlbS1wYXR0ZXJuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGVuZFxuXG4vLyBtZGMtZm9ybS1maWVsZCB0d2Vha3MgdG8gYWxpZ24gdGV4dCBmaWVsZCBsYWJlbCBjb3JyZWN0bHlcbi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC10eXBlXG4ubWRjLWZvcm0tZmllbGQgPiAubWRjLXRleHQtZmllbGQgKyBsYWJlbCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHNlbGVjdG9yLW1heC10eXBlXG5cbi5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLXRleHRhcmVhLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc3Ryb2tlLWNvbG9yKHByaW1hcnkpO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLWludmFsaWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pbnZhbGlkXztcbn1cblxuLm1kYy10ZXh0LWZpZWxkLS10ZXh0YXJlYS5tZGMtdGV4dC1maWVsZC0taW52YWxpZCB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWludmFsaWRfO1xufVxuXG4ubWRjLXRleHQtZmllbGQtLW91dGxpbmVkLm1kYy10ZXh0LWZpZWxkLS1pbnZhbGlkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaW52YWxpZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1kaXNhYmxlZF87XG59XG5cbi5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEubWRjLXRleHQtZmllbGQtLWRpc2FibGVkIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZGlzYWJsZWRfO1xufVxuXG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICB0ZXh0LWZpZWxkLWRlbnNlLFxuICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtcG9zaXRpb24teSxcbiAgMCUsXG4gICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxuKTtcbkBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1rZXlmcmFtZXModGV4dC1maWVsZC1vdXRsaW5lZCwgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXkpO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZSxcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXG4gIDAlLFxuICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGVcbik7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKFxuICB0ZXh0LWZpZWxkLW91dGxpbmVkLWxlYWRpbmctaWNvbixcbiAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14XG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UsXG4gICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2Utd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teCxcbiAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tcnRsLFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSxcbiAgLSRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14XG4pO1xuQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWtleWZyYW1lcyhcbiAgdGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UtcnRsLFxuICAkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UtbGFiZWwtcG9zaXRpb24teSxcbiAgLSRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14LFxuICAkbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtc2NhbGVcbik7XG5AaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2Uta2V5ZnJhbWVzKHRleHRhcmVhLCAkbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtbGFiZWwtcG9zaXRpb24teSwgMCUpO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG4kbWRjLXRleHQtZmllbGQtZXJyb3I6IGVycm9yICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjEyKSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4wNikgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaWNvbjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjMpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWhvdmVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWlkbGU6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC40MikgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtbGFiZWw6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC42KSAhZGVmYXVsdDtcblxuJG1kYy10ZXh0LWZpZWxkLWluay1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjYpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZm9jdXNlZC1sYWJlbC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShwcmltYXJ5KSwgLjg3KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1wbGFjZWhvbGRlci1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC41NCkgIWRlZmF1bHQ7XG5cbiRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1sYWJlbC1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM3KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1pbmstY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zNykgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaGVscGVyLXRleHQtY29sb3I6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4zNykgIWRlZmF1bHQ7XG5cbiRtZGMtdGV4dC1maWVsZC1iYWNrZ3JvdW5kOiBtaXgobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIG1kYy10aGVtZS1wcm9wLXZhbHVlKHN1cmZhY2UpLCA0JSkgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtYmFja2dyb3VuZDogbWl4KG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCBtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgMiUpICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLXNlY29uZGFyeS10ZXh0OiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuNikgIWRlZmF1bHQ7XG5cbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1pZGxlLWJvcmRlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjM4KSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZC1ib3JkZXI6IHJnYmEobWRjLXRoZW1lLXByb3AtdmFsdWUob24tc3VyZmFjZSksIC4wNikgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaG92ZXItYm9yZGVyOiByZ2JhKG1kYy10aGVtZS1wcm9wLXZhbHVlKG9uLXN1cmZhY2UpLCAuODcpICFkZWZhdWx0O1xuXG4kbWRjLXRleHRhcmVhLWJvcmRlcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjczKSAhZGVmYXVsdDtcbiRtZGMtdGV4dGFyZWEtYmFja2dyb3VuZDogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShzdXJmYWNlKSwgMSkgIWRlZmF1bHQ7XG4kbWRjLXRleHRhcmVhLWRpc2FibGVkLWJvcmRlci1jb2xvcjogcmdiYShtZGMtdGhlbWUtcHJvcC12YWx1ZShvbi1zdXJmYWNlKSwgLjI2KSAhZGVmYXVsdDtcbi8vIGNhbm5vdCBiZSB0cmFuc3BhcmVudCBiZWNhdXNlIG11bHRpbGluZSB0ZXh0YXJlYSBpbnB1dFxuLy8gd2lsbCBtYWtlIHRleHQgdW5yZWFkYWJsZVxuJG1kYy10ZXh0YXJlYS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMjQ5LCAyNDksIDEpICFkZWZhdWx0O1xuXG4kbWRjLXRleHQtZmllbGQtaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWxhYmVsLXBvc2l0aW9uLXk6IDUwJSAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1sYWJlbC1vZmZzZXQ6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtZGVuc2UtbGFiZWwtcG9zaXRpb24teTogNzAlICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlOiAuOCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1sYWJlbC1wb3NpdGlvbi15OiAxMzAlICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXk6IDEyMCUgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtb3V0bGluZWQtd2l0aC1sZWFkaW5nLWljb24tbGFiZWwtcG9zaXRpb24teDogMCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS13aXRoLWxlYWRpbmctaWNvbi1sYWJlbC1wb3NpdGlvbi14OiAyMXB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWxhYmVsLXBvc2l0aW9uLXk6IDEzMCUgIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuLy8gTm90ZSB0aGF0IHRoZSBzY2FsZSBmYWN0b3IgaXMgYW4gZXllYmFsbGVkIGFwcHJveGltYXRpb24gb2Ygd2hhdCdzIHNob3duIGluIHRoZSBtb2Nrcy5cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2Zsb2F0aW5nLWxhYmVsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9saW5lLXJpcHBsZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvbm90Y2hlZC1vdXRsaW5lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9ub3RjaGVkLW91dGxpbmUvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9zaGFwZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiaGVscGVyLXRleHQvbWl4aW5zXCI7XG5AaW1wb3J0IFwiY2hhcmFjdGVyLWNvdW50ZXIvbWl4aW5zXCI7XG5AaW1wb3J0IFwiaWNvbi9taXhpbnNcIjtcbkBpbXBvcnQgXCJpY29uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi9mdW5jdGlvbnNcIjtcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcbiAgQGlmIGxlbmd0aCgkcmFkaXVzKSA+IDIge1xuICAgIEBlcnJvciBcIkludmFsaWQgcmFkaXVzOiAnI3skcmFkaXVzfScgY29tcG9uZW50IGRvZXNuJ3QgYWxsb3cgY3VzdG9taXppbmcgYWxsIGNvcm5lcnNcIjtcbiAgfVxuXG4gICRtYXNrZWQtcmFkaXVzOiBtZGMtc2hhcGUtbWFzay1yYWRpdXMoJHJhZGl1cywgMSAxIDAgMCk7XG5cbiAgQGluY2x1ZGUgbWRjLXNoYXBlLXJhZGl1cyhcbiAgICBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLXRleHQtZmllbGQtaGVpZ2h0LCAkbWFza2VkLXJhZGl1cyksXG4gICAgJHJ0bC1yZWZsZXhpdmVcbiAgKTtcbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1zaGFwZS1yYWRpdXMoJHJhZGl1cywgJHJ0bC1yZWZsZXhpdmUpO1xufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZmlsbC1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc3Ryb2tlLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc3Ryb2tlLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1maWxsLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZmlsbC1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZnVsbHdpZHRoLWJvdHRvbS1saW5lLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1ib3R0b20tbGluZS1jb2xvcigkY29sb3IpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tb3V0bGluZWQpOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLWRpc2FibGVkKTpub3QoLm1kYy10ZXh0LWZpZWxkLS1vdXRsaW5lZCk6bm90KC5tZGMtdGV4dC1maWVsZC0tdGV4dGFyZWEpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtbGluZS1yaXBwbGUtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1saW5lLXJpcHBsZS1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtbGFiZWwtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1sYWJlbC1pbmstY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mb2N1c2VkLW91dGxpbmUtY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWNhcmV0LWNvbG9yKCRjb2xvcikge1xuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjYXJldC1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG4vLyBQcml2YXRlIG1peGluc1xuXG4vLyBCYXNlbGluZVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZGlzYWJsZWRfIHtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1ib3JkZXIpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pbmstY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1pbmstY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1sYWJlbC1pbmstY29sb3JfKCRtZGMtdGV4dC1maWVsZC1kaXNhYmxlZC1sYWJlbC1jb2xvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LWNvbG9yXygkbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtaGVscGVyLXRleHQtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWhlbHBlci10ZXh0LWNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcl8oJG1kYy10ZXh0LWZpZWxkLWRpc2FibGVkLWljb24pO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3JfKCRtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3IpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yXygkbWRjLXRleHQtZmllbGQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pbnZhbGlkXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLWJvdHRvbS1saW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LXZhbGlkYXRpb24tY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtY2FyZXQtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcblxuICBAaW5jbHVkZSBtZGMtcmVxdWlyZWQtdGV4dC1maWVsZC1sYWJlbC1hc3Rlcmlza18ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xuICB9XG5cbiAgJi5tZGMtdGV4dC1maWVsZC0td2l0aC10cmFpbGluZy1pY29uIHtcbiAgICAmOm5vdCgubWRjLXRleHQtZmllbGQtLXdpdGgtbGVhZGluZy1pY29uKSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gICAgfVxuXG4gICAgJi5tZGMtdGV4dC1maWVsZC0td2l0aC1sZWFkaW5nLWljb24ge1xuICAgICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IsIC8qIHN0eWxlU2Vjb25kSWNvbiAqLyB0cnVlKTtcbiAgICB9XG4gIH1cblxuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQtLXZhbGlkYXRpb24tbXNnIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mb2N1c2VkXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1mb2N1c2VkLWxhYmVsLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtZGMtcmVxdWlyZWQtdGV4dC1maWVsZC1sYWJlbC1hc3Rlcmlza18ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkbWRjLXRleHQtZmllbGQtZm9jdXNlZC1sYWJlbC1jb2xvcik7XG4gIH1cblxuICArIC5tZGMtdGV4dC1maWVsZC1oZWxwZXItbGluZSAubWRjLXRleHQtZmllbGQtaGVscGVyLXRleHQ6bm90KC5tZGMtdGV4dC1maWVsZC1oZWxwZXItdGV4dC0tdmFsaWRhdGlvbi1tc2cpIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1kZW5zZV8ge1xuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXG4gICAgMCUsXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXG4gICk7XG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1kZW5zZSk7XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgcGFkZGluZzogMTJweCAxMnB4IDA7XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBmb250LXNpemU6IC44MTNyZW07XG5cbiAgICAmLS1mbG9hdC1hYm92ZSB7XG4gICAgICBmb250LXNpemU6IC44MTNyZW07XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtcmVxdWlyZWQtdGV4dC1maWVsZC1sYWJlbC1hc3Rlcmlza18oKSB7XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6cmVxdWlyZWQgfiB7XG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIsXG4gICAgLm1kYy1ub3RjaGVkLW91dGxpbmUgLm1kYy1mbG9hdGluZy1sYWJlbDo6YWZ0ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogZmFsc2UpIHtcbiAgJHJlc29sdmVkLXJhZGl1czogbnRoKG1kYy1zaGFwZS1yZXNvbHZlLXBlcmNlbnRhZ2UtcmFkaXVzKCRtZGMtdGV4dC1maWVsZC1oZWlnaHQsIG1kYy1zaGFwZS1wcm9wLXZhbHVlKCRyYWRpdXMpKSwgMSk7XG5cbiAgQGlmIChsZW5ndGgobWRjLXNoYXBlLXByb3AtdmFsdWUoJHJhZGl1cykpID4gMSkge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGhcbiAgICBAd2FybiBcIm1kYy10ZXh0LWZpZWxkLW91dGxpbmUtc2hhcGUtcmFkaXVzIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgcmFkaXVzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvaXNzdWVzLzQxNDBcIjtcbiAgfVxuXG4gIC5tZGMtbm90Y2hlZC1vdXRsaW5lIHtcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLXNoYXBlLXJhZGl1cygkcmVzb2x2ZWQtcmFkaXVzLCAkcnRsLXJlZmxleGl2ZSk7XG4gIH1cblxuICBAaWYgKCRyZXNvbHZlZC1yYWRpdXMgPiAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSB7XG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wcm9wZXJ0eShwYWRkaW5nLCAkcmVzb2x2ZWQtcmFkaXVzICsgJG1kYy1ub3RjaGVkLW91dGxpbmUtcGFkZGluZywgMCk7XG4gICAgfVxuXG4gICAgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUge1xuICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcHJvcGVydHkocGFkZGluZywgJHJlc29sdmVkLXJhZGl1cyArICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmcsICRyZXNvbHZlZC1yYWRpdXMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtZmxvYXRpbmctbGFiZWxfIHtcbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWxhYmVsLW9mZnNldCk7XG5cbiAgICB0b3A6IDE4cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLS10ZXh0YXJlYSB7XG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nKTtcbiAgICB9XG4gIH1cblxuICAmLS1vdXRsaW5lZCB7XG4gICAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLW5vdGNoZWQtb3V0bGluZS1wYWRkaW5nKTtcblxuICAgICAgdG9wOiAxN3B4O1xuICAgIH1cblxuICAgICYtLXdpdGgtbGVhZGluZy1pY29uIHtcbiAgICAgIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAoJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyAtICRtZGMtbm90Y2hlZC1vdXRsaW5lLWxlYWRpbmctd2lkdGgpKTtcblxuICAgICAgICAmLS1mbG9hdC1hYm92ZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24oXG4gICAgICAgICAgICBsZWZ0LFxuICAgICAgICAgICAgKCRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcgLSAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKSArICRtZGMtbm90Y2hlZC1vdXRsaW5lLXBhZGRpbmdcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE91dGxpbmVkXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZF8ge1xuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kaXNhYmxlZC1ib3JkZXIpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yXyh0cmFuc3BhcmVudCk7XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaW52YWxpZF8ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1mb2N1c2VkXyB7XG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtc3Ryb2tlLXdpZHRoKDJweCk7XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZV8ge1xuICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWZsb2F0aW5nLWxhYmVsLWZsb2F0LXBvc2l0aW9uKFxuICAgICRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1kZW5zZS1sYWJlbC1wb3NpdGlvbi15LFxuICAgIDAlLFxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1sYWJlbC1zY2FsZVxuICApO1xuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQtZGVuc2UpO1xuXG4gIGhlaWdodDogNDhweDtcblxuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBwYWRkaW5nOiAxMnB4IDEycHggN3B4O1xuICB9XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgdG9wOiAxNHB4O1xuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICB0b3A6IDEycHg7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWlkbGUtYm9yZGVyKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtaG92ZXItb3V0bGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtaG92ZXItYm9yZGVyKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKHByaW1hcnkpO1xuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLXNoYXBlLXJhZGl1cyhzbWFsbCk7XG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXkpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcblxuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDE0cHg7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IC8vIEZGIGFkZHMgdW53YW50ZWQgYm9yZGVyIGluIEhDIG1vZGUgb24gd2luZG93cy5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1ob3Zlci1vdXRsaW5lLWNvbG9yXygkY29sb3IpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkKSB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWNvbWJpbmF0b3Itc3BhY2UtYWZ0ZXJcbiAgICAubWRjLXRleHQtZmllbGRfX2lucHV0OmhvdmVyIH4sXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pY29uOmhvdmVyIH4ge1xuICAgICAgLm1kYy1ub3RjaGVkLW91dGxpbmUge1xuICAgICAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mb2N1c2VkLW91dGxpbmUtY29sb3JfKCRjb2xvcikge1xuICAmLm1kYy10ZXh0LWZpZWxkLS1mb2N1c2VkIHtcbiAgICBAaW5jbHVkZSBtZGMtbm90Y2hlZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XG4gIH1cbn1cblxuLy8gSWNvbnNcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXdpdGgtbGVhZGluZy1pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXG4gICAgbGVmdCxcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nLFxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXG4gICk7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXG4gICAgbGVmdCxcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wb3NpdGlvbixcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nLFxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXG4gICk7XG5cbiAgLm1kYy1mbG9hdGluZy1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24obGVmdCwgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcGFkZGluZyk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLXdpdGgtbGVhZGluZy1pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXG4gICAgbGVmdCxcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nLFxuICAgICRtZGMtdGV4dC1maWVsZC1pbnB1dC1wYWRkaW5nXG4gICk7XG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWxhYmVsLXBvc2l0aW9uLXksIDMycHgpO1xuICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uKTtcblxuICBAaW5jbHVkZSBtZGMtcnRsIHtcbiAgICBAaW5jbHVkZSBtZGMtZmxvYXRpbmctbGFiZWwtc2hha2UtYW5pbWF0aW9uKHRleHQtZmllbGQtb3V0bGluZWQtbGVhZGluZy1pY29uLXJ0bCk7XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1wb3NpdGlvbihsZWZ0LCAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nIC0gJG1kYy1ub3RjaGVkLW91dGxpbmUtbGVhZGluZy13aWR0aCk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy1ub3RjaGVkLW91dGxpbmUtZmxvYXRpbmctbGFiZWwtZmxvYXQtcG9zaXRpb24oXG4gICAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLWxhYmVsLXBvc2l0aW9uLXksXG4gICAgJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRlbnNlLXdpdGgtbGVhZGluZy1pY29uLWxhYmVsLXBvc2l0aW9uLXgsXG4gICAgJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWxhYmVsLXNjYWxlXG4gICk7XG4gIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UpO1xuXG4gIEBpbmNsdWRlIG1kYy1ydGwge1xuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1zaGFrZS1hbmltYXRpb24odGV4dC1maWVsZC1vdXRsaW5lZC1sZWFkaW5nLWljb24tZGVuc2UtcnRsKTtcbiAgfVxuXG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKGxlZnQsICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmcgLSAkbWRjLW5vdGNoZWQtb3V0bGluZS1sZWFkaW5nLXdpZHRoKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtd2l0aC10cmFpbGluZy1pY29uXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oXG4gICAgcmlnaHQsXG4gICAgJG1kYy10ZXh0LWZpZWxkLXRyYWlsaW5nLWljb24tcG9zaXRpb24sXG4gICAgJG1kYy10ZXh0LWZpZWxkLWljb24tcGFkZGluZyxcbiAgICAkbWRjLXRleHQtZmllbGQtaW5wdXQtcGFkZGluZ1xuICApO1xuXG4gIC8vIE91dGxpbmVkIHVzZXMgMTZweCBmb3IgdGV4dCBhbGlnbm1lbnQgd2hlbiB1c2luZyBhIHRyYWlsaW5nIGljb24uXG4gICYubWRjLXRleHQtZmllbGQtLW91dGxpbmVkIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKFxuICAgICAgcmlnaHQsXG4gICAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcbiAgICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmcsXG4gICAgICAkbWRjLXRleHQtZmllbGQtaW5wdXQtcGFkZGluZ1xuICAgICk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtdHJhaWxpbmctaWNvbl8ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb25fKFxuICAgIHJpZ2h0LFxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBvc2l0aW9uLFxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmcsXG4gICAgJG1kYy10ZXh0LWZpZWxkLWlucHV0LXBhZGRpbmdcbiAgKTtcbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXdpdGgtYm90aC1pY29uc18ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb24tdHdvLWljb25zXyhcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wb3NpdGlvbixcbiAgICAkbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nLFxuICAgICRtZGMtdGV4dC1maWVsZC10cmFpbGluZy1pY29uLXBvc2l0aW9uLFxuICAgICRtZGMtdGV4dC1maWVsZC1pY29uLXBhZGRpbmdcbiAgKTtcbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWRlbnNlLXdpdGgtYm90aC1pY29uc18ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb24tdHdvLWljb25zXyhcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wb3NpdGlvbixcbiAgICAkbWRjLXRleHQtZmllbGQtZGVuc2UtaWNvbi1wYWRkaW5nLFxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBvc2l0aW9uLFxuICAgICRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBhZGRpbmdcbiAgKTtcbn1cblxuLy8gRnVsbCBXaWR0aFxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aF8ge1xuICB3aWR0aDogMTAwJTtcblxuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgQGluY2x1ZGUgbWRjLXN0YXRlcy1iYXNlLWNvbG9yKHRyYW5zcGFyZW50KTtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gICYubWRjLXRleHQtZmllbGQtLXRleHRhcmVhIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1pbnZhbGlkXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZ1bGx3aWR0aC1ib3R0b20tbGluZS1jb2xvcigkbWRjLXRleHQtZmllbGQtZXJyb3IpO1xufVxuXG4vLyBUZXh0YXJlYVxuQG1peGluIG1kYy10ZXh0LWZpZWxkLXRleHRhcmVhLWRpc2FibGVkXyB7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWRpc2FibGVkXztcbiAgLyogQGFsdGVybmF0ZSAqL1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYS1maWxsLWNvbG9yXygkbWRjLXRleHRhcmVhLWRpc2FibGVkLWJhY2tncm91bmQpO1xufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtaW52YWxpZF8ge1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLWVycm9yKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtZm9jdXNlZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1lcnJvcik7XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC10ZXh0YXJlYV8ge1xuICAvLyBOb3RlOiBUaGUgcmVmYWN0b3IgdG8gYWRkIHRoZSBmaWxsZWQgdGV4dGFyZWEgc3R5bGUgd2lsbCByZXN1bHQgaW4gYSBsb3Qgb2YgdGhlIHNwZWNpZmljaXR5IGlzc3VlcyB0aGF0IHRoZVxuICAvLyB0ZXh0YXJlYSBoYXMgYmVpbmcgcmVzb2x2ZWQgYnkgdXNpbmcgdGhlIHNhbWUgLS1vdXRsaW5lZCB2YXJpYW50IGNsYXNzIGFzIHRoZSB0ZXh0IGZpZWxkLlxuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1vdXRsaW5lLWNvbG9yKCRtZGMtdGV4dC1maWVsZC1vdXRsaW5lZC1pZGxlLWJvcmRlcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWhvdmVyLW91dGxpbmUtY29sb3IoJG1kYy10ZXh0LWZpZWxkLW91dGxpbmVkLWhvdmVyLWJvcmRlcik7XG4gIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWZvY3VzZWQtb3V0bGluZS1jb2xvcihwcmltYXJ5KTtcbiAgQGluY2x1ZGUgbWRjLWZsb2F0aW5nLWxhYmVsLXNoYWtlLWFuaW1hdGlvbih0ZXh0LWZpZWxkLW91dGxpbmVkKTtcbiAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZS1zaGFwZS1yYWRpdXMoc21hbGwpO1xuICBAaW5jbHVkZSBtZGMtc3RhdGVzLWJhc2UtY29sb3IodHJhbnNwYXJlbnQpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1maWxsLWNvbG9yKHRyYW5zcGFyZW50KTtcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1mbG9hdGluZy1sYWJlbC1mbG9hdC1wb3NpdGlvbigkbWRjLXRleHQtZmllbGQtb3V0bGluZWQtbGFiZWwtcG9zaXRpb24teSwgMCUpO1xuICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1wb3NpdGlvbigxNnB4LCAxM3B4KTtcblxuICAkcGFkZGluZy1pbnNldDogMTZweDtcblxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgYWxpZ24tc2VsZjogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46ICRwYWRkaW5nLWluc2V0LzIgMXB4IDFweCAwO1xuICAgIHBhZGRpbmc6IDAgJHBhZGRpbmctaW5zZXQgJHBhZGRpbmctaW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyICsgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDsgLy8gTGVhdmVzIHNwYWNlIGZvciBjaGFyYWN0ZXIgY291bnRlciBpZiBpdCBleGlzdHMuXG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICAubWRjLWZsb2F0aW5nLWxhYmVsIHtcbiAgICB0b3A6IDE3cHg7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgJi5tZGMtdGV4dC1maWVsZC0tZm9jdXNlZCB7XG4gICAgQGluY2x1ZGUgbWRjLXRleHQtZmllbGQtb3V0bGluZWQtZm9jdXNlZF87XG4gIH1cbn1cblxuLy8gQ3VzdG9taXphdGlvblxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaW5rLWNvbG9yXygkY29sb3IpIHtcbiAgLm1kYy10ZXh0LWZpZWxkX19pbnB1dCB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWZpbGwtY29sb3JfKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtc3Ryb2tlLWNvbG9yXygkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLW5vdGNoZWQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtdGV4dGFyZWEtZmlsbC1jb2xvcl8oJGNvbG9yKSB7XG4gIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJhY2tncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1mdWxsd2lkdGgtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xuICAmOm5vdCgubWRjLXRleHQtZmllbGQtLXRleHRhcmVhKSB7XG4gICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoYm9yZGVyLWJvdHRvbS1jb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtYm90dG9tLWxpbmUtY29sb3JfKCRjb2xvcikge1xuICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChib3JkZXItYm90dG9tLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1ob3Zlci1ib3R0b20tbGluZS1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQ6aG92ZXIge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGJvcmRlci1ib3R0b20tY29sb3IsICRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWxpbmUtcmlwcGxlLWNvbG9yXygkY29sb3IpIHtcbiAgLm1kYy1saW5lLXJpcHBsZSB7XG4gICAgQGluY2x1ZGUgbWRjLWxpbmUtcmlwcGxlLWNvbG9yKCRjb2xvcik7XG4gIH1cbn1cblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWxhYmVsLWluay1jb2xvcl8oJGNvbG9yKSB7XG4gIC5tZGMtZmxvYXRpbmctbGFiZWwge1xuICAgIEBpbmNsdWRlIG1kYy1mbG9hdGluZy1sYWJlbC1pbmstY29sb3IoJGNvbG9yKTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbiRtZGMtdGV4dC1maWVsZC1pY29uLXBvc2l0aW9uOiAxNnB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLXRyYWlsaW5nLWljb24tcG9zaXRpb246IDEycHggIWRlZmF1bHQ7XG4kbWRjLXRleHQtZmllbGQtaWNvbi1wYWRkaW5nOiA0OHB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcGFkZGluZzogNDRweCAhZGVmYXVsdDtcbiRtZGMtdGV4dC1maWVsZC1kZW5zZS1pY29uLXBvc2l0aW9uOiAxMnB4ICFkZWZhdWx0O1xuJG1kYy10ZXh0LWZpZWxkLWRlbnNlLWljb24tcGFkZGluZzogMzhweCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4vLyBQdWJsaWMgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pY29uLWNvbG9yKCRjb2xvciwgJHN0eWxlU2Vjb25kSWNvbjogZmFsc2UpIHtcbiAgJjpub3QoLm1kYy10ZXh0LWZpZWxkLS1kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIG1kYy10ZXh0LWZpZWxkLWljb24tY29sb3JfKCRjb2xvciwgJHN0eWxlU2Vjb25kSWNvbik7XG4gIH1cbn1cblxuLy8gUHJpdmF0ZSBtaXhpbnNcblxuQG1peGluIG1kYy10ZXh0LWZpZWxkLWljb24taG9yaXpvbnRhbC1wb3NpdGlvbl8oJHBvc2l0aW9uLXByb3BlcnR5LCAkcG9zaXRpb24sICRwYWRkaW5nLCAkaW5wdXQtcGFkZGluZykge1xuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXBvc2l0aW9uKCRwb3NpdGlvbi1wcm9wZXJ0eSwgJHBvc2l0aW9uKTtcbiAgfVxuXG4gIC8vIE1vdmUgdGhlIGlucHV0J3MgcG9zaXRpb24sIHRvIGFsbG93IHJvb20gZm9yIHRoZSBpY29uXG4gIEBpZiAoJHBvc2l0aW9uLXByb3BlcnR5ID09IGxlZnQpIHtcbiAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRwYWRkaW5nLCAkaW5wdXQtcGFkZGluZyk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAubWRjLXRleHQtZmllbGRfX2lucHV0IHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRpbnB1dC1wYWRkaW5nLCAkcGFkZGluZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1pY29uLWhvcml6b250YWwtcG9zaXRpb24tdHdvLWljb25zXyhcbiAgJHBvc2l0aW9uLWxlZnQsXG4gICRwYWRkaW5nLWxlZnQsXG4gICRwb3NpdGlvbi1yaWdodCxcbiAgJHBhZGRpbmctcmlnaHRcbikge1xuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlKGxlZnQsICRwb3NpdGlvbi1sZWZ0LCByaWdodCwgYXV0byk7XG5cbiAgICB+IC5tZGMtdGV4dC1maWVsZF9faWNvbiB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZShyaWdodCwgJHBvc2l0aW9uLXJpZ2h0LCBsZWZ0LCBhdXRvKTtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHRoZSBpbnB1dCdzIHBvc2l0aW9uLCB0byBhbGxvdyByb29tIGZvciB0aGUgaWNvbnMuXG4gIC5tZGMtdGV4dC1maWVsZF9faW5wdXQge1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLXByb3BlcnR5KHBhZGRpbmcsICRwYWRkaW5nLWxlZnQsICRwYWRkaW5nLXJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtaWNvbi1jb2xvcl8oJGNvbG9yLCAkc3R5bGVTZWNvbmRJY29uOiBmYWxzZSkge1xuICAubWRjLXRleHQtZmllbGRfX2ljb24ge1xuICAgIEBpZiAoJHN0eWxlU2Vjb25kSWNvbikge1xuICAgICAgLy8gU2VsZWN0IHRoZSBzZWNvbmQgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyByZWdhcmRsZXNzIG9mIGVsZW1lbnQgdHlwZS5cbiAgICAgIH4gLm1kYy10ZXh0LWZpZWxkX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcblxuLy8gUHVibGljIG1peGluc1xuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItY29sb3IoJGNvbG9yKSB7XG4gICY6bm90KC5tZGMtdGV4dC1maWVsZC0tZGlzYWJsZWQpIHtcbiAgICBAaW5jbHVkZSBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1jb2xvcl8oJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRleHQtZmllbGQtY2hhcmFjdGVyLWNvdW50ZXItcG9zaXRpb24oJHhPZmZzZXQsICR5T2Zmc2V0KSB7XG4gIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlciB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtcG9zaXRpb24ocmlnaHQsICR4T2Zmc2V0KTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206ICR5T2Zmc2V0O1xuICB9XG59XG5cbi8vIFByaXZhdGUgbWl4aW5zXG5cbkBtaXhpbiBtZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlci1jb2xvcl8oJGNvbG9yKSB7XG4gIC8vIENoYXJhY3RlciBjb3VudGVyIGlzIHBsYWNlZCBpbnNpZGUgbWRjLXRleHRmaWVsZCBlbGVtZW50IChmb3IgdGV4dGFyZWEgdmFyaWFudCApIG9yXG4gIC8vIGluc2lkZSBoZWxwZXIgbGluZSB3aGljaCBpcyBzaWJsaW5nIHRvIG1kYy10ZXh0ZmllbGQuXG4gIC5tZGMtdGV4dC1maWVsZC1jaGFyYWN0ZXItY291bnRlcixcbiAgKyAubWRjLXRleHQtZmllbGQtaGVscGVyLWxpbmUgLm1kYy10ZXh0LWZpZWxkLWNoYXJhY3Rlci1jb3VudGVyIHtcbiAgICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgfVxufVxuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE3IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbkBpbXBvcnQgXCJAbWF0ZXJpYWwvZWxldmF0aW9uL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC9yaXBwbGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3J0bC9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvdGhlbWUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3R5cG9ncmFwaHkvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuL3ZhcmlhYmxlc1wiO1xuXG4vLyBwb3N0Y3NzLWJlbS1saW50ZXI6IGRlZmluZSB0b29sYmFyXG4ubWRjLXRvb2xiYXIge1xuICBAaW5jbHVkZSBtZGMtdG9vbGJhci1maWxsLWNvbG9yLWFjY2Vzc2libGUocHJpbWFyeSk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAkbWRjLXRvb2xiYXItcm93LWhlaWdodDtcblxuICAgIC8vIFRPRE86IHJlZmFjdG9yIHRoaXMgb3V0IHdoZW4gIzIzIGlzIGltcGxlbWVudGVkXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZGMtdG9vbGJhci1tb2JpbGUtbGFuZHNjYXBlLXdpZHRoLWJyZWFrcG9pbnQpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgbWluLWhlaWdodDogJG1kYy10b29sYmFyLW1vYmlsZS1sYW5kc2NhcGUtcm93LWhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiByZWZhY3RvciB0aGlzIG91dCB3aGVuICMyMyBpcyBpbXBsZW1lbnRlZFxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWRjLXRvb2xiYXItbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgICAgIG1pbi1oZWlnaHQ6ICRtZGMtdG9vbGJhci1tb2JpbGUtcm93LWhlaWdodDtcbiAgICB9XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogJG1kYy10b29sYmFyLWVsZW1lbnQtc2VjdGlvbi1wYWRkaW5nO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kYy10b29sYmFyLW1vYmlsZS1sYW5kc2NhcGUtd2lkdGgtYnJlYWtwb2ludCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWRjLXRvb2xiYXItbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgICAgIHBhZGRpbmc6ICRtZGMtdG9vbGJhci1lbGVtZW50LW1vYmlsZS1zZWN0aW9uLXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLS1hbGlnbi1zdGFydCB7XG4gICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgXCJsZWZ0XCIsICRtZGMtdG9vbGJhci1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZyk7XG5cbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIG9yZGVyOiAtMTtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZGMtdG9vbGJhci1tb2JpbGUtbGFuZHNjYXBlLXdpZHRoLWJyZWFrcG9pbnQpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgXCJsZWZ0XCIsICRtZGMtdG9vbGJhci1tb2JpbGUtc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1kYy10b29sYmFyLW1vYmlsZS1icmVha3BvaW50KSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCBcImxlZnRcIiwgJG1kYy10b29sYmFyLW1vYmlsZS1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tYWxpZ24tZW5kIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCBcInJpZ2h0XCIsICRtZGMtdG9vbGJhci1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZyk7XG5cbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBvcmRlcjogMTtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZGMtdG9vbGJhci1tb2JpbGUtbGFuZHNjYXBlLXdpZHRoLWJyZWFrcG9pbnQpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgXCJyaWdodFwiLCAkbWRjLXRvb2xiYXItbW9iaWxlLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZGMtdG9vbGJhci1tb2JpbGUtYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgXCJyaWdodFwiLCAkbWRjLXRvb2xiYXItbW9iaWxlLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXR5cG9ncmFwaHkoaGVhZGxpbmU2KTtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeS1vdmVyZmxvdy1lbGxpcHNpcztcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gobWFyZ2luLCBsZWZ0LCAkbWRjLXRvb2xiYXItZWxlbWVudC1ob3Jpem9udGFsLXBhZGRpbmctZGVza3RvcCk7XG5cbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTJweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICZfX2ljb24sXG4gICZfX21lbnUtaWNvbiB7XG4gICAgQGluY2x1ZGUgbWRjLXRvb2xiYXItaWNvbl87XG4gIH1cbn1cblxuLm1kYy10b29sYmFyX19tZW51LWljb24gKyAubWRjLXRvb2xiYXJfX3RpdGxlIHtcbiAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgJG1kYy10b29sYmFyLXRpdGxlLW1hcmdpbi10by1tZW51LWljb24tZGVza3RvcCk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkbWRjLXRvb2xiYXItbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgLm1kYy10b29sYmFyX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KG1hcmdpbiwgbGVmdCwgJG1kYy10b29sYmFyLWVsZW1lbnQtaG9yaXpvbnRhbC1wYWRkaW5nLW1vYmlsZSk7XG4gIH1cbn1cblxuLm1kYy10b29sYmFyLS1maXhlZCB7XG4gIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNCk7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDQ7XG59XG5cbi5tZGMtdG9vbGJhci0tZmxleGlibGUge1xuICAvLyBiZW0gbGludGVyIGlzIGRpc2FibGVkIGJlY2F1c2UgaXQgY2Fubm90IGNvcnJlY3RseSByZWNvbmNpbGUgbWRjIHByZWZpeCBmb3IgY3NzIHZhcmlhYmxlcy5cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAtLW1kYy10b29sYmFyLXJhdGlvLXRvLWV4dGVuZC1mbGV4aWJsZTogI3skbWRjLXRvb2xiYXItcmF0aW8tdG8tZXh0ZW5kLWZsZXhpYmxlfTtcblxuICAubWRjLXRvb2xiYXJfX3JvdzpmaXJzdC1jaGlsZCB7XG4gICAgaGVpZ2h0OiAkbWRjLXRvb2xiYXItcm93LWhlaWdodCAqICRtZGMtdG9vbGJhci1yYXRpby10by1leHRlbmQtZmxleGlibGU7XG4gICAgaGVpZ2h0OlxuICAgICAgY2FsYyhcbiAgICAgICAgI3skbWRjLXRvb2xiYXItcm93LWhlaWdodH0gKlxuICAgICAgICB2YXIoLS1tZGMtdG9vbGJhci1yYXRpby10by1leHRlbmQtZmxleGlibGUsICN7JG1kYy10b29sYmFyLXJhdGlvLXRvLWV4dGVuZC1mbGV4aWJsZX0pXG4gICAgICApO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZGMtdG9vbGJhci1tb2JpbGUtYnJlYWtwb2ludCkge1xuICAgICAgaGVpZ2h0OiAkbWRjLXRvb2xiYXItbW9iaWxlLXJvdy1oZWlnaHQgKiAkbWRjLXRvb2xiYXItcmF0aW8tdG8tZXh0ZW5kLWZsZXhpYmxlO1xuICAgICAgaGVpZ2h0OlxuICAgICAgICBjYWxjKFxuICAgICAgICAgICN7JG1kYy10b29sYmFyLW1vYmlsZS1yb3ctaGVpZ2h0fSAqXG4gICAgICAgICAgdmFyKC0tbWRjLXRvb2xiYXItcmF0aW8tdG8tZXh0ZW5kLWZsZXhpYmxlLCAjeyRtZGMtdG9vbGJhci1yYXRpby10by1leHRlbmQtZmxleGlibGV9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIC8vIFRoZSBzdHlsZSBlbnN1cmVzIHRoZSBwc2V1ZG8gZWxlbWVudCB3aWxsIGJlIGRlZmluZWQgYW5kIGNhbiBlYXNpbHkgYmUgc3R5bGVkXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuICAvLyBiZW0gbGludGVyIGlzIGRpc2FibGVkIGJlY2F1c2UgaXQgY2Fubm90IGhhbmRsZSBtdWx0aXBsZSB0b3AgbGV2ZWwgc2VsZWN0b3JcbiAgJi1kZWZhdWx0LWJlaGF2aW9yIHtcbiAgICAubWRjLXRvb2xiYXJfX3RpdGxlIHtcbiAgICAgIEBpbmNsdWRlIG1kYy10eXBvZ3JhcGh5KGhlYWRsaW5lNik7XG5cbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAubWRjLXRvb2xiYXJfX3JvdzpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5tZGMtdG9vbGJhci0tZmxleGlibGUtc3BhY2UtbWluaW1pemVkIHtcbiAgICAgIC5tZGMtdG9vbGJhcl9fcm93OmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZGMtdG9vbGJhcl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogI3ttYXAtZ2V0KCRtZGMtdHlwb2dyYXBoeS1mb250LXdlaWdodC12YWx1ZXMsIG1lZGl1bSl9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubWRjLXRvb2xiYXItLXdhdGVyZmFsbCB7XG4gICYubWRjLXRvb2xiYXItLWZpeGVkIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDApO1xuXG4gICAgdHJhbnNpdGlvbjogbWRjLWVsZXZhdGlvbi10cmFuc2l0aW9uLXZhbHVlKCk7XG4gICAgd2lsbC1jaGFuZ2U6ICRtZGMtZWxldmF0aW9uLXByb3BlcnR5O1xuXG4gICAgJi5tZGMtdG9vbGJhci0tZmxleGlibGUtc3BhY2UtbWluaW1pemVkIHtcbiAgICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oNCk7XG4gICAgfVxuXG4gICAgJi5tZGMtdG9vbGJhci0tZml4ZWQtbGFzdHJvdy1vbmx5IHtcbiAgICAgICYubWRjLXRvb2xiYXItLWZsZXhpYmxlLXNwYWNlLW1pbmltaXplZCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24oMCk7XG4gICAgICB9XG5cbiAgICAgICYubWRjLXRvb2xiYXItLWZpeGVkLWF0LWxhc3Qtcm93IHtcbiAgICAgICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbig0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8vIHBvc3Rjc3MtYmVtLWxpbnRlcjogZW5kXG4vLyBzdHlsZWxpbnQtZW5hYmxlIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuXG4ubWRjLXRvb2xiYXItZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9vbGJhci1yb3ctaGVpZ2h0O1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkbWRjLXRvb2xiYXItbW9iaWxlLWxhbmRzY2FwZS13aWR0aC1icmVha3BvaW50KSBhbmQgKG1heC1oZWlnaHQ6ICRtZGMtdG9vbGJhci1tb2JpbGUtYnJlYWtwb2ludCkge1xuICAgIHBhZGRpbmctdG9wOiAkbWRjLXRvb2xiYXItbW9iaWxlLWxhbmRzY2FwZS1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZGMtdG9vbGJhci1tb2JpbGUtYnJlYWtwb2ludCkge1xuICAgIHBhZGRpbmctdG9wOiAkbWRjLXRvb2xiYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gIH1cbn1cblxuLm1kYy10b29sYmFyX19zZWN0aW9uLS1zaHJpbmstdG8tZml0IHtcbiAgZmxleDogbm9uZTtcbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG4kbWRjLXRvb2xiYXItcm93LWhlaWdodDogNjRweCAhZGVmYXVsdDtcbiRtZGMtdG9vbGJhci1tb2JpbGUtcm93LWhlaWdodDogNTZweCAhZGVmYXVsdDtcbiRtZGMtdG9vbGJhci1tb2JpbGUtbGFuZHNjYXBlLXJvdy1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG5cbiRtZGMtdG9vbGJhci1lbGVtZW50LXNlY3Rpb24tcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuJG1kYy10b29sYmFyLWVsZW1lbnQtbW9iaWxlLXNlY3Rpb24tcGFkZGluZzogNHB4ICFkZWZhdWx0O1xuXG4kbWRjLXRvb2xiYXItZWxlbWVudC1ob3Jpem9udGFsLXBhZGRpbmctZGVza3RvcDogMjRweCAhZGVmYXVsdDtcbiRtZGMtdG9vbGJhci1lbGVtZW50LWhvcml6b250YWwtcGFkZGluZy1tb2JpbGU6IDE2cHggIWRlZmF1bHQ7XG4kbWRjLXRvb2xiYXItdGl0bGUtbWFyZ2luLXRvLW1lbnUtaWNvbi1kZXNrdG9wOiA4cHggIWRlZmF1bHQ7XG4kbWRjLXRvb2xiYXItdGl0bGUtbWFyZ2luLXRvLW1lbnUtaWNvbi1tb2JpbGU6IDE2cHggIWRlZmF1bHQ7XG5cbiRtZGMtdG9vbGJhci1yYXRpby10by1leHRlbmQtZmxleGlibGU6IDQgIWRlZmF1bHQ7XG5cbiRtZGMtdG9vbGJhci1tb2JpbGUtbGFuZHNjYXBlLXdpZHRoLWJyZWFrcG9pbnQ6IDk1OXB4ICFkZWZhdWx0O1xuJG1kYy10b29sYmFyLW1vYmlsZS1icmVha3BvaW50OiA1OTlweCAhZGVmYXVsdDtcblxuJG1kYy10b29sYmFyLWljb24tcGFkZGluZzogMTJweCAhZGVmYXVsdDtcbiRtZGMtdG9vbGJhci1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZzogMTJweCAhZGVmYXVsdDtcbiRtZGMtdG9vbGJhci1tb2JpbGUtc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc6IDRweCAhZGVmYXVsdDtcblxuJG1kYy10b29sYmFyLWljb24tc2l6ZTogMjRweCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL3RoZW1lL3ZhcmlhYmxlc1wiOyAvLyBmb3IgbWRjLXRoZW1lLWFjY2Vzc2libGUtaW5rLWNvbG9yXG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy9cbi8vIFB1YmxpY1xuLy9cblxuQG1peGluIG1kYy10b29sYmFyLWluay1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRoZW1lLXByb3AoY29sb3IsICRjb2xvcik7XG59XG5cbkBtaXhpbiBtZGMtdG9vbGJhci1maWxsLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLXRvb2xiYXItZmlsbC1jb2xvci1hY2Nlc3NpYmxlKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdG9vbGJhci1maWxsLWNvbG9yKCRjb2xvcik7XG4gIEBpbmNsdWRlIG1kYy10b29sYmFyLWluay1jb2xvcihtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3IoJGNvbG9yKSk7XG5cbiAgLm1kYy10b29sYmFyX19pY29uIHtcbiAgICBAaW5jbHVkZSBtZGMtdG9vbGJhci1pY29uLWluay1jb2xvcihtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3IoJGNvbG9yKSk7XG4gIH1cbn1cblxuQG1peGluIG1kYy10b29sYmFyLWljb24taW5rLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXN0YXRlcygkY29sb3IpO1xufVxuXG4vL1xuLy8gUHJpdmF0ZVxuLy9cblxuLy8gQXBwbGllcyBzdHlsZXMgdG8gdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBpY29ucyB0aGF0IGNhbiBleGlzdCBpbiB0b29sYmFycy5cbi8vIEJvdGggLm1kYy10b29sYmFyX19pY29uIGFuZCAubWRjLXRvb2xiYXJfX21lbnUtaWNvbiBzaGFyZSBhbGwgc3R5bGVzIGV4Y2VwdCBmb3Jcbi8vIGhvcml6b250YWwgcGFkZGluZy5cbkBtaXhpbiBtZGMtdG9vbGJhci1pY29uXygpIHtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1zdXJmYWNlO1xuICBAaW5jbHVkZSBtZGMtcmlwcGxlLXJhZGl1cy11bmJvdW5kZWQ7XG5cbiAgLy8gbWRjLXN0YXRlcyBpcyBpbmNsdWRlZCB3aXRoaW4gdGhlIG1kYy10b29sYmFyLWljb24taW5rLWNvbG9yIG1peGluXG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJG1kYy10b29sYmFyLWljb24tc2l6ZSArICRtZGMtdG9vbGJhci1pY29uLXBhZGRpbmcgKiAyO1xuICBoZWlnaHQ6ICRtZGMtdG9vbGJhci1pY29uLXNpemUgKyAkbWRjLXRvb2xiYXItaWNvbi1wYWRkaW5nICogMjtcbiAgcGFkZGluZzogJG1kYy10b29sYmFyLWljb24tcGFkZGluZztcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvL1xuLy8gQ29weXJpZ2h0IDIwMTggR29vZ2xlIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLy9cblxuQGltcG9ydCBcIkBtYXRlcmlhbC9lbGV2YXRpb24vbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcnRsL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90eXBvZ3JhcGh5L21peGluc1wiO1xuQGltcG9ydCBcIi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi92YXJpYWJsZXNcIjtcblxuLy8gcG9zdGNzcy1iZW0tbGludGVyOiBkZWZpbmUgdG9wLWFwcC1iYXJcbi5tZGMtdG9wLWFwcC1iYXIge1xuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItZmlsbC1jb2xvci1hY2Nlc3NpYmxlKHByaW1hcnkpO1xuICBAaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItaWNvbi1pbmstY29sb3Iob24tcHJpbWFyeSk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodDtcbiAgfVxuXG4gICZfX3NlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6ICRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi12ZXJ0aWNhbC1wYWRkaW5nICRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgei1pbmRleDogMTtcblxuICAgICYtLWFsaWduLXN0YXJ0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG5cbiAgICAmLS1hbGlnbi1lbmQge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtdHlwb2dyYXBoeShoZWFkbGluZTYpO1xuICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCBsZWZ0LCAkbWRjLXRvcC1hcHAtYmFyLXRpdGxlLWxlZnQtcGFkZGluZyk7XG5cbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICZfX2FjdGlvbi1pdGVtLFxuICAmX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1pY29uXztcbiAgfVxufVxuXG5AYXQtcm9vdCB7XG4gIEBpbmNsdWRlIG1kYy10b3AtYXBwLWJhci1zaG9ydC1zaGFwZS1yYWRpdXMoMjRweCk7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0IHtcbiAgdG9wOiAwO1xuICAvKiBAbm9mbGlwICovXG4gIHJpZ2h0OiBhdXRvO1xuICAvKiBAbm9mbGlwICovXG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgQGluY2x1ZGUgbWRjLXJ0bCB7XG4gICAgLyogQG5vZmxpcCAqL1xuICAgIHJpZ2h0OiAwO1xuICAgIC8qIEBub2ZsaXAgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAkbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1zZWN0aW9uLXBhZGRpbmc7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ubWRjLXRvcC1hcHAtYmFyLS1zaG9ydC1jb2xsYXBzZWQge1xuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDQpO1xuXG4gIHdpZHRoOiAkbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC13aWR0aDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fYWN0aW9uLWl0ZW0ge1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMTUwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICB9XG59XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWhhcy1hY3Rpb24taXRlbSB7XG4gIHdpZHRoOiAkbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC13aWR0aCAqIDI7XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbi0tYWxpZ24tZW5kIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgcmlnaHQsIDEycHgpO1xuICB9XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlIHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodDtcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgJG1kYy10b3AtYXBwLWJhci1kZW5zZS1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBtZGMtcnRsLXJlZmxleGl2ZS1ib3gocGFkZGluZywgbGVmdCwgJG1kYy10b3AtYXBwLWJhci1kZW5zZS10aXRsZS1sZWZ0LXBhZGRpbmcpO1xuICB9XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudCB7XG4gIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgaGVpZ2h0OiAkbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC1yb3ctaGVpZ2h0O1xuICB9XG5cbiAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgfVxuXG4gIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLFxuICAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHBsdWdpbi9zZWxlY3Rvci1iZW0tcGF0dGVyblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGxpbmVhcjtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtc2Nyb2xsZWQge1xuICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uKDQpO1xuXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgbGluZWFyO1xufVxuXG4vLyBTcGVjaWZpYyBzdHlsZXMgZm9yIGRlbnNlIGFuZCBwcm9taW5lbnQgc3R5bGVkIHRvcCBhcHAgYmFyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cbi5tZGMtdG9wLWFwcC1iYXItLWRlbnNlLm1kYy10b3AtYXBwLWJhci0tcHJvbWluZW50IHtcbiAgLm1kYy10b3AtYXBwLWJhcl9fcm93IHtcbiAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodCAqIDI7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwICRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi1ob3Jpem9udGFsLXBhZGRpbmc7XG4gIH1cblxuICAubWRjLXRvcC1hcHAtYmFyX190aXRsZSB7XG4gICAgQGluY2x1ZGUgbWRjLXJ0bC1yZWZsZXhpdmUtYm94KHBhZGRpbmcsIGxlZnQsICRtZGMtdG9wLWFwcC1iYXItdGl0bGUtbGVmdC1wYWRkaW5nKTtcblxuICAgIHBhZGRpbmctYm90dG9tOiAkbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZztcbiAgfVxufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBwbHVnaW4vc2VsZWN0b3ItYmVtLXBhdHRlcm5cblxuLm1kYy10b3AtYXBwLWJhci0tZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItZGVuc2Utcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tc2hvcnQtZml4ZWQtYWRqdXN0IHtcbiAgcGFkZGluZy10b3A6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG59XG5cbi5tZGMtdG9wLWFwcC1iYXItLXByb21pbmVudC1maXhlZC1hZGp1c3Qge1xuICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtcm93LWhlaWdodDtcbn1cblxuLm1kYy10b3AtYXBwLWJhci0tZGVuc2UtcHJvbWluZW50LWZpeGVkLWFkanVzdCB7XG4gIHBhZGRpbmctdG9wOiAkbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXJvdy1oZWlnaHQgKiAyO1xufVxuXG4vLyBNb2JpbGUgU3R5bGVzXG5AaW5jbHVkZSBtZGMtdG9wLWFwcC1iYXItbW9iaWxlLWJyZWFrcG9pbnRfO1xuIiwiLy9cbi8vIENvcHlyaWdodCAyMDE4IEdvb2dsZSBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbi8vXG5cbi8vIERlZmF1bHQgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLXJvdy1oZWlnaHQ6IDY0cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXRpdGxlLWxlZnQtcGFkZGluZzogMjBweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItc2VjdGlvbi12ZXJ0aWNhbC1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXNlY3Rpb24taG9yaXpvbnRhbC1wYWRkaW5nOiAxMnB4ICFkZWZhdWx0O1xuXG4kbWRjLXRvcC1hcHAtYmFyLWljb24tcGFkZGluZzogMTJweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItaWNvbi1zaXplOiAyNHB4ICFkZWZhdWx0O1xuXG4kbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1icmVha3BvaW50OiA1OTlweCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBtb2JpbGUgc3R5bGVzXG4kbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1yb3ctaGVpZ2h0OiA1NnB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtc2VjdGlvbi1wYWRkaW5nOiA0cHggIWRlZmF1bHQ7XG5cbi8vIFNob3J0IHRvcCBhcHAgYmFyXG4kbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC1ib3JkZXItcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXNob3J0LWNvbGxhcHNlZC13aWR0aDogNTZweCAhZGVmYXVsdDtcbiRtZGMtdG9wLWFwcC1iYXItc2hvcnQtY29sbGFwc2VkLXJpZ2h0LWljb24tcGFkZGluZzogMTJweCAhZGVmYXVsdDtcblxuLy8gUHJvbWluZW50IHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtcm93LWhlaWdodDogMTI4cHggIWRlZmF1bHQ7XG4kbWRjLXRvcC1hcHAtYmFyLXByb21pbmVudC10aXRsZS1ib3R0b20tcGFkZGluZzogMnB4ICFkZWZhdWx0O1xuXG4vLyBQcm9taW5lbnQgbW9iaWxlIHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtbW9iaWxlLXRpdGxlLWJvdHRvbS1wYWRkaW5nOiA2cHggIWRlZmF1bHQ7XG5cbi8vIERlbnNlIHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS1yb3ctaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS1zZWN0aW9uLWhvcml6b250YWwtcGFkZGluZzogNHB4ICFkZWZhdWx0O1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS10aXRsZS1sZWZ0LXBhZGRpbmc6IDEycHggIWRlZmF1bHQ7XG5cbi8vIERlbnNlICYgUHJvbWluZW50IHN0eWxlc1xuJG1kYy10b3AtYXBwLWJhci1kZW5zZS1wcm9taW5lbnQtdGl0bGUtYm90dG9tLXBhZGRpbmc6IDlweCAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AaW1wb3J0IFwiQG1hdGVyaWFsL2FuaW1hdGlvbi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvcmlwcGxlL21peGluc1wiO1xuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS92YXJpYWJsZXNcIjsgLy8gZm9yIG1kYy10aGVtZS1hY2Nlc3NpYmxlLWluay1jb2xvclxuQGltcG9ydCBcIkBtYXRlcmlhbC90aGVtZS9taXhpbnNcIjtcbkBpbXBvcnQgXCJAbWF0ZXJpYWwvc2hhcGUvbWl4aW5zXCI7XG5AaW1wb3J0IFwiQG1hdGVyaWFsL3NoYXBlL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vdmFyaWFibGVzXCI7XG5cbi8vXG4vLyBQdWJsaWNcbi8vXG5cbkBtaXhpbiBtZGMtdG9wLWFwcC1iYXItaW5rLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChjb2xvciwgJGNvbG9yKTtcbn1cblxuQG1peGluIG1kYy10b3AtYXBwLWJhci1maWxsLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBtZGMtdGhlbWUtcHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xufVxuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLWZpbGwtY29sb3ItYWNjZXNzaWJsZSgkY29sb3IpIHtcbiAgQGluY2x1ZGUgbWRjLXRvcC1hcHAtYmFyLWZpbGwtY29sb3IoJGNvbG9yKTtcbiAgQGluY2x1ZGUgbWRjLXRvcC1hcHAtYmFyLWluay1jb2xvcihtZGMtdGhlbWUtYWNjZXNzaWJsZS1pbmstY29sb3IoJGNvbG9yKSk7XG59XG5cbkBtaXhpbiBtZGMtdG9wLWFwcC1iYXItaWNvbi1pbmstY29sb3IoJGNvbG9yKSB7XG4gIC5tZGMtdG9wLWFwcC1iYXJfX2FjdGlvbi1pdGVtLFxuICAubWRjLXRvcC1hcHAtYmFyX19uYXZpZ2F0aW9uLWljb24ge1xuICAgIEBpbmNsdWRlIG1kYy10aGVtZS1wcm9wKGNvbG9yLCAkY29sb3IpO1xuICAgIEBpbmNsdWRlIG1kYy1zdGF0ZXMoJGNvbG9yKTtcbiAgfVxufVxuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLXNob3J0LXNoYXBlLXJhZGl1cygkcmFkaXVzLCAkcnRsLXJlZmxleGl2ZTogdHJ1ZSkge1xuICBAaWYgbGVuZ3RoKCRyYWRpdXMpID4gMSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCByYWRpdXM6ICcjeyRyYWRpdXN9JyBjb21wb25lbnQgZG9lc24ndCBhbGxvdyBjdXN0b21pemluZyBhbGwgY29ybmVyc1wiO1xuICB9XG5cbiAgJHJhZGl1czogMCAwICRyYWRpdXMgMDtcblxuICAkc2VsZWN0b3I6IGlmKCYsIFwiJi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZFwiLCBcIi5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZFwiKTtcblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1kYy1zaGFwZS1yYWRpdXMoXG4gICAgICBtZGMtc2hhcGUtcmVzb2x2ZS1wZXJjZW50YWdlLXJhZGl1cygkbWRjLXRvcC1hcHAtYmFyLWRlbnNlLXJvdy1oZWlnaHQsICRyYWRpdXMpLFxuICAgICAgJHJ0bC1yZWZsZXhpdmVcbiAgICApO1xuICB9XG59XG5cbi8vXG4vLyBQcml2YXRlXG4vL1xuXG5AbWl4aW4gbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1icmVha3BvaW50XygkbW9iaWxlLWJyZWFrcG9pbnQ6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLWJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRtb2JpbGUtYnJlYWtwb2ludCkge1xuICAgIC5tZGMtdG9wLWFwcC1iYXJfX3JvdyB7XG4gICAgICBoZWlnaHQ6ICRtZGMtdG9wLWFwcC1iYXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhcl9fc2VjdGlvbiB7XG4gICAgICBwYWRkaW5nOiAkbWRjLXRvcC1hcHAtYmFyLW1vYmlsZS1zZWN0aW9uLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1kYy10b3AtYXBwLWJhci0tc2hvcnQge1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgJG1kYy1hbmltYXRpb24tc3RhbmRhcmQtY3VydmUtdGltaW5nLWZ1bmN0aW9uO1xuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXItLXNob3J0LWNvbGxhcHNlZCB7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAyNTBtcyAkbWRjLWFuaW1hdGlvbi1zdGFuZGFyZC1jdXJ2ZS10aW1pbmctZnVuY3Rpb247XG5cbiAgICAgIC5tZGMtdG9wLWFwcC1iYXJfX3NlY3Rpb24tLWFsaWduLWVuZCB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1ydGwtcmVmbGV4aXZlLWJveChwYWRkaW5nLCByaWdodCwgJG1kYy10b3AtYXBwLWJhci1zaG9ydC1jb2xsYXBzZWQtcmlnaHQtaWNvbi1wYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWRjLXRvcC1hcHAtYmFyLS1wcm9taW5lbnQge1xuICAgICAgLm1kYy10b3AtYXBwLWJhcl9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1kYy10b3AtYXBwLWJhci1wcm9taW5lbnQtbW9iaWxlLXRpdGxlLWJvdHRvbS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGMtdG9wLWFwcC1iYXItLWZpeGVkLWFkanVzdCB7XG4gICAgICBwYWRkaW5nLXRvcDogJG1kYy10b3AtYXBwLWJhci1tb2JpbGUtcm93LWhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQXBwbGllcyBzdHlsZXMgdG8gdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBpY29ucyB0aGF0IGNhbiBleGlzdCBpbiB0b3AtYXBwLWJhcnMuXG4vLyBCb3RoIC5tZGMtdG9wLWFwcC1iYXJfX2ljb24gYW5kIC5tZGMtdG9wLWFwcC1iYXJfX25hdmlnYXRpb24taWNvbiBzaGFyZSBhbGwgc3R5bGVzIGV4Y2VwdCBmb3Jcbi8vIGhvcml6b250YWwgcGFkZGluZy5cbkBtaXhpbiBtZGMtdG9wLWFwcC1iYXItaWNvbl8oKSB7XG4gIEBpbmNsdWRlIG1kYy1yaXBwbGUtc3VyZmFjZTtcbiAgQGluY2x1ZGUgbWRjLXJpcHBsZS1yYWRpdXMtdW5ib3VuZGVkO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJG1kYy10b3AtYXBwLWJhci1pY29uLXNpemUgKyAkbWRjLXRvcC1hcHAtYmFyLWljb24tcGFkZGluZyAqIDI7XG4gIGhlaWdodDogJG1kYy10b3AtYXBwLWJhci1pY29uLXNpemUgKyAkbWRjLXRvcC1hcHAtYmFyLWljb24tcGFkZGluZyAqIDI7XG4gIHBhZGRpbmc6ICRtZGMtdG9wLWFwcC1iYXItaWNvbi1wYWRkaW5nO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIi5jYXJkX19wcmltYXJ5IHtcclxuICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgfVxyXG4gIFxyXG4gIC5jYXJkX190aXRsZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC5jYXJkX19zdWJ0aXRsZSB7XHJcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcclxuICAgIC8qIEBhbHRlcm5hdGUgKi9cclxuICAgIGNvbG9yOiB2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZCwgcmdiYSgwLCAwLCAwLCAwLjU0KSk7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC5jYXJkX19zZWNvbmRhcnkge1xyXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XHJcbiAgICAvKiBAYWx0ZXJuYXRlICovXHJcbiAgICBjb2xvcjogdmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC41NCkpO1xyXG4gICAgcGFkZGluZzogMCAxcmVtIDhweCAxcmVtO1xyXG4gIH1cclxuICAiLCLvu78uc3BhY2VyLWdyb3Vwe1xyXG4gICAgbWFyZ2luLWJvdHRvbToyMHB4O1xyXG59XHJcblxyXG4uc3BhY2VyLXRpdGxlOm5vdChoMSl7XHJcbiAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOjE0cHg7XHJcblxyXG59XHJcblxyXG5oMS5zcGFjZXItdGl0bGUge1xyXG4gICAgbWFyZ2luLXRvcDogMTJweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIycHg7XHJcbn1cclxuXHJcbi5zcGFjZXItaW5wdXR7XHJcbiAgICBtYXJnaW4tYm90dG9tOjEycHg7XHJcbn1cclxuXHJcbi5zcGFjZXItdGV4dHtcclxuICAgIG1hcmdpbi10b3A6NnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTozcHg7XHJcbn1cclxuXHJcbi8vIENPTlRFTlQgU1BBQ0VSXHJcbi8vIEFESlVTVCBUTyBDSEFOR0UgVEhFIFRPUCBNQVJHSU4gT0YgVEhFIEZJUlNUIEVMRU1FTlRcclxuLy8gSk9ITiAoMjAxOS0yMSlcclxuaHRtbCAuc3BhY2VyLXRvcC1jb250ZW50IHtcclxuICAgIG1hcmdpbi10b3A6MnJlbTtcclxuXHJcblxyXG59XHJcblxyXG5cclxuXHJcbi8vIENPTlRFTlQgU1BBQ0VSIFxyXG4vLyBBREpVU1QgVE8gQ0hBTkdFIFRIRSBQQURESU5HIExFRlQvUklHSFQgRk9SIENPTlRFTlRcclxuLy8gSk9ITiAoMjAxOS0yMSlcclxuLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgICAucGEtY29udGVudCwgLnNwYWNlci1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuZGF0YVRhYmxlc193cmFwcGVye1xyXG4gICAgICAgIHBhZGRpbmc6MCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4vLyBDUkVBVEUgTVVMVElQTEUgTElTVCBTUEFDRVJcclxuLy8gRlJPTSAuc3BhY2VyLWlubGluZS1saXN0LTEwIHRvIC5zcGFjZXItaW5saW5lLWxpc3QtNTBcclxuLy8gSU5DUkVNRU5UUyBCWSAxMFxyXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xyXG4gICAgLnNwYWNlci1pbmxpbmUtbGlzdC0jeyRpKjEwfSB7XHJcbiAgICAgICAgJiA+ICoge1xyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxbisyKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJGkgKiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIu+7vy8vQ09MT1JTIC0gSm9obiAoMjAxOS0wMy0wMSlcclxuLmZhY2Vib29rLWNvbG9ye1xyXG4gICAgY29sb3I6JGZhY2Vib29rLWNvbG9yO1xyXG59XHJcblxyXG4ubGlua2VkaW4tY29sb3Ige1xyXG4gICAgY29sb3I6ICRsaW5rZWRpbi1jb2xvcjtcclxufVxyXG5cclxuLmZhZG9xLWNvbG9ye1xyXG4gICAgY29sb3I6ICRmYWRvcS1jb2xvcjtcclxufVxyXG5cclxuLy9Qb2ludCBldmVudHMgbm9uZSAtIEpvaG4gKDIwMTktMDMtMTMpXHJcbi5wb2ludGVyLWV2ZW50LW5vbmV7XHJcbiAgICBwb2ludGVyLWV2ZW50czpub25lO1xyXG59XHJcbi8vQ29sb3IgcGlja2VyIHN0eWxlIC0gSm9obiAoMjAxOS0wMy0wMSlcclxuLmNvbG9yLXBpY2tlciB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3R0b206IDFyZW07XHJcbiAgICBsZWZ0OiAxcmVtO1xyXG4gICAgei1pbmRleDogMTtcclxufVxyXG5cclxuLy9IRUxQRVJTIEZPUiBFVkVOVFMgLSBKb2huICgyMDE5LTAzLTAxKVxyXG4ucG9pbnRlci1ldmVudHMtbm9uZSB7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLnBvaW50ZXItZXZlbnRzLWF1dG97XHJcbiAgICBwb2ludGVyLWV2ZW50czphdXRvO1xyXG59XHJcblxyXG4ucmFkaXVzLTB7XHJcbiAgICBib3JkZXItcmFkaXVzOjAgIWltcG9ydGFudDtcclxufVxyXG4vL0ZJWEVEIFdJVEgsIFVTRSBPTkxZIElGIE5FQ0VTU0FSWVxyXG4udy02MC1weCB7XHJcbiAgICB3aWR0aDogNjBweDtcclxufVxyXG4vLyBDUkVBVEUgTVVMVElQTEUgSU5TVEFOQ0UgT0YgTUFYLVdJRFRIXHJcbi8vIENSRUFURSBNQVggRlJPTSAxMDAgVE8gMjAwMCBNV1xyXG4vLyAtIEpvaG4gKDIwMTktMDMtMDEpXHJcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMjAge1xyXG4gICAgLm13LSN7JGkqMTAwLXB4fSB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAkaSAqIDEwMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyAgQ1JFQVRFIE1VTFRJUExFIElOU1RBTkNFIE9GIFNIQURPV1xyXG4vLyAgVE8gQ1JFQVRFIFogRElNRU5TSU9OIFdFIFVTRSBaLUlOREVYXHJcbi8vIC0gSm9obiAoMjAxOS0wMy0wMSlcclxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAyMCB7XHJcbiAgICAuYm94LXNoYWRvdy0jeyRpfSB7XHJcbiAgICAgICAgei1pbmRleDogJGkgKiAxMDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgYm94LXNoYWRvdzogJG1hdGVyaWFsLXNoYWRvdztcclxuICAgIH1cclxufVxyXG4uYm94LXNoYWRvdy0wIHtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuLmJveC1zaGFkb3ctaW5uZXIge1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDAgMTBweCAjMDAwMDAwO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMTBweCAjMDAwMDAwO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDEwcHggIzAwMDAwMDtcclxufVxyXG5cclxuLmJveC1zaGFkb3ctaG92ZXIge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbiAwLjNzO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idXR0b246aG92ZXIsICYuYnV0dG9uOmZvY3VzIHtcclxuICAgICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xyXG4gICAgfVxyXG5cclxuICAgICYgYSB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIGVhc2UtaW4gMC4zcztcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICAgICAgJiBhOmhvdmVyLCAmIGE6Zm9jdXMge1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjk1KTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciBlYXNlLWluIDAuM3M7XHJcbiAgICAgICAgfVxyXG59XHJcbi5tZGMtZWxldmF0aW9uLS16aG92ZXIge1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgZWFzZS1pbiAwLjNzO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XHJcbiAgICB9XHJcbn1cclxuLnRleHQtc2hhZG93IHtcclxuICAgIHRleHQtc2hhZG93OiAkc2hhZG93O1xyXG59XHJcblxyXG5cclxuLy8uSFIgU1RZTElORyAtIEpvaG4gKDIwMTktMDMtMDEpXHJcbi5ociB7XHJcbiAgICAmLmhyLWJlZm9yZSB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwKSwgcmdiYSgwLCAwLCAwLCAwLjc1KSwgcmdiYSgwLCAwLCAwLCAwKSk7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaHItYWZ0ZXIge1xyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwKSwgcmdiYSgwLCAwLCAwLCAwLjc1KSwgcmdiYSgwLCAwLCAwLCAwKSk7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwIDFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyAgUExBQ0VIT0xERVJTIElNRyAtIEpvaG4gKDIwMTktMDMtMDEpXHJcblxyXG4kbGluZS1jb2xvcjogcmdiKDIwMCwyMDAsMjAwKTtcclxuJGxpbmUtd2lkdGg6IDRweDtcclxuXHJcbi5pbWctYm94IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHByZXNlcnZlQXNwZWN0UmF0aW89J25vbmUnIHZpZXdCb3g9JzAgMCA0MDAgMzAwJz48bGluZSB4MT0nMCcgeTE9JzAnIHgyPSc0MDAnIHkyPSczMDAnIHN0eWxlPSdzdHJva2U6XCIrICRsaW5lLWNvbG9yICsgXCI7c3Ryb2tlLXdpZHRoOlwiKyAkbGluZS13aWR0aCArIFwiJyB2ZWN0b3ItZWZmZWN0PSdub24tc2NhbGluZy1zdHJva2UnIC8+PGxpbmUgeDE9JzAnIHkxPSczMDAnIHgyPSc0MDAnIHkyPScwJyBzdHlsZT0nc3Ryb2tlOlwiKyAkbGluZS1jb2xvciArIFwiO3N0cm9rZS13aWR0aDpcIisgJGxpbmUtd2lkdGggKyBcIicgdmVjdG9yLWVmZmVjdD0nbm9uLXNjYWxpbmctc3Ryb2tlJyAvPjwvc3ZnPlwiKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlIGF1dG87XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG59XHJcblxyXG4vLyAgQ1JFQVRFIDEwIFBMQUNFSE9MREVSUyBJTkNSRUFTSU5HIElOIFNJWkUgMTAlIElOQ1JFTUVOVFxyXG4vLyAgRlJPTSAuSU1HLUJPWC0xIFRPIC5JTUctQk9YLTEwXHJcbi8vIC0gSm9obiAoMjAxOS0wMy0wMSlcclxuXHJcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xyXG4gICAgLmltZy1ib3gtI3skaX0ge1xyXG4gICAgICAgIHdpZHRoOiAkaSAqIDEgKyA1ZW07XHJcbiAgICAgICAgaGVpZ2h0OiAkaSAqIDEgKyA1ZW07XHJcbiAgICAgICAgbWluLXdpZHRoOiAkaSAqIDEgKyA1ZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vICBERUZJTkUgTUlYSU5TIEZPUiBHUkFESUVOVCAtIEpvaG4gKDIwMTktMDMtMDEpXHJcblxyXG5AbWl4aW4gbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sJGZyb20sICRHcmFkaWVudEFuY2hvcjEsICR0bywgJEdyYWRpZW50QW5jaG9yMikge1xyXG4gICAgYmFja2dyb3VuZDogJHRvO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRmcm9tICRHcmFkaWVudEFuY2hvcjEsICR0byAkR3JhZGllbnRBbmNob3IyKTtcclxufVxyXG5cclxuLy8gIENSRUFURSBVU0FCTEUgQ0xBU1MgLSBKb2huICgyMDE5LTAzLTAxKVxyXG4lbGluZWFyLWdyYWRpZW50IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgei1pbmRleDogMztcclxufVxyXG5cclxuLy9DcmVhdGUgbGluZWFyIGdyYWRpZW50IGxlZnQvcmlnaHQgZGlyZWN0aW9uIHdpdGggYWxsIHRoZW1lIGNvbG9yIC0gSm9obiAoMjAxOS0wNClcclxuQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkbWRjLXRoZW1lLWNvbG9yc3tcclxuICAgIC5saW5lYXItZ3JhZGllbnQtLXRvLWxlZnQtI3skbmFtZX0ge1xyXG4gICAgICAgIEBleHRlbmQgJWxpbmVhci1ncmFkaWVudDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIGFkanVzdC1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IDUwJSwgJGFscGhhOiAtMC45KSwgMCUsIGFkanVzdC1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC01MCUsICRhbHBoYTogLTAuMSksIDEwMCUpO1xyXG4gICAgfVxyXG4gICAgLmxpbmVhci1ncmFkaWVudC0tdG8tcmlnaHQtI3skbmFtZX0ge1xyXG4gICAgICAgIEBleHRlbmQgJWxpbmVhci1ncmFkaWVudDtcclxuICAgICAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGFkanVzdC1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC01MCUsICRhbHBoYTogLTAuOSksIDAlLCBhZGp1c3QtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlLCAkYWxwaGE6IC0wLjEpLCAxMDAlKTtcclxuICAgIH1cclxufVxyXG5cclxuLy9QT1NJVElPTklORyBVVElMSVRJRVMgRk9SIFJFTEFUSVZFID0+IEFCU09MVVRFICAtIEpvaG4gKDIwMTktMDMtMDEpXHJcbi5wb3Mge1xyXG4gICAgdG9wOiBpbml0aWFsO1xyXG4gICAgYm90dG9tOiBpbml0aWFsO1xyXG4gICAgcmlnaHQ6IGluaXRpYWw7XHJcbiAgICBsZWZ0OiBpbml0aWFsO1xyXG59XHJcbiRwb3MtYWJzOiAoIGJvdHRvbTogMCAhaW1wb3J0YW50LCByaWdodDogMCAhaW1wb3J0YW50LCB0b3A6IDAgIWltcG9ydGFudCwgbGVmdDogMCAhaW1wb3J0YW50ICk7XHJcbkBlYWNoICRuYW1lLCAkbW92ZSBpbiAkcG9zLWFicyB7XHJcbiAgICAucG9zLSN7JG5hbWV9IHtcclxuXHJcbiAgICAgICAgI3skbmFtZX06ICRtb3ZlO1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGgtbm9ybWFse1xyXG4gICAgbGluZS1oZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7XHJcbn1cclxuLy9FWFRFTkQgQk9PVFNUUkFQIE1BUkdJTiAtIEpvaG4gKDIwMTktMDMtMDEpXHJcbkBmb3IgJGkgZnJvbSA2IHRocm91Z2ggMTAge1xyXG4gICAgLm10LSN7JGl9IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAkaSArIDByZW0gIWltcG9ydGFudFxyXG4gICAgfVxyXG5cclxuICAgIC5tYi0jeyRpfSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGkgKyAwcmVtICFpbXBvcnRhbnRcclxuICAgIH1cclxuXHJcbiAgICAubXItI3skaX0ge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogJGkgKyAwcmVtICFpbXBvcnRhbnRcclxuICAgIH1cclxuXHJcbiAgICAubWwtI3skaX0ge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkaSArIDByZW0gIWltcG9ydGFudFxyXG4gICAgfVxyXG5cclxuICAgIC5teS0jeyRpfSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogJGkgKyAwcmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGkgKyAwcmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm14LSN7JGl9IHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogJGkgKyAwcmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaSArIDByZW0gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAubS0jeyRpfSB7XHJcbiAgICAgICAgbWFyZ2luOiAkaSArIDByZW0gIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLmhhbGYtcm91bmRlZC1ib3JkZXJ7XHJcbiAgICBib3JkZXItcmFkaXVzOjE4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLy9Sb3RhdGUgY3NzIC0gSm9obiAoMjAxOS0wMy0wMSlcclxuXHJcbi5yb3RhdGUtOTB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbn1cclxuXHJcbi5yb3RhdGUtMTgwIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbn1cclxuXHJcbi5yb3RhdGUtMjcwIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XHJcbn1cclxuXHJcbi8vIFNoYWRlciBHZW5lcmF0aW9uIFxyXG4vLyBDcmVhdGUgdHdvIGNsYXNzIGZyb20gMSB0byAxMCBhcyBYXHJcbi8vIC5zaGFkZXItYmxhY2stLVggOiBGb250IGNvbG9yXHJcbi8vIC5zaGFkZXItYmxhY2stLVgtYmcgOiBCRyBjb2xvclxyXG4vLyAtIEpvaG4gKDIwMTktMDMtMDEpXHJcblxyXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDEwIHtcclxuICAgIC5zaGFkZXItYmxhY2stLSN7JGkgKjEwfSB7XHJcbiAgICAgICAgY29sb3I6IHJnYmEoMCwwLDAsICRpICogMC4xMCk7XHJcbiAgICB9XHJcbiAgICAuc2hhZGVyLWxpZ2h0LS0jeyRpICoxMH0ge1xyXG4gICAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAkaSAqIDAuMTApO1xyXG4gICAgfVxyXG4gICAgLnNoYWRlci1ibGFjay0tI3skaSAqMTB9LWJnIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAkaSAqIDAuMTApO1xyXG4gICAgfVxyXG4gICAgLnNoYWRlci1saWdodC0tI3skaSAqMTB9LWJnIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAkaSAqIDAuMTApO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAyMHtcclxuICAgIC56LWluZGV4LSN7JGl9e1xyXG4gICAgICAgIHotaW5kZXg6ICRpO1xyXG4gICAgfVxyXG59XHJcbi8vQ3JlYXRlIGJveCB3aXRoIHNldCB3aGVyZSB3aWR0aCAmIGhlaWdodCA9IGluY3JlbWVudCAqIDVcclxuLy9DbGFzcyBOYW1lIDogLmJveC01IHRvIC5ib3gtMjAwXHJcbi8vSm9obiAoMjAxOC0xMSlcclxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA0MCB7XHJcbiAgICAuYm94LSN7JGkqNX0ge1xyXG4gICAgICAgIHdpZHRoOiAkaSAqIDVweDtcclxuICAgICAgICBtaW4td2lkdGg6ICRpICogNXB4O1xyXG4gICAgICAgIGhlaWdodDogJGkgKiA1cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vQkFDS0dST1VORC1JTUFHRSAtIEpvaG4gKDIwMTktMDMtMDEpXHJcbi5iYWNrZ3JvdW5kLWltYWdlIHtcclxuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxufVxyXG5cclxuJWJhY2tncm91bmQtaW1hZ2Utc2hhcmVkIHtcclxuICAgIGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmJhY2tncm91bmQtaW1hZ2UtY29udGFpbntcclxuICAgIEBleHRlbmQgJWJhY2tncm91bmQtaW1hZ2Utc2hhcmVkO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOmNvbnRhaW4gIWltcG9ydGFudDtcclxuXHJcblxyXG59XHJcblxyXG4uYmFja2dyb3VuZC1pbWFnZS1jb3ZlciB7XHJcbiAgICBAZXh0ZW5kICViYWNrZ3JvdW5kLWltYWdlLXNoYXJlZDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm91dGxpbmUtbm9uZXtcclxuICAgIG91dGxpbmU6bm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub3ZlcmZsb3ctdmlzaWJsw6t7XHJcbiAgICBvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4uYmxvY2t7XHJcbiAgICBkaXNwbGF5OmJsb2NrO1xyXG59XHJcblxyXG4uaW5saW5lLWJsb2Nre1xyXG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi53LTEwMHtcclxuICAgIHdpZHRoOjEwMCU7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4uY3NzLm1hcCAqL1xyXG4iLCLvu78vL1RPR0dMRSBDT05URU5UIERFRkFVTFQgU1RZTEVTXG4udG9nZ2xlLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0LCBvcGFjaXR5IDMwMG1zIGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lsbC1jaGFuZ2U6IGhlaWdodCwgb3BhY2l0eTtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuXG5cbiNJbmRlZWRBZHZhbmNlZFNlYXJjaCwgLlRhcmdldGVkUmVnaW9uLCAjU3ViUmVnaW9uSG9sZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRyYW5zaXRpb246IHdpZHRoLCBoZWlnaHQsIG9wYWNpdHkgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgd2lsbC1jaGFuZ2U6IHdpZHRoLCBoZWlnaHQsIG9wYWNpdHk7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cblxuXG4iLCLvu79cclxuLypcclxuICAgIElFMTEgRklYRVNcclxuKi9cclxuQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcclxuICAgIGJvZHkge1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICB9XHJcbiAgICAubWRjLXRoZW1lLS1vbi1zdXJmYWNlIC5qb2luLWljb257XHJcbiAgICAgICAgbGVmdDo1cHg7XHJcbiAgICB9XHJcbiAgICAubWRjLW1lbnUtYWJzb2x1dGV7XHJcbiAgICAgICAgbWluLXdpZHRoOjMwMHB4O1xyXG4gICAgICAgIHdpZHRoOjk1JTtcclxuICAgICAgICBvdmVyZmxvdzpoaWRkZW47XHJcbiAgICB9XHJcbiAgICBmb290ZXJ7XHJcbiAgICAgICAgbWluLWhlaWdodDoyMDBweDtcclxuICAgIH1cclxuICAgIC5tZGMtZGlhbG9nX19jb250YWluZXIsXHJcbiAgICAubWRjLWRpYWxvZ19fc3VyZmFjZSB7XHJcbiAgICAgICAgd2lkdGg6MTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbiIsIu+7v0BtZWRpYSBwcmludCB7XHJcbiAgICBhc2lkZSwgW3JvbGU9XCJuYXZpZ2F0aW9uXCJdLCBbcm9sZT1cImJhbm5lclwiXSwgW3JvbGU9XCJhbGVydGRpYWxvZ1wiXSwgW3JvbGU9XCJtZW51YmFyXCJdLCBbcm9sZT1cImJ1dHRvblwiXSwgW3JvbGU9XCJzdGF0dXNcIl0sICNtYXAsIGZvb3RlciwgLmxvYWRlci13cmFwcGVyLCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLCA6Oi13ZWJraXQtc2Nyb2xsYmFyLFxyXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLm1kYy1kcmF3ZXItYXBwLWNvbnRlbnQsIC5tLXAtMCB7XHJcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKiMgc291cmNlTWFwcGluZ1VSTD1tYWluLmNzcy5tYXAgKi9cclxuXHJcbiJdfQ== */